1
This commit is contained in:
parent
5c004d6cfa
commit
8ea44ee20f
@ -34,6 +34,7 @@ class MissionService extends BaseService {
|
|||||||
return $missionDto;
|
return $missionDto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$handled = true;
|
||||||
switch ($missionMeta['type']) {
|
switch ($missionMeta['type']) {
|
||||||
case mt\Task::DAILY_LOGIN_TIMES_COND:
|
case mt\Task::DAILY_LOGIN_TIMES_COND:
|
||||||
{
|
{
|
||||||
@ -50,96 +51,70 @@ class MissionService extends BaseService {
|
|||||||
case mt\Task::TOTAL_BATTLE_TIMES_COND:
|
case mt\Task::TOTAL_BATTLE_TIMES_COND:
|
||||||
{
|
{
|
||||||
//进行X场比赛
|
//进行X场比赛
|
||||||
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
|
$missionDto['current'] = getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta,
|
||||||
$missionDto['current'] = getXVal($seasonDb, 'total_battle_times', 0);
|
'total_battle_times');
|
||||||
} else {
|
|
||||||
$missionDto['current'] = getXVal($userInfo, 'total_battle_times', 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::SHARE_GAME_TIMES_COND:
|
case mt\Task::SHARE_GAME_TIMES_COND:
|
||||||
{
|
{
|
||||||
//分享1次游戏 未实现
|
//分享1次游戏
|
||||||
|
$handled = false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::SINGLE_BATTLE_TIMES_COND:
|
case mt\Task::SINGLE_BATTLE_TIMES_COND:
|
||||||
{
|
{
|
||||||
//进行X场单人比赛
|
//进行X场单人比赛
|
||||||
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
|
$missionDto['current'] = getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta,
|
||||||
$missionDto['current'] = getXVal($seasonDb, 'total_single_battle_times', 0);
|
'total_single_battle_times');
|
||||||
} else {
|
|
||||||
$missionDto['current'] = getXVal($userInfo, 'total_single_battle_times', 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::TEAM_BATTLE_TIMES_COND:
|
case mt\Task::TEAM_BATTLE_TIMES_COND:
|
||||||
{
|
{
|
||||||
//进行X场组队比赛
|
//进行X场组队比赛
|
||||||
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
|
$missionDto['current'] = getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta,
|
||||||
$missionDto['current'] = getXVal($seasonDb, 'total_team_battle_times', 0);
|
'total_team_battle_times');
|
||||||
} else {
|
|
||||||
$missionDto['current'] = getXVal($userInfo, 'total_team_battle_times', 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::SINGLE_BATTLE_RANK_COND:
|
case mt\Task::SINGLE_BATTLE_RANK_COND:
|
||||||
{
|
{
|
||||||
//单人比赛排名前X
|
//单人比赛排名前X
|
||||||
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
|
$missionDto['current'] = getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta,
|
||||||
$missionDto['current'] = getXVal($seasonDb, 'single_battle_rank', 0);
|
'single_battle_rank');
|
||||||
} else {
|
|
||||||
$missionDto['current'] = getXVal($userInfo, 'single_battle_rank', 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::TEAM_BATTLE_RANK_COND:
|
case mt\Task::TEAM_BATTLE_RANK_COND:
|
||||||
{
|
{
|
||||||
//组队比赛排名前X
|
//组队比赛排名前X
|
||||||
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
|
$missionDto['current'] = getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta,
|
||||||
$missionDto['current'] = getXVal($seasonDb, 'team_battle_rank', 0);
|
'team_battle_rank');
|
||||||
} else {
|
|
||||||
$missionDto['current'] = getXVal($userInfo, 'team_battle_rank', 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::TOTAL_KILL_NUM_COND:
|
case mt\Task::TOTAL_KILL_NUM_COND:
|
||||||
{
|
{
|
||||||
//累计击败X个敌人
|
//累计击败X个敌人
|
||||||
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
|
$missionDto['current'] = getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta,
|
||||||
$missionDto['current'] = getXVal($seasonDb, 'total_kills_times', 0);
|
'total_kills_times');
|
||||||
} else {
|
|
||||||
$missionDto['current'] = getXVal($userInfo, 'total_kills_times', 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::TOTAL_DAMGE_OUT_COND:
|
case mt\Task::TOTAL_DAMGE_OUT_COND:
|
||||||
{
|
{
|
||||||
//累计造成X点伤害
|
//累计造成X点伤害
|
||||||
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
|
$missionDto['current'] = getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta,
|
||||||
$missionDto['current'] = getXVal($seasonDb, 'total_damage_out', 0);
|
'total_damage_out');
|
||||||
} else {
|
|
||||||
$missionDto['current'] = getXVal($userInfo, 'total_damage_out', 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::RESCUE_TEAMMATE_TIMES_COND:
|
case mt\Task::RESCUE_TEAMMATE_TIMES_COND:
|
||||||
{
|
{
|
||||||
//救援X个队友
|
//救援X个队友
|
||||||
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
|
$missionDto['current'] = getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta,
|
||||||
$missionDto['current'] = getXVal($seasonDb, 'rescue_teammate_times', 0);
|
'rescue_teammate_times');
|
||||||
} else {
|
|
||||||
$missionDto['current'] = getXVal($userInfo, 'rescue_teammate_times', 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::TOTAL_SURVIVAL_TIME_COND:
|
case mt\Task::TOTAL_SURVIVAL_TIME_COND:
|
||||||
{
|
{
|
||||||
//累计生存X分钟
|
//累计生存X分钟
|
||||||
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
|
$missionDto['current'] = getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta,
|
||||||
$missionDto['current'] = getXVal($seasonDb, 'total_alive_time', 0);
|
'total_alive_time');
|
||||||
} else {
|
|
||||||
$missionDto['current'] = getXVal($userInfo, 'total_alive_time', 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::USE_WEAPON_KILL_NUM_COND:
|
case mt\Task::USE_WEAPON_KILL_NUM_COND:
|
||||||
@ -165,121 +140,90 @@ class MissionService extends BaseService {
|
|||||||
case mt\Task::TOTAL_DIVING_TIMES_COND:
|
case mt\Task::TOTAL_DIVING_TIMES_COND:
|
||||||
{
|
{
|
||||||
//累计潜水X次
|
//累计潜水X次
|
||||||
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
|
$missionDto['current'] = getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta,
|
||||||
$missionDto['current'] = getXVal($seasonDb, 'diving_times', 0);
|
'diving_times');
|
||||||
} else {
|
|
||||||
$missionDto['current'] = getXVal($userInfo, 'diving_times', 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::TOTAL_DAMAGE_IN_COND:
|
case mt\Task::TOTAL_DAMAGE_IN_COND:
|
||||||
{
|
{
|
||||||
//累计受到X点伤害
|
//累计受到X点伤害
|
||||||
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
|
$missionDto['current'] = getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta,
|
||||||
$missionDto['current'] = getXVal($seasonDb, 'total_damage_in', 0);
|
'total_damage_in');
|
||||||
} else {
|
|
||||||
$missionDto['current'] = getXVal($userInfo, 'total_damage_in', 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::TOTAL_RECOVER_HP_COND:
|
case mt\Task::TOTAL_RECOVER_HP_COND:
|
||||||
{
|
{
|
||||||
//累计恢复X点血量
|
//累计恢复X点血量
|
||||||
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
|
$missionDto['current'] = getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta,
|
||||||
$missionDto['current'] = getXVal($seasonDb, 'total_recover_hp', 0);
|
'total_recover_hp');
|
||||||
} else {
|
|
||||||
$missionDto['current'] = getXVal($userInfo, 'total_recover_hp', 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::TOTAL_OPEN_AIRDROP_COND:
|
case mt\Task::TOTAL_OPEN_AIRDROP_COND:
|
||||||
{
|
{
|
||||||
//累计打开空投补给X次
|
//累计打开空投补给X次
|
||||||
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
|
$missionDto['current'] = getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta,
|
||||||
$missionDto['current'] = getXVal($seasonDb, 'open_airdrop_times', 0);
|
'open_airdrop_times');
|
||||||
} else {
|
|
||||||
$missionDto['current'] = getXVal($userInfo, 'open_airdrop_times', 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::BATTLE_IN_HERO_LV_COND:
|
case mt\Task::BATTLE_IN_HERO_LV_COND:
|
||||||
{
|
{
|
||||||
//单局内英雄技能升级到X级 未实现
|
//单局内英雄技能升级到X级
|
||||||
|
$handled = false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::BATTLE_IN_GUN_LV_COND:
|
case mt\Task::BATTLE_IN_GUN_LV_COND:
|
||||||
{
|
{
|
||||||
//单局内英雄专属枪械升到X级 未实现
|
//单局内英雄专属枪械升到X级
|
||||||
|
$handled = false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::TOTAL_MEDICINE_TIMES_COND:
|
case mt\Task::TOTAL_MEDICINE_TIMES_COND:
|
||||||
{
|
{
|
||||||
//累计使用X药品Y次
|
//累计使用X药品Y次
|
||||||
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
|
$missionDto['current'] = getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta,
|
||||||
$missionDto['current'] = getXVal($seasonDb, 'use_medicine_times', 0);
|
'use_medicine_times');
|
||||||
} else {
|
|
||||||
$missionDto['current'] = getXVal($userInfo, 'use_medicine_times', 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::TOTAL_DESTORY_CAR_TIMES_COND:
|
case mt\Task::TOTAL_DESTORY_CAR_TIMES_COND:
|
||||||
{
|
{
|
||||||
//累计破坏载具X个
|
//累计破坏载具X个
|
||||||
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
|
$missionDto['current'] = getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta,
|
||||||
$missionDto['current'] = getXVal($seasonDb, 'destory_car_times', 0);
|
'destory_car_times');
|
||||||
} else {
|
|
||||||
$missionDto['current'] = getXVal($userInfo, 'destory_car_times', 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::TOTAL_USE_CAMOUFLAGE_TIMES_COND:
|
case mt\Task::TOTAL_USE_CAMOUFLAGE_TIMES_COND:
|
||||||
{
|
{
|
||||||
//累计使用X个伪装物
|
//累计使用X个伪装物
|
||||||
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
|
$missionDto['current'] = getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta,
|
||||||
$missionDto['current'] = getXVal($seasonDb, 'use_camouflage_times', 0);
|
'use_camouflage_times');
|
||||||
} else {
|
|
||||||
$missionDto['current'] = getXVal($userInfo, 'use_camouflage_times', 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::TOTAL_USE_SKILL_TIMES_COND:
|
case mt\Task::TOTAL_USE_SKILL_TIMES_COND:
|
||||||
{
|
{
|
||||||
//累计使用X次角色技能
|
//累计使用X次角色技能
|
||||||
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
|
$missionDto['current'] = getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta,
|
||||||
$missionDto['current'] = getXVal($seasonDb, 'use_skill_times', 0);
|
'use_skill_times');
|
||||||
} else {
|
|
||||||
$missionDto['current'] = getXVal($userInfo, 'use_skill_times', 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::RIDE_CAR_MOVE_DISTANCE_COND:
|
case mt\Task::RIDE_CAR_MOVE_DISTANCE_COND:
|
||||||
{
|
{
|
||||||
//驾驶或乘坐载具累计移动X米(所有模式)
|
//驾驶或乘坐载具累计移动X米(所有模式)
|
||||||
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
|
$missionDto['current'] = getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta,
|
||||||
$missionDto['current'] = getXVal($seasonDb, 'ride_car_move_distance', 0);
|
'ride_car_move_distance');
|
||||||
} else {
|
|
||||||
$missionDto['current'] = getXVal($userInfo, 'ride_car_move_distance', 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::RIDE_CAR_KILL_NUM_COND:
|
case mt\Task::RIDE_CAR_KILL_NUM_COND:
|
||||||
{
|
{
|
||||||
//驾驶或乘坐载具累计击杀X个敌人(所有模式)
|
//驾驶或乘坐载具累计击杀X个敌人(所有模式)
|
||||||
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
|
$missionDto['current'] = getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta,
|
||||||
$missionDto['current'] = getXVal($seasonDb, 'ride_car_kills', 0);
|
'ride_car_kills');
|
||||||
} else {
|
|
||||||
$missionDto['current'] = getXVal($userInfo, 'ride_car_kills', 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::LIKE_TEAMMATE_TIMES_COND:
|
case mt\Task::LIKE_TEAMMATE_TIMES_COND:
|
||||||
{
|
{
|
||||||
//战斗结算中累计给队友点赞X次
|
//战斗结算中累计给队友点赞X次
|
||||||
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
|
$missionDto['current'] = getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta,
|
||||||
$missionDto['current'] = getXVal($seasonDb, 'to_teammate_like_times', 0);
|
'to_teammate_like_times');
|
||||||
} else {
|
|
||||||
$missionDto['current'] = getXVal($userInfo, 'to_teammate_like_times', 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case mt\Task::SEASON_LEVEL_COND:
|
case mt\Task::SEASON_LEVEL_COND:
|
||||||
@ -356,4 +300,22 @@ class MissionService extends BaseService {
|
|||||||
return $missionDto;
|
return $missionDto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function getBattleData($userInfo, $seasonDb, $missionDb, $missionMeta, $key)
|
||||||
|
{
|
||||||
|
$val = 0;
|
||||||
|
if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) {
|
||||||
|
if ($missionMeta['type'] == mt\Task::SEASONCARD_MISSON_TYPE &&
|
||||||
|
$missionMeta['subtype'] == mt\Task::SEASON_WEAKLY_MISSON_SUBTYPE) {
|
||||||
|
$weeklyData = getXVal($seasonDb, 'weekly_data', array());
|
||||||
|
$weekDb = getXVal($weeklyData, $missionMeta['keek'], array());
|
||||||
|
$val = getXVal($weekDb, $key, 0);
|
||||||
|
} else {
|
||||||
|
$val = getXVal($seasonDb, $key, 0);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$val = getXVal($userInfo, $key, 0);
|
||||||
|
}
|
||||||
|
return $val;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user