1
This commit is contained in:
parent
53d5818e08
commit
0e8054548f
@ -67,6 +67,8 @@ class MissionController extends BaseAuthedController {
|
|||||||
$missionHash = Mission::allToHash();
|
$missionHash = Mission::allToHash();
|
||||||
$missionDtoList1 = array();
|
$missionDtoList1 = array();
|
||||||
$missionDtoList2 = array();
|
$missionDtoList2 = array();
|
||||||
|
$specMissionDto = null;
|
||||||
|
$notFinishedCount = 0;
|
||||||
foreach ($missionMetaList as $missionMeta) {
|
foreach ($missionMetaList as $missionMeta) {
|
||||||
$missionDb = getXVal($missionHash, $missionMeta['id'], null);
|
$missionDb = getXVal($missionHash, $missionMeta['id'], null);
|
||||||
$missionDto = $this->missionService->getMissionDto(
|
$missionDto = $this->missionService->getMissionDto(
|
||||||
@ -76,11 +78,22 @@ class MissionController extends BaseAuthedController {
|
|||||||
array_push($missionDtoList1, $missionDto);
|
array_push($missionDtoList1, $missionDto);
|
||||||
} else {
|
} else {
|
||||||
array_push($missionDtoList2, $missionDto);
|
array_push($missionDtoList2, $missionDto);
|
||||||
|
if ($missionDto['state'] == Mission::NOT_FINISHED_STATE) {
|
||||||
|
$notFinishedCount++;
|
||||||
|
}
|
||||||
|
if ($missionMeta['condition'] == mt\Task::FINISHED_ALL_DAILY_MISSION_COND) {
|
||||||
|
$specMissionDto = &$missionDto;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
array_push($missionDtoList1, $missionDto);
|
array_push($missionDtoList1, $missionDto);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ($specMissionDto &&
|
||||||
|
$specMissionDto['state'] == Mission::NOT_FINISHED_STATE &&
|
||||||
|
$notFinishedCount <= 1) {
|
||||||
|
$specMissionDto['state'] == Mission::RECEIVEABLE_STATE;
|
||||||
|
}
|
||||||
$this->_rspData(array(
|
$this->_rspData(array(
|
||||||
'current_active_value' => $this->_getV(TN_ACTIVE, 0),
|
'current_active_value' => $this->_getV(TN_ACTIVE, 0),
|
||||||
'max_active_value' => 0,
|
'max_active_value' => 0,
|
||||||
@ -112,6 +125,12 @@ class MissionController extends BaseAuthedController {
|
|||||||
$this->_rspErr(3, '任务目标未达成');
|
$this->_rspErr(3, '任务目标未达成');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if ($missionMeta['condition'] == mt\Task::FINISHED_ALL_DAILY_MISSION_COND) {
|
||||||
|
if (!$this->specMissionIsFinished($missionDto, $missionMeta)) {
|
||||||
|
$this->_rspErr(3, '任务目标未达成');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
if ($missionDto['state'] != Mission::RECEIVEABLE_STATE) {
|
if ($missionDto['state'] != Mission::RECEIVEABLE_STATE) {
|
||||||
$this->_rspErr(3, '未知任务状态');
|
$this->_rspErr(3, '未知任务状态');
|
||||||
return;
|
return;
|
||||||
@ -139,6 +158,8 @@ class MissionController extends BaseAuthedController {
|
|||||||
$missionMetaList = mt\Task::getCustomTypeMetaList($type);
|
$missionMetaList = mt\Task::getCustomTypeMetaList($type);
|
||||||
$missionHash = Mission::allToHash();
|
$missionHash = Mission::allToHash();
|
||||||
$missionDtoList = array();
|
$missionDtoList = array();
|
||||||
|
$specMissionDto = null;
|
||||||
|
$notFinishedCount = 0;
|
||||||
foreach ($missionMetaList as $missionMeta) {
|
foreach ($missionMetaList as $missionMeta) {
|
||||||
$missionDb = getXVal($missionHash, $missionMeta['id'], null);
|
$missionDb = getXVal($missionHash, $missionMeta['id'], null);
|
||||||
$missionDto = $this->missionService->getMissionDto(
|
$missionDto = $this->missionService->getMissionDto(
|
||||||
@ -146,6 +167,22 @@ class MissionController extends BaseAuthedController {
|
|||||||
if ($missionDto['state'] == Mission::RECEIVEABLE_STATE) {
|
if ($missionDto['state'] == Mission::RECEIVEABLE_STATE) {
|
||||||
array_push($missionDtoList, $missionDto);
|
array_push($missionDtoList, $missionDto);
|
||||||
}
|
}
|
||||||
|
if ($missionMeta['type'] == mt\Task::DAILY_MISSON_TYPE) {
|
||||||
|
if ($missionMeta['subtype'] == mt\Task::DAILY_ACTIVE_VALUE_MISSON_SUBTYPE) {
|
||||||
|
} else {
|
||||||
|
if ($missionDto['state'] == Mission::NOT_FINISHED_STATE) {
|
||||||
|
$notFinishedCount++;
|
||||||
|
}
|
||||||
|
if ($missionMeta['condition'] == mt\Task::FINISHED_ALL_DAILY_MISSION_COND) {
|
||||||
|
$specMissionDto = &$missionDto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($specMissionDto &&
|
||||||
|
$specMissionDto['state'] == Mission::NOT_FINISHED_STATE &&
|
||||||
|
$notFinishedCount <= 1) {
|
||||||
|
$specMissionDto['state'] == Mission::RECEIVEABLE_STATE;
|
||||||
}
|
}
|
||||||
foreach ($missionDtoList as $missionDto) {
|
foreach ($missionDtoList as $missionDto) {
|
||||||
$missionMeta = mt\Mission::get($missionDto['mission_id']);
|
$missionMeta = mt\Mission::get($missionDto['mission_id']);
|
||||||
@ -161,4 +198,26 @@ class MissionController extends BaseAuthedController {
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function specMissionIsFinished($missionDto, $missionMeta)
|
||||||
|
{
|
||||||
|
$type = mt\Task::DAILY_MISSION_CUSTOM_TYPE;
|
||||||
|
$missionMetaList = mt\Task::getCustomTypeMetaList($type);
|
||||||
|
$missionHash = Mission::allToHash();
|
||||||
|
$notFinishedCount = 0;
|
||||||
|
foreach ($missionMetaList as $missionMeta) {
|
||||||
|
$missionDb = getXVal($missionHash, $missionMeta['id'], null);
|
||||||
|
$missionDto = $this->missionService->getMissionDto(
|
||||||
|
$this->userInfo, $this->seasonDb, $missionDb, $missionMeta);
|
||||||
|
if ($missionMeta['type'] == mt\Task::DAILY_MISSON_TYPE) {
|
||||||
|
if ($missionMeta['subtype'] == mt\Task::DAILY_ACTIVE_VALUE_MISSON_SUBTYPE) {
|
||||||
|
} else {
|
||||||
|
if ($missionDto['state'] == Mission::NOT_FINISHED_STATE) {
|
||||||
|
$notFinishedCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $notFinishedCount == 1;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -292,7 +292,6 @@ class MissionService extends BaseService {
|
|||||||
case mt\Task::FINISHED_ALL_DAILY_MISSION_COND:
|
case mt\Task::FINISHED_ALL_DAILY_MISSION_COND:
|
||||||
{
|
{
|
||||||
//完成所有每日任务
|
//完成所有每日任务
|
||||||
$handled = false;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::SHOP_BUY_TIMES_COND:
|
case mt\Task::SHOP_BUY_TIMES_COND:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user