添加机甲属性加成
This commit is contained in:
parent
417813f2d5
commit
a593062cb3
@ -66,10 +66,10 @@ void Bullet::OnHit(std::set<Entity*>& objects)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!hum->dead && (IsBomb() || player->team_id != hum->team_id)) {
|
if (!hum->dead && (IsBomb() || player->team_id != hum->team_id)) {
|
||||||
float dmg = GetAtk() * (1 + player->GetBuffAttrRate(kHAT_Atk)) +
|
float dmg = GetAtk() * (1 + player->GetAttrRate(kHAT_Atk)) +
|
||||||
player->GetBuffAttrAbs(kHAT_Atk);
|
player->GetAttrAbs(kHAT_Atk);
|
||||||
float def = hum->ability.def * (1 + hum->GetBuffAttrRate(kHAT_Def)) +
|
float def = hum->ability.def * (1 + hum->GetAttrRate(kHAT_Def)) +
|
||||||
hum->GetBuffAttrAbs(kHAT_Def);
|
hum->GetAttrAbs(kHAT_Def);
|
||||||
float finaly_dmg = dmg * (1 - def/MetaMgr::Instance()->K);
|
float finaly_dmg = dmg * (1 - def/MetaMgr::Instance()->K);
|
||||||
finaly_dmg = std::max(finaly_dmg, 0.0f);
|
finaly_dmg = std::max(finaly_dmg, 0.0f);
|
||||||
player->stats.damage_amount_out += finaly_dmg;
|
player->stats.damage_amount_out += finaly_dmg;
|
||||||
@ -86,8 +86,8 @@ void Bullet::OnHit(std::set<Entity*>& objects)
|
|||||||
if (!obstacle->IsDead(room) &&
|
if (!obstacle->IsDead(room) &&
|
||||||
obstacle->Attackable() &&
|
obstacle->Attackable() &&
|
||||||
!obstacle->IsTerminatorAirDropBox(room)) {
|
!obstacle->IsTerminatorAirDropBox(room)) {
|
||||||
float dmg = GetAtk() * (1 + player->GetBuffAttrRate(kHAT_Atk)) +
|
float dmg = GetAtk() * (1 + player->GetAttrRate(kHAT_Atk)) +
|
||||||
player->GetBuffAttrAbs(kHAT_Atk);
|
player->GetAttrAbs(kHAT_Atk);
|
||||||
float def = 0;
|
float def = 0;
|
||||||
float finaly_dmg = dmg * (1 - def/MetaMgr::Instance()->K);
|
float finaly_dmg = dmg * (1 - def/MetaMgr::Instance()->K);
|
||||||
obstacle->SetHealth(room, std::max(0.0f, obstacle->GetHealth(room) - finaly_dmg));
|
obstacle->SetHealth(room, std::max(0.0f, obstacle->GetHealth(room) - finaly_dmg));
|
||||||
|
@ -3157,6 +3157,42 @@ float Human::GetBuffAttrRate(int attr_type)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float Human::GetAttrAbs(int attr_id)
|
||||||
|
{
|
||||||
|
float attr_abs_val = GetBuffAttrAbs(attr_id);
|
||||||
|
if (attr_id == kHAT_Atk || attr_id == kHAT_Def) {
|
||||||
|
Buff* buff = GetBuffByEffectId(kBET_Car);
|
||||||
|
if (buff) {
|
||||||
|
MetaData::Equip* equip_meta = MetaMgr::Instance()->GetEquip(buff->meta->param4);
|
||||||
|
if (equip_meta) {
|
||||||
|
switch (attr_id) {
|
||||||
|
case kHAT_Atk:
|
||||||
|
{
|
||||||
|
attr_abs_val += equip_meta->i->atk();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case kHAT_Def:
|
||||||
|
{
|
||||||
|
attr_abs_val += equip_meta->i->def();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return attr_abs_val;
|
||||||
|
}
|
||||||
|
|
||||||
|
float Human::GetAttrRate(int attr_id)
|
||||||
|
{
|
||||||
|
float attr_rate_val = GetBuffAttrRate(attr_id);
|
||||||
|
return attr_rate_val;
|
||||||
|
}
|
||||||
|
|
||||||
bool Human::IsPlayer() const
|
bool Human::IsPlayer() const
|
||||||
{
|
{
|
||||||
return IsEntitySubType(EST_Player);
|
return IsEntitySubType(EST_Player);
|
||||||
|
@ -269,6 +269,8 @@ class Human : public MoveableEntity
|
|||||||
void DecItem(int item_id, int item_num);
|
void DecItem(int item_id, int item_num);
|
||||||
float GetBuffAttrAbs(int attr_id);
|
float GetBuffAttrAbs(int attr_id);
|
||||||
float GetBuffAttrRate(int attr_id);
|
float GetBuffAttrRate(int attr_id);
|
||||||
|
float GetAttrAbs(int attr_id);
|
||||||
|
float GetAttrRate(int attr_id);
|
||||||
bool IsPlayer() const;
|
bool IsPlayer() const;
|
||||||
bool IsAndroid() const;
|
bool IsAndroid() const;
|
||||||
void DropItems(Obstacle* obstacle);
|
void DropItems(Obstacle* obstacle);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user