-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathConcreteArmyFactory.cpp
71 lines (66 loc) · 1.71 KB
/
ConcreteArmyFactory.cpp
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
//
// Created by giulia on 16/12/16.
//
#include "ConcreteArmyFactory.h"
#include "Stark.h"
#include "Greyjoy.h"
#include "Targaryen.h"
#include "WhiteWalkers.h"
#include "Baratheon.h"
Army *ConcreteArmyFactory::createArmy(int typeSimple, int typeMagic) {
switch(namehouse) {
case house::Lannister:
return new Lannister();
case house::Stark:
return new Stark();
case house::Greyjoy:
return new Greyjoy();
case house::Targaryen:
return new Targaryen();
case house::WhiteWalkers:
return new WhiteWalkers();
case house::Baratheon:
return new Baratheon();
}
return nullptr;
}
Army *ConcreteArmyFactory::createArmy() {
switch(namehouse) {
case house::Lannister:
return new Lannister();
case house::Stark:
return new Stark();
case house::Greyjoy:
return new Greyjoy();
case house::Targaryen:
return new Targaryen();
case house::WhiteWalkers:
return new WhiteWalkers();
case house::Baratheon:
return new Baratheon();
}
return nullptr;
}
ConcreteArmyFactory::ConcreteArmyFactory(string name)
{
switch(name[0]) {
case 'L':
namehouse = house::Lannister;
break;
case 'S':
namehouse = house::Stark;
break;
case 'G':
namehouse = house::Greyjoy;
break;
case 'T':
namehouse = house::Targaryen;
break;
case 'W':
namehouse = house::WhiteWalkers;
break;
case 'B':
namehouse = house::Baratheon;
break;
}
}