altEngine
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
projectile.h
Go to the documentation of this file.
1 #include "include.h"
2 
3 #ifndef PROJECTILE_H
4 #define PROJECTILE_H
5 
6 class Projectile
7 {
8 public:
9  Projectile(Entity *entity, Audio &audio);
10  ~Projectile();
11  void create_sources(Audio &audio);
12  void destroy(Audio &audio);
14 
15  bool noise;
16 
17  char noise_str[128];
18  unsigned int pickup_index;
19  unsigned int respawn_index;
20  unsigned int explode_index;
21  unsigned int idle_index;
22 
23 
26  float radius;
27  int source;
29  unsigned int pickup_buf;
30  unsigned int respawn_buf;
31 
32  // I should probably split item pickups from projectiles as it's starting to get complex
33 // bool projectile;
34  int explode_type; // type of explosion sprite
37  unsigned int explode_timer; // How long an explosion lasts (light effect, damage trigger time)
38  unsigned int idle_timer; // How long after stopping something sits before exploding (should probaably be from when fired)
39  unsigned int splash_damage; // Damage given when exploding
40  float splash_radius; // Trigger pickup radius when exploding
41  float knockback; // Amount to knock people back when exploding (scaled by radius)
42  bool hide; // whether it should disappear when active
43  bool active; // active when picked up
44  bool played;
45  bool client_active; // client side pickup registration (to prevent repeatedly picking something up client side)
46  bool idle; // Delete when it stops moving
47  bool explode; // Does it explode
48  bool health; // For health items, prevents giving over 100
49  bool armor; // For armor items, prevents giving over 200
50  float timeout; // Timeout between pickups respawning
52  int owner;
53  unsigned int num_bounce;
54 };
55 
56 #endif