fix c4 time bug

This commit is contained in:
aozhiwei 2021-07-07 02:35:20 +00:00
parent 0e15e58980
commit f99e54b74d
3 changed files with 11 additions and 3 deletions

View File

@ -132,6 +132,13 @@ void Bullet::ProcBomb()
if (!block) {
delay_time = gun_meta->i->missiles_time();
}
if (IsCurrWeapon() &&
sender.Get() &&
sender.Get()->GetAbility()->GetAttrAbs(kHAT_WeaponExplosionDealyTime) > 0) {
delay_time = delay_time / 1000 -
sender.Get()->GetAbility()->GetAttrAbs(kHAT_WeaponExplosionDealyTime) ;
delay_time = std::max(0, delay_time);
}
switch (meta->i->_inventory_slot()) {
case IS_RPG:
{

View File

@ -159,12 +159,13 @@ enum HumanAttrType_e
kHAT_WeaponShotSpeed = 21,
kHAT_WeaponReloadTime = 22,
kHAT_WeaponExplosionRange = 23,
kHAT_WeaponExplosionTime = 24,
kHAT_WeaponExplosionContinueTime = 24,
kHAT_PoisoningReduction = 25,
kHAT_RescueTime = 26,
kHAT_DrugTime = 27,
kHAT_DrugEfficacy = 28,
kHAT_CarOil = 29,
kHAT_WeaponExplosionDealyTime = 30,
kHAT_End
};

View File

@ -196,8 +196,8 @@ void RoomObstacle::SpecExplosion()
}
}
int total_explosion_times = meta->i->explosion_times();
if (context_ability && context_ability->GetAttrAbs(kHAT_WeaponExplosionTime) > 0.001f) {
total_explosion_times += context_ability->GetAttrAbs(kHAT_WeaponExplosionTime) * 1000 /
if (context_ability && context_ability->GetAttrAbs(kHAT_WeaponExplosionContinueTime) > 0.001f) {
total_explosion_times += context_ability->GetAttrAbs(kHAT_WeaponExplosionContinueTime) * 1000 /
meta->i->explosion_interval();
}
if (explosion_times_ >= total_explosion_times) {