-
Notifications
You must be signed in to change notification settings - Fork 0
/
PowerUp.cpp
49 lines (42 loc) · 1 KB
/
PowerUp.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
#include "PowerUp.h"
#include "ResourceManager.h"
#include "LogManager.h"
#include "GraphicsManager.h"
Ability PowerUp::getAbility() const{
return ability;
}
PowerUp::PowerUp(Ability init_ability, df::Position p){
df::ResourceManager &resource_manager = df::ResourceManager::getInstance();
df::LogManager &log_manager = df::LogManager::getInstance();
ability = init_ability;
// Link to "power-up" sprite depending on ability
std::string request;
df::Sprite *p_temp_sprite;
switch (ability){
case WIDE_SHOT:
request = "powerup2";
break;
case CANNON_CDR:
request = "powerup1";
break;
case ANGLE_CANNON:
request = "powerup";
break;
case HEALTH_GET:
request = "powerup3";
break;
default:
request = "powerup";
break;
}
p_temp_sprite = resource_manager.getSprite(request);
if (!p_temp_sprite) {
log_manager.writeLog("PowerUp::PowerUp(): Warning! Sprite '%s' not found", request);
}
else {
setSprite(p_temp_sprite);
setSpriteSlowdown(3);
}
setPosition(p);
setType("PowerUp");
}