✨ feat(gvg): 每日首次获得
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
import { GVG_ACTIVE_TYPE } from "../../consts";
|
||||
import { GVG_ACTIVE_TYPE, ITEM_CHANGE_REASON, LEAGUE_JOB } from "../../consts";
|
||||
import { Tech } from "../../db/GVGLeaguePrepare";
|
||||
import { GVGUserDailyDataModel } from "../../db/GVGUserDailyData";
|
||||
import { GVGUserDataModel } from "../../db/GVGUserData";
|
||||
import { GVGUserDataModel, GVGUserDataType } from "../../db/GVGUserData";
|
||||
import { gameData } from "../../pubUtils/data";
|
||||
import { GVG } from "../../pubUtils/dicParam";
|
||||
import { parseGoodStr } from "../../pubUtils/util";
|
||||
import { addGVGReward } from "./gvgItemService";
|
||||
import { getGVGConfig } from "./gvgService";
|
||||
|
||||
export function checkPreTech(techId: number, activeQueue: number[], techQueue: Tech[]) {
|
||||
@@ -42,14 +45,34 @@ export async function addGVGActive(leagueCode: string, roleId: string, type: GVG
|
||||
let { configId } = getGVGConfig();
|
||||
|
||||
let add = gameData.gvgActive.get(type)||0;
|
||||
if(type == GVG_ACTIVE_TYPE.TECH_ACTIVATE) {
|
||||
let check = await GVGUserDailyDataModel.checkGetTechActive(configId, leagueCode, roleId);
|
||||
if(!check) {
|
||||
await GVGUserDailyDataModel.setHasGetTechActive(configId, leagueCode, roleId);
|
||||
} else {
|
||||
add = 0;
|
||||
}
|
||||
}
|
||||
let result = await GVGUserDataModel.addActive(configId, leagueCode, roleId, type, add);
|
||||
return result.active;
|
||||
}
|
||||
|
||||
export async function addGVGTechActive(leagueCode: string, roleId: string) {
|
||||
let { configId } = getGVGConfig();
|
||||
let check = await GVGUserDailyDataModel.checkGetTechActive(configId, leagueCode, roleId);
|
||||
if(!check) {
|
||||
await GVGUserDailyDataModel.setHasGetTechActive(configId, leagueCode, roleId);
|
||||
return await addGVGActive(leagueCode, roleId, GVG_ACTIVE_TYPE.TECH_ACTIVATE);
|
||||
} else {
|
||||
const data = await GVGUserDataModel.findByRole(configId, leagueCode, roleId);
|
||||
return data?.active||0;
|
||||
}
|
||||
}
|
||||
|
||||
export function getGVGDailyItems(job: number) {
|
||||
return job == LEAGUE_JOB.PRODUCER? parseGoodStr(GVG.GVG_PRODUCER_GET): parseGoodStr(GVG.GVG_FIGHTER_GET);
|
||||
}
|
||||
|
||||
export async function getDailyLoginReward(roleId: string, roleName: string, sid: string, leagueCode: string, job: number) {
|
||||
let { configId } = getGVGConfig();
|
||||
if(job && !await GVGUserDailyDataModel.checkHasLogin(configId, leagueCode, roleId)) {
|
||||
// 发每日奖励
|
||||
await GVGUserDailyDataModel.setHasLogin(configId, leagueCode, roleId);
|
||||
let leagueGoods = await addGVGReward(roleId, roleName, leagueCode, sid, getGVGDailyItems(job), [], ITEM_CHANGE_REASON.GVG_LOGIN)
|
||||
let active = await addGVGActive(leagueCode, roleId, GVG_ACTIVE_TYPE.LOGIN);
|
||||
return { active, reward: leagueGoods }
|
||||
}
|
||||
return null;
|
||||
}
|
||||
Reference in New Issue
Block a user