活动:支持礼包兑换
This commit is contained in:
@@ -0,0 +1,110 @@
|
|||||||
|
import { GIFT_PACKAGE_TYPE, ACTIVITY_RESOURCES_TYPE } from '../consts';
|
||||||
|
import { gameData } from '../pubUtils/data';
|
||||||
|
import { addItems, createHeroes } from './rewardService';
|
||||||
|
import { RewardParam } from '../domain/activityField/rewardField';
|
||||||
|
import { CreateHeroParam } from '../domain/roleField/hero';
|
||||||
|
import { DicGiftPackage } from '../pubUtils/dictionary/DicGiftPackage';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 兑换礼包
|
||||||
|
* @param giftID 礼包id
|
||||||
|
* @param roleId 角色id
|
||||||
|
* @param roleName 角色名称
|
||||||
|
* @param sid
|
||||||
|
*/
|
||||||
|
export async function useGiftPackage(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[], giftID: number, selected: Array<number> = []) {
|
||||||
|
let result = { goods: [], addHeros: [] }
|
||||||
|
let giftPackageData = gameData.giftPackage.get(giftID);
|
||||||
|
if (!giftPackageData) {
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
let giftType = giftPackageData.type;//礼包类型
|
||||||
|
let reward = giftPackageData.reward;//奖励内容,数组
|
||||||
|
switch (giftType) {
|
||||||
|
case GIFT_PACKAGE_TYPE.ALL://全部
|
||||||
|
{
|
||||||
|
result = await addReward(roleId, roleName, sid, serverId, funcs, reward);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case GIFT_PACKAGE_TYPE.SELECTED_X://手选
|
||||||
|
{
|
||||||
|
let count = giftPackageData.count;//选择个数
|
||||||
|
if (selected.length != count) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
let selectedReward = getSelectedReward(giftPackageData, selected)
|
||||||
|
result = await addReward(roleId, roleName, sid, serverId, funcs, selectedReward);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case GIFT_PACKAGE_TYPE.RANDOM_X://随机
|
||||||
|
{
|
||||||
|
let count = giftPackageData.count;//随机个数
|
||||||
|
let randomArray = randomSelectedData(count);
|
||||||
|
let selectedReward = getSelectedReward(giftPackageData, randomArray)
|
||||||
|
result = await addReward(roleId, roleName, sid, serverId, funcs, selectedReward);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//结算奖励的内容
|
||||||
|
export async function addReward(roleId: string, roleName: string, sid: string, serverId: number, funcs: number[], reward: Array<RewardParam>) {
|
||||||
|
let giftReward = rewardItemData(reward);
|
||||||
|
let goodArray = giftReward.goods;
|
||||||
|
let heroArray = giftReward.heroes;
|
||||||
|
|
||||||
|
//兑换物品
|
||||||
|
let goods = await addItems(roleId, roleName, sid, goodArray)
|
||||||
|
let addHeros = [];
|
||||||
|
if (heroArray.length > 0) {
|
||||||
|
let heroResult = await createHeroes(roleId, roleName, sid, serverId, funcs, heroArray);
|
||||||
|
goods = goods.concat(heroResult.goods)
|
||||||
|
addHeros = addHeros.concat(heroResult.heroes);
|
||||||
|
}
|
||||||
|
return { goods, addHeros }
|
||||||
|
}
|
||||||
|
|
||||||
|
//表中的奖励数据(包括礼包)转换成具体对应奖励物品的实例
|
||||||
|
function rewardItemData(reward: Array<RewardParam>) {
|
||||||
|
let goods: Array<RewardInter> = [];
|
||||||
|
let heroes: Array<CreateHeroParam> = [];
|
||||||
|
for (let obj of reward) {
|
||||||
|
switch (obj.type) {
|
||||||
|
case ACTIVITY_RESOURCES_TYPE.HERO:
|
||||||
|
heroes.push({ hid: obj.id, count: obj.count })
|
||||||
|
break;
|
||||||
|
case ACTIVITY_RESOURCES_TYPE.GOODS:
|
||||||
|
goods.push({ id: obj.id, count: obj.count })
|
||||||
|
break;
|
||||||
|
case ACTIVITY_RESOURCES_TYPE.GIFTPACKAGE://配置成礼包会立刻兑换,配置成物品会把礼包放入背包中
|
||||||
|
let goodData = gameData.goods.get(obj.id);//礼包物品
|
||||||
|
let giftPackageData = gameData.giftPackage.get(1)//gameData.giftPackage.get(goodData.gift);//礼包数据
|
||||||
|
let giftReward = rewardItemData(giftPackageData.reward)
|
||||||
|
goods = goods.concat(giftReward.goods)
|
||||||
|
heroes = heroes.concat(giftReward.heroes)
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return { goods, heroes }
|
||||||
|
}
|
||||||
|
|
||||||
|
function getSelectedReward(giftData: DicGiftPackage, selected: Array<number>) {
|
||||||
|
let selectedReward = [];
|
||||||
|
|
||||||
|
return selectedReward;
|
||||||
|
}
|
||||||
|
|
||||||
|
function randomSelectedData(count: number) {
|
||||||
|
let arr = [];
|
||||||
|
|
||||||
|
return arr;
|
||||||
|
}
|
||||||
@@ -17,4 +17,14 @@ export enum ACTIVITY_RESOURCES_TYPE {
|
|||||||
HERO = 1, // 英雄表
|
HERO = 1, // 英雄表
|
||||||
GOODS = 2, // 物品表
|
GOODS = 2, // 物品表
|
||||||
RMB = 3, // RMB
|
RMB = 3, // RMB
|
||||||
|
GIFTPACKAGE = 4, //礼包
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 礼包类型
|
||||||
|
*/
|
||||||
|
export enum GIFT_PACKAGE_TYPE {
|
||||||
|
ALL = 1, // 全部
|
||||||
|
SELECTED_X = 2, // 多选*
|
||||||
|
RANDOM_X = 3, // 多随*
|
||||||
}
|
}
|
||||||
@@ -8,12 +8,12 @@ export const IT_TYPE = {
|
|||||||
|
|
||||||
// 背包页签
|
// 背包页签
|
||||||
export const GOOD_TYPE = {
|
export const GOOD_TYPE = {
|
||||||
ITEM: 1,
|
ITEM: 1,
|
||||||
EQUIP: 2,
|
EQUIP: 2,
|
||||||
PIECE: 3,
|
PIECE: 3,
|
||||||
BLUEPRT: 4,
|
BLUEPRT: 4,
|
||||||
JEWEL: 5,
|
JEWEL: 5,
|
||||||
PICTURE: 6
|
PICTURE: 6
|
||||||
};
|
};
|
||||||
|
|
||||||
// 存到消耗品表内显示的类型
|
// 存到消耗品表内显示的类型
|
||||||
@@ -31,6 +31,7 @@ export const CONSUME_TYPE = {
|
|||||||
HEAD: 11, // 头像
|
HEAD: 11, // 头像
|
||||||
FRAME: 12, // 相框
|
FRAME: 12, // 相框
|
||||||
SPINE: 13, // 形象
|
SPINE: 13, // 形象
|
||||||
|
GIFT_PACKAGE: 14, // 礼包
|
||||||
};
|
};
|
||||||
|
|
||||||
export enum ROLE_TERAPH {
|
export enum ROLE_TERAPH {
|
||||||
@@ -74,14 +75,14 @@ export enum JEWEL_TYPE {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const ITEM_TABLE = {
|
export const ITEM_TABLE = {
|
||||||
EQUIP: 'equip',
|
EQUIP: 'equip',
|
||||||
ITEM: 'item',
|
ITEM: 'item',
|
||||||
ROLE: 'role',
|
ROLE: 'role',
|
||||||
HERO: 'hero'
|
HERO: 'hero'
|
||||||
}
|
}
|
||||||
|
|
||||||
const itid_array = [
|
const itid_array = [
|
||||||
{ id: 1, name: '短兵(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON, equipJewel: JEWEL_TYPE.WEAPON},
|
{ id: 1, name: '短兵(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON, equipJewel: JEWEL_TYPE.WEAPON },
|
||||||
{ id: 2, name: '枪矛(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON, equipJewel: JEWEL_TYPE.WEAPON },
|
{ id: 2, name: '枪矛(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON, equipJewel: JEWEL_TYPE.WEAPON },
|
||||||
{ id: 3, name: '重兵(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON, equipJewel: JEWEL_TYPE.WEAPON },
|
{ id: 3, name: '重兵(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON, equipJewel: JEWEL_TYPE.WEAPON },
|
||||||
{ id: 4, name: '弓弩(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON, equipJewel: JEWEL_TYPE.WEAPON },
|
{ id: 4, name: '弓弩(神兵)', table: 'equip', type: EQUIP_TYPE.WEAPON, equipJewel: JEWEL_TYPE.WEAPON },
|
||||||
@@ -103,7 +104,7 @@ const itid_array = [
|
|||||||
{ id: 20, name: '车(行具)', table: 'equip', type: EQUIP_TYPE.SHOES, equipJewel: JEWEL_TYPE.SHOES },
|
{ id: 20, name: '车(行具)', table: 'equip', type: EQUIP_TYPE.SHOES, equipJewel: JEWEL_TYPE.SHOES },
|
||||||
{ id: 21, name: '佩饰(礼器)', table: 'equip', type: EQUIP_TYPE.ACCESSORY, equipJewel: JEWEL_TYPE.ACCESSORY },
|
{ id: 21, name: '佩饰(礼器)', table: 'equip', type: EQUIP_TYPE.ACCESSORY, equipJewel: JEWEL_TYPE.ACCESSORY },
|
||||||
{ id: 22, name: '钟鼎(礼器)', table: 'equip', type: EQUIP_TYPE.ACCESSORY, equipJewel: JEWEL_TYPE.ACCESSORY },
|
{ id: 22, name: '钟鼎(礼器)', table: 'equip', type: EQUIP_TYPE.ACCESSORY, equipJewel: JEWEL_TYPE.ACCESSORY },
|
||||||
{ id: 23, name: '印章(礼器)', table: 'equip', type: EQUIP_TYPE.ACCESSORY, equipJewel: JEWEL_TYPE.ACCESSORY },
|
{ id: 23, name: '印章(礼器)', table: 'equip', type: EQUIP_TYPE.ACCESSORY, equipJewel: JEWEL_TYPE.ACCESSORY },
|
||||||
|
|
||||||
{ id: 24, name: '消耗品', table: 'item', type: CONSUME_TYPE.CONSUME },
|
{ id: 24, name: '消耗品', table: 'item', type: CONSUME_TYPE.CONSUME },
|
||||||
|
|
||||||
@@ -139,49 +140,51 @@ const itid_array = [
|
|||||||
{ id: 49, name: '玩家好感道具', table: 'item', type: CONSUME_TYPE.FRIEND_FAVOUR },
|
{ id: 49, name: '玩家好感道具', table: 'item', type: CONSUME_TYPE.FRIEND_FAVOUR },
|
||||||
{ id: 50, name: '形象', table: 'role', type: CONSUME_TYPE.HEAD },
|
{ id: 50, name: '形象', table: 'role', type: CONSUME_TYPE.HEAD },
|
||||||
{ id: 51, name: '相框', table: 'role', type: CONSUME_TYPE.FRAME },
|
{ id: 51, name: '相框', table: 'role', type: CONSUME_TYPE.FRAME },
|
||||||
{ id: 52, name: '玩家形象', table: 'role', type: CONSUME_TYPE.SPINE }
|
{ id: 52, name: '玩家形象', table: 'role', type: CONSUME_TYPE.SPINE },
|
||||||
|
|
||||||
|
{ id: 54, name: '礼包分类', table: 'item', type: CONSUME_TYPE.GIFT_PACKAGE }
|
||||||
];
|
];
|
||||||
|
|
||||||
export const ITID = new Map<number, {id: number, name: string, table: string, type?: number, isCurrency?: boolean, equipJewel?: number}>();
|
export const ITID = new Map<number, { id: number, name: string, table: string, type?: number, isCurrency?: boolean, equipJewel?: number }>();
|
||||||
for(let obj of itid_array) {
|
for (let obj of itid_array) {
|
||||||
ITID.set(obj.id, obj);
|
ITID.set(obj.id, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
export const CURRENCY_TYPE = {
|
export const CURRENCY_TYPE = {
|
||||||
GOLD: "gold",
|
GOLD: "gold",
|
||||||
COIN: "coin",
|
COIN: "coin",
|
||||||
ACTION_POINT: "ap",
|
ACTION_POINT: "ap",
|
||||||
TREASURE_POINT: "treasurePoint",
|
TREASURE_POINT: "treasurePoint",
|
||||||
EXPEDITION_POINT: "expeditionPoint",
|
EXPEDITION_POINT: "expeditionPoint",
|
||||||
DUNGEON_POINT: "dungeonPoint",
|
DUNGEON_POINT: "dungeonPoint",
|
||||||
FRIEND_POINT: "friendPoint",
|
FRIEND_POINT: "friendPoint",
|
||||||
HONOUR: "honour",
|
HONOUR: "honour",
|
||||||
SKIN_COIN: "skinCoin",
|
SKIN_COIN: "skinCoin",
|
||||||
DUNGEON: "dungeon"
|
DUNGEON: "dungeon"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export const SPEICAL_ITEM = {
|
export const SPEICAL_ITEM = {
|
||||||
REFINE_ADD_RATE: [17039]
|
REFINE_ADD_RATE: [17039]
|
||||||
};
|
};
|
||||||
|
|
||||||
const currencyArr = [
|
const currencyArr = [
|
||||||
{ "gid": 31001, "name": "铜钱", "type": CURRENCY_TYPE.COIN },
|
{ "gid": 31001, "name": "铜钱", "type": CURRENCY_TYPE.COIN },
|
||||||
{ "gid": 31002, "name": "元宝", "type": CURRENCY_TYPE.GOLD },
|
{ "gid": 31002, "name": "元宝", "type": CURRENCY_TYPE.GOLD },
|
||||||
{ "gid": 31003, "name": "体力", "type": CURRENCY_TYPE.ACTION_POINT },
|
{ "gid": 31003, "name": "体力", "type": CURRENCY_TYPE.ACTION_POINT },
|
||||||
{ "gid": 40001, "name": "远征币", "type": CURRENCY_TYPE.EXPEDITION_POINT },
|
{ "gid": 40001, "name": "远征币", "type": CURRENCY_TYPE.EXPEDITION_POINT },
|
||||||
{ "gid": 40002, "name": "寻宝币", "type": CURRENCY_TYPE.TREASURE_POINT },
|
{ "gid": 40002, "name": "寻宝币", "type": CURRENCY_TYPE.TREASURE_POINT },
|
||||||
{ "gid": 40003, "name": "情谊点", "type": CURRENCY_TYPE.FRIEND_POINT },
|
{ "gid": 40003, "name": "情谊点", "type": CURRENCY_TYPE.FRIEND_POINT },
|
||||||
{ "gid": 40004, "name": "秘境币", "type": CURRENCY_TYPE.DUNGEON_POINT },
|
{ "gid": 40004, "name": "秘境币", "type": CURRENCY_TYPE.DUNGEON_POINT },
|
||||||
{ "gid": 40005, "name": "功勋", "type": CURRENCY_TYPE.HONOUR },
|
{ "gid": 40005, "name": "功勋", "type": CURRENCY_TYPE.HONOUR },
|
||||||
{ "gid": 40006, "name": "蜀锦", "type": CURRENCY_TYPE.SKIN_COIN },
|
{ "gid": 40006, "name": "蜀锦", "type": CURRENCY_TYPE.SKIN_COIN },
|
||||||
{ "gid": 40007, "name": "秘境币", "type": CURRENCY_TYPE.DUNGEON }
|
{ "gid": 40007, "name": "秘境币", "type": CURRENCY_TYPE.DUNGEON }
|
||||||
];
|
];
|
||||||
export const CURRENCY = new Map<number, {gid: number, name: string, type: string}>();
|
export const CURRENCY = new Map<number, { gid: number, name: string, type: string }>();
|
||||||
export const CURRENCY_BY_TYPE = new Map<string, number>();
|
export const CURRENCY_BY_TYPE = new Map<string, number>();
|
||||||
for(let obj of currencyArr) {
|
for (let obj of currencyArr) {
|
||||||
CURRENCY.set(obj.gid, obj);
|
CURRENCY.set(obj.gid, obj);
|
||||||
CURRENCY_BY_TYPE.set(obj.type, obj.gid);
|
CURRENCY_BY_TYPE.set(obj.type, obj.gid);
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum QUALITY_TYPE {
|
export enum QUALITY_TYPE {
|
||||||
@@ -197,11 +200,11 @@ export const COM_BTL_QUALITY = [QUALITY_TYPE.BLUE, QUALITY_TYPE.PURPLE, QUALITY_
|
|||||||
|
|
||||||
// 各品质随机属性条数 quality => number
|
// 各品质随机属性条数 quality => number
|
||||||
export const RANDOM_SE_COUNT = new Map<number, number>([
|
export const RANDOM_SE_COUNT = new Map<number, number>([
|
||||||
[QUALITY_TYPE.BLUE, 0],
|
[QUALITY_TYPE.BLUE, 0],
|
||||||
[QUALITY_TYPE.PURPLE, 1],
|
[QUALITY_TYPE.PURPLE, 1],
|
||||||
[QUALITY_TYPE.ORANGE, 2],
|
[QUALITY_TYPE.ORANGE, 2],
|
||||||
[QUALITY_TYPE.RED, 3],
|
[QUALITY_TYPE.RED, 3],
|
||||||
[QUALITY_TYPE.GOLD, 4]
|
[QUALITY_TYPE.GOLD, 4]
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
@@ -215,47 +218,47 @@ export const FIX_ATTRIBUTES_RAN = 20; // 固定属性值+-20%随机
|
|||||||
|
|
||||||
|
|
||||||
export function getCurNameById(gid) {
|
export function getCurNameById(gid) {
|
||||||
let currency = CURRENCY.get(gid);
|
let currency = CURRENCY.get(gid);
|
||||||
if (!currency) {
|
if (!currency) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (currency.type == CURRENCY_TYPE.COIN) {
|
if (currency.type == CURRENCY_TYPE.COIN) {
|
||||||
return 'coin';
|
return 'coin';
|
||||||
} else if (currency.type == CURRENCY_TYPE.GOLD) {
|
} else if (currency.type == CURRENCY_TYPE.GOLD) {
|
||||||
return 'gold';
|
return 'gold';
|
||||||
} else if (currency.type == CURRENCY_TYPE.ACTION_POINT) {
|
} else if (currency.type == CURRENCY_TYPE.ACTION_POINT) {
|
||||||
return 'ap';
|
return 'ap';
|
||||||
} else if (currency.type == CURRENCY_TYPE.FRIEND_POINT) {
|
} else if (currency.type == CURRENCY_TYPE.FRIEND_POINT) {
|
||||||
return 'frdCnt';
|
return 'frdCnt';
|
||||||
} else if (currency.type == CURRENCY_TYPE.EXPEDITION_POINT) {
|
} else if (currency.type == CURRENCY_TYPE.EXPEDITION_POINT) {
|
||||||
return 'expeditionPoint';
|
return 'expeditionPoint';
|
||||||
} else if (currency.type == CURRENCY_TYPE.HONOUR) {
|
} else if (currency.type == CURRENCY_TYPE.HONOUR) {
|
||||||
return 'honour'
|
return 'honour'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getDropItems() {
|
export function getDropItems() {
|
||||||
let items = [
|
let items = [
|
||||||
{ id:25 ,count: 1 },{ id:225 ,count: 1 },{ id:625 ,count: 1 },{ id:2025 ,count: 1 },{ id:3025 ,count: 1 },{ id:4025 ,count: 1 },{ id:5025 ,count: 1 },{ id:6025 ,count: 1 },
|
{ id: 25, count: 1 }, { id: 225, count: 1 }, { id: 625, count: 1 }, { id: 2025, count: 1 }, { id: 3025, count: 1 }, { id: 4025, count: 1 }, { id: 5025, count: 1 }, { id: 6025, count: 1 },
|
||||||
{ id:1 ,count: 1 },{ id:2 ,count: 1 },{ id:101 ,count: 1 },{ id:102 ,count: 1 },{ id:201 ,count: 1 },{ id:202 ,count: 1 },{ id:301 ,count: 1 },{ id:302 ,count: 1 },
|
{ id: 1, count: 1 }, { id: 2, count: 1 }, { id: 101, count: 1 }, { id: 102, count: 1 }, { id: 201, count: 1 }, { id: 202, count: 1 }, { id: 301, count: 1 }, { id: 302, count: 1 },
|
||||||
{ id:401 ,count: 1 },{ id:501 ,count: 1 },{ id:601 ,count: 1 },{ id:602 ,count: 1 },{ id:701 ,count: 1 },{ id:702 ,count: 1 },{ id:2001 ,count: 1 },{ id:2002 ,count: 1 },
|
{ id: 401, count: 1 }, { id: 501, count: 1 }, { id: 601, count: 1 }, { id: 602, count: 1 }, { id: 701, count: 1 }, { id: 702, count: 1 }, { id: 2001, count: 1 }, { id: 2002, count: 1 },
|
||||||
{ id:2101 ,count: 1 },{ id:2102 ,count: 1 },{ id:2201 ,count: 1 },{ id:2202 ,count: 1 },{ id:3001 ,count: 1 },{ id:3002 ,count: 1 },{ id:3101 ,count: 1 },{ id:3102 ,count: 1 },
|
{ id: 2101, count: 1 }, { id: 2102, count: 1 }, { id: 2201, count: 1 }, { id: 2202, count: 1 }, { id: 3001, count: 1 }, { id: 3002, count: 1 }, { id: 3101, count: 1 }, { id: 3102, count: 1 },
|
||||||
{ id:3201 ,count: 1 },{ id:3202 ,count: 1 },{ id:4001 ,count: 1 },{ id:4002 ,count: 1 },{ id:4101 ,count: 1 },{ id:4102 ,count: 1 },{ id:4201 ,count: 1 },{ id:4202 ,count: 1 },
|
{ id: 3201, count: 1 }, { id: 3202, count: 1 }, { id: 4001, count: 1 }, { id: 4002, count: 1 }, { id: 4101, count: 1 }, { id: 4102, count: 1 }, { id: 4201, count: 1 }, { id: 4202, count: 1 },
|
||||||
{ id:5001 ,count: 1 },{ id:5002 ,count: 1 },{ id:5101 ,count: 1 },{ id:5102 ,count: 1 },{ id:5201 ,count: 1 },{ id:5202 ,count: 1 },{ id:6001 ,count: 1 },{ id:6002 ,count: 1 },
|
{ id: 5001, count: 1 }, { id: 5002, count: 1 }, { id: 5101, count: 1 }, { id: 5102, count: 1 }, { id: 5201, count: 1 }, { id: 5202, count: 1 }, { id: 6001, count: 1 }, { id: 6002, count: 1 },
|
||||||
{ id:6101 ,count: 1 },{ id:6102 ,count: 1 },{ id:11001 ,count: 10000},{ id:11002 ,count: 10000 },{ id:11003,count: 10000 },{ id:11004 ,count: 100000 },{ id:11011 ,count: 100000 },
|
{ id: 6101, count: 1 }, { id: 6102, count: 1 }, { id: 11001, count: 10000 }, { id: 11002, count: 10000 }, { id: 11003, count: 10000 }, { id: 11004, count: 100000 }, { id: 11011, count: 100000 },
|
||||||
{ id:11012 ,count: 100000 },{ id:11013 ,count: 100000 },{ id:11014 ,count: 100000 },{ id:11015 ,count: 100000 },{ id:11016 ,count: 100000 },{ id:11017 ,count: 100000 },
|
{ id: 11012, count: 100000 }, { id: 11013, count: 100000 }, { id: 11014, count: 100000 }, { id: 11015, count: 100000 }, { id: 11016, count: 100000 }, { id: 11017, count: 100000 },
|
||||||
{ id:17001 ,count: 100000 },{ id:17002 ,count: 100000 },{ id:17003 ,count: 100000 },{ id:17004 ,count: 100000 },{ id:17005 ,count: 100000 },{ id:17006 ,count: 100000 },
|
{ id: 17001, count: 100000 }, { id: 17002, count: 100000 }, { id: 17003, count: 100000 }, { id: 17004, count: 100000 }, { id: 17005, count: 100000 }, { id: 17006, count: 100000 },
|
||||||
{ id:17007 ,count: 100000 },{ id:17008 ,count: 100000 },{ id:17009 ,count: 100000 },{ id:17010 ,count: 100000 },{ id:17011 ,count: 100000 },{ id:17012 ,count: 100000 },
|
{ id: 17007, count: 100000 }, { id: 17008, count: 100000 }, { id: 17009, count: 100000 }, { id: 17010, count: 100000 }, { id: 17011, count: 100000 }, { id: 17012, count: 100000 },
|
||||||
{ id:17013 ,count: 100000 },{ id:17014 ,count: 100000 },{ id:17015 ,count: 100000 },{ id:17016 ,count: 100000 },{ id:17016 ,count: 100000 },{ id:17017 ,count: 100000 },
|
{ id: 17013, count: 100000 }, { id: 17014, count: 100000 }, { id: 17015, count: 100000 }, { id: 17016, count: 100000 }, { id: 17016, count: 100000 }, { id: 17017, count: 100000 },
|
||||||
{ id:17018 ,count: 100000 },{ id:17019 ,count: 100000 },{ id:17020 ,count: 100000 },{ id:17021 ,count: 100000 },{ id:17022 ,count: 100000 },{ id:17023 ,count: 100000 },
|
{ id: 17018, count: 100000 }, { id: 17019, count: 100000 }, { id: 17020, count: 100000 }, { id: 17021, count: 100000 }, { id: 17022, count: 100000 }, { id: 17023, count: 100000 },
|
||||||
{ id:17024 ,count: 100000 },{ id:17025 ,count: 100000 },{ id:17026 ,count: 100000 },{ id:17027 ,count: 100000 },{ id:17028 ,count: 100000 },{ id:17029 ,count: 100000 },
|
{ id: 17024, count: 100000 }, { id: 17025, count: 100000 }, { id: 17026, count: 100000 }, { id: 17027, count: 100000 }, { id: 17028, count: 100000 }, { id: 17029, count: 100000 },
|
||||||
{ id:17030 ,count: 100000 },{ id:17031 ,count: 100000 },{ id:17032 ,count: 100000 },{ id:17033 ,count: 100000 },{ id:17034 ,count: 100000 },{ id:17035 ,count: 100000 },
|
{ id: 17030, count: 100000 }, { id: 17031, count: 100000 }, { id: 17032, count: 100000 }, { id: 17033, count: 100000 }, { id: 17034, count: 100000 }, { id: 17035, count: 100000 },
|
||||||
{ id:17036 ,count: 100000 },{ id:17037 ,count: 100000 },{ id:17038 ,count: 100000 },{ id:17039 ,count: 100000 },{ id:17040 ,count: 100000 },{ id:17041 ,count: 100000 },
|
{ id: 17036, count: 100000 }, { id: 17037, count: 100000 }, { id: 17038, count: 100000 }, { id: 17039, count: 100000 }, { id: 17040, count: 100000 }, { id: 17041, count: 100000 },
|
||||||
{ id:17042 ,count: 100000 },{ id:17043 ,count: 100000 },{ id:17044 ,count: 100000 },{ id:17045 ,count: 100000 },{ id:17046 ,count: 100000 },{ id:17047 ,count: 100000 },
|
{ id: 17042, count: 100000 }, { id: 17043, count: 100000 }, { id: 17044, count: 100000 }, { id: 17045, count: 100000 }, { id: 17046, count: 100000 }, { id: 17047, count: 100000 },
|
||||||
{ id:21001 ,count: 100000 },{ id:21002 ,count: 100000 },{ id:31001 ,count: 100000 },{ id:31002 ,count: 100000 },{ id:31003 ,count: 100000 },{ id:33001 ,count: 100000 },
|
{ id: 21001, count: 100000 }, { id: 21002, count: 100000 }, { id: 31001, count: 100000 }, { id: 31002, count: 100000 }, { id: 31003, count: 100000 }, { id: 33001, count: 100000 },
|
||||||
{ id:33002 ,count: 100000 },{ id:33003 ,count: 100000 },{ id:40001 ,count: 100000 },{ id:40002 ,count: 100000 },{ id:42001 ,count: 100000 },{ id:42002 ,count: 100000 },
|
{ id: 33002, count: 100000 }, { id: 33003, count: 100000 }, { id: 40001, count: 100000 }, { id: 40002, count: 100000 }, { id: 42001, count: 100000 }, { id: 42002, count: 100000 },
|
||||||
{ id:50009 ,count: 100000 },{ id:50010 ,count: 100000 },{ id:60001 ,count: 100000 },{ id:60002 ,count: 100000 },{ id:4 ,count: 2 },{ id:2004 ,count: 2 },{ id:220 ,count: 2 },
|
{ id: 50009, count: 100000 }, { id: 50010, count: 100000 }, { id: 60001, count: 100000 }, { id: 60002, count: 100000 }, { id: 4, count: 2 }, { id: 2004, count: 2 }, { id: 220, count: 2 },
|
||||||
{ id:2008 ,count: 2 },{ id:2012 ,count: 2 },{ id:2208 ,count: 2 },{ id:2016 ,count: 2 },{ id:2120 ,count: 2 },{ id:2220 ,count: 2 },{ id:50031, count: 1000}
|
{ id: 2008, count: 2 }, { id: 2012, count: 2 }, { id: 2208, count: 2 }, { id: 2016, count: 2 }, { id: 2120, count: 2 }, { id: 2220, count: 2 }, { id: 50031, count: 1000 }
|
||||||
]
|
]
|
||||||
return items;
|
return items;
|
||||||
}
|
}
|
||||||
@@ -279,4 +282,4 @@ export const SPECIAL_ATTR = {
|
|||||||
WAR_ID: 1,
|
WAR_ID: 1,
|
||||||
TREASURE_ID: 2,
|
TREASURE_ID: 2,
|
||||||
TREASURE_TYPE: 3
|
TREASURE_TYPE: 3
|
||||||
}
|
}
|
||||||
@@ -474,6 +474,7 @@ export const FILENAME = {
|
|||||||
DIC_ACHIEVEMENT_BOX: 'dic_zyz_achievementBox',
|
DIC_ACHIEVEMENT_BOX: 'dic_zyz_achievementBox',
|
||||||
DIC_GACHA: 'dic_zyz_gacha',
|
DIC_GACHA: 'dic_zyz_gacha',
|
||||||
DIC_GACHA_CONTENT: 'dic_zyz_recruitContent',
|
DIC_GACHA_CONTENT: 'dic_zyz_recruitContent',
|
||||||
|
DIC_GIFT_PACKAGE: 'dic_zyz_giftPackage',
|
||||||
}
|
}
|
||||||
|
|
||||||
export const WAR_RELATE_TABLES = [
|
export const WAR_RELATE_TABLES = [
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
//奖励资源
|
||||||
|
export interface RewardParam {
|
||||||
|
type: number;
|
||||||
|
id: number;
|
||||||
|
count: number;
|
||||||
|
}
|
||||||
+46
-44
@@ -38,10 +38,10 @@ import { dicHeroScroll, preHeroScroll } from './dictionary/DicHeroScroll';
|
|||||||
import { dicPvpOpponent } from './dictionary/DicPvpOpponent';
|
import { dicPvpOpponent } from './dictionary/DicPvpOpponent';
|
||||||
import { dicPvpTeamLevel } from './dictionary/DicPvpTeamLevel';
|
import { dicPvpTeamLevel } from './dictionary/DicPvpTeamLevel';
|
||||||
import { dicPvpRefreshConsume, maxPvpRefreshCnt } from './dictionary/DicPvpRefreshConsume';
|
import { dicPvpRefreshConsume, maxPvpRefreshCnt } from './dictionary/DicPvpRefreshConsume';
|
||||||
import { dicGkPvp, dicGkPvps } from './dictionary/DicGkPvp';
|
import { dicGkPvp, dicGkPvps } from './dictionary/DicGkPvp';
|
||||||
import { dicHeroRewads } from './dictionary/DicPvpHeroReward';
|
import { dicHeroRewads } from './dictionary/DicPvpHeroReward';
|
||||||
import { dicRankRewads, dicRankMax } from './dictionary/DicPvpRankReward';
|
import { dicRankRewads, dicRankMax } from './dictionary/DicPvpRankReward';
|
||||||
import { dicPvpBoxs } from './dictionary/DicPvpBox';
|
import { dicPvpBoxs } from './dictionary/DicPvpBox';
|
||||||
import { dicGuildAuth } from './dictionary/DicGuildAuth';
|
import { dicGuildAuth } from './dictionary/DicGuildAuth';
|
||||||
import { dicCenterBase, dicEquipPriduceBase, dicBossBase, dicTrainBase, dicDonateBase, dicWishPoolBase, dicStoreBase, dicStructureConsume } from "./dictionary/DicStructure";
|
import { dicCenterBase, dicEquipPriduceBase, dicBossBase, dicTrainBase, dicDonateBase, dicWishPoolBase, dicStoreBase, dicStructureConsume } from "./dictionary/DicStructure";
|
||||||
import { dicGuildActiveDayReward } from './dictionary/DicGuildActiveDayReward';
|
import { dicGuildActiveDayReward } from './dictionary/DicGuildActiveDayReward';
|
||||||
@@ -78,6 +78,7 @@ import { dicMainTaskStage } from "./dictionary/DicMainTaskStage";
|
|||||||
import { dicTaskBox } from './dictionary/DicTaskBox';
|
import { dicTaskBox } from './dictionary/DicTaskBox';
|
||||||
import { dicGacha } from "./dictionary/DicGacha";
|
import { dicGacha } from "./dictionary/DicGacha";
|
||||||
import { dicGachaContent, dicGachaContentHero } from "./dictionary/DicGachaContent";
|
import { dicGachaContent, dicGachaContentHero } from "./dictionary/DicGachaContent";
|
||||||
|
import { dicGiftPackage } from "./dictionary/DicGiftPackage";
|
||||||
|
|
||||||
export const gameData = {
|
export const gameData = {
|
||||||
blurprtCompose: dicBlueprtCompose,
|
blurprtCompose: dicBlueprtCompose,
|
||||||
@@ -108,7 +109,7 @@ export const gameData = {
|
|||||||
warJson: dicWarJson,
|
warJson: dicWarJson,
|
||||||
xunbao: dicXunbao,
|
xunbao: dicXunbao,
|
||||||
btlBossHpSum: new Map<number, number>(),
|
btlBossHpSum: new Map<number, number>(),
|
||||||
btlBossHp: new Map<number, Array<{dataId: number, hp: number, actorId: number}>>(),
|
btlBossHp: new Map<number, Array<{ dataId: number, hp: number, actorId: number }>>(),
|
||||||
blueprtToWar: new Map<number, number>(),
|
blueprtToWar: new Map<number, number>(),
|
||||||
blueprt: blueprt,
|
blueprt: blueprt,
|
||||||
fashion: dicFashions,
|
fashion: dicFashions,
|
||||||
@@ -190,7 +191,8 @@ export const gameData = {
|
|||||||
gachaContentHero: dicGachaContentHero,
|
gachaContentHero: dicGachaContentHero,
|
||||||
gachaHope: getGachaHopePercent(),
|
gachaHope: getGachaHopePercent(),
|
||||||
gachaTurntable: getGachaTurntablePercent(),
|
gachaTurntable: getGachaTurntablePercent(),
|
||||||
heroTransPiece: getHeroTransPiece()
|
heroTransPiece: getHeroTransPiece(),
|
||||||
|
giftPackage: dicGiftPackage
|
||||||
};
|
};
|
||||||
|
|
||||||
// 在此提供一些原先在gamedata中提供的方法,以便更方便获取gameData数据
|
// 在此提供一些原先在gamedata中提供的方法,以便更方便获取gameData数据
|
||||||
@@ -202,9 +204,9 @@ export const gameData = {
|
|||||||
export function getLvByExp(exp: number) {
|
export function getLvByExp(exp: number) {
|
||||||
let curLv = 0;
|
let curLv = 0;
|
||||||
let entries = gameData.kingexp.entries();
|
let entries = gameData.kingexp.entries();
|
||||||
for (let [lv, {sum}] of entries) {
|
for (let [lv, { sum }] of entries) {
|
||||||
curLv = lv;
|
curLv = lv;
|
||||||
if(exp < sum) break;
|
if (exp < sum) break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return curLv;
|
return curLv;
|
||||||
@@ -227,7 +229,7 @@ export function getHeroLvByExp(exp: number) {
|
|||||||
let entries = gameData.charexp.entries();
|
let entries = gameData.charexp.entries();
|
||||||
for (let [lv, sum] of entries) {
|
for (let [lv, sum] of entries) {
|
||||||
curLv = lv;
|
curLv = lv;
|
||||||
if(exp < sum) break;
|
if (exp < sum) break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return curLv;
|
return curLv;
|
||||||
@@ -250,7 +252,7 @@ export function getFavourLvByExp(exp: number) {
|
|||||||
let entries = gameData.friendShipLevelMap.entries();
|
let entries = gameData.friendShipLevelMap.entries();
|
||||||
for (let [lv, { expSum: sum }] of entries) {
|
for (let [lv, { expSum: sum }] of entries) {
|
||||||
curLv = lv;
|
curLv = lv;
|
||||||
if(exp < sum) break;
|
if (exp < sum) break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return curLv;
|
return curLv;
|
||||||
@@ -269,9 +271,9 @@ export function getBossHpByWarId(warId: number) {
|
|||||||
newAttr.setByWarJson(attribute, 1);
|
newAttr.setByWarJson(attribute, 1);
|
||||||
let attrJson = newAttr.getReduceAttributes();
|
let attrJson = newAttr.getReduceAttributes();
|
||||||
|
|
||||||
const hp = attrJson.hp||0;
|
const hp = attrJson.hp || 0;
|
||||||
if (hp > 0) {
|
if (hp > 0) {
|
||||||
bossHpArr.push({dataId, hp, actorId});
|
bossHpArr.push({ dataId, hp, actorId });
|
||||||
bossHpSum += hp;
|
bossHpSum += hp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -288,10 +290,10 @@ export function getWarIdByBlueprtId(blueprtId: number) {
|
|||||||
let warId = gameData.blueprtToWar.get(blueprtId);
|
let warId = gameData.blueprtToWar.get(blueprtId);
|
||||||
if (!warId) {
|
if (!warId) {
|
||||||
let blueprt = gameData.goods.get(blueprtId);
|
let blueprt = gameData.goods.get(blueprtId);
|
||||||
if(blueprt) {
|
if (blueprt) {
|
||||||
const { specialAttr } = blueprt;
|
const { specialAttr } = blueprt;
|
||||||
warId = specialAttr.get(SPECIAL_ATTR.WAR_ID);
|
warId = specialAttr.get(SPECIAL_ATTR.WAR_ID);
|
||||||
if(warId)
|
if (warId)
|
||||||
gameData.blueprtToWar.set(blueprtId, warId);
|
gameData.blueprtToWar.set(blueprtId, warId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -312,22 +314,22 @@ export function getMaxGradeByjobClass(jobClass: number) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getJobByGradeAndClass(jobClass: number, grade: number) {
|
export function getJobByGradeAndClass(jobClass: number, grade: number) {
|
||||||
return gameData.jobClassAndgrades.get(jobClass +'_' + grade);
|
return gameData.jobClassAndgrades.get(jobClass + '_' + grade);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getFriendShipById(shipId: number, level: number) {
|
export function getFriendShipById(shipId: number, level: number) {
|
||||||
return gameData.friendShips.get(shipId +'_' + level);
|
return gameData.friendShips.get(shipId + '_' + level);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getGoodById(gid:number) {
|
export function getGoodById(gid: number) {
|
||||||
return gameData.goods.get(gid);
|
return gameData.goods.get(gid);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getJewelById(gid:number) {
|
export function getJewelById(gid: number) {
|
||||||
return gameData.jewels.get(gid);
|
return gameData.jewels.get(gid);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getHeroEquipByClassId(classId:number) {
|
export function getHeroEquipByClassId(classId: number) {
|
||||||
return gameData.dicHeroEquip.get(classId);
|
return gameData.dicHeroEquip.get(classId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -342,7 +344,7 @@ export function getTitle(titleLv: number) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getTeraph(id: number, grade: number) {
|
export function getTeraph(id: number, grade: number) {
|
||||||
const teraphInfo = gameData.teraphs.get(id +'_'+ grade);
|
const teraphInfo = gameData.teraphs.get(id + '_' + grade);
|
||||||
return teraphInfo;
|
return teraphInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -361,21 +363,21 @@ export function getSuit(id: number) {
|
|||||||
return suitInfo;
|
return suitInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getFuncsSwitch(id:number) {
|
export function getFuncsSwitch(id: number) {
|
||||||
const funcInfo = gameData.funcsSwitch.get(id);
|
const funcInfo = gameData.funcsSwitch.get(id);
|
||||||
return funcInfo;
|
return funcInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getPLvByScore(score: number) {
|
export function getPLvByScore(score: number) {
|
||||||
let lv = 0;
|
let lv = 0;
|
||||||
for(let {teamLv, topLineupMin, topLineupMax} of gameData.pvpTeamLevel) {
|
for (let { teamLv, topLineupMin, topLineupMax } of gameData.pvpTeamLevel) {
|
||||||
if(score >= topLineupMin) lv = teamLv;
|
if (score >= topLineupMin) lv = teamLv;
|
||||||
if(score < topLineupMax) break;
|
if (score < topLineupMax) break;
|
||||||
}
|
}
|
||||||
return lv;
|
return lv;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getPvpGkByWarId (warId: number) {
|
export function getPvpGkByWarId(warId: number) {
|
||||||
return gameData.pvpGk.get(warId);
|
return gameData.pvpGk.get(warId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -426,17 +428,17 @@ export function getTrainBaseByLv(lv: number) {
|
|||||||
|
|
||||||
export function getGuildActiveWeekReward(rank: number) {
|
export function getGuildActiveWeekReward(rank: number) {
|
||||||
let result = gameData.guildActiveWeekReward.find(cur => {
|
let result = gameData.guildActiveWeekReward.find(cur => {
|
||||||
let {rankMax, rankMin} = cur;
|
let { rankMax, rankMin } = cur;
|
||||||
return rank >= rankMin && rank <= (rankMax || rankMax == -1);
|
return rank >= rankMin && rank <= (rankMax || rankMax == -1);
|
||||||
});
|
});
|
||||||
let reward = new Array<RewardInter>();
|
let reward = new Array<RewardInter>();
|
||||||
if(result) reward = result.reward;
|
if (result) reward = result.reward;
|
||||||
return reward;
|
return reward;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getGuildActiveByIdAndType(id: number, type: number) {
|
export function getGuildActiveByIdAndType(id: number, type: number) {
|
||||||
let dicWay = gameData.guildActiveWays.get(id);
|
let dicWay = gameData.guildActiveWays.get(id);
|
||||||
if(!dicWay) return 0;
|
if (!dicWay) return 0;
|
||||||
return dicWay.activePoint.get(type.toString());
|
return dicWay.activePoint.get(type.toString());
|
||||||
}
|
}
|
||||||
export function getArmyDevelopConsumeById(id: number) {
|
export function getArmyDevelopConsumeById(id: number) {
|
||||||
@@ -465,9 +467,9 @@ export function getArmyWishPoolBaseByLv(lv: number) {
|
|||||||
|
|
||||||
export function getFriendLvByExp(exp: number) {
|
export function getFriendLvByExp(exp: number) {
|
||||||
let resultLv = 1;
|
let resultLv = 1;
|
||||||
for(let [lv, {sum}] of gameData.roleFriendLv.entries()) {
|
for (let [lv, { sum }] of gameData.roleFriendLv.entries()) {
|
||||||
resultLv = lv;
|
resultLv = lv;
|
||||||
if(exp < sum) break;
|
if (exp < sum) break;
|
||||||
}
|
}
|
||||||
return resultLv;
|
return resultLv;
|
||||||
}
|
}
|
||||||
@@ -479,9 +481,9 @@ export function getFriendLvByExp(exp: number) {
|
|||||||
export function getDicFriendByLv(lv: number) {
|
export function getDicFriendByLv(lv: number) {
|
||||||
let dicFriend: DicRoleFriend;
|
let dicFriend: DicRoleFriend;
|
||||||
let entries = gameData.roleFriend.entries();
|
let entries = gameData.roleFriend.entries();
|
||||||
for (let [dicLv, dic ] of entries) {
|
for (let [dicLv, dic] of entries) {
|
||||||
dicFriend = dic;
|
dicFriend = dic;
|
||||||
if(lv > dicLv) break;
|
if (lv > dicLv) break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return dicFriend;
|
return dicFriend;
|
||||||
@@ -494,8 +496,8 @@ export function getDicFriendByLv(lv: number) {
|
|||||||
export function getTodayGuildActivity() {
|
export function getTodayGuildActivity() {
|
||||||
let today = getCurDay();
|
let today = getCurDay();
|
||||||
let dic: DicGuildActivity;
|
let dic: DicGuildActivity;
|
||||||
for(let [_id, dicGuildActivity] of gameData.guildActivity) {
|
for (let [_id, dicGuildActivity] of gameData.guildActivity) {
|
||||||
if(dicGuildActivity.openDay.includes(today)) {
|
if (dicGuildActivity.openDay.includes(today)) {
|
||||||
dic = dicGuildActivity;
|
dic = dicGuildActivity;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -509,11 +511,11 @@ export function getTodayGuildActivity() {
|
|||||||
* @param rank 排名
|
* @param rank 排名
|
||||||
*/
|
*/
|
||||||
export function getGuildAuctionRewards(aid: number, rank: number) {
|
export function getGuildAuctionRewards(aid: number, rank: number) {
|
||||||
let ranksReward = gameData.guildAuction.get(aid)||[];
|
let ranksReward = gameData.guildAuction.get(aid) || [];
|
||||||
let dic = ranksReward.find(cur => {
|
let dic = ranksReward.find(cur => {
|
||||||
return rank >= cur.min && (rank <= cur.max || cur.max == 0);
|
return rank >= cur.min && (rank <= cur.max || cur.max == 0);
|
||||||
});
|
});
|
||||||
return dic?dic.rewards: new Array<RewardInter>();
|
return dic ? dic.rewards : new Array<RewardInter>();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -523,11 +525,11 @@ export function getGuildAuctionRewards(aid: number, rank: number) {
|
|||||||
* @param rank 成员在军团内部排名
|
* @param rank 成员在军团内部排名
|
||||||
*/
|
*/
|
||||||
export function getCityActivityRewards(type: number, guildRank: number, rank: number) {
|
export function getCityActivityRewards(type: number, guildRank: number, rank: number) {
|
||||||
let ranksReward = gameData.cityActivityReward.get(type)||[];
|
let ranksReward = gameData.cityActivityReward.get(type) || [];
|
||||||
let dic = ranksReward.find(cur => {
|
let dic = ranksReward.find(cur => {
|
||||||
return cur.guildRank == guildRank && (rank >= cur.min && (rank <= cur.max || cur.max == 0));
|
return cur.guildRank == guildRank && (rank >= cur.min && (rank <= cur.max || cur.max == 0));
|
||||||
});
|
});
|
||||||
return dic?dic.honour: 0;
|
return dic ? dic.honour : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
function decodeRaceActivityEncounter() {
|
function decodeRaceActivityEncounter() {
|
||||||
@@ -535,8 +537,8 @@ function decodeRaceActivityEncounter() {
|
|||||||
let map = decodeIdCntArrayStr(str, 1);
|
let map = decodeIdCntArrayStr(str, 1);
|
||||||
let newMap = new Map<number, number>();
|
let newMap = new Map<number, number>();
|
||||||
let eventNum = 0;
|
let eventNum = 0;
|
||||||
for(let [key, value] of map) {
|
for (let [key, value] of map) {
|
||||||
if(value == RACE_EVENT_TYPE.EVENT) eventNum ++;
|
if (value == RACE_EVENT_TYPE.EVENT) eventNum++;
|
||||||
newMap.set(parseInt(key), value);
|
newMap.set(parseInt(key), value);
|
||||||
}
|
}
|
||||||
return { events: newMap, eventNum };
|
return { events: newMap, eventNum };
|
||||||
@@ -558,14 +560,14 @@ function decodeRaceNormalItems() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function decodeRaceEventItems() {
|
function decodeRaceEventItems() {
|
||||||
let str = GUILDACTIVITY.RACEACTIVITY_EVENT_ITEMS||"";
|
let str = GUILDACTIVITY.RACEACTIVITY_EVENT_ITEMS || "";
|
||||||
return parseGoodStr(str);
|
return parseGoodStr(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getRaceEventItems() {
|
export function getRaceEventItems() {
|
||||||
let items = gameData.raceNormalItems;
|
let items = gameData.raceNormalItems;
|
||||||
let result = new Array<RewardInter>();
|
let result = new Array<RewardInter>();
|
||||||
for(let {id, min, max} of items) {
|
for (let { id, min, max } of items) {
|
||||||
let count = getRandValueByMinMax(min, max, 0);
|
let count = getRandValueByMinMax(min, max, 0);
|
||||||
result.push({ id, count });
|
result.push({ id, count });
|
||||||
}
|
}
|
||||||
@@ -581,7 +583,7 @@ export function getDicGachaFloor(id: number) {
|
|||||||
|
|
||||||
export function getRandExpedition(cnt = 1) {
|
export function getRandExpedition(cnt = 1) {
|
||||||
let arr: DicExpedition[] = [];
|
let arr: DicExpedition[] = [];
|
||||||
for(let [_id, dicExpedition] of gameData.expedition) {
|
for (let [_id, dicExpedition] of gameData.expedition) {
|
||||||
arr.push(dicExpedition);
|
arr.push(dicExpedition);
|
||||||
}
|
}
|
||||||
return getRandEelm(arr, cnt);
|
return getRandEelm(arr, cnt);
|
||||||
@@ -606,7 +608,7 @@ function getGachaTurntablePercent() {
|
|||||||
function getHeroTransPiece() {
|
function getHeroTransPiece() {
|
||||||
let map = decodeIdCntArrayStr(RECRUIT.RECRUIT_CHANGE_SHARD, 1);
|
let map = decodeIdCntArrayStr(RECRUIT.RECRUIT_CHANGE_SHARD, 1);
|
||||||
let newMap = new Map<number, number>();
|
let newMap = new Map<number, number>();
|
||||||
for(let [id, count] of map) {
|
for (let [id, count] of map) {
|
||||||
newMap.set(parseInt(id), count);
|
newMap.set(parseInt(id), count);
|
||||||
}
|
}
|
||||||
return newMap
|
return newMap
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
// 礼包奖励表
|
||||||
|
import { decodeArrayListStr, readJsonFile } from '../util';
|
||||||
|
import { FILENAME } from '../../consts';
|
||||||
|
import { RewardParam } from '../../domain/activityField/rewardField';
|
||||||
|
|
||||||
|
export interface DicGiftPackage {
|
||||||
|
// 礼包id
|
||||||
|
readonly id: number;
|
||||||
|
// 礼包类型 GIFT_PACKAGE_TYPE 1.全部;2.选择;3.随机
|
||||||
|
readonly type: number;
|
||||||
|
// 个数 type=1时,无效
|
||||||
|
readonly count: number;
|
||||||
|
// 礼包内容
|
||||||
|
readonly reward: Array<RewardParam>;
|
||||||
|
// 描述
|
||||||
|
readonly des: string;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const str = readJsonFile(FILENAME.DIC_GIFT_PACKAGE);
|
||||||
|
let arr = JSON.parse(str);
|
||||||
|
|
||||||
|
export const dicGiftPackage = new Map<number, DicGiftPackage>();
|
||||||
|
arr.forEach(o => {
|
||||||
|
o.reward = parseAttr(o.reward);
|
||||||
|
dicGiftPackage.set(o.id, o);
|
||||||
|
});
|
||||||
|
|
||||||
|
function parseAttr(str: string) {
|
||||||
|
let result = new Array<{ type: number, id: number, count: number }>();
|
||||||
|
if (!str) return result;
|
||||||
|
let decodeArr = decodeArrayListStr(str);
|
||||||
|
for (let [type, id, count] of decodeArr) {
|
||||||
|
if (isNaN(parseInt(type)) || isNaN(parseInt(id)) || isNaN(parseInt(count))) {
|
||||||
|
throw new Error('data table format wrong');
|
||||||
|
}
|
||||||
|
result.push({ type: parseInt(type), id: parseInt(id), count: parseInt(count) });
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"id": 1, //礼包id
|
||||||
|
"des": "成年人,全都要",
|
||||||
|
"type": 1, //礼包类型
|
||||||
|
"count": 3, //奖励内容个数
|
||||||
|
"reward": "2&1&1|2&7&1|2&33028&1" //所有奖励 奖励类型&物品id&数量
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"des": "小学生才做的选择题",
|
||||||
|
"type": 2,
|
||||||
|
"count": 1,
|
||||||
|
"reward": "2&1&1|2&7&1|2&33028&1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"des": "别人说了算",
|
||||||
|
"type": 3,
|
||||||
|
"count": 1,
|
||||||
|
"reward": "2&1&1|2&7&1|2&33028&1"
|
||||||
|
}
|
||||||
|
]
|
||||||
Reference in New Issue
Block a user