This commit is contained in:
aozhiwei 2022-09-29 13:08:27 +08:00
parent b7fae74af6
commit f8c9c26d8a
2 changed files with 6 additions and 3 deletions

View File

@ -215,7 +215,7 @@ void RoomObstacle::UpdateTimerFunc()
} }
} }
void RoomObstacle::SpecExplosion() void RoomObstacle::SpecExplosion(int delay_time)
{ {
++explosion_times_; ++explosion_times_;
if (meta->i->damage_dia() > 0.01f) { if (meta->i->damage_dia() > 0.01f) {
@ -234,6 +234,9 @@ void RoomObstacle::SpecExplosion()
if (room->grid_service->CanAdd(bomb_pos.x, bomb_pos.y)) { if (room->grid_service->CanAdd(bomb_pos.x, bomb_pos.y)) {
std::shared_ptr<Explosion> explosion = EntityFactory::Instance()->MakeExplosion(); std::shared_ptr<Explosion> explosion = EntityFactory::Instance()->MakeExplosion();
explosion->exclude_uniid = GetUniId(); explosion->exclude_uniid = GetUniId();
if (delay_time > 0) {
explosion->SetDamageDelay(delay_time);
}
explosion->IndifferenceAttack( explosion->IndifferenceAttack(
room, room,
bomb_pos, bomb_pos,
@ -398,7 +401,7 @@ void RoomObstacle::ActiveSelfExplosion()
[] (const a8::XParams& param) [] (const a8::XParams& param)
{ {
RoomObstacle* obstacle = (RoomObstacle*)param.sender.GetUserData(); RoomObstacle* obstacle = (RoomObstacle*)param.sender.GetUserData();
obstacle->SpecExplosion(); obstacle->SpecExplosion(obstacle->meta->i->explosion_dmg_delay());
}, },
&obstacle->xtimer_attacher.timer_list_ &obstacle->xtimer_attacher.timer_list_
); );

View File

@ -43,7 +43,7 @@ class RoomObstacle : public Obstacle
void DestoryAt(int time); void DestoryAt(int time);
private: private:
void SpecExplosion(); void SpecExplosion(int delay_time = 0);
void ActiveSelfExplosion(); void ActiveSelfExplosion();
void ActiveMine(); void ActiveMine();
void ActiveTrap(); void ActiveTrap();