110 lines
3.0 KiB
PHP
110 lines
3.0 KiB
PHP
<?php
|
|
|
|
require_once('models/Chip.php');
|
|
require_once('models/Hero.php');
|
|
require_once('models/Gun.php');
|
|
require_once('models/User.php');
|
|
require_once('models/Bag.php');
|
|
|
|
require_once('mt/ChipAttr.php');
|
|
require_once('mt/HeroQuality.php');
|
|
|
|
require_once('services/FormulaService.php');
|
|
require_once('services/PropertyChgService.php');
|
|
require_once('services/LogService.php');
|
|
|
|
|
|
|
|
|
|
|
|
use models\Chip;
|
|
use models\Bag;
|
|
use models\Hero;
|
|
use models\Gun;
|
|
use models\User;
|
|
use services\FormulaService;
|
|
use services\LogService;
|
|
use phpcommon\SqlHelper;
|
|
|
|
class ChipController extends BaseAuthedController
|
|
{
|
|
public function chipList()
|
|
{
|
|
$chipList = array();
|
|
Chip::getChipList(function ($row) use(&$chipList){
|
|
// if ($row['inlay_state'] != 1){
|
|
array_push($chipList, Chip::toDto($row));
|
|
// }
|
|
});
|
|
$this->_rspData(array(
|
|
'data' => $chipList,
|
|
));
|
|
}
|
|
|
|
public function chipDetails(){
|
|
$unique_id = trim(getReqVal('unique_id', 0));
|
|
if (! $unique_id){
|
|
$this->_rspErr(1, 'Please enter parameter unique_id');
|
|
return ;
|
|
}
|
|
$chipDb = Chip::find($unique_id);
|
|
if (! $chipDb){
|
|
$this->_rspErr(1, "You don't have the chip yet");
|
|
return;
|
|
}
|
|
$chip = Chip::toDto($chipDb);
|
|
$this->_rspData(array(
|
|
'data' => $chip,
|
|
));
|
|
}
|
|
|
|
public function upgradeQuality(){
|
|
$chipUniId = trim(getReqVal('chip_uniid', 0));
|
|
if (!$chipUniId) {
|
|
$this->_rspErr(1, 'Please enter parameter');
|
|
return;
|
|
}
|
|
$chipDb = Chip::find($chipUniId);
|
|
if (!$chipDb){
|
|
$this->_rspErr(1,'unique_id_main parameter error');
|
|
return;
|
|
}
|
|
if ($chipDb['quality'] == \mt\HeroQuality::MAX_QUALITY){
|
|
$this->_rspErr(5, "It's already the highest level");
|
|
return;
|
|
}
|
|
$heroQualityMeta = \mt\HeroQuality::getByQuality($chipDb['item_id'],$chipDb['quality']+1);
|
|
if (!$heroQualityMeta){
|
|
$this->_rspErr(100, 'server internal error');
|
|
return;
|
|
}
|
|
$costItems = array(
|
|
array(
|
|
'item_id' => V_ITEM_GOLD,
|
|
'item_num' => $heroQualityMeta['gold']
|
|
),
|
|
array(
|
|
'item_id' => $heroQualityMeta['item'],
|
|
'item_num' => $heroQualityMeta['item_num']
|
|
),
|
|
);
|
|
$lackItem = null;
|
|
if (!$this->_hasEnoughItems($costItems, $lackItem)) {
|
|
$this->_rspErr(3, $this->_getLackItemErrMsg($lackItem));
|
|
return;
|
|
}
|
|
$this->_decItems($costItems);
|
|
Chip::update2($chipUniId, array(
|
|
'quality' => $chipDb['quality'] + 1,
|
|
));
|
|
$propertyChgService = new services\PropertyChgService();
|
|
$propertyChgService->addChip();
|
|
$propertyChgService->addUserChg();
|
|
$propertyChgService->addBagChg();
|
|
$this->_rspData(array(
|
|
'property_chg' => $propertyChgService->toDto(),
|
|
));
|
|
}
|
|
|
|
}
|