Integrate Harkonnen Nexus traitor retirement and Mentat replacement
This commit is contained in:
1 parent
0c25aad62f
commit
1cf8ff72c7
25 files changed
+3049
-8
No files matched your search
+3
-3
@@ -12,7 +12,7 @@ type TurnView = Pick<
|
||||
| 'phaseOpening'
|
||||
| 'automaticContinuationPending'
|
||||
> &
|
||||
Partial<Pick<GameView, 'biddingEnd' | 'kullReaction' | 'richeseBetrayalReaction' | 'guildBetrayalReaction' | 'nexusIxianReplacement' | 'nexusIxianBetrayalReaction'>>;
|
||||
Partial<Pick<GameView, 'biddingEnd' | 'kullReaction' | 'richeseBetrayalReaction' | 'guildBetrayalReaction' | 'nexusIxianReplacement' | 'nexusIxianBetrayalReaction' | 'nexusHarkonnenBetrayalReaction'>>;
|
||||
|
||||
/** The single current decision owner for the table banner and seat highlight.
|
||||
* Shared response windows have no single acting seat. Only public view fields
|
||||
@@ -33,8 +33,8 @@ export function tableActionOwner(g: TurnView): string | null {
|
||||
const seated = (id: string | null | undefined) =>
|
||||
g.players.some((p) => p.id === id) ? id! : null;
|
||||
// active is the runtime's public sole unfinished acknowledgement seat,
|
||||
// never the private card holder or native advantage provider.
|
||||
if (g.nexusIxianBetrayalReaction) return seated(g.active);
|
||||
// never the private card holder or native declaration provider.
|
||||
if (g.nexusIxianBetrayalReaction || (g.nexusHarkonnenBetrayalReaction && !g.decision)) return seated(g.active);
|
||||
if (g.nexusIxianReplacement) return seated(g.nexusIxianReplacement.buyer);
|
||||
if (g.decision) return seated(g.decision.player);
|
||||
if (g.biddingEnd) {
|
||||
|
||||
Reference in new issue
Block a user