-
Notifications
You must be signed in to change notification settings - Fork 1
/
Factory.h
158 lines (123 loc) · 3.11 KB
/
Factory.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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#ifndef FACTORY_H
#define FACTORY_H
#pragma once
#include "Market.h"
#include "Stockpile.h"
#include <string>
struct Factory {
public:
std::string Type;
int cost;
int size;
Factory(Stockpile* Target, Market* market, std::string arg, int c);
virtual ~Factory();
virtual void Tick();
void ChangeOwner(Stockpile* NewStockpile);
protected:
Stockpile materialsNeeded;
Stockpile materialsProduced;
Stockpile* TargetStockpile;
Market* TargetMarket;
void confirmMaterials();
};
struct CanningFactory : public Factory {
public:
CanningFactory(Stockpile* Target, Market* market);
};
struct LiquorDistillery : public Factory {
public:
LiquorDistillery(Stockpile* Target, Market* market);
};
struct AutomobileFactory : public Factory {
public:
AutomobileFactory(Stockpile* Target, Market* market);
};
struct Shipyard : public Factory {
public:
Shipyard(Stockpile* Target, Market* market);
void Tick() override;
private:
int days;
int daysToProduce;
};
struct LumberMill : public Factory {
public:
LumberMill(Stockpile* Target, Market* market);
};
struct CementFactory : public Factory {
public:
CementFactory(Stockpile* Target, Market* market);
};
struct ClothesFactory : public Factory {
public:
ClothesFactory(Stockpile* Target, Market* market);
};
struct RadioFactory : public Factory {
public:
RadioFactory(Stockpile* Target, Market* market);
};
struct TelephoneFactory : public Factory {
public:
TelephoneFactory(Stockpile* Target, Market* market);
};
struct GlassFactory : public Factory {
public:
GlassFactory(Stockpile* Target, Market* market);
};
struct PaperMill : public Factory {
public:
PaperMill(Stockpile* Target, Market* market);
};
struct FurnitureFactory : public Factory {
public:
FurnitureFactory(Stockpile* Target, Market* market);
};
struct FuelRefinery : public Factory {
public:
FuelRefinery(Stockpile* Target, Market* market);
};
struct AmmunitionFactory : public Factory {
public:
AmmunitionFactory(Stockpile* Target, Market* market);
};
struct PlaneFactory : public Factory {
public:
PlaneFactory(Stockpile* Target, Market* market);
};
struct ExplosivesFactory : public Factory {
public:
ExplosivesFactory(Stockpile* Target, Market* market);
};
struct SmallArmsFactory : public Factory {
public:
SmallArmsFactory(Stockpile* Target, Market* market);
};
struct ArtilleryFactory : public Factory {
public:
ArtilleryFactory(Stockpile* Target, Market* market);
};
struct TankFactory : public Factory {
public:
TankFactory(Stockpile* Target, Market* market);
};
struct AirshipFactory : public Factory {
public:
AirshipFactory(Stockpile* Target, Market* market);
void Tick() override;
private:
int days;
int daysToProduce;
};
struct MachinePartFactory : public Factory {
public:
MachinePartFactory(Stockpile* Target, Market* market);
};
struct ElectricGearFactory : public Factory {
public:
ElectricGearFactory(Stockpile* Target, Market* market);
};
struct SyntheticRubberRefinery : public Factory {
public:
SyntheticRubberRefinery(Stockpile* Target, Market* market);
};
#endif