mirror of
https://github.com/prosolis/gogobee.git
synced 2026-09-14 10:51:09 +00:00
adventure: tell Pete this build knows what a party seat is
The party list is omitempty, so a solo run and a game box too old to push seats reach Pete as the same empty slice, and those two want opposite buttons. Pete's page was reading the empty one as "solo, therefore leader" and offering a party member the button that throws away everyone's day. One boolean, set on every sheet a build makes — in town, solo, or seated with three others. It says something about the sender, never about the character, so it is set unconditionally: a conditional flag would read as "this player is solo" and land straight back in the hole it closes. An older build sends no key at all, which decodes to false, which is the answer Pete wants when it cannot tell. Pete's half shipped already and withholds the button until this arrives. Verified end to end against a local Pete, not just in tests: a solo leader on a live expedition gets "Call the whole thing off" back, a member still gets "Turn back alone" and never the abandon, and stripping the flag from the same push takes the solo button away again.
This commit is contained in:
@@ -144,6 +144,10 @@ func rosterDetail(uid id.UserID, c *DnDCharacter) *peteclient.RosterDetail {
|
||||
ArmorClass: c.ArmorClass,
|
||||
Abilities: [6]int{c.STR, c.DEX, c.CON, c.INT, c.WIS, c.CHA},
|
||||
Modifiers: c.Modifiers(),
|
||||
// Unconditional, and this is the whole point of the field: it says this
|
||||
// build knows about party seats, not that this character has any. Making
|
||||
// it conditional would put it straight back in the hole it closes.
|
||||
PartyKnown: true,
|
||||
}
|
||||
if equip, err := loadAdvEquipment(uid); err == nil {
|
||||
for _, slot := range allSlots {
|
||||
|
||||
Reference in New Issue
Block a user