unit.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #pragma once
  2. #include <iostream>
  3. #include <vector>
  4. class Spell {
  5. //empty for allow to compile
  6. };
  7. class Cell {
  8. //waiting a realisation
  9. };
  10. class Unit {
  11. protected:
  12. std::vector <Spell> skills_;
  13. private:
  14. //personal growth
  15. double experience_;
  16. double level_;
  17. //connect with events
  18. double active_points_;
  19. double initiative_;
  20. //movement
  21. Cell* location_; //x - first, y - second
  22. double movement_speed_;
  23. //attack action
  24. double agility_;
  25. double attack_range_;
  26. double damage_per_hit_;
  27. double energy_points_; //for physical attacks
  28. double intelligence_;
  29. double mana_points_; //for magic attacks
  30. double strength_;
  31. //durability
  32. double health_points_;
  33. double magic_defence_; //less or equal 40
  34. double physic_defence_; //less or equal 40
  35. public:
  36. Unit();
  37. virtual ~Unit() = delete;
  38. double getExperience();
  39. void setExperience(double value);
  40. double getLevel();
  41. void setLevel(double value);
  42. double getHealthPoints();
  43. void setHealthPoints(double value);
  44. double getManaPoints();
  45. void setManaPoints(double value);
  46. double getEnergyPoints();
  47. void setEnergyPoints(double value);
  48. double getActivePoints();
  49. void setActivePoints(double value);
  50. double getAttackRange();
  51. void setAttackRange(double value);
  52. Cell* getLocation();
  53. void setLocation(Cell* to);
  54. double getMovementSpeed();
  55. void setMovementSpeed(double value);
  56. double getInitiative();
  57. void setInitiative(double value);
  58. double getDamagePerHit();
  59. void setDamagePerHit(double value);
  60. double getIntelligence();
  61. void setIntelligence(double value);
  62. double getStrength();
  63. void setStrength(double value);
  64. double getAgility();
  65. void setAgility(double value);
  66. double getMagicDefence();
  67. void setMagicDefence(double value);
  68. double getPhysicDefence();
  69. void setPhysicDefence(double value);
  70. virtual void calculateDamagePerHit();
  71. double reduceIncomingDamage(std::string damageType, int value);
  72. };