Bomberman-OverlordEngine-x64 / BombermanGame / Prefabs / Bomberman / Bush.h
Bush.h
Raw
#pragma once

class DiffuseAnimatedMaterial;

class Bush : public GameObject
{
public:
	Bush(const XMFLOAT3& startPos);
	~Bush() override = default;

	Bush(const Bush& other) = delete;
	Bush(Bush&& other) noexcept = delete;
	Bush& operator=(const Bush& other) = delete;
	Bush& operator=(Bush&& other) noexcept = delete;

	void Explode();

	void DrawImGui();

protected:
	void Initialize(const SceneContext&) override;
	void Update(const SceneContext&) override;

private:
	static PxMaterial* m_pPxMaterial;

	float m_ExplosionTime{ 0.5f };
	bool m_DidExplode{ false };

	DiffuseAnimatedMaterial* m_pAnimatedMaterial;
	static std::vector<UINT> m_MaterialIds;
	static int m_Count;
	const float m_Amplitude{ 0.1f };
	const float m_Frequency{ 2.f };

	GameObject* m_pFoliage{ nullptr };
	GameObject* m_pShadow{ nullptr };
	GameObject* m_pExplosionQuad{ nullptr };

	XMFLOAT3 m_StartPos;
	float m_ScaleDelay{};
	float m_OffsetY{};
};