feat(gvg): 准备期:千机阁以及获取物品

This commit is contained in:
luying
2023-01-09 17:19:47 +08:00
parent 0530f931bc
commit 098a7c85c6
28 changed files with 744 additions and 106 deletions

View File

@@ -119,6 +119,8 @@ import { DicArtifact } from "./dictionary/DicArtifact";
import { DicArtifactQuality } from "./dictionary/DicArtifactQuality";
import { dicGiftPackagePlan, loadGiftPackagePlan } from "./dictionary/DicGiftPackagePlan";
import { dicGVGPeriod, loadGVGPeriod } from './dictionary/DicGVGPeriod';
import { dicGVGTech, loadGVGTech } from "./dictionary/DicGVGTech";
import { dicGVGItem, loadGVGItem } from "./dictionary/DicGVGItems";
export const gameData = {
daily: dicDaily,
@@ -297,6 +299,9 @@ export const gameData = {
artifactSeid: dicArtifactSeid,
artifactByGroupAndQuality: dicArtifactsByGroup,
gvgPeriod: dicGVGPeriod,
gvgTech: dicGVGTech,
gvgItem: dicGVGItem,
gvgActive: new Map<number, number>(),
};
// 在此提供一些原先在gamedata中提供的方法以便更方便获取gameData数据
@@ -1069,6 +1074,13 @@ export function getArtifactWithQuality(artifactId: number): (DicArtifact&DicArti
return {...dicArtifact, ...dicArtifactQuality}
}
function parseGVGActive() {
let arr = decodeArrayListStr(param.GVG.GVG_LEAGUE_ACTIVE_POINT);
for(let [id, active] of arr) {
gameData.gvgActive.set(parseInt(id), parseInt(active));
}
}
// 初始加载
function initDatas() {
parseDicParam();
@@ -1089,6 +1101,7 @@ function parseDicParam() {
loadAuctionTime();
decodeLadderBuyCost();
parseComBattleRewardTime();
parseGVGActive();
}
/**
@@ -1265,6 +1278,8 @@ function loadDatas() {
loadArtifactQualityPlan();
loadArtifactSeid();
loadGVGPeriod();
loadGVGTech();
loadGVGItem();
}
// 重载dicParam

View File

@@ -0,0 +1,40 @@
// GVG道具
import { FILENAME } from '../../consts'
import { RewardInter } from '../interface';
import { parseGoodStr, readFileAndParse } from '../util'
export interface DicGVGItem {
// 道具id
id: number;
// 点名称
name: string
// 1-种子 2-铲子 3-斧子 4-内政外政令 5-战功 6-激战期用的复活令&匕首
type: number;
// 1-每日刷新 2-赛期内刷新
refreshType: number;
// 兑换物品表消耗
consume: RewardInter[];
// 这个表里的兑换消耗
leagueConsume: RewardInter[];
// 耐久度或者产量
value: number,
// 消耗后可获得的奖励
reward: RewardInter[];
// 消耗后可获得的这张表里的奖励
leagueReward: RewardInter[];
}
export const dicGVGItem = new Map<number, DicGVGItem>();
export function loadGVGItem() {
dicGVGItem.clear();
let arr = readFileAndParse(FILENAME.DIC_GVG_ITEM);
arr.forEach(o => {
o.consume = parseGoodStr(o.consume);
o.leagueConsume = parseGoodStr(o.leagueConsume);
o.reward = parseGoodStr(o.reward);
o.leagueReward = parseGoodStr(o.leagueReward);
dicGVGItem.set(o.id, o);
});
arr = undefined;
}

View File

@@ -0,0 +1,44 @@
// GVG千机阁
import { FILENAME } from '../../consts'
import { decodeArrayListStr, readFileAndParse } from '../util'
export interface DicGVGTech {
// 唯一id
id: number;
// 点名称
name: string
// 激活后获得的内容
content: string;
// 效果类型 1-资源产量上传 2-征战中原提升 3-激战期提升 4-复活cd减少 5-箭塔 6-攻城车
type: number;
// 资源提升量啊复活cd减少量啊之类的值
param: number;
// 点排序
nodeSort: number;
// 联军等级限制
levelLimit: number;
// 前置id
prepositionId: number[][];
// 所需的战功
consume: number;
}
export const dicGVGTech = new Map<number, DicGVGTech>();
export function loadGVGTech() {
dicGVGTech.clear();
let arr = readFileAndParse(FILENAME.DIC_GVG_TECH);
arr.forEach(o => {
o.prepositionId = parsePrePositionId(o.prepositionId);
dicGVGTech.set(o.id, o);
});
arr = undefined;
}
function parsePrePositionId(str: string) {
let arr = decodeArrayListStr(str);
return arr.map(arr1 => {
return arr1.map(str => parseInt(str));
});
}