@startuml jeu Jeu "1" -- "1" Explorateur Jeu "1" -- "1" Territoire class Jeu { } Territoire "1" -- "1..*" Lieu Territoire "1" -- "0..*" Chemin Territoire "1" -- "1" Depart Territoire "1" -- "1" Fin class Territoire { } Lieu "1" -- "0..*" Chemin Lieu "1" -- "0..*" Chemin Lieu "1" -- "0..*" Connaissance Lieu "0..1" -- "0..*" Objet Lieu "1" -- "0..*" Personne Lieu <|-- Depart Lieu <|-- Fin class Lieu { - exploré : bool - déposable : Condition } Chemin "0..1" -- "0..*" Connaissance : transmettre Chemin "0..1" -- "0..*" Objet : transmettre Chemin "0..1" -- "0..*" Objet : consommer class Chemin { - ouvert : Condition - visible : Condition - obligatoire : Condition } Explorateur "0..1" -- "0..*" Connaissance Explorateur "0..1" -- "0..*" Objet Explorateur "0..1" -- "1" Lieu class Explorateur { } Cachable <|-- Connaissance Cachable <|-- Objet Cachable <|-- Personne class Cachable { - caché : Condition } class Connaissance { - transmissible : Condition } abstract class Objet { - taille : int - consomable : Condition - transmissible : Condition } Personne "1" -- "1.." Interraction class Personne { - obligatoire : Condition } class Depart { } class Fin { } Condition "1" -- "0..*" ConditionOU class Condition { } ConditionOU "1" -- "1..*" ConditionET ConditionET "1" -- "1..*" Test Test <|-- TestConnaissance Test <|-- TestObjet TestConnaissance "0..1" -- "1" Connaissance TestObjet "0..1" -- "1" Objet class TestObjet { - nombre : int - supérieurEgale : bool } Interraction "0..1" -- "0..*" Objet Interraction "0..1" -- "0..*" Connaissance Interraction "1" -- "1" Choix class Interraction { - disponible : Condition } Choix "1" -- "1..*" Action class Choix { } class Action { - proposable : Condition - finInterraction : Condition } @enduml