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