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

View File

@ -470,25 +470,32 @@ void Bullet::Check(float distance)
}
{
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;
if (c->GetMoveDir().IsZero()) {
shot_angle = dir.CalcAngleEx(a8::Vec2::UP);
} else {
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 (TestCollision(room, &collider)) {
eat = true;
stop = true;
return;
}
} else if (fabs(shot_angle) < 0.000001f &&
shot_angle + A8_PI < A8_PI / 4){
if (TestCollision(room, &collider)) {
eat = true;
stop = true;
return;
}
}
}
}
AabbCollider aabb_box;
c->GetHitAabbBox(aabb_box);
if (c != sender.Get() && !c->dead && TestCollision(room, &aabb_box)) {