#pragma once
#include "Entity.h"
#include "EntityStateGravity.h"
#include "EntityStateSplash.h"
#define CS_ENEMY_GOLEMROCK_CREATENAME L"CS_enemy_golemrock"
//¾ÞÄ§£ºÊ¯Í·
class CS_Enemy_GolemRock :
    public Entity
{
public:
    CS_Enemy_GolemRock();
    void Init(std::weak_ptr<Entity> self) override;
    void Step() override;
    void SetState(int stateID, int lr) override;
    void SetState(std::wstring stateName, 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;
    EntityStateGravity stateGravity;
    EntityStateSplash stateSplash;
    int stateID = 0;
    int wake_counter = 60;
    bool bAction = false;
    int moveinterval_counter = 0;
    int drop_counter = 60;
    int up_counter = 0;
    int trace_counter = 0;
    int press_counter = 0;
    int relax_copunter = 0;
    float walkSound = 0;
    bool bNormalMode = false;
    std::weak_ptr<Entity> target;
};

std::shared_ptr<Entity> CreateCS_Enemy_GolemRock();