diff --git a/webapp/models/Hero.php b/webapp/models/Hero.php index 5a0135c7..fc63068d 100644 --- a/webapp/models/Hero.php +++ b/webapp/models/Hero.php @@ -149,10 +149,10 @@ class Hero extends BaseModel { $newAttr = emptyReplace(json_decode($row['rand_attr'], true), array()); $baseAttr = mt\Hero::getHeroAttr($heroMeta); mt\AttrHelper::mergeAttr($newAttr, $baseAttr); - $hp = $heroMeta['hp'] * (1 + mt\AttrHelper::getRateVal($newAttr, kHAT_Hp)); - $speed = $heroMeta['move_speed'] * (1 + mt\AttrHelper::getRateVal($newAttr, kHAT_Speed)); - $atk = $heroMeta['damage'] * (1 + mt\AttrHelper::getRateVal($newAttr, kHAT_Atk)); - $def = $heroMeta['defence'] * (1 + mt\AttrHelper::getRateVal($newAttr, kHAT_Def)); + $hp = $heroMeta['hp'] * (1 + mt\AttrHelper::getRateValEx($newAttr, kHAT_Hp)); + $speed = $heroMeta['move_speed'] * (1 + mt\AttrHelper::getRateValEx($newAttr, kHAT_Speed)); + $atk = $heroMeta['damage'] * (1 + mt\AttrHelper::getRateValEx($newAttr, kHAT_Atk)); + $def = $heroMeta['defence'] * (1 + mt\AttrHelper::getRateValEx($newAttr, kHAT_Def)); if ($qualityMeta) { $hp = $hp * (1 + $qualityMeta['promote'] / 100.0); } diff --git a/webapp/mt/AttrHelper.php b/webapp/mt/AttrHelper.php index 8651add9..fdd6a321 100644 --- a/webapp/mt/AttrHelper.php +++ b/webapp/mt/AttrHelper.php @@ -94,4 +94,18 @@ class AttrHelper { return null; } + public static function getRateValEx($randAttr, $attrId, $defVal = 0) + { + if (!$randAttr) { + return $defVal; + } + foreach ($randAttr as $attr){ + if ($attr['attr_id'] == $attrId && + $attr['type'] == kHAT_RATE_VAL) { + return $attr['val']; + } + } + return $defVal; + } + }