@startuml game ' Classes class Jeu { - objets : List } class Explorateur { - taille : int - inventaire : List } class Territoire class Lieu { - nom : String - déposable : Condition - départ : Condition - fin : Condition - objets : List } class Chemin { - ouvert : Condition - visible : Condition - obligatoire : Condition - objetsRecus : List - objetsConso : List } class Objet { - nom : String - taille : int - visible : Condition } class Transformation { - condition : Condition - objetsIn : List - objetsOut : List } class Connaissance { - nom : String - visible : Condition } class Personne { - nom : String - visible : Condition - obligatoire : Condition } class Interaction { - visible : Condition - objetsRecus : List - objetsConso : List } class Action { - visible : Condition - fin_interaction : Condition - objetsRecus : List - objetsConso : List } class Description { - text : String - condition : Condition } ' Links Jeu -- "1" Explorateur Jeu -- "1" Territoire Jeu -- "0..*" Conaissance Jeu -- "0..*" Personne Jeu -- "0..*" Transformation Explorateur -- "0..*" Connaissance Territoire -- "0..*" Lieu Territoire -- "0..*" Chemin Lieu -- "0..*" Personne Lieu -- "1..*" Description Lieu -- "0..*" Connaissance Chemin -- "0..*" Connaissance Chemin -- "1..*" Description Objet -- "1..*" Description Connaissance -- "1..*" Description Personne -- "0..*" Interaction Interaction -- "0..*" Connaissance Interaction -- "1..*" Action Action -- "1..*" Description Action -- "0..*" Connaissance @enduml @startuml Condition 'Classes class Condition class ConditionEt interface ConditionTest class ConditionConnaissance class ConditionBool class ConditionObjet { - operateur : String - nombre : int } 'Links Condition -- "1..*" ConditionEt ConditionEt -- "1..*" ConditionTest ConditionConnaissance -.-|> ConditionTest ConditionObjet -.-|> ConditionTest ConditionBool -.-|> ConditionTest @enduml