✨ feat(百家争鸣):祈灵 更新至 eb9f941ae
This commit is contained in:
@@ -51,6 +51,7 @@ import { getPlayerDragonBoatDataShow } from './dragonBoatService';
|
||||
import { getPlayerEntertainDataShow } from './entertainService';
|
||||
import { getPlayerQixiDataShow } from './qixiService';
|
||||
import { getPlayerMidAutumnDataShow } from './midAutumnService';
|
||||
import { getPlayerAuthorGachaDataShow } from './authorGachaService';
|
||||
|
||||
/**
|
||||
* 获取活动数据
|
||||
@@ -292,6 +293,12 @@ export async function getActivity(serverId: number, roleId: string, uid: number,
|
||||
activityData = await getPlayerMidAutumnDataShow(activityId, serverId, roleId);
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.AUTHOR_GACHA:
|
||||
{
|
||||
activityData = await getPlayerAuthorGachaDataShow(activityId, serverId, roleId);
|
||||
break;
|
||||
}
|
||||
|
||||
default: {
|
||||
console.log('未知活动类型.........', activityType)
|
||||
break;
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
import { ACTIVITY_TYPE } from "../../consts/constModules/activityConst";
|
||||
import { ActivityAuthorGachaRecModel } from "../../db/AuthorGachaRec";
|
||||
import { UserGachaModel } from "../../db/UserGacha";
|
||||
import { AuthorGachaData } from "../../domain/activityField/authorGachaField";
|
||||
import { getGachaRemainFloor } from "../../pubUtils/util";
|
||||
import { getRoleCreateTime, getServerCreateTime } from "../redisService";
|
||||
import { getActivityById } from "./activityService";
|
||||
|
||||
export async function getPlayerAuthorGachaData(activityId: number, serverId: number, roleId: string) {
|
||||
let activityData = await getActivityById(activityId);
|
||||
let createTime = await getRoleCreateTime(roleId);
|
||||
let serverTime = await getServerCreateTime(serverId);
|
||||
let playerData = new AuthorGachaData(activityData, createTime, serverTime);
|
||||
if ((playerData?.type || 0) != ACTIVITY_TYPE.AUTHOR_GACHA) return
|
||||
let playerRecord = await ActivityAuthorGachaRecModel.findData(serverId, activityId, playerData.roundIndex, roleId);
|
||||
playerData.setPlayerRecords(playerRecord);
|
||||
return playerData;
|
||||
}
|
||||
|
||||
export async function getUseGachaData(activityId: number, roleId: string, playerData: AuthorGachaData) {
|
||||
let userGacha = await UserGachaModel.findByRole(roleId, playerData.gachaId, activityId);
|
||||
let count = userGacha?.count || 0;
|
||||
let remainFloor = getGachaRemainFloor(playerData.gachaId, userGacha?.floor || []);
|
||||
return { count, remainFloor }
|
||||
}
|
||||
|
||||
export async function getPlayerAuthorGachaDataShow(activityId: number, serverId: number, roleId: string) {
|
||||
let playerData = await getPlayerAuthorGachaData(activityId, serverId, roleId);
|
||||
if (playerData && playerData.canShow && playerData.canShow()) {
|
||||
return { ...playerData.getShowResult(), ...await getUseGachaData(activityId, roleId, playerData) };
|
||||
}
|
||||
return null
|
||||
}
|
||||
@@ -761,7 +761,7 @@ export function checkRouteParam(route: string, msg: any) {
|
||||
for (let { actorId, dataId, order, ai } of heroes) {
|
||||
if (!checkNaturalNumbers(actorId, dataId, order, ai)) return false;
|
||||
}
|
||||
if(!checkCombo(combo)) return false
|
||||
if (!checkCombo(combo)) return false
|
||||
break;
|
||||
}
|
||||
case "battle.pvpHandler.receiveBox":
|
||||
@@ -822,7 +822,7 @@ export function checkRouteParam(route: string, msg: any) {
|
||||
for (let { actorId, dataId, order } of msg.heroes) {
|
||||
if (!checkNaturalNumbers(actorId, dataId, order)) return false;
|
||||
}
|
||||
if(!checkCombo(msg.combo)) return false
|
||||
if (!checkCombo(msg.combo)) return false
|
||||
break;
|
||||
}
|
||||
case "battle.ladderHandler.buyCnt":
|
||||
@@ -2108,6 +2108,16 @@ export function checkRouteParam(route: string, msg: any) {
|
||||
if (!checkNaturalNumbers(msg.activityId, msg.count)) return false;
|
||||
break;
|
||||
}
|
||||
case 'activity.authorGachaHandler.getData':
|
||||
{
|
||||
if (!checkNaturalNumbers(msg.activityId)) return false;
|
||||
break;
|
||||
}
|
||||
case 'activity.authorGachaHandler.receiveBox':
|
||||
{
|
||||
if (!checkNaturalNumbers(msg.activityId, msg.count)) return false;
|
||||
break;
|
||||
}
|
||||
case 'activity.activityHandler.debugActivityMemory':
|
||||
case 'activity.popUpShopHandler.debugPushPopUpShop':
|
||||
case 'activity.popUpShopHandler.debugPushPopUpInterval':
|
||||
@@ -2334,14 +2344,14 @@ function checkSeqId(...seqIds: (number | string)[]) {
|
||||
return true;
|
||||
}
|
||||
|
||||
function checkCombo(combo: {groupId: number, levelList: number[]}[]) {
|
||||
if(combo) {
|
||||
if(!isArray(combo)) return false;
|
||||
for(let {groupId, levelList} of combo) {
|
||||
if(!isNumber(groupId)) return false;
|
||||
if(!isArray(levelList)) return false;
|
||||
for(let lv of levelList) {
|
||||
if(!isNumber(lv)) return false;
|
||||
function checkCombo(combo: { groupId: number, levelList: number[] }[]) {
|
||||
if (combo) {
|
||||
if (!isArray(combo)) return false;
|
||||
for (let { groupId, levelList } of combo) {
|
||||
if (!isNumber(groupId)) return false;
|
||||
if (!isArray(levelList)) return false;
|
||||
for (let lv of levelList) {
|
||||
if (!isNumber(lv)) return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user