1 #ifndef WARP_JAMMER_H 2 #define WARP_JAMMER_H 3 4 #include "spaceObject.h" 5 6 class WarpJammer : public SpaceObject 7 { 8 static PVector<WarpJammer> jammer_list; 9 10 float range; 11 float hull; 12 13 ScriptSimpleCallback on_destruction; 14 ScriptSimpleCallback on_taking_damage; 15 public: 16 WarpJammer(); 17 ~WarpJammer(); 18 setRange(float range)19 void setRange(float range) { this->range = range; } getRange()20 float getRange() { return range; } 21 22 virtual void drawOnRadar(sf::RenderTarget& window, sf::Vector2f position, float scale, float rotation, bool long_range) override; 23 canBeTargetedBy(P<SpaceObject> other)24 virtual bool canBeTargetedBy(P<SpaceObject> other) override { return true; } 25 virtual void takeDamage(float damage_amount, DamageInfo info) override; 26 27 static bool isWarpJammed(sf::Vector2f position); 28 static sf::Vector2f getFirstNoneJammedPosition(sf::Vector2f start, sf::Vector2f end); 29 30 void onTakingDamage(ScriptSimpleCallback callback); 31 void onDestruction(ScriptSimpleCallback callback); 32 33 virtual string getExportLine() override; 34 }; 35 36 #endif//WARP_JAMMER_H 37