- Possibilité de configurer des lieux dans une scène : permet de configurer un donjon par exemple avec les pièces, les trésors par pièce, la narration..... Mise en place également de conditions permettant de conditionner le déblocage des quêtes. - Possibilité de transformé un arc en instance non linéaire afin de faire un hub. Permet de jouer de préparer des campagnes type Dragon of Icespire peak plus facilement. - Configuration de partie : chaque partie va contenir les séances, ce qui permettra de suivre le déblocage des conditions pour les quêtes. Passage en 0.9.1-beta
47 lines
1.4 KiB
TypeScript
47 lines
1.4 KiB
TypeScript
import { Component, Input } from '@angular/core';
|
|
import { CommonModule } from '@angular/common';
|
|
import { LucideAngularModule, Lock, Circle, Play, CheckCircle2, LucideIconData } from 'lucide-angular';
|
|
import { QuestStatus } from '../../services/campaign.model';
|
|
|
|
/**
|
|
* Badge visuel pour un QuestStatus (vue Hub).
|
|
* Composant standalone, sans dépendance métier.
|
|
*/
|
|
@Component({
|
|
selector: 'app-quest-status-badge',
|
|
standalone: true,
|
|
imports: [CommonModule, LucideAngularModule],
|
|
templateUrl: './quest-status-badge.component.html',
|
|
styleUrls: ['./quest-status-badge.component.scss']
|
|
})
|
|
export class QuestStatusBadgeComponent {
|
|
@Input() status: QuestStatus | undefined | null = 'AVAILABLE';
|
|
|
|
/** Variante visuelle compacte (sans label) — utile pour les listes denses. */
|
|
@Input() compact = false;
|
|
|
|
get icon(): LucideIconData {
|
|
switch (this.status) {
|
|
case 'LOCKED': return Lock;
|
|
case 'IN_PROGRESS': return Play;
|
|
case 'COMPLETED': return CheckCircle2;
|
|
case 'AVAILABLE':
|
|
default: return Circle;
|
|
}
|
|
}
|
|
|
|
get label(): string {
|
|
switch (this.status) {
|
|
case 'LOCKED': return 'Verrouillée';
|
|
case 'IN_PROGRESS': return 'En cours';
|
|
case 'COMPLETED': return 'Terminée';
|
|
case 'AVAILABLE':
|
|
default: return 'Disponible';
|
|
}
|
|
}
|
|
|
|
get cssClass(): string {
|
|
return `status-badge status-${(this.status ?? 'AVAILABLE').toLowerCase()}`;
|
|
}
|
|
}
|