From c7d81de60e3529f633b08db756fd1e4b7c6e9e16 Mon Sep 17 00:00:00 2001 From: Persson-dev Date: Sun, 21 Nov 2021 17:18:45 +0100 Subject: [PATCH] feat: add mob size --- include/game/Mobs.h | 9 ++-- src/game/Mobs.cpp | 102 ++++++++++++++++++++++---------------------- 2 files changed, 57 insertions(+), 54 deletions(-) diff --git a/include/game/Mobs.h b/include/game/Mobs.h index edd0928..f6e8edf 100644 --- a/include/game/Mobs.h +++ b/include/game/Mobs.h @@ -6,6 +6,8 @@ #include #include +#include + namespace td { namespace game { @@ -41,16 +43,17 @@ class MobStats { private: float m_Damage; float m_Speed; + glm::vec2 m_Size; std::uint16_t m_MoneyCost; std::uint16_t m_ExpCost; std::uint16_t m_MaxLife; std::uint16_t m_ExpReward; public: - MobStats(float damage, float speed, std::uint16_t moneyCost, + MobStats(float damage, float speed, glm::vec2 size, std::uint16_t moneyCost, std::uint16_t expCost, std::uint16_t expReward, std::uint16_t maxLife) : m_Damage(damage), m_Speed(speed), - m_MoneyCost(moneyCost), m_ExpCost(expCost), m_MaxLife(maxLife), - m_ExpReward(expReward) { + m_Size(size), m_MoneyCost(moneyCost), m_ExpCost(expCost), + m_MaxLife(maxLife), m_ExpReward(expReward) { } float getDamage() const { return m_Damage; } diff --git a/src/game/Mobs.cpp b/src/game/Mobs.cpp index 1bceb57..ce526eb 100644 --- a/src/game/Mobs.cpp +++ b/src/game/Mobs.cpp @@ -88,66 +88,66 @@ bool Mob::hasEffect(EffectType type) { typedef std::pair MobKey; const std::map MobConstants = { - // damage speed money_cost exp_cost exp_reward max_health - {{MobType::Zombie, 1},{MobStats{1, 1.6, 15, 0, 7, 40}}}, - {{MobType::Zombie, 2},{MobStats{1, 1.6, 18, 88, 9, 56}}}, - {{MobType::Zombie, 3},{MobStats{1, 1.6, 22, 153, 10, 78}}}, - {{MobType::Zombie, 4},{MobStats{1.5, 1.6, 26, 268, 13, 110}}}, - {{MobType::Zombie, 5},{MobStats{2, 1.6, 31, 469, 15, 154}}}, + // damage speed size money_cost exp_cost exp_reward max_health + {{MobType::Zombie, 1},{MobStats{1, 1.6, {1, 1}, 15, 0, 7, 40}}}, + {{MobType::Zombie, 2},{MobStats{1, 1.6, {1, 1}, 18, 88, 9, 56}}}, + {{MobType::Zombie, 3},{MobStats{1, 1.6, {1, 1}, 22, 153, 10, 78}}}, + {{MobType::Zombie, 4},{MobStats{1.5, 1.6, {1, 1}, 26, 268, 13, 110}}}, + {{MobType::Zombie, 5},{MobStats{2, 1.6, {1, 1}, 31, 469, 15, 154}}}, - {{MobType::Spider, 1},{MobStats{1, 1.6, 25, 100, 15, 80}}}, - {{MobType::Spider, 2},{MobStats{1, 2, 30, 175, 16, 112}}}, - {{MobType::Spider, 3},{MobStats{1.5, 2, 36, 306, 18, 157}}}, - {{MobType::Spider, 4},{MobStats{2.5, 2, 43, 536, 19, 222}}}, - {{MobType::Spider, 5},{MobStats{1.5, 2.5, 52, 938, 22, 307}}}, + {{MobType::Spider, 1},{MobStats{1, 1.6, {1, 1}, 25, 100, 15, 80}}}, + {{MobType::Spider, 2},{MobStats{1, 2, {1, 1}, 30, 175, 16, 112}}}, + {{MobType::Spider, 3},{MobStats{1.5, 2, {1, 1}, 36, 306, 18, 157}}}, + {{MobType::Spider, 4},{MobStats{2.5, 2, {1, 1}, 43, 536, 19, 222}}}, + {{MobType::Spider, 5},{MobStats{1.5, 2.5, {1, 1}, 52, 938, 22, 307}}}, - {{MobType::Skeleton, 1},{MobStats{1, 1.6, 120, 200, 30, 350}}}, - {{MobType::Skeleton, 2},{MobStats{1, 1.6, 144, 350, 33, 490}}}, - {{MobType::Skeleton, 3},{MobStats{1, 1.6, 173, 613, 36, 686}}}, - {{MobType::Skeleton, 4},{MobStats{1.5, 1.6, 225, 1072, 40, 960}}}, - {{MobType::Skeleton, 5},{MobStats{2, 1.6, 255, 1876, 43, 1345}}}, + {{MobType::Skeleton, 1},{MobStats{1, 1.6, {1, 1}, 120, 200, 30, 350}}}, + {{MobType::Skeleton, 2},{MobStats{1, 1.6, {1, 1}, 144, 350, 33, 490}}}, + {{MobType::Skeleton, 3},{MobStats{1, 1.6, {1, 1}, 173, 613, 36, 686}}}, + {{MobType::Skeleton, 4},{MobStats{1.5, 1.6, {1, 1}, 225, 1072, 40, 960}}}, + {{MobType::Skeleton, 5},{MobStats{2, 1.6, {1, 1}, 255, 1876, 43, 1345}}}, - {{MobType::Pigman, 1},{MobStats{1, 2, 100, 150, 22, 150}}}, - {{MobType::Pigman, 2},{MobStats{1, 2, 120, 263, 24, 210}}}, - {{MobType::Pigman, 3},{MobStats{1, 2, 144, 459, 25, 297}}}, - {{MobType::Pigman, 4},{MobStats{1, 2, 173, 804, 25, 412}}}, - {{MobType::Pigman, 5},{MobStats{1.5, 2, 207, 1407, 27, 576}}}, + {{MobType::Pigman, 1},{MobStats{1, 2, {1, 1}, 100, 150, 22, 150}}}, + {{MobType::Pigman, 2},{MobStats{1, 2, {1, 1}, 120, 263, 24, 210}}}, + {{MobType::Pigman, 3},{MobStats{1, 2, {1, 1}, 144, 459, 25, 297}}}, + {{MobType::Pigman, 4},{MobStats{1, 2, {1, 1}, 173, 804, 25, 412}}}, + {{MobType::Pigman, 5},{MobStats{1.5, 2, {1, 1}, 207, 1407, 27, 576}}}, - {{MobType::Creeper, 1},{MobStats{1, 2, 250, 325, 46, 350}}}, - {{MobType::Creeper, 2},{MobStats{1, 2, 290, 550, 49, 460}}}, - {{MobType::Creeper, 3},{MobStats{2, 2, 350, 800, 55, 630}}}, - {{MobType::Creeper, 4},{MobStats{3, 2, 420, 1300, 61, 900}}}, - {{MobType::Creeper, 5},{MobStats{4, 2, 510, 1850, 67, 1250}}}, + {{MobType::Creeper, 1},{MobStats{1, 2, {1, 1}, 250, 325, 46, 350}}}, + {{MobType::Creeper, 2},{MobStats{1, 2, {1, 1}, 290, 550, 49, 460}}}, + {{MobType::Creeper, 3},{MobStats{2, 2, {1, 1}, 350, 800, 55, 630}}}, + {{MobType::Creeper, 4},{MobStats{3, 2, {1, 1}, 420, 1300, 61, 900}}}, + {{MobType::Creeper, 5},{MobStats{4, 2, {1, 1}, 510, 1850, 67, 1250}}}, - {{MobType::Silverfish, 1},{MobStats{1, 1.6, 38, 125, 18, 120}}}, - {{MobType::Silverfish, 2},{MobStats{1, 1.6, 50, 230, 19, 170}}}, - {{MobType::Silverfish, 3},{MobStats{1, 1.6, 75, 340, 25, 225}}}, - {{MobType::Silverfish, 4},{MobStats{1.5, 1.6, 170, 700, 33, 310}}}, - {{MobType::Silverfish, 5},{MobStats{1.5, 1.6, 200, 1800, 36, 390}}}, + {{MobType::Silverfish, 1},{MobStats{1, 1.6, {1, 1}, 38, 125, 18, 120}}}, + {{MobType::Silverfish, 2},{MobStats{1, 1.6, {1, 1}, 50, 230, 19, 170}}}, + {{MobType::Silverfish, 3},{MobStats{1, 1.6, {1, 1}, 75, 340, 25, 225}}}, + {{MobType::Silverfish, 4},{MobStats{1.5, 1.6, {1, 1}, 170, 700, 33, 310}}}, + {{MobType::Silverfish, 5},{MobStats{1.5, 1.6, {1, 1}, 200, 1800, 36, 390}}}, - {{MobType::Blaze, 1},{MobStats{1, 1.6, 500, 500, 105, 410}}}, - {{MobType::Blaze, 2},{MobStats{1, 1.6, 600, 875, 111, 574}}}, - {{MobType::Blaze, 3},{MobStats{1, 1.6, 720, 1531, 115, 804}}}, - {{MobType::Blaze, 4},{MobStats{1.5, 1.6, 864, 2680, 121, 1125}}}, - {{MobType::Blaze, 5},{MobStats{2, 1.6, 1037, 4689, 127, 1575}}}, + {{MobType::Blaze, 1},{MobStats{1, 1.6, {1, 1}, 500, 500, 105, 410}}}, + {{MobType::Blaze, 2},{MobStats{1, 1.6, {1, 1}, 600, 875, 111, 574}}}, + {{MobType::Blaze, 3},{MobStats{1, 1.6, {1, 1}, 720, 1531, 115, 804}}}, + {{MobType::Blaze, 4},{MobStats{1.5, 1.6, {1, 1}, 864, 2680, 121, 1125}}}, + {{MobType::Blaze, 5},{MobStats{2, 1.6, {1, 1}, 1037, 4689, 127, 1575}}}, - {{MobType::Witch, 1},{MobStats{1, 1.6, 150, 300, 37, 300}}}, - {{MobType::Witch, 2},{MobStats{1, 1.6, 165, 525, 39, 405}}}, - {{MobType::Witch, 3},{MobStats{1, 1.6, 182, 918, 42, 547}}}, - {{MobType::Witch, 4},{MobStats{1.5, 1.6, 200, 1606, 43, 738}}}, - {{MobType::Witch, 5},{MobStats{2, 1.6, 220, 2810, 45, 996}}}, + {{MobType::Witch, 1},{MobStats{1, 1.6, {1, 1}, 150, 300, 37, 300}}}, + {{MobType::Witch, 2},{MobStats{1, 1.6, {1, 1}, 165, 525, 39, 405}}}, + {{MobType::Witch, 3},{MobStats{1, 1.6, {1, 1}, 182, 918, 42, 547}}}, + {{MobType::Witch, 4},{MobStats{1.5, 1.6, {1, 1}, 200, 1606, 43, 738}}}, + {{MobType::Witch, 5},{MobStats{2, 1.6, {1, 1}, 220, 2810, 45, 996}}}, - {{MobType::Slime, 1},{MobStats{1, 0.8, 1500, 1000, 300, 800}}}, - {{MobType::Slime, 2},{MobStats{1.5, 0.8, 1800, 1750, 314, 880}}}, - {{MobType::Slime, 3},{MobStats{2, 0.8, 2160, 3063, 330, 968}}}, - {{MobType::Slime, 4},{MobStats{2.5, 0.8, 2592, 5359, 348, 1065}}}, - {{MobType::Slime, 5},{MobStats{3, 0.8, 3110, 9379, 366, 1171}}}, + {{MobType::Slime, 1},{MobStats{1, 0.8, {1, 1}, 1500, 1000, 300, 800}}}, + {{MobType::Slime, 2},{MobStats{1.5, 0.8, {1, 1}, 1800, 1750, 314, 880}}}, + {{MobType::Slime, 3},{MobStats{2, 0.8, {1, 1}, 2160, 3063, 330, 968}}}, + {{MobType::Slime, 4},{MobStats{2.5, 0.8, {1, 1}, 2592, 5359, 348, 1065}}}, + {{MobType::Slime, 5},{MobStats{3, 0.8, {1, 1}, 3110, 9379, 366, 1171}}}, - {{MobType::Giant, 1},{MobStats{10, 0.8, 4000, 2250, 600, 6250}}}, - {{MobType::Giant, 2},{MobStats{20, 0.8, 4500, 4000, 612, 9375}}}, - {{MobType::Giant, 3},{MobStats{30, 0.8, 5062, 7250, 624, 14062}}}, - {{MobType::Giant, 4},{MobStats{40, 0.8, 5695, 12500, 636, 21093}}}, - {{MobType::Giant, 5},{MobStats{50, 0.8, 6407, 22000, 648, 31640}}}, + {{MobType::Giant, 1},{MobStats{10, 0.8, {1, 1}, 4000, 2250, 600, 6250}}}, + {{MobType::Giant, 2},{MobStats{20, 0.8, {1, 1}, 4500, 4000, 612, 9375}}}, + {{MobType::Giant, 3},{MobStats{30, 0.8, {1, 1}, 5062, 7250, 624, 14062}}}, + {{MobType::Giant, 4},{MobStats{40, 0.8, {1, 1}, 5695, 12500, 636, 21093}}}, + {{MobType::Giant, 5},{MobStats{50, 0.8, {1, 1}, 6407, 22000, 648, 31640}}}, }; const MobStats* getMobStats(MobType type, std::uint8_t level) {