500抽:活动格式
This commit is contained in:
@@ -43,6 +43,7 @@ import { PopUpShopItemShow } from '../../domain/activityField/popUpShopField';
|
||||
import { sendMessageToGuildWithSuc, sendMessageToUserWithSuc } from '../pushService';
|
||||
import { UserOrderModelType } from '../../db/UserOrder';
|
||||
import { isArray } from 'underscore';
|
||||
import { getGuideGachaData } from './guideGachaService';
|
||||
|
||||
/**
|
||||
* 获取活动数据
|
||||
@@ -212,7 +213,15 @@ export async function getActivity(serverId: number, roleId: string, guildCode: s
|
||||
case ACTIVITY_TYPE.GUILD_PAY:
|
||||
{
|
||||
activityData = await getGuildPayDataShow(serverId, activityId, roleId, guildCode);
|
||||
break
|
||||
}
|
||||
case ACTIVITY_TYPE.GUIDE_GACHA:
|
||||
{
|
||||
activityData = await getGuideGachaData(serverId, activityId, roleId);
|
||||
break
|
||||
}
|
||||
case ACTIVITY_TYPE.SHOP:
|
||||
break
|
||||
default: {
|
||||
console.log('未知活动类型.........', activityType)
|
||||
break;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { GachaData, Floor as UserFloor, Hope as UserHope, GachaListReturn, GachaResultIndb } from "../../domain/activityField/gachaField";;
|
||||
import { Floor as UserFloor, Hope as UserHope, GachaListReturn, GachaResultIndb } from "../../domain/activityField/gachaField";;
|
||||
import { DicGacha } from "../../pubUtils/dictionary/DicGacha";
|
||||
import { UserGachaType, UserGachaModel, SimpleResult } from "../../db/UserGacha";
|
||||
import { UserGachaType, UserGachaModel } from "../../db/UserGacha";
|
||||
import { shouldRefresh, getRandEelm, getRandEelmWithWeight, getRandSingleIndex, getRandSingleEelm } from "../../pubUtils/util";
|
||||
import { REFRESH_TIME, GACHA_FLOOR_TYPE, HERO_QUALITY_TYPE, IT_TYPE, ITID, CONSUME_TYPE, SPECIAL_ATTR, TIME_OUTPUT_TYPE, GACHA_TYPE, GACHA_PLAN_TYPE } from "../../consts";
|
||||
import { getTimeFunD, getZeroPointD } from "../../pubUtils/timeUtil";
|
||||
@@ -11,6 +11,7 @@ import { HeroType } from "../../db/Hero";
|
||||
import { getActivityById } from "./activityService";
|
||||
import { transPiece } from "../role/util";
|
||||
import { getRoleCreateTime, getServerCreateTime } from "../redisService";
|
||||
import { SimpleResult } from "../../domain/activityField/guideGachaField";
|
||||
|
||||
/**
|
||||
* 获取招募列表
|
||||
@@ -31,26 +32,6 @@ export async function getGachaList(roleId: string) {
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取活动页签里的限时卡池
|
||||
*
|
||||
* @param roleId 玩家id
|
||||
* @param aid 活动id
|
||||
*/
|
||||
export async function getLimitGacha(serverId: number, roleId: string, activityId: number) {
|
||||
|
||||
let activityData = await getActivityById(activityId);
|
||||
if (!activityData) return false;
|
||||
|
||||
let createTime = await getRoleCreateTime(roleId);
|
||||
let serverTime = await getServerCreateTime(serverId);
|
||||
let gachaData = new GachaData(activityData, createTime, serverTime);
|
||||
let userGacha = await UserGachaModel.findByRole(roleId, gachaData.gachaId, activityId);
|
||||
userGacha = await refreshGacha(gameData.gacha.get(gachaData.gachaId), userGacha);
|
||||
gachaData.setUserGacha(userGacha);
|
||||
return gachaData
|
||||
}
|
||||
|
||||
export function getGuideGachaId() {
|
||||
let ids = gameData.gachaByType.get(GACHA_TYPE.GUIDE);
|
||||
return ids[0];
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
import { UserGachaModel } from "../../db/UserGacha";
|
||||
import { GuideGachaData } from "../../domain/activityField/guideGachaField";
|
||||
import { getRoleCreateTime, getServerCreateTime } from "../redisService";
|
||||
import { getActivityById } from "./activityService";
|
||||
|
||||
export async function getGuideGachaData(serverId: number, activityId: number, roleId: string) {
|
||||
let activityData = await getActivityById(activityId);
|
||||
let createTime = await getRoleCreateTime(roleId);
|
||||
let serverTime = await getServerCreateTime(serverId);
|
||||
let playerData = new GuideGachaData(activityData, createTime, serverTime);
|
||||
let userGacha = await UserGachaModel.findByRole(roleId, playerData.gachaId, activityId);
|
||||
playerData.setPlayerData(userGacha);
|
||||
if(playerData.hasChoosen) return null
|
||||
return playerData;
|
||||
}
|
||||
@@ -645,7 +645,8 @@ export function checkRouteParam(route: string, msg: any) {
|
||||
if(!checkNaturalArray(heroes)) return false;
|
||||
if (heroes.length > LINEUP_NUM) return false;
|
||||
for(let { actorId, order } of heroes) {
|
||||
if(!checkNaturalNumbers(actorId, order)) return false;
|
||||
if(!checkNaturalNumbers(actorId)) return false;
|
||||
if(!checkNumberIfExist(order)) return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -156,10 +156,9 @@ export async function getModuleData(type: string, data: { role: RoleType, sessio
|
||||
case 'pvp': // pvp
|
||||
return await getPvpEntryData(roleId);
|
||||
case 'gacha':
|
||||
const { gachaHasGuide } = role;
|
||||
const gachalist = await getGachaList(roleId);
|
||||
const visitList = await getVisitedHeroList(roleId);
|
||||
return { hasInit: !!gachaHasGuide, gachalist, visitList }
|
||||
return { hasInit: true, gachalist, visitList }
|
||||
case 'school':
|
||||
return await getSchoolList(roleId);
|
||||
case 'guild':
|
||||
|
||||
Reference in New Issue
Block a user