feat: add mob size
This commit is contained in:
@@ -6,6 +6,8 @@
|
||||
#include <vector>
|
||||
#include <memory>
|
||||
|
||||
#include <glm/glm.hpp>
|
||||
|
||||
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; }
|
||||
|
||||
@@ -88,66 +88,66 @@ bool Mob::hasEffect(EffectType type) {
|
||||
typedef std::pair<MobType, std::uint8_t> MobKey;
|
||||
|
||||
const std::map<MobKey, MobStats> 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) {
|
||||
|
||||
Reference in New Issue
Block a user