Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/playability/src/world_entities/projectiles/spike_ball.h @ 10286

Last change on this file since 10286 was 10286, checked in by nicolasc, 18 years ago

code cleanup, rebuilt spikeball

File size: 1.4 KB
Line 
1/*!
2 * @file spike_ball.h
3 * @brief Noxonian SpikeBall Projectile; 2 stage weapon, splits into spikes
4*/
5
6#ifndef _SPIKE_BALL_H
7#define _SPIKE_BALL_H
8
9#include "projectile_weapon.h"
10#include "spike.h"
11#include "effects/billboard.h"
12
13
14#include "extendable.h"
15
16class Vector;
17class ProjectileWeapon;
18class SpriteParticles;
19class ParticleEmitter;
20class FastFactory;
21
22
23class SpikeBall : public ProjectileWeapon
24{
25  ObjectListDeclaration(SpikeBall);
26  public:
27    SpikeBall ();
28    virtual ~SpikeBall ();
29
30
31    virtual void activate();
32    virtual void deactivate();
33
34    virtual void collidesWith(WorldEntity* entity, const Vector& location);
35
36    virtual void destroy (WorldEntity* killer);
37
38    virtual void tick (float dt);
39    virtual void draw () const;
40
41    inline void setVelocity(Vector velocity) { this->velocity = velocity; }
42
43//     inline Vector getRotationVector() { return this->rotationVector; }
44//     inline float getAngle() { return this->angle; }
45
46  private:
47    static FastFactory*               fastFactory;
48
49    static SpriteParticles*           explosionParticles;
50
51    ParticleEmitter*                  emitter;
52
53    Vector                            velocity;
54
55    Billboard*                        halo;
56
57    WorldEntity* hitEntity; // FIXME TEMPORARY
58
59    void updateFireDir();
60    virtual void blow();
61
62    Vector*       launcher;
63    float         size;
64
65};
66
67#endif /* _SPIKE_BALL_H */
Note: See TracBrowser for help on using the repository browser.