Skill.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #pragma once
  2. #include <ReferenceCounter.h>
  3. class ActiveSkill : public virtual Framework::ReferenceCounter
  4. {
  5. protected:
  6. bool active;
  7. double time;
  8. double maxTime;
  9. double reloadTimeFactor;
  10. // skill bonus added when active
  11. double beschleunigungBonus;
  12. double reparaturBonus;
  13. double laserIntensityBonus;
  14. double laserEffizienzBonus;
  15. double akkuLeistungBonus;
  16. double maxEnergieBonus;
  17. double maxStabilityBonus;
  18. double laserTempoBonus;
  19. double wendigkeitBonus;
  20. double antriebEffizienzBonus;
  21. double energieSchildBonus;
  22. double energieSchildEffizienzBonus;
  23. // skil multiplier when active
  24. double beschleunigungFactor;
  25. double reparaturFactor;
  26. double laserIntensityFactor;
  27. double laserEffizienzFactor;
  28. double akkuLeistungFactor;
  29. double maxEnergieFactor;
  30. double maxStabilityFactor;
  31. double laserTempoFactor;
  32. double wendigkeitFactor;
  33. double antriebEffizienzFactor;
  34. double energieSchildFactor;
  35. double energieSchildEffizienzFactor;
  36. public:
  37. ActiveSkill();
  38. ~ActiveSkill();
  39. void tick( double time );
  40. bool isActive() const;
  41. void activate();
  42. void reset();
  43. double getBeschleunigungBonus();
  44. double getReparaturBonus();
  45. double getLaserIntensityBonus();
  46. double getLaserEffizienzBonus();
  47. double getAkkuLeistungBonus();
  48. double getMaxEnergieBonus();
  49. double getMaxStabilityBonus();
  50. double getLaserTempoBonus();
  51. double getWendigkeitBonus();
  52. double getAntriebEffizienzBonus();
  53. double getEnergieSchildBonus();
  54. double getEnergieSchildEffizienzBonus();
  55. double getBeschleunigungFactor();
  56. double getReparaturFactor();
  57. double getLaserIntensityFactor();
  58. double getLaserEffizienzFactor();
  59. double getAkkuLeistungFactor();
  60. double getMaxEnergieFactor();
  61. double getMaxStabilityFactor();
  62. double getLaserTempoFactor();
  63. double getWendigkeitFactor();
  64. double getAntriebEffizienzFactor();
  65. double getEnergieSchildFactor();
  66. double getEnergieSchildEffizienzFactor();
  67. };
  68. class SpeedBoost : public ActiveSkill
  69. {
  70. public:
  71. SpeedBoost();
  72. };
  73. class ShieldBoost : public ActiveSkill
  74. {
  75. public:
  76. ShieldBoost();
  77. };