skizzle/src/kill_block.cpp

50 lines
1.2 KiB
C++

#include "resource_manager.hpp"
#include "kill_block.hpp"
#include "game.hpp"
#include "player.hpp"
const unsigned int KillBlock::TYPE_ID = 5;
KillBlock::KillBlock() : Block() {}
KillBlock::~KillBlock() {}
Object::Ptr KillBlock::clone() const {
return Object::Ptr(new KillBlock(*this));
}
void KillBlock::prepareDraw() {
Block::prepareDraw();
sprite.setTexture(*ResourceManager::get().getTexture("objects/kill_block.tga"));
}
void KillBlock::activate(Game& game, Object::Ptr object) {
Block::activate(game, object);
// si un joueur touche un bloc de mort, on le tue
if (object->getTypeId() == Player::TYPE_ID) {
game.kill(object);
game.setMode(Game::Mode::LOST);
game.setDeathCause(Game::DeathCause::KILLED);
}
}
unsigned int KillBlock::getTypeId() const {
return TYPE_ID;
}
void KillBlock::init(std::ifstream& file, Object::Ptr object) {
// lecture des propriétés d'un bloc
Block::init(file, object);
}
Object::Ptr KillBlock::load(std::ifstream& file) {
Object::Ptr object = Object::Ptr(new KillBlock);
KillBlock::init(file, object);
return object;
}
void KillBlock::save(std::ofstream& file) const {
// écriture des propriétés d'un bloc
Block::save(file);
}