Changes
Page history
Update Osztály diagram: fix/update Logic.Data.World
authored
May 03, 2022
by
Sárközi Gergely János
Show whitespace changes
Inline
Side-by-side
Osztály-diagram.md
View page @
b2ae1be0
...
@@ -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,
IUnitType
Data
): 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>
+ Q
ueuedUnits
()
: I
ReadOnlyCollection
<IUnitTypeData>
{get}
- _q
ueuedUnits: I
List
<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
+
Spawn
Cooldown
Time(): float{get}
+
Update
Cooldown
(float): void
+ Re
maining
Cooldown
Time(): float{get}
+ Re
set
Cooldown
(): 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
...
...
...
...