add hit
This commit is contained in:
parent
5b05533500
commit
7d9d38aee9
@ -73,6 +73,7 @@ void Bullet::OnHit(std::vector<Entity*>& objects)
|
|||||||
if (!obstacle->dead && obstacle->meta->i->attackable()) {
|
if (!obstacle->dead && obstacle->meta->i->attackable()) {
|
||||||
obstacle->health = std::min(0.0f, obstacle->health - 10);
|
obstacle->health = std::min(0.0f, obstacle->health - 10);
|
||||||
obstacle->dead = std::min(obstacle->health, 0.001f) <= 0.01f;
|
obstacle->dead = std::min(obstacle->health, 0.001f) <= 0.01f;
|
||||||
|
obstacle->dead_frameno = room->frame_no;
|
||||||
if (obstacle->dead) {
|
if (obstacle->dead) {
|
||||||
obstacle->ClearColliders();
|
obstacle->ClearColliders();
|
||||||
room->ProcDrop(obstacle->pos, obstacle->meta->i->drop());
|
room->ProcDrop(obstacle->pos, obstacle->meta->i->drop());
|
||||||
|
@ -81,4 +81,5 @@ void Obstacle::FillMFObjectFull(cs::MFObjectFull* full_data)
|
|||||||
p->set_obstacle_id(meta->i->thing_id());
|
p->set_obstacle_id(meta->i->thing_id());
|
||||||
p->set_health(health);
|
p->set_health(health);
|
||||||
p->set_dead(dead);
|
p->set_dead(dead);
|
||||||
|
p->set_dead_at_thisframe(dead ? dead_frameno < room->frame_no : false);
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@ class Obstacle : public Entity
|
|||||||
MetaData::MapThing* meta = nullptr;
|
MetaData::MapThing* meta = nullptr;
|
||||||
float health = 0.0f;
|
float health = 0.0f;
|
||||||
bool dead = false;
|
bool dead = false;
|
||||||
|
long long dead_frameno = 0;
|
||||||
|
|
||||||
Obstacle();
|
Obstacle();
|
||||||
virtual ~Obstacle() override;
|
virtual ~Obstacle() override;
|
||||||
|
@ -19,6 +19,7 @@ const int ANDROID_NUM = 0;
|
|||||||
void Room::Update(int delta_time)
|
void Room::Update(int delta_time)
|
||||||
{
|
{
|
||||||
elapsed_time_ += delta_time;
|
elapsed_time_ += delta_time;
|
||||||
|
++frame_no;
|
||||||
while (elapsed_time_ >= 50) {
|
while (elapsed_time_ >= 50) {
|
||||||
ResetFrameData();
|
ResetFrameData();
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
@ -33,6 +33,7 @@ public:
|
|||||||
long long room_uuid = 0;
|
long long room_uuid = 0;
|
||||||
MetaData::Map* map_meta = nullptr;
|
MetaData::Map* map_meta = nullptr;
|
||||||
RoomFrameData frame_data;
|
RoomFrameData frame_data;
|
||||||
|
long long frame_no = 0;
|
||||||
|
|
||||||
void Update(int delta_time);
|
void Update(int delta_time);
|
||||||
bool IsFull();
|
bool IsFull();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user