-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathConcreteArmyFactory.cpp
More file actions
73 lines (69 loc) · 2.02 KB
/
Copy pathConcreteArmyFactory.cpp
File metadata and controls
73 lines (69 loc) · 2.02 KB
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
//
// 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"
//costruttore a cui passiamo strenght e magic
Army *ConcreteArmyFactory::createArmy(int strength, int magic) {
switch(namehouse) {
case house::Lannister:
return new Lannister(4, 35, 9, 1.5);
case house::Stark:
return new Stark(10, 25, 4, 1.5);
case house::Greyjoy:
return new Greyjoy(3, 32, 4, 1.5);
case house::Targaryen:
return new Targaryen(5, 30, 9, 1.5);
case house::WhiteWalkers:
return new WhiteWalkers(20, 5, 3.5, 3.5);
case house::Baratheon:
return new Baratheon(8, 7, 5.5, 3.5);
}
return nullptr;
}
//costruttore di default
Army *ConcreteArmyFactory::createArmy() {
switch(namehouse) {
case house::Lannister:
return new Lannister(4, 35, 9, 1.5);
case house::Stark:
return new Stark(10, 25, 4, 1.5);
case house::Greyjoy:
return new Greyjoy(3, 32, 4, 1.5);
case house::Targaryen:
return new Targaryen(5, 30, 9, 1.5);
case house::WhiteWalkers:
return new WhiteWalkers(20, 5, 3.5, 3.5);
case house::Baratheon:
return new Baratheon(8, 7, 5.5, 3.5);
}
return nullptr;
}
//serve per poter utilizzare la prima lettera di ogni casata invece che il nome
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;
}
}