Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/branches/levelloader/src/world_entities/weapon.h @ 3725

Last change on this file since 3725 was 3605, checked in by bensch, 20 years ago

orxonox/trunk: merged trunk back to levelloader
merged with command:
svn merge -r 3499:HEAD trunk branches/levelloader

Conflicts in
C track_manager.h
C world_entities/player.cc
C world_entities/player.h
C world_entities/environment.h
C lib/coord/p_node.cc
C defs/debug.h
C track_manager.cc
C story_entities/campaign.h

solved in merge-favouring. It was quite easy because Chris only worked on the headers, and he didi it quite clean. Thats the spirit :)

Conflits in world.cc are a MESS: fix it

File size: 2.0 KB
Line 
1/*!
2    \file weapon.h
3    \brief a weapon that a player can use
4
5    A Player has a list of weapons, that can be choosen to shoot projectiles
6    (projectiles.{cc,h}) at ennemies. These weapons can be shooted sequentially
7    or (if able) combined. Therefore you can choose the weapon mode = choose
8    a weapon.
9
10    A weapon is characterized by:
11     o firing-rate: the initial firing rate of a weapon (1/s = Herz)
12     o slowdown-factor: this is a factor d: exp(-d*x), d is element of all positive R. it determines how fast the firing-rate will slow down. if no slowdown: d=0, the bigger d is, the faster the weapon will slow down!
13     o energy-consumption: this determines the energy that has to be used to produce this projectile = costs per projectile
14   
15    Furthermore there are some other attributes, that will help to represent a firing
16    weapon in this world:
17     o sound file/ressource: this is a pointer to the sound-file/ressource. however it may be represented
18     o shooting animation
19     
20*/
21
22
23#ifndef _WEAPON_H
24#define _WEAPON_H
25
26#include "world_entity.h"
27
28class Projectile;
29
30typedef enum {
31  SHOOT,
32  EMPTY,
33  RELOAD,
34  SPECIAL1,
35  SPECIAL2,
36  SPECIAL3
37} weaponSoundType;
38
39
40class Weapon : public WorldEntity
41{
42  friend class World;
43
44 public:
45  Weapon ();
46  virtual ~Weapon ();
47 
48  void enable(void);
49  void disable(void);
50  bool isEnabled(void);
51
52  void setProjectile(Projectile* projectile);
53  Projectile* getProjectile(void);
54
55  virtual void activate(void);
56  virtual void deactivate(void);
57  bool isActive(void);
58
59  virtual void setWeaponIdleTime(float time);
60  virtual float getWeaponIdleTime(void);
61  virtual bool hasWeaponIdleTimeElapsed(void);
62
63  virtual void fire(void);
64  virtual void hit (WorldEntity* weapon, Vector* loc);
65  virtual void destroy(void);
66 
67  virtual void tick(float time);
68  virtual void weaponIdle(void);
69  virtual void draw(void);
70
71
72 private:
73  bool enabled;
74  float localTime;
75  float slowDownFactor;
76  Projectile* projectile;
77  //WeaponSound sound;
78
79};
80
81#endif /* _WEAPON_H */
Note: See TracBrowser for help on using the repository browser.