ForcePod

The ForcePod class handle all force pod weapons

class ForcePod {
public:
    ForcePod(Room &room, Player &player);
    ~ForcePod() = default;
    void refresh();
    void toggleFront();
    void shootBomb();
    void shootLaser();
    void shootRay();
    void bombCollide(IEntity &other);
    void laserCollide(IEntity &other);
    void rayCollide(IEntity &other);
    void setLvl(u_char lvl);
    u_char getLvl() const;
    std::chrono::system_clock::time_point _lastLaserHit;
    std::chrono::system_clock::time_point _lastRayHit;
private:
    bool _isFront;
    std::chrono::system_clock::time_point _lastBomb;
    std::chrono::system_clock::time_point _lastRay;
    std::chrono::system_clock::time_point _lastLaser;
    u_char lvl = 0;
    std::vector<std::unique_ptr<Bomb>> _bombs;
    std::vector<std::unique_ptr<Laser>> _lasers;
    std::vector<std::unique_ptr<Ray>> _rays;
    Room &_room;
    Player &_player;
};

Constructor

The constrcutor need two parameters:

  • The room in wich the force pod is created

  • The player who own the forcce pod

Shoot

The shoots methods are used to shoot with each weapons:

Collide

The collides methods are used to check if an entity is colliding with a weapon in this forcepod

Refresh

The refresh method is used to refresh each weapons by colling the refresh function for all of them

Lvl

In this class, weapons are unlock step by step with the level

  • lvl 1 : Bombs

  • lvl 2 : Rays

  • lvl 3: Lasers

Last updated