#pragma once
#include "Entity.h"
#include "EntityStateGravity.h"
#include "EntityStateResist.h"
#include "EntityStateSplash.h"
class CS_AmBuyoBuyoBounce :
    public ActionEntity
{
public:
    CS_AmBuyoBuyoBounce(std::shared_ptr<Entity> parent);
    void Init(std::weak_ptr<Entity> self) override;
    void Step() override;
    void Attack(std::weak_ptr<Entity> dst, int* outDamage, float* outAngle, bool* outTakedown, int* outElemType, float* outShockForce, float* outHeavy) override;
    bool Hurt(std::weak_ptr<Entity> src, int getDamage, float angle, bool bTakedown, int elemType, float shockForce, float heavy, int* outRealDamage) override;
    int stateID = 0;
    int exist_counter = 300;
    EntityStateGravity stateGravity;
    EntityStateResist stateResist;
    EntityStateSplash stateSplash;
};

void SetCS_AmBuyoBuyoBounce(std::shared_ptr<Entity> parent, float x, float y, float vx, float vy);