Update Osztály diagram authored by Bahil Botond's avatar Bahil Botond
...@@ -3,6 +3,7 @@ Az alábbi diagrammok értelmezéséhez az [Architecture](Architecture) dokument ...@@ -3,6 +3,7 @@ Az alábbi diagrammok értelmezéséhez az [Architecture](Architecture) dokument
# `Logic.Data` komponens (modell) # `Logic.Data` komponens (modell)
```plantuml ```plantuml
package Logic.Data{ package Logic.Data{
package Logic.Data.World{ package Logic.Data.World{
...@@ -18,26 +19,40 @@ package Logic.Data.World{ ...@@ -18,26 +19,40 @@ package Logic.Data.World{
class TilePosition{ class TilePosition{
+ X(): int{get} + X(): int{get}
+ Y(): int{get} + Y(): int{get}
+ ToVectorLower(): Vector2
+ ToVectorCentere(): Vector2
+ Distance2(): int
+ Distance(): double
+ Totring(): string {override}
} }
class GameWorld{ class GameWorld{
- _grid: TileObject[,] - _grid: TileObject[,]
- _units: IList<Unit>
+ TileObjects(): IReadOnlyCollection<TileObject>{get} + TileObjects(): IReadOnlyCollection<TileObject>{get}
+ Units(): IReadOnlyCollection<Unit>{get} + Units(): IReadOnlyCollection<Unit>{get}
+ Width(): int{get} + Width(): int{get}
+ Height(): int{get} + Height(): int{get}
+ Grid(int, int): TileObject{get} + Grid(int, int): TileObject{get}
+ TileObjects():IEnumerable<TileObject>{get}
+ Navigation(): WorldNavigation{get}
+ Units(): IReadOnlyCollection<Unit>{get}
+ GetTileObjectOfType<T>: IEnumerable<T>
+ BuildTower(GameTeam, ITowerTypeData, TilePosition): void + BuildTower(GameTeam, ITowerTypeData, TilePosition): void
+ DestroyTower(Tower): void + DestroyTower(Tower): void
+ DeployUnit(Barrack,IUnitType): void
+ DestroyUnit(Unit): void
} }
class WorldNavigation{ class WorldNavigation{
- _grid: TileObject[,]
+ IsPositionReachable(from: Vector2, to: Vector2): bool + IsPositionReachable(from: Vector2, to: Vector2): bool
+ TryGetPathDeltas(Vector2, Vector2, collider: float): IEnumerable<Vector2> + TryGetPathDeltas(Vector2, Vector2, collider: float): IEnumerable<Vector2>
} }
GameWorld o-- WorldNavigation GameWorld o-- WorldNavigation
Unit --> WorldNavigation Unit --> WorldNavigation
WorldNavigation o-- TileObject
abstract TileObject{ abstract TileObject{
+ World(): GameWorld{get} + World(): GameWorld{get}
...@@ -83,15 +98,23 @@ package Logic.Data.World{ ...@@ -83,15 +98,23 @@ package Logic.Data.World{
Class Unit{ Class Unit{
- _checkpoints: IList<TilePosition> - _checkpoints: IList<TilePosition>
+ Owner(): GameTeam{get} + Owner(): GameTeam{get}
+ World(): GameWorld{get}
+ TilePosition(): TilePosition{get}
+ NextCheckpoint(): TilePosition{get} + NextCheckpoint(): TilePosition{get}
+ Type(): IUnityTypeData{get}
+ Move(float): void + Move(float): void
+ SkipUnreachableCheckpoints() : void + SkipUnreachableCheckpoints() : void
+ Position(): Vector2{get} + Position(): Vector2{get}
+ UpdatePlannedPath(): void
} }
Class Vector2{ Class Vector2{
+ X(): float{get} + X(): float{get}
+ Y(): float{get} + Y(): float{get}
+ ToTilePosition(): TilePosition
+ Multiplied(float): Vector2
+ Added(Vector2): Vector2
+ ToString(): string
} }
Unit o-- TilePosition Unit o-- TilePosition
...@@ -110,6 +133,7 @@ package Logic.Data.World{ ...@@ -110,6 +133,7 @@ package Logic.Data.World{
Unit "1" o-- IUnitTypeData Unit "1" o-- IUnitTypeData
GameWorld o-- TileObject GameWorld o-- TileObject
GameWorld o-- Unit
TileObject "1" o-- TilePosition TileObject "1" o-- TilePosition
Tower "1" o-- ITowerTypeData Tower "1" o-- ITowerTypeData
} }
...@@ -118,7 +142,9 @@ package Logic.Data.World{ ...@@ -118,7 +142,9 @@ package Logic.Data.World{
class GameTeam{ class GameTeam{
+ TeamColor(): Color{get} + TeamColor(): Color{get}
+ Barracks(): IReadOnlyCollection<Barrack> + Barracks(): IReadOnlyCollection<Barrack>{get}
+ Towers(): IEnumerable<Tower>
+ Units(): IEnumerable<Unit>
+ Castle(): Castle{get} + Castle(): Castle{get}
+ Money(): int{get} + Money(): int{get}
+ AliveUnitCount(): int{get} + AliveUnitCount(): int{get}
...@@ -126,6 +152,11 @@ class GameTeam{ ...@@ -126,6 +152,11 @@ class GameTeam{
+ MoneySpent(): int{get} + MoneySpent(): int{get}
+ PurchasedUnitCount(): int{get} + PurchasedUnitCount(): int{get}
+ BuiltTowerCount(): int{get} + BuiltTowerCount(): int{get}
+ Spendmoney(int): void
+ GiveMoney(int): void
+ IncrementPurchasedUnitCount(): void
+ IncrementBuiltTowerCount(): void
} }
...@@ -155,6 +186,8 @@ GamePhase <-- GameOverview ...@@ -155,6 +186,8 @@ GamePhase <-- GameOverview
Color <-- GameOverview Color <-- GameOverview
} }
``` ```
# `Presentation.World` komponens (játéktér megjelenés) # `Presentation.World` komponens (játéktér megjelenés)
... ...
......