-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMecha.h
134 lines (107 loc) · 2.53 KB
/
Mecha.h
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#pragma once
#include <vector>
#include <string>
#include "Limb.h"
#include "MountPoint.h"
#include "System.h"
#include "Weapon.h"
using namespace std;
#define BASE_POWER_EXPECTED 100
#define MAXIMUM_THRESHOLD 1.35
class Mecha
{
public:
Mecha();
string getName();
void setName(string);
bool getStatus();
void setStatus(bool);
float getMass();
void updateMass();
float getHeight();
void setHeight(float);
float getMassFactor();
void updateMassFactor();
float getReactionSpeed();
float getBaseSpeed();
void updateReactionSpeed();
void setReactionSpeed(float);
float getEvasion();
float getBaseEvasion();
void setEvasion(float);
float getAccuracy();
float getBaseAccuracy();
void setAccuracy(float);
float getThrust();
float getBaseThrust();
void setThrust(float);
float getTemperature();
void updateTemperature();
void activateCoolant(); // Don't like this tbh
void setTemperature(float);
float getTemperatureCap();
void setTemperatureCap(float);
vector<Limb*> getLimbs();
void addLimb(Limb*, vector<MountPoint*>);
void addLimbDeclared(Limb*, string, vector<MountPoint*>);
vector<System*> getSystems();
void addSystem(System*, vector<MountPoint*>);
void addSystemDeclared(System*, string, vector<MountPoint*>);
vector<System*> getControllableSystems();
void addControllableSystem(System*);
vector<System*> getKeySystems();
void addKeySystem(System*);
vector<Weapon*> getWeapons();
void addWeapon(Weapon*, MountPoint*);
private:
string name;
bool status;
bool power_override;
float mass;
float height;
float mass_factor;
float reaction_speed;
float evasion;
float accuracy;
float thrust;
float temperature;
float temperature_cap;
float power_generated;
float power_allocated;
float power_available;
vector<Limb*> limbs;
vector<System*> systems;
vector<System*> controllable_systems;
vector<System*> key_systems;
vector<Weapon*> weapons;
System* Targeting;
System* Sensors;
System* Thrusters;
System* Power;
System* Coolant;
System* Cockpit;
Limb* Head;
Limb* Torso;
Limb* LeftArm;
Limb* RightArm;
Limb* LeftLeg;
Limb* RightLeg;
MountPoint* Skull;
MountPoint* LeftShoulder;
MountPoint* RightShoulder;
MountPoint* Chest;
MountPoint* Stomach;
MountPoint* InnerChest;
MountPoint* UpperLeftArm;
MountPoint* LowerLeftArm;
MountPoint* LeftHand;
MountPoint* UpperRightArm;
MountPoint* LowerRightArm;
MountPoint* RightHand;
MountPoint* UpperLeftLeg;
MountPoint* LowerLeftLeg;
MountPoint* LeftFoot;
MountPoint* UpperRightLeg;
MountPoint* LowerRightLeg;
MountPoint* RightFoot;
};