Orxonox  0.0.5 Codename: Arcturus
SplitGun.h
Go to the documentation of this file.
1 /*
2  * ORXONOX - the hottest 3D action shooter ever to exist
3  * > www.orxonox.net <
4  *
5  *
6  * License notice:
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21  *
22  * Author:
23  * Fabien Vultier
24  * Co-authors:
25  * ...
26  *
27  */
28 
34 #ifndef _SplitGun_H__
35 #define _SplitGun_H__
36 
37 #include "weapons/WeaponsPrereqs.h"
39 
40 namespace orxonox
41 {
42 
51  {
52  public:
53  SplitGun(Context* context);
54  virtual ~SplitGun();
55 
56  virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
57  virtual void fire() override;
58 
59  inline void setNumberOfSplits(int numberOfSplits)
60  { this->numberOfSplits_ = numberOfSplits; }
61  inline int getNumberOfSplits() const
62  { return this->numberOfSplits_; }
63  inline void setNumberOfChilds(int numberOfChilds)
64  { this->numberOfChilds_ = numberOfChilds; }
65  inline int getNumberOfChilds() const
66  { return this->numberOfChilds_; }
67  inline void setSplitTime(float splitTime)
68  { this->splitTime_ = splitTime; }
69  inline float getSplitTime() const
70  { return this->splitTime_; }
71  inline void setSpread(float spread)
72  { this->spread_ = spread; }
73  inline float getSpread() const
74  { return this->spread_; }
75  inline void setDamageReduction(float damageReduction)
76  { this->damageReduction_ = (damageReduction >= 0.0f ? damageReduction : 1.0f); }
77  inline float getDamageReduction() const
78  { return this->damageReduction_; }
79 
80  private:
81  float speed_; //The speed of the fired projectile.
82  int numberOfSplits_; //The number of times the projectile will split into child projectiles
83  int numberOfChilds_; //The number of child projectiles that are created if the projectile splits
84  float splitTime_; //The time between creation of the projectile and the split of the projectile
85  float spread_; //Low spread means that the child projectiles are concentrated in a small area
86  float damageReduction_; //The damage of a child projectile is reduced by this factor
87  };
88 }
89 
90 #endif /* _SplitGun_H__ */
A WeaponMode that fires projectiles that may split up into many other projectiles, that may again split up ...
Definition: SplitGun.h:50
void setSpread(float spread)
Definition: SplitGun.h:71
float damageReduction_
Definition: SplitGun.h:86
void setSplitTime(float splitTime)
Definition: SplitGun.h:67
void setNumberOfChilds(int numberOfChilds)
Definition: SplitGun.h:63
Shared library macros, enums, constants and forward declarations for the weapons module ...
float spread_
Definition: SplitGun.h:85
int getNumberOfSplits() const
Definition: SplitGun.h:61
xmlelement
Definition: Super.h:519
A WeaponMode defines how a Weapon is used.
Definition: WeaponMode.h:49
float getDamageReduction() const
Definition: SplitGun.h:77
int numberOfSplits_
Definition: SplitGun.h:82
float splitTime_
Definition: SplitGun.h:84
Die Wagnis Klasse hat die folgenden Aufgaben:
Definition: ApplicationPaths.cc:66
void setNumberOfSplits(int numberOfSplits)
Definition: SplitGun.h:59
Mode
Definition: CorePrereqs.h:102
float getSpread() const
Definition: SplitGun.h:73
Definition: Context.h:45
int numberOfChilds_
Definition: SplitGun.h:83
float speed_
Definition: SplitGun.h:81
int getNumberOfChilds() const
Definition: SplitGun.h:65
float getSplitTime() const
Definition: SplitGun.h:69
void setDamageReduction(float damageReduction)
Definition: SplitGun.h:75
#define _WeaponsExport
Definition: WeaponsPrereqs.h:60