From d77666c4cf8d655b1716c0fd76f9d0e86fd182ff Mon Sep 17 00:00:00 2001 From: Tetardtek Date: Tue, 24 Mar 2026 19:05:27 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20zone=20field=20sur=20Quest=20=E2=80=94?= =?UTF-8?q?=20filtre=20zone=20direct,=20plus=20besoin=20de=20passer=20par?= =?UTF-8?q?=20l'arc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/quest/quest.entity.ts | 4 ++++ src/quest/quest.service.ts | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/quest/quest.entity.ts b/src/quest/quest.entity.ts index 81a65ec..d9a132d 100644 --- a/src/quest/quest.entity.ts +++ b/src/quest/quest.entity.ts @@ -51,6 +51,10 @@ export class Quest { @Column({ name: 'arc_order', default: 0 }) arcOrder: number; // order within the arc + // Zone filter — kills from this zone only count for this quest + @Column({ name: 'zone', type: 'varchar', length: 50, nullable: true }) + zone: string | null; + // Availability @Column({ name: 'min_level', default: 1 }) minLevel: number; diff --git a/src/quest/quest.service.ts b/src/quest/quest.service.ts index 18bc7c1..232c9e2 100644 --- a/src/quest/quest.service.ts +++ b/src/quest/quest.service.ts @@ -263,7 +263,7 @@ export class QuestService { // Find active quests matching this event const activeQuests = await this.playerQuestRepo.find({ where: { characterId, status: 'active' }, - relations: ['quest', 'quest.arc'], + relations: ['quest'], }); for (const pq of activeQuests) { @@ -273,8 +273,8 @@ export class QuestService { // For targeted objectives, check target matches if (q.objectiveTargetId && q.objectiveTargetId !== targetId) continue; - // Zone check: if quest belongs to an arc with a zone, only count kills from that zone - if (q.arc?.zone && zone && q.arc.zone !== zone) continue; + // Zone check: if quest has a zone, only count actions from that zone + if (q.zone && zone && q.zone !== zone) continue; pq.progress = Math.min(pq.progress + increment, q.objectiveCount);