寻宝:奖励
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// 关卡表
|
||||
import {decodeArrayListStr, parseNumberList, readFileAndParse} from '../util'
|
||||
import {decodeArrayListStr, parseGoodStr, parseNumberList, readFileAndParse} from '../util'
|
||||
import { TRAIN_REWARD_TYPE, WAR_RELATE_TABLES, WAR_TYPE } from '../../consts';
|
||||
import { isString } from 'underscore'
|
||||
import { RewardInter } from '../interface';
|
||||
@@ -33,10 +33,6 @@ export interface DicWar {
|
||||
readonly dailyType: number;
|
||||
// 寻宝匹配json
|
||||
readonly dispatchJsonId: number;
|
||||
// 寻宝奖励
|
||||
readonly jackpotReward: Array<{id: number, weight: number}>;
|
||||
// 寻宝队友奖励
|
||||
readonly teammateReward: Array<{id: number, count: number}>;
|
||||
// 镇念塔禁用角色
|
||||
readonly fobiddenCharactor: Array<{type: number, id: number}>;
|
||||
// 推荐战力
|
||||
@@ -59,15 +55,32 @@ export interface DicWar {
|
||||
readonly secondAttrLevel: number;
|
||||
}
|
||||
|
||||
export interface DicComBattleReward {
|
||||
// 关卡固定奖励
|
||||
readonly captainReward: Array<{id: number, count: number}>;
|
||||
// 队友奖励
|
||||
readonly teammateReward: Array<{id: number, count: number}>;
|
||||
// 队长限时段增加奖励
|
||||
readonly captainTimeReward: Array<{id: number, count: number}>;
|
||||
// 队友限时段增加奖励
|
||||
readonly teammateTimeReward: Array<{id: number, count: number}>;
|
||||
// 队长军团加成奖励
|
||||
readonly captainTimeGuildReward: Map<number, {id: number, count: number}[]>;
|
||||
// 队友军团加成奖励
|
||||
readonly teammateTimeGuildReward: Map<number, {id: number, count: number}[]>;
|
||||
}
|
||||
export const dicWar = new Map<number, DicWar>();
|
||||
export const dicWarPvp = new Array<DicWar>();
|
||||
export const dicDailyWarByType = new Map<number, DicWar[]>();
|
||||
export const dicHeroIdByWar = new Map<number, number>();
|
||||
export const dicComBattleReward = new Map<number, DicComBattleReward>(); // warId => DicComBattleReward
|
||||
|
||||
export function loadWar() {
|
||||
dicWar.clear();
|
||||
dicDailyWarByType.clear();
|
||||
dicWarPvp.splice(0, dicWarPvp.length);
|
||||
dicHeroIdByWar.clear();
|
||||
dicComBattleReward.clear();
|
||||
for(let filename of WAR_RELATE_TABLES) {
|
||||
let arr = readFileAndParse(filename);
|
||||
|
||||
@@ -75,7 +88,6 @@ export function loadWar() {
|
||||
o.fixReward = parseFixReward(o.fixReward);
|
||||
o.conditionReward = parseConditionReward(o.conditionReward);
|
||||
o.randomReward = parseRandomReward(o.RandomReward||o.randomReward);
|
||||
o.jackpotReward = parseJackpotReward(o.jackpotReward);
|
||||
o.teammateReward = parseFixReward(o.teammateReward);
|
||||
o.fobiddenCharactor = parseForbiddenChara(o.fobiddenCharactor);
|
||||
o.mapseid = parseNumberList(o.mapseid);
|
||||
@@ -100,6 +112,16 @@ export function loadWar() {
|
||||
} else if (o.warType == WAR_TYPE.GUILD_TRAIN) {
|
||||
o.winReward = parseTrainReward(o.winReward);
|
||||
o.failReward = parseTrainReward(o.failReward);
|
||||
} else if (o.warType == WAR_TYPE.COM_BATTLE) {
|
||||
let reward = {
|
||||
captainReward: parseGoodStr(o.fixReward),
|
||||
teammateReward: parseGoodStr(o.teammateReward),
|
||||
captainTimeReward: parseGoodStr(o.time_captain_normalReward),
|
||||
teammateTimeReward: parseGoodStr(o.time_normalReward),
|
||||
captainTimeGuildReward: parseComBattleTimeReward(o.time_captain_guildReward),
|
||||
teammateTimeGuildReward: parseComBattleTimeReward(o.time_captain_guildReward),
|
||||
}
|
||||
dicComBattleReward.set(o.war_id, reward);
|
||||
}
|
||||
dicWar.set(o.war_id, o);
|
||||
if(!!o.heroId) dicHeroIdByWar.set(o.war_id, o.heroId);
|
||||
@@ -147,18 +169,18 @@ function parseRandomReward(str: string = '') {
|
||||
return result
|
||||
}
|
||||
|
||||
function parseJackpotReward(str: string = '') {
|
||||
let result = new Array<{id: number, weight: number}>();
|
||||
if(!str) return result;
|
||||
let decodeArr = decodeArrayListStr(str);
|
||||
for(let [id, weight] of decodeArr) {
|
||||
if(isNaN(parseInt(id)) || isNaN(parseInt(weight))) {
|
||||
throw new Error('data table format wrong');
|
||||
}
|
||||
result.push({id: parseInt(id), weight: parseInt(weight)});
|
||||
}
|
||||
return result
|
||||
}
|
||||
// function parseJackpotReward(str: string = '') {
|
||||
// let result = new Array<{id: number, weight: number}>();
|
||||
// if(!str) return result;
|
||||
// let decodeArr = decodeArrayListStr(str);
|
||||
// for(let [id, weight] of decodeArr) {
|
||||
// if(isNaN(parseInt(id)) || isNaN(parseInt(weight))) {
|
||||
// throw new Error('data table format wrong');
|
||||
// }
|
||||
// result.push({id: parseInt(id), weight: parseInt(weight)});
|
||||
// }
|
||||
// return result
|
||||
// }
|
||||
|
||||
function parseForbiddenChara(str: string = '') {
|
||||
let result = new Array<{type: number, id: number}>();
|
||||
@@ -196,4 +218,15 @@ function parseTrainReward(str: string) {
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
function parseComBattleTimeReward(str: string) {
|
||||
let result = new Map<number, {id: number, count: number}[]>();
|
||||
if(!str) return result;
|
||||
let decodeArr = decodeArrayListStr(str);
|
||||
for(let i = 0; i < decodeArr.length; i++) {
|
||||
let [id, count] = decodeArr[i]
|
||||
result.set(i + 1, [{ id: parseInt(id), count: parseInt(count) }]);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
Reference in New Issue
Block a user