军团:添加活跃宝箱

This commit is contained in:
luying
2021-01-23 15:17:33 +08:00
parent 368649c53d
commit 789322b913
16 changed files with 820 additions and 26 deletions
+4 -1
View File
@@ -45,6 +45,8 @@ import { dicRankRewads, dicRankMax } from './dictionary/DicPvpRankReward';
import { dicPvpBoxs } from './dictionary/DicPvpBox';
import { dicGuildAuth } from './dictionary/DicGuildAuth';
import { dicCenterBase, dicEquipPriduceBase, dicBossBase, dicTrainBase, dicDonateBase, dicWishPoolBase, dicStoreBase, dicStructureConsume } from "./dictionary/DicStructure";
import { dicGuildActiveDayReward } from './dictionary/dicGuildActiveDayReward';
import { RewardInter } from "./interface";
export const gameData = {
blurprtCompose: dicBlueprtCompose,
@@ -113,7 +115,8 @@ export const gameData = {
donateBase: dicDonateBase,
wishPoolBase: dicWishPoolBase,
storeBase: dicStoreBase,
structureConsume: dicStructureConsume
structureConsume: dicStructureConsume,
guildActiveDayReward: dicGuildActiveDayReward
};
// 在此提供一些原先在gamedata中提供的方法,以便更方便获取gameData数据
@@ -0,0 +1,26 @@
// 每日个人可领奖励
import { readJsonFile, parseGoodStr } from '../util'
import { FILENAME } from '../../consts'
import { RewardInter } from '../interface';
export interface DicGuildActiveDayReward {
// id
readonly id: number;
// 权限
readonly activeDayPoint: number;
// 奖励
readonly reward: RewardInter[];
}
const str = readJsonFile(FILENAME.DIC_ACTIVE_DAY_REWARD);
let arr = JSON.parse(str);
export const dicGuildActiveDayReward = new Map<number, DicGuildActiveDayReward>();
arr.forEach(o => {
o.reward = parseGoodStr(o.reward)
dicGuildActiveDayReward.set(o.id, o);
});
arr = undefined;
+17 -1
View File
@@ -38,4 +38,20 @@ export function getBeforeDayDate(day: number) {
export function getBeforeDaySeconds(day: number) {
let time = nowSeconds() - day * PER_DAY;
return time;
}
}
export function getCurWeekDate(day: number, hour: number) {
return getWeekDate(new Date(), day, hour);
}
export function getWeekDate(now: Date, day: number, hour: number){ //获得本周的开端日期
var nowDayOfWeek = now.getDay();
if(nowDayOfWeek == 0) nowDayOfWeek = 7;
let nowDay = now.getDate();
let nowYear = now.getFullYear(); //当前年
let nowMonth = now.getMonth(); //月
return new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + day, hour);
};
+22
View File
@@ -8,6 +8,7 @@ import { DicRandomEffectPool } from './dictionary/DicRandomEffectPool';
import { HERO_CE_RATIO, ABI_STAGE } from '../consts';
import { findIndex } from 'underscore';
import { getCurWeekDate, getWeekDate } from './timeUtil';
const randomName = require("chinese-random-name");
const moment = require('moment');
@@ -224,6 +225,27 @@ export function shouldRefresh(preTime: Date, now: Date, hour: number, deltaDay =
return false;
}
/**
* 计算按照每 x 天 y 点刷新一次,是否应该刷新
* @param preTime 基准时间
* @param curTime 当前时间
* @param day 周几刷新
* @param hour 几点刷新
* @param deltaDay 间隔几天刷新,默认每天刷新(deltaDay = 1)
*/
export function shouldRefreshWeek(preTime: Date, now: Date, day: number, hour: number, deltaWeek = 1): boolean {
if (!preTime) return true;
let curTime = new Date(now.getTime());
let refreshTime = getWeekDate(now, day, hour);
let refeshTime = refreshTime.getTime();
if (refeshTime - preTime.getTime() > (deltaWeek >= 1 ? deltaWeek - 1 : 0) * 7* 24 * 60 * 60 * 1000 && curTime.getTime() >= refeshTime) {
return true;
}
return false;
}
/**
* 获取 x天后的y点
* @param curTime 现在时间