This commit is contained in:
aozhiwei 2021-03-11 17:42:00 +08:00
parent 627b32badf
commit f81d20b4b7

View File

@ -169,32 +169,43 @@ void Bullet::ProcBomb()
}
});
switch (meta->i->_inventory_slot()) {
case 4:
{
//榴弹炮
a8::Vec2 bomb_pos = GetPos();
room->frame_event.AddExplosionEx(player, meta->i->id(), bomb_pos,
gun_meta->i->explosion_effect());
OnHit(objects);
if (objects.empty()) {
float bullet_range = gun_meta->i->range();
if (gun_upgrade_meta && gun_upgrade_meta->GetAttrValue(gun_lv, kHAT_ShotRange) > 0) {
bullet_range += gun_upgrade_meta->GetAttrValue(gun_lv, kHAT_ShotRange);
}
break;
case 5:
{
//手雷
a8::Vec2 bomb_pos = GetPos();
room->frame_event.AddExplosion(this, meta->i->id(), bomb_pos);
OnHit(objects);
float distance = (GetPos() - born_pos).Norm();
if (distance >= bullet_range) {
player->SummonObstacle(0, GetPos());
}
break;
case 6:
{
//烟雾弹
a8::Vec2 bomb_pos = GetPos();
room->frame_event.AddSmoke(this, meta->i->id(), bomb_pos);
ProcSmokeBomb();
} else {
switch (meta->i->_inventory_slot()) {
case 4:
{
//榴弹炮
a8::Vec2 bomb_pos = GetPos();
room->frame_event.AddExplosionEx(player, meta->i->id(), bomb_pos,
gun_meta->i->explosion_effect());
OnHit(objects);
}
break;
case 5:
{
//手雷
a8::Vec2 bomb_pos = GetPos();
room->frame_event.AddExplosion(this, meta->i->id(), bomb_pos);
OnHit(objects);
}
break;
case 6:
{
//烟雾弹
a8::Vec2 bomb_pos = GetPos();
room->frame_event.AddSmoke(this, meta->i->id(), bomb_pos);
ProcSmokeBomb();
}
break;
}
break;
}
room->RemoveObjectLater(this);
}