diff --git a/package-lock.json b/package-lock.json index 87b72feb..fb5279e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "healer-man", - "version": "0.1.30", + "version": "0.1.31", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "healer-man", - "version": "0.1.30", + "version": "0.1.31", "dependencies": { "@capacitor/android": "8.4.1", "@capacitor/core": "8.4.1", diff --git a/package.json b/package.json index 1691c951..5bd367e2 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "healer-man", "private": true, - "version": "0.1.30", + "version": "0.1.31", "type": "module", "scripts": { "dev": "vite --host 0.0.0.0", diff --git a/release-version.json b/release-version.json index 5ea1fa23..37850ae0 100644 --- a/release-version.json +++ b/release-version.json @@ -1,4 +1,4 @@ { - "versionName": "0.1.30", - "versionCode": 1030 + "versionName": "0.1.31", + "versionCode": 1031 } diff --git a/src/game/partyMovement.test.ts b/src/game/partyMovement.test.ts index 79e30ba3..4c3a56a7 100644 --- a/src/game/partyMovement.test.ts +++ b/src/game/partyMovement.test.ts @@ -15,6 +15,7 @@ import { partySeparationGoal, partyShouldRecallForStuck, partyShouldMoveToComfortTarget, + PARTY_STUCK_RECALL_DISTANCE, personalizedPartyCombatRangeBand, resetPartyBreadcrumbTrail, stepPartyPosition, @@ -132,10 +133,11 @@ describe("party world movement", () => { expect(partyMadeStuckProgress([0, 0, 0], [0.45, 4, 0])).toBe(true); expect(partyMadeStuckProgress([0, 0, 0], [0.44, 0, 0])).toBe(false); - expect(partyShouldRecallForStuck([12, 0, 0], [0, 0, 0], true, 4_500, 1_000)).toBe(true); - expect(partyShouldRecallForStuck([11.9, 0, 0], [0, 0, 0], true, 4_500, 1_000)).toBe(false); - expect(partyShouldRecallForStuck([12, 0, 0], [0, 0, 0], false, 4_500, 1_000)).toBe(false); - expect(partyShouldRecallForStuck([12, 0, 0], [0, 0, 0], true, 4_499, 1_000)).toBe(false); + expect(PARTY_STUCK_RECALL_DISTANCE).toBe(80); + expect(partyShouldRecallForStuck([80, 0, 0], [0, 0, 0], true, 4_500, 1_000)).toBe(true); + expect(partyShouldRecallForStuck([79.9, 0, 0], [0, 0, 0], true, 4_500, 1_000)).toBe(false); + expect(partyShouldRecallForStuck([80, 0, 0], [0, 0, 0], false, 4_500, 1_000)).toBe(false); + expect(partyShouldRecallForStuck([80, 0, 0], [0, 0, 0], true, 4_499, 1_000)).toBe(false); }); it("makes melee approach a fleeing target and hold once in range", () => { diff --git a/src/game/partyMovement.ts b/src/game/partyMovement.ts index 9812af9a..afc88f3d 100644 --- a/src/game/partyMovement.ts +++ b/src/game/partyMovement.ts @@ -86,7 +86,9 @@ export function partyMovementProfile(memberId: string, livingRank: number): Part }; } -export const PARTY_STUCK_RECALL_DISTANCE = 12; +// Allow companions to operate across a full boss arena before the stuck +// watchdog treats their separation from the player as a reason to recall. +export const PARTY_STUCK_RECALL_DISTANCE = 80; export const PARTY_STUCK_RECALL_DELAY_MS = 3_500; export const PARTY_STUCK_PROGRESS_DISTANCE = 0.45;