diff --git a/server/gameserver/roomobstacle.cc b/server/gameserver/roomobstacle.cc index af8a9ec..5034479 100644 --- a/server/gameserver/roomobstacle.cc +++ b/server/gameserver/roomobstacle.cc @@ -183,14 +183,16 @@ void RoomObstacle::SpecExplosion() bomb_born_offset.Rotate(a8::RandAngle()); bomb_born_offset = bomb_born_offset * a8::RandEx(1, std::max(2, meta->i->explosion_float())); a8::Vec2 bomb_pos = GetPos() + bomb_born_offset; - Explosion explosion; - explosion.IndifferenceAttack( - room, - bomb_pos, - meta->i->damage_dia(), - meta->i->explosion_effect(), - meta->i->damage() - ); + if (room->grid_service->CanAdd(bomb_pos.x, bomb_pos.y)) { + Explosion explosion; + explosion.IndifferenceAttack( + room, + bomb_pos, + meta->i->damage_dia(), + meta->i->explosion_effect(), + meta->i->damage() + ); + } } if (explosion_times_ >= meta->i->explosion_times()) { room->xtimer.DeleteTimer(room->xtimer.GetRunningTimer());