Terminus
weaponwagon.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "abstractwagon.h"
4 
5 namespace terminus
6 {
7 
11 class WeaponWagon : public AbstractWagon
12 {
13 public:
14  WeaponWagon(World & world, Train *train);
15  virtual ~WeaponWagon();
16 
17  virtual void localUpdate() override;
18 
19  virtual void primaryActionInternal() override;
20 
21  virtual float cooldownTime() const override;
22 
23  virtual WagonType wagonType() const override;
24 
25 protected:
34  void fire(QVector3D velocity);
35 
43  virtual QVector3D aimVector();
44 };
45 
46 }
virtual void localUpdate() override
Updates wagon position and rotation.
Definition: weaponwagon.cpp:88
void fire(QVector3D velocity)
Spawn a projectile and set velocity.
Definition: weaponwagon.cpp:52
The WeaponWagon class provides a wagon type, which primary action shoots projectiles in the faced dir...
Definition: weaponwagon.h:11
virtual float cooldownTime() const override
Definition: weaponwagon.cpp:78
virtual ~WeaponWagon()
Definition: weaponwagon.cpp:41
The World class represents a running game instance and contains all graphical (3D) elements of the sc...
Definition: world.h:46
virtual void primaryActionInternal() override
The method that every wagon should override in order to define the wagon-specific primary action...
Definition: weaponwagon.cpp:46
virtual WagonType wagonType() const override
Definition: weaponwagon.cpp:83
Definition: eventhandler.cpp:18
The AbstractWagon class provides a common interface for all wagon types and contains common functiona...
Definition: abstractwagon.h:25
WeaponWagon(World &world, Train *train)
Definition: weaponwagon.cpp:23
WagonType
Definition: abstractwagon.h:13
virtual QVector3D aimVector()
Returns the normalized aim vector.
Definition: weaponwagon.cpp:73
The Train class works as a logical container for all wagons one train consists of.
Definition: train.h:25