Update Osztály diagram: elaborate on unit navigation authored by Sárközi Gergely János's avatar Sárközi Gergely János
......@@ -32,6 +32,13 @@ package Logic.Data.World{
+ DestroyTower(Tower): void
}
class WorldNavigation{
+ IsPositionReachable(from: Vector2, to: Vector2): bool
+ TryGetPathDeltas(Vector2, Vector2, collider: float): IEnumerable<Vector2>
}
GameWorld o-- WorldNavigation
Unit --> WorldNavigation
abstract TileObject{
+ World(): GameWorld{get}
}
......@@ -78,6 +85,7 @@ package Logic.Data.World{
+ Owner(): GameTeam{get}
+ NextCheckpoint(): TilePosition
+ Move(float): void
+ SkipUnreachableCheckpoints() : void
+ Position(): Vector2{get}
}
......@@ -470,6 +478,11 @@ class DestroyCastleSystem {
}
DestroyCastleSystem ---> Castle
DestroyCastleSystem ---> GameWorld
class UpdateUnitCheckpointsSystems {
- On(PhaseAdvancedEvent)
}
UpdateUnitCheckpointsSystems ---> Unit
```
# Diszpécser rendszerek (`CommandDispatcher`, `EventDispatcher`)
......@@ -524,10 +537,21 @@ abstract "BaseCommand<BiCommandResult>" extends BaseCommand{
}
```
# `Event`-ek (események)
Mindegyik `...Event`, ami nem interfész, az a `BaseEvent` alosztálya. Ez nincs jelölve a diagrammon a jobb átláthatóság érdekében.
```plantuml
package Logic.Event {
class PhaseAdvancedEvent {
+ Game : GameOverview {get}
+ OldPhase : GamePhase {get}
}
}
```
```plantuml
package Logic.Event.World.Tower {
......
......