57 lines
1.7 KiB
TypeScript
57 lines
1.7 KiB
TypeScript
// 礼包奖励表
|
||
import { readFileAndParse } from '../util';
|
||
import { FILENAME } from '../../consts';
|
||
const _ = require('lodash');
|
||
|
||
export interface DicGiftPackagePlan {
|
||
// 唯一id
|
||
readonly id: number;
|
||
// 礼包类型 dic_zyz_giftPackage的id
|
||
readonly giftPackageId: number;
|
||
// addReward中的type
|
||
readonly contentType: number;
|
||
// 物品id或武将id
|
||
readonly content: number;
|
||
// 数量
|
||
readonly count: number;
|
||
// 权重
|
||
readonly weight: number;
|
||
// 保底, 每floor必出floorCount个,提前获取到次数就重置
|
||
readonly floorFrequency: number;
|
||
// 保底数量
|
||
readonly floorCount: number;
|
||
}
|
||
|
||
type KeysEnum<T> = { [P in keyof Required<T>]: true };
|
||
const DicGiftPackagePlanKeys: KeysEnum<DicGiftPackagePlan> = {
|
||
id: true,
|
||
giftPackageId: true,
|
||
contentType: true,
|
||
content: true,
|
||
count: true,
|
||
weight: true,
|
||
floorFrequency: true,
|
||
floorCount: true
|
||
}
|
||
|
||
export const dicGiftPackagePlan = new Map<number, DicGiftPackagePlan[]>(); // packageId => [plan]
|
||
export function loadGiftPackagePlan() {
|
||
dicGiftPackagePlan.clear();
|
||
let arr = readFileAndParse(FILENAME.DIC_GIFT_PACKAGE_PLAN);
|
||
|
||
arr.forEach(o => {
|
||
if(o.floor == '&') {
|
||
o.floorFrequency = 0;
|
||
o.floorCount = 0;
|
||
} else {
|
||
let arr = o.floor.split('&');
|
||
o.floorFrequency = isNaN(parseInt(arr[0]))? 0: parseInt(arr[0]);
|
||
o.floorCount = isNaN(parseInt(arr[1]))? 0: parseInt(arr[1]);
|
||
}
|
||
if(!dicGiftPackagePlan.has(o.giftPackageId)) {
|
||
dicGiftPackagePlan.set(o.giftPackageId, []);
|
||
}
|
||
dicGiftPackagePlan.get(o.giftPackageId)?.push(_.pick(o, Object.keys(DicGiftPackagePlanKeys)));
|
||
});
|
||
arr = undefined;
|
||
} |