Skill.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #pragma once
  2. #include <Bild.h>
  3. using namespace Framework;
  4. class ActiveSkill
  5. {
  6. protected:
  7. struct SkillDataSave
  8. {
  9. bool active;
  10. double time;
  11. } current, last;
  12. double maxTime;
  13. int ref;
  14. double reloadTimeFactor;
  15. Bild *bild;
  16. // skill bonus added when active
  17. double beschleunigungBonus;
  18. double reparaturBonus;
  19. double laserIntensitätBonus;
  20. double laserEffizienzBonus;
  21. double akkuLeistungBonus;
  22. double maxEnergieBonus;
  23. double maxStabilitätBonus;
  24. double laserTempoBonus;
  25. double wendigkeitBonus;
  26. double antriebEffizienzBonus;
  27. double energieSchildBonus;
  28. double energieSchildEffizienzBonus;
  29. // skil multiplier when active
  30. double beschleunigungFactor;
  31. double reparaturFactor;
  32. double laserIntensitätFactor;
  33. double laserEffizienzFactor;
  34. double akkuLeistungFactor;
  35. double maxEnergieFactor;
  36. double maxStabilitätFactor;
  37. double laserTempoFactor;
  38. double wendigkeitFactor;
  39. double antriebEffizienzFactor;
  40. double energieSchildFactor;
  41. double energieSchildEffizienzFactor;
  42. public:
  43. ActiveSkill( Bild *bild );
  44. ~ActiveSkill();
  45. void save();
  46. void load();
  47. void tick( double time );
  48. void render( int x, int y, Bild &zRObj );
  49. bool isActive() const;
  50. void activate();
  51. void reset();
  52. double getBeschleunigungBonus();
  53. double getReparaturBonus();
  54. double getLaserIntensitätBonus();
  55. double getLaserEffizienzBonus();
  56. double getAkkuLeistungBonus();
  57. double getMaxEnergieBonus();
  58. double getMaxStabilitätBonus();
  59. double getLaserTempoBonus();
  60. double getWendigkeitBonus();
  61. double getAntriebEffizienzBonus();
  62. double getEnergieSchildBonus();
  63. double getEnergieSchildEffizienzBonus();
  64. double getBeschleunigungFactor();
  65. double getReparaturFactor();
  66. double getLaserIntensitätFactor();
  67. double getLaserEffizienzFactor();
  68. double getAkkuLeistungFactor();
  69. double getMaxEnergieFactor();
  70. double getMaxStabilitätFactor();
  71. double getLaserTempoFactor();
  72. double getWendigkeitFactor();
  73. double getAntriebEffizienzFactor();
  74. double getEnergieSchildFactor();
  75. double getEnergieSchildEffizienzFactor();
  76. ActiveSkill *getThis();
  77. ActiveSkill *release();
  78. };
  79. class SpeedBoost : public ActiveSkill
  80. {
  81. public:
  82. SpeedBoost( Bild *bild );
  83. };
  84. class ShieldBoost : public ActiveSkill
  85. {
  86. public:
  87. ShieldBoost( Bild *bild );
  88. };