Files
TetaRdPG/src/quest/quest-arc.entity.ts
Tetardtek 7651f3d8aa
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 33s
feat(sprint5): quest system + arcs + rebalance endurance/damage/xp
Quest system:
  4 entities (quest_arcs, quests, player_quests, player_quest_arcs)
  Arc "Les Marais du Têtard" (4 quêtes narratives)
  3 quêtes standalone répétables (chasse/forge/craft)
  5 achievements liés (quests_completed + quest_arc_completed)
  Event-driven: combat/forge/craft/loot émettent quest.progress
  API: available, active, completed, accept, claim, arcs

Rebalance:
  Endurance coût combat 10→5, regen 6min→3min (20/h), repos 20→10
  Dégâts joueur +3 base (plus de combats de 13 tours au level 1)
  Défaite endurance penalty 50→25
  XP monstres réduite (25→8 Têtard, 130→50 Golem) — quêtes = source principale
2026-03-24 16:34:37 +01:00

32 lines
613 B
TypeScript

import {
Entity,
PrimaryGeneratedColumn,
Column,
OneToMany,
} from 'typeorm';
import { Quest } from './quest.entity';
@Entity('quest_arcs')
export class QuestArc {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column({ length: 100 })
name: string;
@Column('text')
description: string;
@Column({ length: 50, nullable: true, type: 'varchar' })
zone: string | null; // 'marais', 'foret', etc.
@Column({ name: 'sort_order', default: 0 })
sortOrder: number;
@Column({ name: 'min_level', default: 1 })
minLevel: number;
@OneToMany(() => Quest, (q) => q.arc)
quests: Quest[];
}