1
This commit is contained in:
parent
1124b18595
commit
cc3730473a
@ -62,7 +62,7 @@ void Bullet::Update(int delta_time)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
float bullet_range = meta->i->range() + ability.shot_range + buff_attr_abs_[kHAT_ShotRange];
|
float bullet_range = meta->i->range() + master->ability.shot_range + master->BuffAttrAbs(kHAT_ShotRange);
|
||||||
if (!objects.empty() || distance > bullet_range ||
|
if (!objects.empty() || distance > bullet_range ||
|
||||||
(IsBomb() && distance >= fly_distance)
|
(IsBomb() && distance >= fly_distance)
|
||||||
) {
|
) {
|
||||||
@ -238,7 +238,9 @@ void Bullet::ProcMissible(const a8::XParams& param)
|
|||||||
Human* target = sender->room->GetHumanByUniId(param.param2);
|
Human* target = sender->room->GetHumanByUniId(param.param2);
|
||||||
if (target && !target->dead) {
|
if (target && !target->dead) {
|
||||||
if (bullet_meta->i->equip_subtype() == kBulletType_Trace) {
|
if (bullet_meta->i->equip_subtype() == kBulletType_Trace) {
|
||||||
float bullet_range = bullet_meta->i->range() + ability.shot_range + buff_attr_abs_[kHAT_ShotRange];
|
float bullet_range = bullet_meta->i->range() +
|
||||||
|
sender->ability.shot_range +
|
||||||
|
sender->BuffAttrAbs(kHAT_ShotRange);
|
||||||
if (src_pos.Distance(target->pos) < bullet_range) {
|
if (src_pos.Distance(target->pos) < bullet_range) {
|
||||||
target->OnHit();
|
target->OnHit();
|
||||||
if (!target->HasBuffEffect(kBET_Invincible)) {
|
if (!target->HasBuffEffect(kBET_Invincible)) {
|
||||||
|
@ -1581,6 +1581,24 @@ void Human::SendGameOver()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float Human::BuffAttrAbs(int buff_effect_id)
|
||||||
|
{
|
||||||
|
if (buff_effect_id >= kBET_Begin && buff_effect_id < kBET_End) {
|
||||||
|
return buff_attr_abs_[buff_effect_id];
|
||||||
|
} else {
|
||||||
|
return 0.0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
float Human::BuffAttrRate(int buff_effect_id)
|
||||||
|
{
|
||||||
|
if (buff_effect_id >= kBET_Begin && buff_effect_id < kBET_End) {
|
||||||
|
return buff_attr_rate_[buff_effect_id];
|
||||||
|
} else {
|
||||||
|
return 0.0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Human::_UpdateMove(int speed)
|
void Human::_UpdateMove(int speed)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < speed; ++i) {
|
for (int i = 0; i < speed; ++i) {
|
||||||
|
@ -200,6 +200,8 @@ class Human : public Entity
|
|||||||
float* GetAbilityById(int attr_id);
|
float* GetAbilityById(int attr_id);
|
||||||
void RecalcBaseAttr();
|
void RecalcBaseAttr();
|
||||||
void SendGameOver();
|
void SendGameOver();
|
||||||
|
float BuffAttrAbs(int buff_effect_id);
|
||||||
|
float BuffAttrRate(int buff_effect_id);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void _UpdateMove(int speed);
|
void _UpdateMove(int speed);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user