Prototype native Homeworld No-Field return
Verify and publish checkpoint container / container (push) Canceled after 0s
Verify and publish checkpoint container / container (push) Canceled after 0s
This commit is contained in:
1 parent
89569e92a1
commit
7e3d745807
17 files changed
+540
-32
No files matched your search
+5
-2
@@ -4820,7 +4820,7 @@ function revealPlayerNoField(g: Game, p: Player, cause: NoFieldRevealCause) {
|
||||
p.noFieldEvent = crypto.randomUUID();
|
||||
if (isHomeworldNoFieldLocation(result.location)) {
|
||||
const destination = result.location.homeworld;
|
||||
if (result.forces) {
|
||||
if (result.forces && destination !== 'homeworld:richese') {
|
||||
const transfer = homeworldRule(() => quoteHomeworldCustody(homeworldContext(g), g.homeworlds!.custody!, [
|
||||
{ homeworld: 'homeworld:richese', player: p.id, withdraw: { normal: result.forces, elite: 0 }, deposit: { normal: 0, elite: 0 } },
|
||||
{ homeworld: destination, player: p.id, withdraw: { normal: 0, elite: 0 }, deposit: { normal: result.forces, elite: 0 } },
|
||||
@@ -4839,7 +4839,7 @@ function revealPlayerNoField(g: Game, p: Player, cause: NoFieldRevealCause) {
|
||||
observeOccupation(g);
|
||||
log(
|
||||
g,
|
||||
`${p.name} revealed the ${result.value} No-Field in ${isHomeworldNoFieldLocation(result.location) ? combatLocationName(g, result.location.homeworld) : territory(result.location.territory).name} (${cause === 'alliedSeparation' ? 'allied separation' : cause === 'discoveryBlow' ? 'Discovery spice blow; provisional destructive reveal' : cause}) and placed ${result.forces} physical forces from reserves.${result.forces < result.value ? ' Only the remaining reserves could be placed.' : ''}`,
|
||||
`${p.name} revealed the ${result.value} No-Field in ${isHomeworldNoFieldLocation(result.location) ? combatLocationName(g, result.location.homeworld) : territory(result.location.territory).name} (${cause === 'alliedSeparation' ? 'allied separation' : cause === 'discoveryBlow' ? 'Discovery spice blow; provisional destructive reveal' : cause})${isHomeworldNoFieldLocation(result.location) && result.location.homeworld === 'homeworld:richese' ? `; ${result.forces} represented forces are already in the native reserve pool.` : ` and placed ${result.forces} physical forces from reserves.`}${result.forces < result.value ? ' Only the remaining reserves could be placed.' : ''}`,
|
||||
{ faction: 'richese', name: 'No-Field revealed' },
|
||||
);
|
||||
return result;
|
||||
@@ -10719,6 +10719,9 @@ function killTerritory(
|
||||
* before requesting a pool. Actual reveal remains the native component action. */
|
||||
function prospectiveNoFieldForces(p: Player, territory: string): number {
|
||||
const marker = p.noField?.deployed;
|
||||
// On Richese's own World these physical reserves already constitute its
|
||||
// native army; revealing the marker does not create another copy of them.
|
||||
if (territory === 'homeworld:richese' && marker && noFieldAtCombatLocation(p, territory)) return 0;
|
||||
return marker && noFieldAtCombatLocation(p,territory)
|
||||
? Math.min(p.reserves, p.noField!.tokens.find(token => token.id === marker.tokenId)!.value)
|
||||
: 0;
|
||||
|
||||
Reference in new issue
Block a user