Prototype native Homeworld No-Field return
Verify and publish checkpoint container / container (push) Canceled after 0s

This commit is contained in:
Quintine committed 2026-10-29 04:55:44 +11:00
1 parent 89569e92a1
commit 7e3d745807
17 files changed
+540 -32

No files matched your search

+5 -2
View File
@@ -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;