Connect Sandmaster collection to physical Ambassador relocation
This commit is contained in:
1 parent
7cef1a3412
commit
039fe4e87f
13 files changed
+175
-46
No files matched your search
@@ -14167,6 +14167,7 @@ function validateMovementOrder(g: Game, p: Player, move: MovementOrder) {
|
||||
territory: move.to,
|
||||
sector: move.sector,
|
||||
fighters: move.wantsFighters,
|
||||
...(move.ambassadorSandmaster ? { sandmasterCollect: true } : {}),
|
||||
...(move.noField
|
||||
? {
|
||||
noField: {
|
||||
@@ -15758,6 +15759,14 @@ function ambassadorRelocationMovement(g: Game, player: string) {
|
||||
function commitAmbassadorRelocation(g: Game, move: FremenAmbassadorMove) {
|
||||
const { entry, beneficiary: p } = currentFremenAmbassador(g);
|
||||
validateAmbassadorRelocationArrival(g, move);
|
||||
if (move.ambassadorSandmaster) {
|
||||
const { key } = move.ambassadorSandmaster;
|
||||
g.spice[key]--;
|
||||
if (!g.spice[key]) delete g.spice[key];
|
||||
p.spice++;
|
||||
log(g, `${p.name}'s Sandmaster collected 1 spice at ${territory(move.to).name} during Fremen Ambassador relocation, before arrival reactions.`,
|
||||
{ faction: p.faction, name: 'Sandmaster collection' });
|
||||
}
|
||||
if (move.noField) {
|
||||
requireRule(
|
||||
p.noField && p.noFieldEvent === move.noField.event,
|
||||
@@ -27407,6 +27416,7 @@ type CompletedMovement = Pick<
|
||||
> & { noField: boolean };
|
||||
type MovementOrder = {
|
||||
sandmaster?: SandmasterMovement;
|
||||
ambassadorSandmaster?: FremenAmbassadorMove['ambassadorSandmaster'];
|
||||
source?: 'ambassador';
|
||||
ambassadorEvent?: string;
|
||||
player: string;
|
||||
|
||||
Reference in new issue
Block a user