1
This commit is contained in:
parent
7fcf394bff
commit
e6bb0d9486
@ -3,6 +3,8 @@ use phpcommon\SqlHelper;
|
|||||||
require_once('models/Nft.php');
|
require_once('models/Nft.php');
|
||||||
require_once('models/User.php');
|
require_once('models/User.php');
|
||||||
require_once('models/Hero.php');
|
require_once('models/Hero.php');
|
||||||
|
require_once('models/Chip.php');
|
||||||
|
require_once('models/ChipPage.php');
|
||||||
require_once('services/NftService.php');
|
require_once('services/NftService.php');
|
||||||
require_once('mt/NftDesc.php');
|
require_once('mt/NftDesc.php');
|
||||||
require_once('mt/Hero.php');
|
require_once('mt/Hero.php');
|
||||||
@ -325,6 +327,7 @@ class OutAppNftController extends BaseController {
|
|||||||
$info['detail']['def'] = $heroAbility['defence'];
|
$info['detail']['def'] = $heroAbility['defence'];
|
||||||
$info['detail']['block'] = $heroAbility['block'];
|
$info['detail']['block'] = $heroAbility['block'];
|
||||||
$info['detail']['crit'] = $heroAbility['critical'];
|
$info['detail']['crit'] = $heroAbility['critical'];
|
||||||
|
$this->fillHeroDetail($heroDb, $info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -475,15 +478,48 @@ class OutAppNftController extends BaseController {
|
|||||||
$info['detail']['def'] = $heroAbility['defence'];
|
$info['detail']['def'] = $heroAbility['defence'];
|
||||||
$info['detail']['block'] = $heroAbility['block'];
|
$info['detail']['block'] = $heroAbility['block'];
|
||||||
$info['detail']['crit'] = $heroAbility['critical'];
|
$info['detail']['crit'] = $heroAbility['critical'];
|
||||||
$info['detail']['chip_slots'] = 0;
|
$this->fillHeroDetail($heroDb, $info);
|
||||||
$info['detail']['combat_ability_1'] = 0;
|
|
||||||
$info['detail']['combat_ability_2'] = 0;
|
|
||||||
}
|
}
|
||||||
array_push($rspData['rows'], $info);
|
array_push($rspData['rows'], $info);
|
||||||
}
|
}
|
||||||
myself()->_rspData($rspData);
|
myself()->_rspData($rspData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function fillHeroDetail($heroDb, $info)
|
||||||
|
{
|
||||||
|
$info['detail']['chip_slots'] = 0;
|
||||||
|
$info['detail']['combat_ability_1'] = '';
|
||||||
|
$info['detail']['combat_ability_2'] = '';
|
||||||
|
$chipPageDb = ChipPage::find($heroDb['idx']);
|
||||||
|
if ($heroDb['quality'] > 1 && $chipPageDb){
|
||||||
|
$data = emptyReplace(json_decode($chipPageDb['data'], true), array());
|
||||||
|
$info['detail']['chip_slots'] = count($data);
|
||||||
|
foreach ($data as $value) {
|
||||||
|
$chipDb = Chip::findEx($value['chip_id']);
|
||||||
|
if (!empty($chipDb)) {
|
||||||
|
self::mergeAttr($attr, emptyReplace(json_decode($chipDb['rand_attr'], true), array()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function mergeAttr(&$tarAttrs, $srcAttrs)
|
||||||
|
{
|
||||||
|
foreach ($srcAttrs as $srcAttr) {
|
||||||
|
$found = false;
|
||||||
|
foreach ($tarAttrs as &$tarAttr) {
|
||||||
|
if ($tarAttr['attr_id'] == $srcAttr['attr_id']) {
|
||||||
|
$tarAttr['val'] += $srcAttr['val'];
|
||||||
|
$found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}//end for tarAttrs
|
||||||
|
if (!$found) {
|
||||||
|
array_push($tarAttrs, $srcAttr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private function isWingHero($tokenId)
|
private function isWingHero($tokenId)
|
||||||
{
|
{
|
||||||
return $tokenId > 6240603010001668 && $tokenId <= 6240603010002168;
|
return $tokenId > 6240603010001668 && $tokenId <= 6240603010002168;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user