Skill.h 2.3 KB

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