This commit is contained in:
aozhiwei 2022-08-11 19:46:46 +08:00
parent 2ef15fc823
commit 5ad3556e20

View File

@ -470,22 +470,29 @@ void Bullet::Check(float distance)
} }
{ {
Buff* hold_shield_buff = c->GetBuffByEffectId(kBET_HoldShield); Buff* hold_shield_buff = c->GetBuffByEffectId(kBET_HoldShield);
if (hold_shield_buff && !IsBomb()) { if (hold_shield_buff && !IsBomb() && !c->dead && c != sender.Get()) {
float shot_angle = 0.0f; float shot_angle = 0.0f;
if (c->GetMoveDir().IsZero()) { if (c->GetMoveDir().IsZero()) {
shot_angle = dir.CalcAngleEx(a8::Vec2::UP); shot_angle = dir.CalcAngleEx(a8::Vec2::UP);
} else { } else {
shot_angle = dir.CalcAngleEx(c->GetMoveDir()); shot_angle = dir.CalcAngleEx(c->GetMoveDir());
} }
CircleCollider collider;
collider.owner = c;
collider.rad = hold_shield_buff->meta->param1;
if (shot_angle < A8_PI / 4) { if (shot_angle < A8_PI / 4) {
eat = true; if (TestCollision(room, &collider)) {
stop = true; eat = true;
return; stop = true;
return;
}
} else if (fabs(shot_angle) < 0.000001f && } else if (fabs(shot_angle) < 0.000001f &&
shot_angle + A8_PI < A8_PI / 4){ shot_angle + A8_PI < A8_PI / 4){
eat = true; if (TestCollision(room, &collider)) {
stop = true; eat = true;
return; stop = true;
return;
}
} }
} }
} }