Files
bd2/go/internal/server/deck/story_party.go
T

27 lines
682 B
Go

package deck
func (s *Store) CurrentFieldDeck() []FieldEntry {
s.mu.RLock()
defer s.mu.RUnlock()
return append([]FieldEntry(nil), s.state.FieldDeck...)
}
// SetStoryParty stores the authored active quest formation using the same
// character ownership checks as DeckSave. Empty formation keeps player choice.
func (s *Store) SetStoryParty(entries []DeckEntry) error {
if len(entries) == 0 {
return nil
}
if err := validDeck(entries); err != nil {
return err
}
s.mu.Lock()
defer s.mu.Unlock()
if err := s.validateOwnedDeckLocked(entries); err != nil {
return err
}
next := clone(s.state)
next.Deck = append([]DeckEntry(nil), entries...)
return s.commit(next)
}