refactor: moved TowerInfo class

This commit is contained in:
2021-09-19 18:25:37 +02:00
parent 3771ea4a27
commit 13c8303c90
5 changed files with 40 additions and 54 deletions

View File

@@ -1,6 +1,8 @@
#pragma once #pragma once
#include <cstdint> #include <cstdint>
#include <string>
#include "misc/Time.h" #include "misc/Time.h"
namespace td { namespace td {
@@ -98,6 +100,22 @@ public: // conve
}; };
class TowerInfo {
private:
std::string m_Name, m_Description;
bool m_IsBigTower;
public:
TowerInfo(std::string&& name, std::string&& description, bool big) : m_Name(std::move(name)),
m_Description(std::move(description)), m_IsBigTower(big) {}
const std::string& getName() const { return m_Name; }
const std::string& getDescription() const { return m_Description; }
bool isBigTower() const { return m_IsBigTower; }
};
const TowerInfo& getTowerInfo(TowerType type);
// ---------- Little Towers ---------- // ---------- Little Towers ----------
class LittleTower : public Tower { class LittleTower : public Tower {

View File

@@ -1,26 +0,0 @@
#pragma once
#include "game/Towers.h"
#include <string>
namespace td {
namespace game {
class TowerInfo {
private:
std::string m_Name, m_Description;
bool m_IsBigTower;
public:
TowerInfo(std::string&& name, std::string&& description, bool big) : m_Name(std::move(name)),
m_Description(std::move(description)), m_IsBigTower(big) {}
const std::string& getName() const { return m_Name; }
const std::string& getDescription() const { return m_Description; }
bool isBigTower() const { return m_IsBigTower; }
};
const TowerInfo& getTowerInfo(TowerType type);
} // namespace game
} // namespace td

View File

@@ -111,6 +111,28 @@ const TowerStats* getTowerStats(TowerType type, TowerLevel level) {
static const std::map<TowerType, TowerInfo> TowerInfoConstants = {
{TowerType::Archer, {"Archer", "Shoot projectiles", false}},
{TowerType::Artillery, {"Artillery", "Explosion", false}},
{TowerType::Ice, {"Ice", "Slow down enemies", false}},
{TowerType::Leach, {"Leach", "Shoot projectiles", true}},
{TowerType::Mage, {"Mage", "Set enemies on fire", false}},
{TowerType::Necromancer, {"Necromancer", "Summon troops", true}},
{TowerType::Poison, {"Poison", "Poison enemies", false}},
{TowerType::Quake, {"Quake", "Shoot projectiles", false}},
{TowerType::Sorcerer, {"Sorcerer", "Summon friendly troops", false}},
{TowerType::Turret, {"Turret", "Shoot arrow very fast", true}},
{TowerType::Zeus, {"Zeus", "Strike lightning", false}},
};
const TowerInfo& getTowerInfo(TowerType type) {
return TowerInfoConstants.at(type);
}
void ArcherTower::tick(std::uint64_t delta) { void ArcherTower::tick(std::uint64_t delta) {
} }

View File

@@ -1,27 +0,0 @@
#include "game/client/TowersInfo.h"
#include <map>
namespace td {
namespace game {
static const std::map<TowerType, TowerInfo> TowerInfoConstants = {
{TowerType::Archer, {"Archer", "Shoot projectiles", false}},
{TowerType::Artillery, {"Artillery", "Explosion", false}},
{TowerType::Ice, {"Ice", "Slow down enemies", false}},
{TowerType::Leach, {"Leach", "Shoot projectiles", true}},
{TowerType::Mage, {"Mage", "Set enemies on fire", false}},
{TowerType::Necromancer, {"Necromancer", "Summon troops", true}},
{TowerType::Poison, {"Poison", "Poison enemies", false}},
{TowerType::Quake, {"Quake", "Shoot projectiles", false}},
{TowerType::Sorcerer, {"Sorcerer", "Summon friendly troops", false}},
{TowerType::Turret, {"Turret", "Shoot arrow very fast", true}},
{TowerType::Zeus, {"Zeus", "Strike lightning", false}},
};
const TowerInfo& getTowerInfo(TowerType type) {
return TowerInfoConstants.at(type);
}
} // namespace game
} // namespace td

View File

@@ -3,7 +3,6 @@
#include "render/Renderer.h" #include "render/Renderer.h"
#include "../render/gui/imgui/imgui.h" #include "../render/gui/imgui/imgui.h"
#include "window/Display.h" #include "window/Display.h"
#include "game/client/TowersInfo.h"
#include "game/client/ClientGame.h" #include "game/client/ClientGame.h"
#include <iostream> #include <iostream>