@startuml
interface item.usage.Upgradable {
~ int getLevel()
~ void setLevel(int)
~ int getMaxLevel()
}
abstract class item.base.BaseWeapon {
- int RANGE
+ <<Create>> BaseWeapon(String,int,int)
+ {abstract}int getAtt()
+ int getRange()
+ String toString()
}
class item.armor.Suit {
- int level
- int MAX_LEVEL
- int[] DEF
+ <<Create>> Suit()
+ int getLevel()
+ void setLevel(int)
+ int getMaxLevel()
+ int getDef()
+ String toString()
}
abstract class item.base.BaseArmor {
+ <<Create>> BaseArmor(String,int)
+ {abstract}int getDef()
+ String toString()
}
enum item.usage.CookState {
+  RAW
+  COOKED
+  BURNT
}
interface item.usage.AttBuffable {
~ int getAttBuff()
~ int getBuffTurn()
}
class item.consumption.Pill {
- int RECOVER_PT
+ <<Create>> Pill()
+ String toString()
+ int getRecoverPoint()
}
class item.consumption.GoldenApple {
- CookState cookState
- HashMap<CookState,Integer> RECOVER_PT
+ <<Create>> GoldenApple()
+ CookState getCookState()
+ void setCookState(CookState)
+ int getRecoverPoint()
+ String toString()
}
class item.consumption.Pork {
- CookState cookState
- HashMap<CookState,Integer> RECOVER_PT
+ <<Create>> Pork()
- void initializeRecoveryPT()
+ CookState getCookState()
+ void setCookState(CookState)
+ int getRecoverPoint()
+ String toString()
}
class item.consumption.HealingPotion {
- int level
- int MAX_LEVEL
- int[] RECOVER_PT
+ <<Create>> HealingPotion()
+ void setLevel(int)
+ int getLevel()
+ int getMaxLevel()
+ int getRecoverPoint()
+ String toString()
}
abstract class item.base.BaseEquipment {
- int durability
+ <<Create>> BaseEquipment(String,int)
+ int getDurability()
+ void setDurability(int)
}
class item.weapon.Bow {
- int level
- int MAX_LEVEL
- int[] ATT
+ <<Create>> Bow()
+ int getAtt()
+ int getLevel()
+ void setLevel(int)
+ int getMaxLevel()
+ String toString()
}
class item.armor.Helmet {
- int DEF
+ <<Create>> Helmet()
+ int getDef()
}
class item.weapon.Sword {
- int level
- int MAX_LEVEL
- int[] ATT
+ <<Create>> Sword()
+ int getAtt()
+ void setLevel(int)
+ int getLevel()
+ int getMaxLevel()
+ String toString()
}
class item.consumption.StrengthPotion {
- int level
- int MAX_LEVEL
- int[] ATT_BUFF
- int BUFF_TURN
+ <<Create>> StrengthPotion()
+ int getAttBuff()
+ int getBuffTurn()
+ void setLevel(int)
+ String toString()
+ int getLevel()
+ int getMaxLevel()
}
abstract class item.base.BaseConsumption {
+ <<Create>> BaseConsumption(String)
}
interface item.usage.Healable {
~ int getRecoverPoint()
}
class item.armor.Boots {
- int DEF
+ <<Create>> Boots()
+ int getDef()
}
abstract class item.base.BaseItem {
- String name
+ <<Create>> BaseItem(String)
+ String getName()
+ void setName(String)
}
class item.consumption.UltimatePotion {
- int ATT_BUFF
- int BUFF_TURN
- int RECOVER_PT
+ <<Create>> UltimatePotion()
+ int getAttBuff()
+ int getBuffTurn()
+ int getRecoverPoint()
+ String toString()
}
class item.weapon.Stick {
- int ATT
+ <<Create>> Stick()
+ int getAtt()
}
interface item.usage.Cookable {
~ CookState getCookState()
~ void setCookState(CookState)
}


item.base.BaseEquipment <|-- item.base.BaseWeapon
item.base.BaseArmor <|-- item.armor.Suit
item.base.BaseEquipment <|-- item.base.BaseArmor
item.usage.Healable <|.. item.consumption.Pill
item.base.BaseConsumption <|-- item.consumption.Pill
item.usage.Cookable <|.. item.consumption.GoldenApple
item.usage.Healable <|.. item.consumption.GoldenApple
item.base.BaseConsumption <|-- item.consumption.GoldenApple
item.usage.Cookable <|.. item.consumption.Pork
item.usage.Healable <|.. item.consumption.Pork
item.base.BaseConsumption <|-- item.consumption.Pork
item.usage.Healable <|.. item.consumption.HealingPotion
item.usage.Upgradable <|.. item.consumption.HealingPotion
item.base.BaseConsumption <|-- item.consumption.HealingPotion
item.base.BaseItem <|-- item.base.BaseEquipment
item.usage.Upgradable <|.. item.weapon.Bow
item.base.BaseWeapon <|-- item.weapon.Bow
item.base.BaseArmor <|-- item.armor.Helmet
item.usage.Upgradable <|.. item.weapon.Sword
item.base.BaseWeapon <|-- item.weapon.Sword
item.usage.AttBuffable <|.. item.consumption.StrengthPotion
item.usage.Upgradable <|.. item.consumption.StrengthPotion
item.base.BaseConsumption <|-- item.consumption.StrengthPotion
item.base.BaseItem <|-- item.base.BaseConsumption
item.base.BaseArmor <|-- item.armor.Boots
item.usage.AttBuffable <|.. item.consumption.UltimatePotion
item.usage.Healable <|.. item.consumption.UltimatePotion
item.base.BaseConsumption <|-- item.consumption.UltimatePotion
item.base.BaseWeapon <|-- item.weapon.Stick
@enduml