Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/playability/src/world_entities/projectiles/swarm_projectile.h @ 10451

Last change on this file since 10451 was 10368, checked in by patrick, 18 years ago

merged the branche playability into the trunk

File size: 1.5 KB
Line 
1/*!
2 * @file swarm_projectile.h
3 * @brief a SwarmProjectile Projectile
4*/
5
6#ifndef _SWARM_PROJECTILE_H
7#define _SWARM_PROJECTILE_H
8
9#include "projectile.h"
10
11class Weapon;
12class SpriteParticles;
13class ParticleEmitter;
14class FastFactory;
15class Aim;
16class Trail;
17
18class SwarmProjectile : public Projectile
19{
20  ObjectListDeclaration(SwarmProjectile);
21  public:
22    SwarmProjectile ();
23    virtual ~SwarmProjectile ();
24
25    virtual void activate();
26    virtual void deactivate();
27
28    virtual void hit (WorldEntity* entity, float damage);
29
30    virtual void destroy (WorldEntity* killer);
31
32    virtual void tick (float time);
33    virtual void draw () const;
34
35    void setTarget(PNode* target);
36
37  private:
38    static FastFactory*               fastFactory;
39    static SpriteParticles*           explosionParticles;
40
41    Trail*                            trail;
42
43    ParticleEmitter*                  emitter;
44    float                             agility;
45    float                             maxVelocity;
46    float                             speed;
47    Vector                            diffVector ;
48    Vector                            correctionVector;
49
50    Vector                            curDir;
51    Vector                            lastDir;
52    Vector                            oldPos;
53
54    WorldEntity* hitEntity; // FIXME TEMPORARY
55
56    Vector newDirection(Vector curDirection, Vector estTargetDir, float angle);
57
58    // spinning missle
59    float                             rotationSpeed;
60    float                             angle;
61};
62
63#endif /* _SWARM_PROJECTILE_H */
Note: See TracBrowser for help on using the repository browser.