Dominio: Battaglie
Una Battaglia è un evento cooperativo in cui i membri di una gilda affrontano insieme un Boss. È un'attività a turni dove i giocatori si alternano per attaccare il boss e cercare di sconfiggerlo prima che tutti i membri cadano in battaglia.
Il Boss Nemico
Il boss è il nemico che la gilda deve sconfiggere.
Ogni Boss ha le seguenti caratteristiche: - Nome: identificativo del boss (es. "Minotaur") - Statistiche di combattimento: - Salute (Health): punti vita totali del boss (es. 100 HP) - Forza (Strength): capacità offensiva (es. 150) - Difesa (Defense): capacità difensiva (es. 50)
Ogni Boss comporta Ricompense e Penalità: - Ricompensa in Denaro: monete che la gilda ottiene sconfiggendo il boss (es. 100 monete) - Ricompensa in Esperienza: punti esperienza assegnati singolarmente (es. 200 XP) - Penalità: danno/perdita subita se la gilda perde (es. -50 monete)
Ogni gilda può avere una sola battaglia attiva alla volta. Solo il leader può decidere di avviare una battaglia scegliendo un boss contro cui combattere. I boss sono predefiniti staticamente nel sistema, ma supporta facilmente l'aggiunta di nuovi tipi di boss.
Meccaniche di Battaglia
Sistema a Turni
La battaglia funziona con un sistema a turni rotativi:
- Quando la battaglia inizia, si definisce il numero di turni basato sui membri partecipanti
- Esiste sempre un turno corrente che identifica quale membro può agire
- Dopo ogni azione, il turno passa al membro successivo (rotazione circolare)
- Se un membro è caduto, viene automaticamente saltato nella rotazione
Stati della Battaglia
Una battaglia può trovarsi in tre stati:
-
In Corso (Ongoing)
- La battaglia è attiva
- I membri possono compiere azioni
- Né il boss né tutti i membri sono stati sconfitti
-
Vinta (Won)
- Il boss è stato ridotto a 0 HP
- La gilda riceve le ricompense in esperienza e denaro
- La battaglia termina
-
Persa (Lost)
- Tutti i membri della gilda sono caduti
- La gilda subisce la penalità del boss
- La battaglia termina
Meccanica del Danno
Danno al Boss: - Durante il suo turno, un membro può infliggere danno al boss - Il danno riduce la salute rimanente del boss - Quando la salute arriva a 0, la battaglia è vinta
Contrattacco del Boss: - Il boss contrattacca in automatico chi lo attacca - Il danno del contrattacco può far cadere il membro della gilda - I membri caduti non possono più partecipare alla battaglia
Membri Caduti
Quando un membro cade: - Viene aggiunto alla lista dei membri caduti - Non può più compiere azioni - Viene saltato nella rotazione dei turni - Se tutti i membri cadono, la battaglia è persa
Partecipazione Dinamica
La battaglia supporta l'ingresso e l'uscita dinamica di membri:
Aumento dei Partecipanti: - Un nuovo membro può unirsi a una battaglia in corso - Il numero di turni aumenta - Il nuovo membro viene aggiunto alla rotazione
Riduzione dei Partecipanti: - Un membro può lasciare la battaglia - Il numero di turni diminuisce - Il membro viene rimosso dalla rotazione e dalla lista dei caduti
Evento di Battaglia
I possibili eventi legati alla battaglia sono:
- BattleStarted: la battaglia è iniziata
- AttackPerformed: un membro ha attaccato
- SpellCasted: è stata lanciata una magia
- BattleWon: la battaglia è stata vinta
- BattleLost: la battaglia è stata persa
Invarianti delle Battaglie
- Una Battaglia per Gilda: ogni gilda può avere al massimo una battaglia attiva
- Salute Non Negativa: la salute del boss non può scendere sotto zero (si ferma a 0)
- Turno Valido: il turno corrente deve sempre puntare a un membro esistente e non caduto
- Minimo Turni: deve esserci almeno 1 turno (almeno un partecipante)
- Condizione di Vittoria: battaglia vinta se e solo se salute boss = 0
- Condizione di Sconfitta: battaglia persa se e solo se tutti i membri sono caduti
- Immutabilità Boss: le caratteristiche del boss (tranne la salute rimanente) non cambiano durante la battaglia
Transizioni di Stato Valide
Per le Battaglie: - Creata → In Corso (automatico) - In Corso → Vinta (boss sconfitto) - In Corso → Persa (tutti caduti) - Vinta/Persa → Cancellata