Changes
Page history
Update Osztály diagram
authored
Mar 21, 2022
by
Bahil Botond
Show whitespace changes
Inline
Side-by-side
Osztály-diagram.md
View page @
493d88c3
...
@@ -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)
...
...
...
...