Update Osztály diagram: fix/update Logic.Data.World authored by Sárközi Gergely János's avatar Sárközi Gergely János
...@@ -15,6 +15,7 @@ package Logic.Data.World{ ...@@ -15,6 +15,7 @@ package Logic.Data.World{
+ BuildingCost(): int{get} + BuildingCost(): int{get}
+ DestroyRefund(): int{get} + DestroyRefund(): int{get}
+ UpgradeCost(): int{get} + UpgradeCost(): int{get}
+ AfterUpgradeType(): ITowerTypeData{get}
} }
class TilePosition{ class TilePosition{
...@@ -23,8 +24,8 @@ package Logic.Data.World{ ...@@ -23,8 +24,8 @@ package Logic.Data.World{
+ ToVectorLower(): Vector2 + ToVectorLower(): Vector2
+ ToVectorCentered(): Vector2 + ToVectorCentered(): Vector2
+ FirstNormDistance(TilePosition): int + FirstNormDistance(TilePosition): int
+ Distance2(): int + Distance2(TilePosition): int
+ Distance(): float + Distance(TilePosition): float
+ Added(TilePosition): TilePosition + Added(TilePosition): TilePosition
+ Added(int, int): TilePosition + Added(int, int): TilePosition
+ Subtracted(TilePosition): TilePosition + Subtracted(TilePosition): TilePosition
...@@ -36,18 +37,18 @@ package Logic.Data.World{ ...@@ -36,18 +37,18 @@ package Logic.Data.World{
class GameWorld{ class GameWorld{
- _grid: TileObject[,] - _grid: TileObject[,]
- _units: IList<Unit> - _units: IList<Unit>
+ TileObjects(): IReadOnlyCollection<TileObject>{get} + Overview(): IGameOverview{get}
+ Units(): IReadOnlyCollection<Unit>{get}
+ Width(): int{get} + Width(): int{get}
+ Height(): int{get} + Height(): int{get}
+ Grid(int, int): TileObject{get}
+ TileObjects(): IEnumerable<TileObject>{get} + TileObjects(): IEnumerable<TileObject>{get}
+ Navigation(): WorldNavigation{get} + Navigation(): WorldNavigation{get}
+ Units(): IReadOnlyCollection<Unit>{get} + Units(): IReadOnlyCollection<Unit>{get}
+ Config(): IGameWorldConfig{get}
+ GetTile(int, int): TileObject{get}
+ GetTileObjectOfType<T>: IEnumerable<T> + GetTileObjectOfType<T>: IEnumerable<T>
+ BuildTower(GameTeam, ITowerTypeData, TilePosition): void + BuildTower(GameTeam, ITowerTypeData, TilePosition): void
+ DestroyTower(Tower): void + DestroyTower(Tower): void
+ DeployUnit(Barrack,IUnitType): void + DeployUnit(Barrack, IUnitTypeData): void
+ DestroyUnit(Unit): void + DestroyUnit(Unit): void
} }
...@@ -57,6 +58,8 @@ interface IGameWorldConfig { ...@@ -57,6 +58,8 @@ interface IGameWorldConfig {
+ BarrackSpawnCooldownTime(): float {get} + BarrackSpawnCooldownTime(): float {get}
+ CastleStartingHealth(): float {get} + CastleStartingHealth(): float {get}
+ MaxBuildingDistance(): int {get} + MaxBuildingDistance(): int {get}
+ GenerateObstacles(): bool {get}
+ BarrackSpawnTimeOffset(): float {get}
} }
GameWorld o-- IGameWorldConfig GameWorld o-- IGameWorldConfig
...@@ -71,9 +74,11 @@ GameWorld o-- IGameWorldConfig ...@@ -71,9 +74,11 @@ GameWorld o-- IGameWorldConfig
abstract TileObject{ abstract TileObject{
+ World(): GameWorld{get} + World(): GameWorld{get}
+ Position(): TilePosition{get}
} }
abstract Building extends TileObject{ abstract Building extends TileObject{
+ OwnerColor(): Color{get}
+ Owner(): GameTeam{get} + Owner(): GameTeam{get}
} }
...@@ -82,45 +87,56 @@ GameWorld o-- IGameWorldConfig ...@@ -82,45 +87,56 @@ GameWorld o-- IGameWorldConfig
} }
class Tower extends Building{ class Tower extends Building{
+ Upgrade(): void + Type(): ITowerTypeData{get}
+ Target(): Unit{get} + Target(): Unit{get}
+ ClosestEnemy(): Unit {get} + ClosestEnemy(): Unit {get}
+ RemainingCooldownTime(): float{get} + RemainingCooldownTime(): float{get}
+ IsOnCooldown(): bool
+ Upgrade(): void
+ UpdateTarget(): void + UpdateTarget(): void
+ UpdateCooldown(float): void + UpdateCooldown(float): void
+ ResetCooldown(): void
+ Shoot(): void + Shoot(): void
} }
class Barrack extends Building{ class Barrack extends Building{
- _checkPoints: IList<TilePosition> - _checkPoints: IList<TilePosition>
+ QueuedUnits(): IReadOnlyCollection<IUnitTypeData>{get} - _queuedUnits: IList<IUnitTypeData>
+ CheckPoints(): IReadOnlyCollection<TilePosition>{get} + CheckPoints(): IReadOnlyCollection<TilePosition>{get}
+ RemainingCooldownTime(): float{get}
+ IsOnCooldown(): bool{get}
+ QueuedUnits(): IReadOnlyCollection<IUnitTypeData>{get}
+ Ordinal(): int{get}
+ QueueUnit(IUnitTypeData): void + QueueUnit(IUnitTypeData): void
+ PushCheckpoint(TilePosition): void + PushCheckpoint(TilePosition): void
+ DeleteCheckpoint(TilePosition): void + DeleteCheckpoint(TilePosition): void
+ SpawnCooldownTime(): float{get} + UpdateCooldown(float): void
+ RemainingCooldownTime(): float{get} + ResetCooldown(): void
+ Spawn(): void + Spawn(): void
+ DeleteUnreachableCheckpoints(): void
} }
class Castle extends Building{ class Castle extends Building{
+ Health(): float{get} + Health(): float{get}
+ IsDestroyed(): bool{get}
+ Damage(Unit, float): void
} }
Class Unit{ Class Unit{
- _checkpoints: IList<TilePosition>
+ Owner(): GameTeam{get} + Owner(): GameTeam{get}
+ World(): GameWorld{get}
+ TilePosition(): TilePosition{get}
+ Currenthealth(): float{get} + Currenthealth(): float{get}
+ NextCheckpoint(): TilePosition{get} + NextCheckpoint(): TilePosition{get}
+ World(): GameWorld{get}
+ Position(): Vector2{get}
+ TilePosition(): TilePosition{get}
+ Type(): IUnityTypeData{get} + Type(): IUnityTypeData{get}
+ IsAlive(): bool{get}
+ Move(float): void + Move(float): void
+ SkipUnreachableCheckpoints() : void
+ Position(): Vector2{get}
+ UpdatePlannedPath(): void + UpdatePlannedPath(): void
+ InflictDamage(Tower, float): void
+ DestroyWithoutDamage() : void
} }
Class Vector2{ Class Vector2{
...@@ -128,6 +144,7 @@ GameWorld o-- IGameWorldConfig ...@@ -128,6 +144,7 @@ GameWorld o-- IGameWorldConfig
+ Y(): float{get} + Y(): float{get}
+ Length2: float {get} + Length2: float {get}
+ Length: float {get} + Length: float {get}
+ Vector2(float, float)
+ ToTilePosition(): TilePosition + ToTilePosition(): TilePosition
+ Distance2(Vector2): float + Distance2(Vector2): float
+ Distance(Vector2): float + Distance(Vector2): float
... ...
......