Update Osztály diagram: add fields to events authored by Sárközi Gergely János's avatar Sárközi Gergely János
...@@ -318,72 +318,90 @@ BiCommandResult --|> ICommandResult ...@@ -318,72 +318,90 @@ BiCommandResult --|> ICommandResult
} }
``` ```
# Különböző eventek kifejtve # Különböző eventek kifejtve
Mindegyik `...Event` a `BaseEvent` alosztálya. Ez nincs jelölve a diagrammon a jobb átláthatóság érdekében. 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 ```plantuml
package Logic.Event.World.Tower { package Logic.Event.World.Tower {
interface ITowerEvent { interface ITowerEvent {
Tower() : Tower {get} Tower() : Tower {get}
} }
class TowerBuiltEvent implements ITowerEvent { class TowerBuiltEvent implements ITowerEvent
}
class TowerUpgradedEvent implements ITowerEvent { class TowerUpgradedEvent implements ITowerEvent {
+ BeforeUpgradeType : ITowerTypeData {get}
} }
class TowerDestroyedEvent implements ITowerEvent { class TowerDestroyedEvent implements ITowerEvent
}
class TowerShotEvent implements ITowerEvent { class TowerShotEvent implements ITowerEvent {
+ Target : Unit {get}
} }
class TowerTargetChangedEvent implements ITowerEvent { class TowerTargetChangedEvent implements ITowerEvent {
+ OldTarget : Unit {get}
} }
class TowerCooledDownEvent implements ITowerEvent { class TowerCooledDownEvent implements ITowerEvent
}
} }
``` ```
```plantuml ```plantuml
package Logic.Event.World.Unit { package Logic.Event.World.Unit {
interface IUnitEvent {
Unit(): Unit { get } interface IUnitTypeEvent {
+ Type() : UnitTypeData {get}
} }
class UnitDeployedEvent implements IUnitEvent { interface IUnitEvent extends IUnitTypeEvent {
+ Unit() : Unit {get}
}
class UnitDeployedEvent implements IUnitTypeEvent {
+ Barrack() : Barrack {get}
} }
class UnitMovedTileEvent implements IUnitEvent { class UnitMovedTileEvent implements IUnitEvent {
+ OldPosition() : TilePosition {get}
} }
class UnitDamagedEvent implements IUnitEvent { class UnitDamagedEvent implements IUnitEvent {
+ Damage() : float {get}
+ Attacker() : Tower {get}
} }
class UnitDestroyedEvent implements IUnitEvent { class UnitDestroyedEvent implements IUnitEvent
}
} }
``` ```
```plantuml ```plantuml
package Logic.Event.World.Castle { package Logic.Event.World.Castle {
interface ICastleEvent { interface ICastleEvent {
Castle(): Castle { get } + Castle(): Castle {get}
} }
class CastleDamagedEvent implements ICastleEvent { class CastleDamagedEvent implements ICastleEvent {
+ Damage() : float {get}
+ Attacker() : Unit {get}
} }
class CastleDestroyedEvent implements ICastleEvent{ class CastleDestroyedEvent implements ICastleEvent
}
} }
``` ```
```plantuml ```plantuml
package Logic.Event.World { package Logic.Event.World {
class WorldSimulatedPhysicsEvent { class WorldSimulatedPhysicsEvent {
+ World() : GameWorld {get}
+ DeltaTime() : float {get}
} }
} }
``` ```
... ...
......