Files
ZYZ/shared/pubUtils/dictionary/DicGiftPackagePlan.ts
2023-01-13 18:40:46 +08:00

57 lines
1.7 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 礼包奖励表
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;
}