This repository has been archived on 2019-12-07. You can view files and clone it, but cannot push or open issues or pull requests.
2012-09-09 20:50:15 +00:00
|
|
|
/*
|
|
|
|
* Weapon.cpp
|
|
|
|
*
|
|
|
|
* Created on: 12.08.2012
|
|
|
|
* Author: Felix
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "Weapon.h"
|
|
|
|
|
|
|
|
#include "../util/Collection.h"
|
|
|
|
#include "../effects/Bullet.h"
|
|
|
|
#include "../util/Loader.h"
|
|
|
|
#include "../util/ResourceManager.h"
|
|
|
|
|
2012-09-11 19:15:16 +00:00
|
|
|
const int Weapon::BULLET_DAMAGE = 10;
|
|
|
|
|
2012-09-09 20:50:15 +00:00
|
|
|
Weapon::Weapon(Physical& holder, Collection& collection, b2World& world) :
|
|
|
|
Emitter(collection),
|
|
|
|
mHolder(holder),
|
|
|
|
mBulletTexture(ResourceManager::i().acquire(Loader::i().fromFile<sf::Texture>("bullet.png"))),
|
|
|
|
mWorld(world) {
|
|
|
|
}
|
|
|
|
|
|
|
|
Weapon::~Weapon() {
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Call on any button press/refire.
|
|
|
|
*/
|
|
|
|
void
|
|
|
|
Weapon::fire() {
|
|
|
|
// Only call if has ammo, consider firing rate etc.
|
|
|
|
emit();
|
|
|
|
}
|
|
|
|
|
|
|
|
std::shared_ptr<Particle>
|
|
|
|
Weapon::createParticle() {
|
|
|
|
return std::shared_ptr<Particle>(new Bullet(mHolder.getPosition(), mWorld, mBulletTexture,
|
2012-09-11 19:15:16 +00:00
|
|
|
mHolder, mHolder.getAngle(), BULLET_DAMAGE));
|
2012-09-09 20:50:15 +00:00
|
|
|
}
|