forked from WG-Forge/Team-Segfault
-
Notifications
You must be signed in to change notification settings - Fork 1
/
structure.puml
120 lines (95 loc) · 1.72 KB
/
structure.puml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
@startuml
hide empty members
class DisplayManager {
+getUserInput()
+startGame()
+drawScene()
}
class Game {
+start()
-updateState()
-PlayerManager
}
class Scene {
+draw()
+updateState()
-SceneDrawer
-TankDrawer
}
class GameClient{
+sendToServer()
-ServerConnection
}
abstract class Player {
+makeTurnPlays()
}
class RemotePlayer {
}
class BotPlayer {
}
class Observer {
}
abstract class Entity {
}
abstract class Tank {
}
class Artillery {
}
class Destroyer {
}
class Heavy {
}
class Light {
}
class Medium {
}
abstract class Feature {
}
class Base {
}
class Empty {
}
class Obstacle {
}
class Spawn {
}
class LightRepair {
}
class HardRepair {
}
class Catapult {
}
class PlayerManager {
+addPlayer()
}
Game "1" *-down-> "1" Scene: updates
Game "1" *-down-> "1" GameClient: gets state
Game "1" *-down-> "1" PlayerManager: contains
PlayerManager "1" *-down-> "X" Player: synchronizes
Scene "1" *-down-> "X" Entity: contains
Scene "1" *-down-> "X" Player: contains
Player <|-down- RemotePlayer
Player <|-down- BotPlayer
Player <|-down- Observer
Player "1" *-down-> "5" Tank: contains
Player "1" *-down-> "1" GameClient: sends actions
RemotePlayer --> GameClient: gets actions
Tank <|-down- Artillery
Tank <|-down- Destroyer
Tank <|-down- Heavy
Tank <|-down- Light
Tank <|-down- Medium
Entity <|-down- Feature
Entity <|-down- Tank
Feature <|-down- Base
Feature <|-down- Empty
Feature <|-down- Obstacle
Feature <|-down- Spawn
Feature <|-down- LightRepair
Feature <|-down- HardRepair
Feature <|-down- Catapult
DisplayManager "1" *-down-> "1" Game: starts
DisplayManager "1" *-down-> "1" Scene: draws
DisplayManager *-down-> Menu: gets input
Player "1" *-up-> "1" Scene: updates
@enduml