#pragma once #include "entity.h" namespace MetaData { struct Player; struct Equip; struct EquipUpgrade; } class Human; class CircleCollider; class Bullet : public Entity { public: MetaData::Equip* gun_meta = nullptr; MetaData::EquipUpgrade* gun_upgrade_meta = nullptr; MetaData::Equip* meta = nullptr; Human* player = nullptr; Vector2D dir; Vector2D born_pos; Vector2D born_dir; float fly_distance = 0.0f; Bullet(); virtual ~Bullet() override; virtual void Initialize() override; virtual void Update(int delta_time) override; void RecalcSelfCollider(); private: void OnHit(std::set& objects); void ProcBomb(); bool IsBomb(); private: CircleCollider* self_collider_ = nullptr; };