/*! * @file lbolt.h * @brief light blaster lbolt */ #ifndef _SPIKE_BALL_H #define _SPIKE_BALL_H #include "projectile.h" #include "effects/billboard.h" #include "../weapons/spike_launcher.h" #include "extendable.h" class Vector; class Weapon; class SpriteParticles; class ParticleEmitter; class FastFactory; class WeaponManager; class SpikeBall : public Projectile { ObjectListDeclaration(SpikeBall); public: SpikeBall (); virtual ~SpikeBall (); virtual void activate(); virtual void deactivate(); virtual void collidesWith(WorldEntity* entity, const Vector& location); virtual void destroy (WorldEntity* killer); virtual void tick (float dt); virtual void draw () const; inline Vector getRotationVector() { return this->rotationVector; } inline float getAngle() { return this->angle; } // virtual void blow(); private: static FastFactory* fastFactory; static SpriteParticles* explosionParticles; ParticleEmitter* emitter; float speed; float angle; float rotationSpeed; Vector rotationVector; Billboard* halo; WorldEntity* hitEntity; // FIXME TEMPORARY WeaponManager* weaponMan; bool ttd; }; #endif /* _SPIKE_BALL_H */