1 | ==== Refer to the following links for further information ==== |
---|
2 | http://www.orxonox.net/wiki/HeavyCruiser |
---|
3 | http://forum.orxonox.net/viewtopic.php?f=1&t=1104 |
---|
4 | |
---|
5 | |
---|
6 | ---=== TODO ===--- |
---|
7 | |
---|
8 | - Allow Big Ships to have sub-parts. |
---|
9 | |
---|
10 | (- Adapt the HUD to show individual part's health. |
---|
11 | Edit /trunk/dataoverlays/HUDTemplates3.oxo and corresponding classes in src/modules/overlays/hud/) |
---|
12 | |
---|
13 | |
---|
14 | |
---|
15 | ---=== PROBLEMS ===--- |
---|
16 | |
---|
17 | - When firing weapons mounted at the front of the ship, the aim is incorrect, |
---|
18 | due to the cursor (target) position being too close to the camera. |
---|
19 | Fix: Move position of cursor further away. (src/orxonox/controllers/NewHumanController.cc, updateTarget(), line 445) |
---|
20 | |
---|
21 | - Turrets cannot be attached to the ship in its template, due to turrets being spaceships by themselves. |
---|
22 | Fix: Redesign Turret class. -> MovableEntity? ShipPart? |
---|
23 | |
---|
24 | - Only Pawns are able to receive hits. However Pawns are dynamic entities, which cannot be attached to another. |
---|
25 | Fix: Major changes in the code-structure of Pawns/Entities required. There should be destructible not-dynamic entities. |
---|
26 | |
---|
27 | |
---|
28 | |
---|
29 | ---=== POSSIBLE APPROACHES ===--- |
---|
30 | |
---|
31 | - Sub-Parts are Pawns. |
---|
32 | PRO: - Basic structure of a destructible (and controllable, for turrets) is provided. |
---|
33 | CON: - Need to build something to hook Pawns together, allowing them to interact with each other. |
---|
34 | |
---|
35 | - Create a new class/interface: DestructibleEntity. |
---|
36 | Create a new class: ShipPart, which is a DestructibleEntity. |
---|
37 | Create a new class: Turret, which is a ShipPart. |
---|
38 | PRO: - More 'leightweight' than a Pawn. Can be used for simple things such as Asteroids too. |
---|
39 | - Parts can easily be attached to each other in XML |
---|
40 | CON: - Need to copy property of getting damage from hits from pawns |
---|
41 | - Need to add controllers for Turret again |
---|
42 | |
---|
43 | |
---|
44 | !=== THE FOLLOWING REFERS TO THE LAST APPROACH ===! |
---|
45 | |
---|
46 | HOW IT'LL LOOK IN XML |
---|
47 | |
---|
48 | <BigShip [parameters]> |
---|
49 | |
---|
50 | <engines> |
---|
51 | ... |
---|
52 | </engines> |
---|
53 | |
---|
54 | <attached> |
---|
55 | <Model [parameters] /> |
---|
56 | |
---|
57 | <ShipPart [parameters]> |
---|
58 | <attached> |
---|
59 | <Model [parameters] /> |
---|
60 | </attached> |
---|
61 | <collisionShapes> |
---|
62 | ... |
---|
63 | </collisionShapes> |
---|
64 | </ShipPart> |
---|
65 | |
---|
66 | <ShipPart [parameters]> |
---|
67 | ... |
---|
68 | </ShipPart> |
---|
69 | </attached> |
---|
70 | |
---|
71 | <collisionShapes> |
---|
72 | ... |
---|
73 | </collisionShapes> |
---|
74 | |
---|
75 | <BigShip> |
---|
76 | |
---|
77 | |
---|
78 | |
---|
79 | DETAILS: |
---|
80 | |
---|
81 | - BigShip class: |
---|
82 | - /src/orxonox/worldentities/pawns -> Create BigShip.cc and BigShip.h, inherit from SpaceShip |
---|
83 | - Damage can be shared with sub-parts. (Implement new HUD, which shows sub-parts health?) |
---|
84 | ?- How to manage/list sub-parts? Arrays? |
---|
85 | - Modify damage() as needed, calls damagePart() |
---|
86 | - Spread damage relative to how much of the overall health a part has. |
---|
87 | (If a part has 20% of the total health, it gets 20% of the damage) |
---|
88 | - void damagePart(... , ShipPart part) |
---|
89 | - Destruction of sub-parts can alter datavalues of the ship (e.g. shield or acceleration) |
---|
90 | or disable weapons |
---|
91 | |
---|
92 | - DestructibleEntity class |
---|
93 | ?- is a StaticEntity? |
---|
94 | - defined in XML Parameters: health, animation upon death |
---|
95 | - receives damage from hits (and from other sources?) |
---|
96 | - has health |
---|
97 | - special events on 'destruction' |
---|
98 | - special animation upon destruction |
---|
99 | |
---|
100 | - ShipPart class |
---|
101 | - is a DestructibleEntity |
---|
102 | - has a BigShip as *owner |
---|
103 | - Has own health |
---|
104 | - Receives damage from direct hits and from parent-part |
---|
105 | - Triggers events on destruction (e.g. disabling weapons or weakening shields) |
---|
106 | - Invisible & not collidable? Or actually inexistent? |
---|
107 | |
---|
108 | - Turret class |
---|
109 | ?- is a ShipPart? |
---|
110 | - has a controller |
---|
111 | |
---|