forked from Milez213/CityTrial
-
Notifications
You must be signed in to change notification settings - Fork 0
/
GameKartProperties.h
103 lines (87 loc) · 3.03 KB
/
GameKartProperties.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
//
// GameKartProperties.h
//
//
// Created by Eric Johnson on 2/2/13.
//
//
#ifndef ____GameKartProperties__
#define ____GameKartProperties__
#include <iostream>
class GameKartProperties
{
public:
GameKartProperties() : /*wings(false), jetEngine(false),*/ maxEnergy(100), energyRegen(10),
acceleration(10), topSpeed(25), brakeSpeed(20), turnSpeed(45), lift(0), energy(maxEnergy) {}
/*//parts
bool hasJetEngine() {return jetEngine;}
void toggleJetEngine() {jetEngine = !jetEngine;}
void setJetEngine(bool on) {jetEngine = on;};*/
//stats
static const float MAX_ENERGY_CHANGE = 10.0;
float getMaxEnergy() {return maxEnergy;}
void upgradeMaxEnergy(int num = 1) {maxEnergy += MAX_ENERGY_CHANGE*num;}
void downgradeMaxEnergy(int num = 1) {maxEnergy -= MAX_ENERGY_CHANGE*num;}
static const float ENERGY_REGEN_CHANGE = 5.0;
float getEnergyRegen() {return energyRegen;}
void upgradeEnergyRegen(int num = 1) {energyRegen += ENERGY_REGEN_CHANGE*num;}
void downgradeEnergyRegen(int num = 1) {energyRegen -= ENERGY_REGEN_CHANGE*num;}
static const float ACCELERATION_CHANGE = 2.5;
float getAcceleration() {return acceleration;}
void upgradeAcceleration(int num = 1) {acceleration += ACCELERATION_CHANGE*num;}
void downgradeAcceleration(int num = 1) {acceleration -= ACCELERATION_CHANGE*num;}
static const float TOP_SPEED_CHANGE = 5.0;
float getTopSpeed() {return topSpeed;}
void upgradeTopSpeed(int num = 1) {topSpeed += TOP_SPEED_CHANGE*num;}
void downgradeTopSpeed(int num = 1) {topSpeed -= TOP_SPEED_CHANGE*num;}
static const float BRAKE_SPEED_CHANGE = 5.0;
float getBrakeSpeed() {return brakeSpeed;}
void upgradeBrakeSpeed(int num = 1) {brakeSpeed += BRAKE_SPEED_CHANGE*num;}
void downgradeBrakeSpeed(int num = 1) {brakeSpeed -= BRAKE_SPEED_CHANGE*num;}
static const float TURN_SPEED_CHANGE = 5.0;
float getTurnSpeed() {return turnSpeed;}
void upgradeTurnSpeed(int num = 1) {turnSpeed += TURN_SPEED_CHANGE*num;}
void downgradeTurnSpeed(int num = 1) {turnSpeed -= TURN_SPEED_CHANGE*num;}
float getLift() {return lift;}
void setLift(float lift) {this->lift = lift;}
//void upgradeLift() {lift += 5;}
//consumables
void regenEnergy(float dt) {
energy += dt*getEnergyRegen();
if (energy > getMaxEnergy())
energy = getMaxEnergy();
}
bool useEnergyDrain(float drainSpeed, float dt) {
if (energy - dt*drainSpeed > 0) {
energy -= dt*drainSpeed;
return true;
}
else {
return false;
}
}
bool useEnergyCost(float cost) {
if (energy - cost > 0) {
energy -= cost;
return true;
}
else {
return false;
}
}
float getEnergy() { return energy; }
private:
/*//parts
bool jetEngine;*/
//stats
float maxEnergy;
float energyRegen;
float acceleration;
float topSpeed;
float brakeSpeed;
float turnSpeed;
float lift;
//consumables
float energy;
};
#endif /* defined(____GameKartProperties__) */