forked from phenom/healer-man
Update Healer Man server
This commit is contained in:
1 parent
f864b5aea7
commit
fdb6739f8d
10 files changed
+236
-16
No files matched your search
@@ -479,6 +479,52 @@ describe("party combat runtime", () => {
|
||||
});
|
||||
});
|
||||
|
||||
it("taunts a loose add off an ally while the rest of the party stays on the boss", () => {
|
||||
const party = usePartyStore.getState();
|
||||
const tank = party.members.find((member) => member.role === "tank")!;
|
||||
const damage = party.members.find((member) => member.role === "damage")!;
|
||||
for (const member of party.members) registerPartyRuntimePosition(member.id, [0, 0, 0]);
|
||||
|
||||
useCombatStore.getState().registerMob("boss-with-add", {
|
||||
name: "Boss with add",
|
||||
boss: true,
|
||||
maxHealth: 10_000,
|
||||
xpReward: 0,
|
||||
});
|
||||
useCombatStore.getState().registerMob("boss-loose-add", {
|
||||
name: "Loose add",
|
||||
maxHealth: 1_000,
|
||||
xpReward: 0,
|
||||
});
|
||||
setMobPosition("boss-with-add", [2, 0, 0]);
|
||||
setMobPosition("boss-loose-add", [8, 0, 0]);
|
||||
useCombatStore.getState().damageMob("boss-with-add", 1, 100, {
|
||||
actorId: tank.id,
|
||||
role: "tank",
|
||||
});
|
||||
useCombatStore.getState().damageMob("boss-loose-add", 1, 100, {
|
||||
actorId: damage.id,
|
||||
role: "damage",
|
||||
});
|
||||
useCombatStore.getState().selectMob("boss-with-add");
|
||||
for (const member of party.members) {
|
||||
updatePartyRuntimeTargetVisibility(member.id, "boss-with-add", true);
|
||||
updatePartyRuntimeTargetVisibility(member.id, "boss-loose-add", true);
|
||||
}
|
||||
useCombatStore.getState().advanceMobCombat(200);
|
||||
|
||||
advanceDungeonPartyCombat(1_000);
|
||||
|
||||
const runtime = usePartyStore.getState();
|
||||
expect(runtime.memberTargetIds[tank.id]).toBe("boss-loose-add");
|
||||
expect(runtime.memberTargetIds[damage.id]).toBe("boss-with-add");
|
||||
expect(useCombatStore.getState().mobs["boss-loose-add"].forcedTarget).toMatchObject({
|
||||
actorId: tank.id,
|
||||
endsAt: 4_000,
|
||||
});
|
||||
expect(runtime.members.find((member) => member.id === tank.id)?.tauntReadyAt).toBe(9_000);
|
||||
});
|
||||
|
||||
it("shares an eight-second tank taunt cooldown across loose mobs", () => {
|
||||
const party = usePartyStore.getState();
|
||||
const tank = party.members.find((member) => member.role === "tank")!;
|
||||
|
||||
Reference in new issue
Block a user