https://github.com/0marrkvi0/database_design_rpg_dbs
Database modeling by creating an E-R diagram and a logical model for RPG game. The goal is to understand how to design tables, relationships, and attributes for future database development. (subject_DBS)
https://github.com/0marrkvi0/database_design_rpg_dbs
database-design database-modeling e-r-diagram logical-model
Last synced: 20 days ago
JSON representation
Database modeling by creating an E-R diagram and a logical model for RPG game. The goal is to understand how to design tables, relationships, and attributes for future database development. (subject_DBS)
- Host: GitHub
- URL: https://github.com/0marrkvi0/database_design_rpg_dbs
- Owner: 0MarrkvI0
- Created: 2025-06-19T17:11:25.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-06-19T17:20:21.000Z (12 months ago)
- Last Synced: 2026-03-05T09:06:20.455Z (3 months ago)
- Topics: database-design, database-modeling, e-r-diagram, logical-model
- Homepage:
- Size: 607 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Turn-Based RPG Combat System – FIIT STU LS 2024/25
**Autor:** Martin Kvietok
**Predmet:** Database Systems
**Fakulta:** Fakulta informatiky a informačných technológií, STU Bratislava
## Popis projektu
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.
## Obsah systému
Projekt je rozdelený do logických balíkov podľa funkcionality:
### Character Package
- 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`.
### Spell Package
- 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.
### Inventory Package
- Predmety majú: `Name`, `Weight`, `Type`, `ItemModifier`.
- Stavy:
- `InventoryItem` (v inventári)
- `BattlegroundItem` (na bojisku)
- `isEquipped` určuje, či je predmet aktívne použitý.
### Combat Package
- 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).
## Scenáre
1. **Zoslanie kúzla (útok, heal)**
- Výpočet nákladov a poškodenia podľa atribútov, hod kockou, úspech/nehod.
2. **Regenerácia a respawn postavy**
- Postava sa lieči v režime `Resting`. Po smrti sa resetujú hodnoty a začne znova.
3. **Pripojenie postavy do boja**
- Dynamické zapojenie do súboja, triedenie podľa `JoinTime`.
4. **Záznam útoku a efektov**
- Logovanie kúzla, cieľa, úspechu, výpočty `APCost` a `Damage`.
5. **Presun predmetov po smrti**
- Predmety sa automaticky presunú na bojisko (`BattlegroundItem`).
6. **Získanie predmetu z bojiska**
- Overenie nosnosti, priradenie predmetu, záznam v `CombatLog`.