#pragma once
#include "Entity.h"
#include "CS_AmBubbleBeam.h"
class CS_AmBubbleBeamCharge :
    public Entity
{
public:
    CS_AmBubbleBeamCharge(std::shared_ptr<Entity> parent, DWORD keyMask, int level,
        void(*AddToAmList)(std::weak_ptr<Entity>, std::weak_ptr<CS_AmBubbleBeam>),
        void(*RemoveFromAmList)(std::weak_ptr<Entity>, std::weak_ptr<CS_AmBubbleBeam>));
    void Step() override;
    void(*AddToAmList)(std::weak_ptr<Entity> parent, std::weak_ptr<CS_AmBubbleBeam> am) = nullptr;
    void(*RemoveFromAmList)(std::weak_ptr<Entity> parent, std::weak_ptr<CS_AmBubbleBeam> am) = nullptr;
    int level = 0;
    int charge_counter = 60;
    DWORD keyMask;
    bool bShot = false;
    int shot_counter = 0;
    const float shotSpeed = 0x800 / ts;
};

