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 {
Tower(): Tower { get }
}
class TowerBuiltEvent implements ITowerEvent { interface ITowerEvent {
} Tower() : Tower {get}
}
class TowerUpgradedEvent implements ITowerEvent { class TowerBuiltEvent implements ITowerEvent
}
class TowerDestroyedEvent implements ITowerEvent { class TowerUpgradedEvent implements ITowerEvent {
} + BeforeUpgradeType : ITowerTypeData {get}
}
class TowerShotEvent implements ITowerEvent { class TowerDestroyedEvent implements ITowerEvent
}
class TowerTargetChangedEvent implements ITowerEvent { class TowerShotEvent implements ITowerEvent {
} + Target : Unit {get}
}
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 }
}
class UnitDeployedEvent implements IUnitEvent { interface IUnitTypeEvent {
} + Type() : UnitTypeData {get}
}
class UnitMovedTileEvent implements IUnitEvent { interface IUnitEvent extends IUnitTypeEvent {
} + Unit() : Unit {get}
}
class UnitDamagedEvent implements IUnitEvent { class UnitDeployedEvent implements IUnitTypeEvent {
} + Barrack() : Barrack {get}
}
class UnitDestroyedEvent implements IUnitEvent { class UnitMovedTileEvent implements IUnitEvent {
} + OldPosition() : TilePosition {get}
}
class UnitDamagedEvent implements IUnitEvent {
+ Damage() : float {get}
+ Attacker() : Tower {get}
}
class UnitDestroyedEvent implements IUnitEvent
} }
``` ```
```plantuml ```plantuml
package Logic.Event.World.Castle { package Logic.Event.World.Castle {
interface ICastleEvent {
Castle(): Castle { get }
}
class CastleDamagedEvent implements ICastleEvent { interface ICastleEvent {
} + Castle(): Castle {get}
}
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}
}
} }
``` ```
... ...
......