#pragma once
#include "Entity.h"
#include "EntityStateResist.h"
#define CS_BOSS_PUU_CREATENAME L"CS_boss_puu"
//Boss：扑悠
class CS_Boss_Puu :
    public ActionEntity
{
public:
    CS_Boss_Puu();
    void Init(std::weak_ptr<Entity> self) override;
    void Step() override;
    void SetState(int stateID, int lr) 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;
    EntityStateResist stateResist;
    int stateID = 0;
    int bubbleCloud_counter = 0;
    int runJump_counter = 0;
    int run_counter = 0;
    int jump_counter = 0;
    int runJumpInterval_counter = 0;
    void ShootBubble();//往目标发射泡泡
    int level = 0;//难度等级
    int caught_counter = 0;
    std::weak_ptr<Entity> caughtTarget;
    std::weak_ptr<Entity> groupHpBar;
    bool bFindGroupHpBar = true;
    bool bNormalMode = false;
};

std::shared_ptr<Entity> CreateCS_Boss_Puu();