@startuml
'https://plantuml.com/class-diagram
!pragma layout smetana


Class Main{
+static void main(String[] args)
}


Class RoleMaster{}

Class Rules{}
Class Dice{}

package views{
Class StartMenuView{}
Class CharacterSheetView{}
Class CharacterInfoView{}
Class SkillListView{}
Class SpellListView{}
Class InventoryView{}
Class TalentsView{}
Class MovementView{}
Class PrimaryStatsView{}
Class WeaponAttackSetupView{}
Class DefenseView{}
Class MagicItemsView{}
}
CharacterSheetView *-- CharacterInfoView
CharacterSheetView *-- PrimaryStatsView
CharacterSheetView *-- MovementView
CharacterSheetView *-- WeaponAttackSetupView
CharacterSheetView *-- DefenseView
InventoryView o-- MagicItemsView

package models{
Class CharacterSheet{
- int level;
- int xp
- String name
- String background;
# Culture culture;
# Models. race;
# Profession profession;
# PrimaryStats stats;
# Defense defense;
# ManeuversMovementAndEncumbrance MME;
# Inventory inventory;
# Map SkillList <String, Skill>;
# Map SpellList <String, Spell>;
# Set <Talent> Talents;
}

Class Skill{}
Class SkillCategory{}
Class Spell{}
Class SpellCategory{}
Class Inventory{}
Class Talent{}
Class MME{}
Class PrimaryStats{}
Class Defense{}
Class MagicItems{}
Class Race{}
Class Culture{}
Class Profession{}
Class Stat{
- String name
- int potentional
- int temp
# int bonus()
# int racial()
# int special()
# int getTotal()
# int getPotentional()
# getTemp()
}
}

CharacterSheet *-- PrimaryStats
CharacterSheet *-- MME
CharacterSheet *-- Defense
Inventory o-- MagicItems
CharacterSheet *-- Talent
CharacterSheet *-- SkillCategory
SkillCategory *-- Skill
CharacterSheet *-- SpellCategory
SpellCategory *-- Spell
CharacterSheet *-- Inventory
CharacterSheet *-- Race
CharacterSheet *-- Culture
CharacterSheet *-- Profession
PrimaryStats *-- Stat


package util {
    Class FileIO{}
    Class TextUI{}
    Class dataLoader{}

Main *--- RoleMaster
RoleMaster *-- CharacterSheet
RoleMaster *-- views
RoleMaster *-- Dice
RoleMaster *-- util
RoleMaster *-- Rules
@enduml

implements ..|>
extends <|-- (is-a)
composition *-- (must-have)
Aggregation o-- (can-have)
Associering <--