Autor: Martin Kvietok
Predmet: Database Systems
Fakulta: Fakulta informatiky a informačných technológií, STU Bratislava
Cieľom zadania bolo navrhnúť dátový model pre komplexný ťahový RPG súbojový systém. Model reflektuje herné mechaniky ako tvorba postavy, súboje, kúzla, inventár a logovanie akcií. Projekt simuluje správanie online RPG hier s dôrazom na modularitu, rozšíriteľnosť a konzistentnosť dát.
Projekt je rozdelený do logických balíkov podľa funkcionality:
- Definuje hráča a jeho atribúty: sila, obratnosť, odolnosť, inteligencia, zdravie.
- Triedy (
Class
) ovplyvňujú výpočet:- Max AP = (DEX + INT) × ClassModifier
- Max Health = Health
- Armor = 10 + (DEX/2) + bonus
- Inventory Size = (STR + CON) × Modifier
- Status postavy:
InCombat
,Resting
,Idle
. - Dynamické hodnoty:
CurrentHealth
,CurrentAP
,CurrentWeight
.
- Kúzla majú vlastnosti:
BaseCost
,BaseDamage
,Accuracy
. - Priradenie do kategórií (napr. oheň, ľad) s vlastnými modifikátormi.
- Používa
SpellAttributeEffect
pre ovplyvnenie výsledných hodnôt na základe hráčových atribútov.
- Predmety majú:
Name
,Weight
,Type
,ItemModifier
. - Stavy:
InventoryItem
(v inventári)BattlegroundItem
(na bojisku)
isEquipped
určuje, či je predmet aktívne použitý.
- Boje prebiehajú v kolách (
Round
), každé má začiatok a koniec. - Účasť postavy:
CombatParticipant
(čas vstupu, stav). - Logovanie udalostí:
CombatLog
(útoky, kúzla, získanie predmetu).
-
Zoslanie kúzla (útok, heal)
- Výpočet nákladov a poškodenia podľa atribútov, hod kockou, úspech/nehod.
-
Regenerácia a respawn postavy
- Postava sa lieči v režime
Resting
. Po smrti sa resetujú hodnoty a začne znova.
- Postava sa lieči v režime
-
Pripojenie postavy do boja
- Dynamické zapojenie do súboja, triedenie podľa
JoinTime
.
- Dynamické zapojenie do súboja, triedenie podľa
-
Záznam útoku a efektov
- Logovanie kúzla, cieľa, úspechu, výpočty
APCost
aDamage
.
- Logovanie kúzla, cieľa, úspechu, výpočty
-
Presun predmetov po smrti
- Predmety sa automaticky presunú na bojisko (
BattlegroundItem
).
- Predmety sa automaticky presunú na bojisko (
-
Získanie predmetu z bojiska
- Overenie nosnosti, priradenie predmetu, záznam v
CombatLog
.
- Overenie nosnosti, priradenie predmetu, záznam v