添加子弹属性

This commit is contained in:
aozhiwei 2021-06-29 05:58:52 +00:00
parent e78921be40
commit 37481d59a1
5 changed files with 10 additions and 14 deletions

View File

@ -284,7 +284,11 @@ float Bullet::GetAtk()
Android* android = (Android*)sender.Get();
atk *= android->ai->GetAttackRate();
}
return atk;
float attr_rate = 1 + sender.Get()->GetAttrRate(kHAT_Atk);
if (IsCurrWeapon()) {
attr_rate += sender.Get()->GetAttrRate(kHAT_WeaponDmg);
}
return atk * attr_rate;
}
void Bullet::Check(float distance)

View File

@ -267,8 +267,7 @@ float Car::GetSpeed()
void Car::OnBulletHit(Bullet* bullet)
{
if (!IsDead(room)) {
float dmg = bullet->GetAtk() * (1 + bullet->sender.Get()->GetAttrRate(kHAT_Atk)) +
bullet->sender.Get()->GetAttrAbs(kHAT_Atk) + bullet->gun_meta->i->atk_mech();
float dmg = bullet->GetAtk() + bullet->gun_meta->i->atk_mech();
float def = ability.def * (1 + GetAttrRate(kHAT_Def)) +
GetAttrAbs(kHAT_Def);
float finaly_dmg = dmg * (1 - def/MetaMgr::Instance()->K);

View File

@ -82,8 +82,7 @@ void Hero::OnBulletHit(Bullet* bullet)
return;
}
if (!IsDead(room) && (bullet->IsBomb() || bullet->sender.Get()->team_id != team_id)) {
float dmg = bullet->GetAtk() * (1 + bullet->sender.Get()->GetAttrRate(kHAT_Atk)) +
bullet->sender.Get()->GetAttrAbs(kHAT_Atk);
float dmg = bullet->GetAtk();
float def = ability.def * (1 + GetAttrRate(kHAT_Def)) +
GetAttrAbs(kHAT_Def);
float finaly_dmg = dmg * (1 - def/MetaMgr::Instance()->K);

View File

@ -3469,13 +3469,8 @@ void Human::OnBulletHit(Bullet* bullet)
return;
}
if (!dead && (bullet->IsBomb() || bullet->sender.Get()->team_id != team_id)) {
float attr_rate = 1 + bullet->sender.Get()->GetAttrRate(kHAT_Atk);
if (bullet->IsCurrWeapon()) {
attr_rate += bullet->sender.Get()->GetAttrRate(kHAT_WeaponDmg);
}
float dmg = bullet->GetAtk() * attr_rate + bullet->sender.Get()->GetAttrAbs(kHAT_Atk);
float def = ability.def * (1 + GetAttrRate(kHAT_Def)) +
GetAttrAbs(kHAT_Def);
float dmg = bullet->GetAtk();
float def = ability.def * (1 + GetAttrRate(kHAT_Def)) + GetAttrAbs(kHAT_Def);
float finaly_dmg = dmg * (1 - def/MetaMgr::Instance()->K);
finaly_dmg = std::max(finaly_dmg, 0.0f);
#if 0

View File

@ -487,8 +487,7 @@ void Obstacle::OnBulletHit(Bullet* bullet)
}
}
}
float dmg = bullet->GetAtk() * (1 + bullet->sender.Get()->GetAttrRate(kHAT_Atk)) +
bullet->sender.Get()->GetAttrAbs(kHAT_Atk);
float dmg = bullet->GetAtk();
float def = 0;
float finaly_dmg = dmg * (1 - def/MetaMgr::Instance()->K);
SetHealth(bullet->room, std::max(0.0f, GetHealth(bullet->room) - finaly_dmg));