diff --git a/Documentation/UML/class-diagram.puml b/Documentation/UML/class-diagram.puml index e6aa42e..0a5fe06 100644 --- a/Documentation/UML/class-diagram.puml +++ b/Documentation/UML/class-diagram.puml @@ -5,46 +5,89 @@ skinparam classAttributeIconSize 0 skinparam classFontStyle Bold hide enum methods -class Position { - {field} + column: Integer - {field} + row: Integer +class Player { + {field} + JUMP_FORCE: Double {readOnly} + {field} + SPEED: Double {readOnly} + {field} + SPEED: Double {readOnly} - {method} + Position(column: Integer, row: Integer) - {method} + equals(position: Position) + {method} + jump() + {method} + isJumping(): boolean + {method} + OnCollisionEnter2D(collision : Collision2D) + {method} + OnCollisionExit2D(collision : Collision2D) } -class Level { - {field} + songPath: String - {field} + backgroundPath: String - {field} + speed: Double - - {method} + Level() -} -Level *--> "*\n- grid" GameObject : <> - -abstract class GameObject { +abstract class LevelElement { + {field} + x: Integer + {field} + y: Integer {method} + getImagePath(): String {abstract} - {method} + safeSides(): List {abstract} } -GameObject o--> "1\n- " Position : <> -GameObject ..> PositionSide : <> -class Spike extends GameObject {} +class Obstacle extends LevelElement { + +} + +class Platform extends Obstacle { + +} + +class Spike extends Obstacle { + +} + +class Portal extends LevelElement { + +} + +class Bumper extends LevelElement { + +} + +class LevelEnd extends LevelElement { + +} + +abstract class Level { + {field} + jsonPath: String + {field} + name: String + {field} + musicPath: String + {field} + progression: Integer + + {field} + totalJumps: Integer + {field} + totalAttempts: Integer + {field} + killedCount: Integer + + {method} + placeElements() + {method} + placeElement(levelElement: LevelElement) {static} +} + +class LevelStats extends Stats { + +} + +class LevelFactory { + {method} + createLevel(jsonPath): Level +} class Game { - {field} - score: Integer - - {method} + start(): void - {method} + restart(): void - {method} + end(): void } -Game o--> "1\n- currentLevel" Level : <> -enum PositionSide <> { - TOP - RIGHT - BOTTOM - LEFT -} +Level *--> "- *\nLevelElements" LevelElement : <> +Game *--> "- *\nlevels" Level : <> +Game *--> "- 1\nlevels" LevelFactory : <> + +' { + ' "name": "Back on Track", + ' "music" + ' "elements": [ + ' { + ' "type": "Spike", + ' "position": { + ' "x": 0, + ' "y": 0 + ' }, + ' } + ' ] +' } + @enduml