feat(百家争鸣): 添加将灵合成

This commit is contained in:
luying
2023-09-25 20:17:23 +08:00
parent ad3c02fe70
commit b7c4bf9376
8 changed files with 108 additions and 3 deletions

View File

@@ -694,6 +694,7 @@ export const FILENAME = {
DIC_ROUGE_TECH_CIRCLE: "dic_rougeTechCircle",
DIC_ROUGE_TECH_LEVEL: "dic_rougeTechLevel",
DIC_GUILD_HP_RATIO: "dic_army_hpRatio",
DIC_SPIRIT_COMPOSE: "dic_zyz_spiritCompose",
}
export const WAR_RELATE_TABLES = [
@@ -1284,6 +1285,7 @@ export enum ITEM_CHANGE_REASON {
CHONGYANG_COST = 206, // 重阳集会购买消耗
NOVEMBER_REWARD = 207, // 辜月集会奖励
NOVEMBER_COST = 208, // 辜月集会购买消耗
EXCHANGE_SPIRIT = 209, // 将灵合成
}
export enum TA_EVENT {

View File

@@ -614,6 +614,11 @@ export const STATUS = {
EQUIP_IS_OVER: { code: 31302, simStr: '装备已超过上限,无法领取' },
// 道具相关
ITEM_CANNOT_RECEIVE_NO_GUILD: { code: 31401, simStr: '您没有加入军团,不可使用该道具' },
ITEM_NOT_SPIRIT: { code: 31402, simStr: '道具类型错误,不是将灵' },
SPIRIT_QUALITY_NOT_SAME: { code: 31403, simStr: '选择的将灵需要都是相同品质的' },
SPIRIT_QUALITY_NOT_FOUND: { code: 31404, simStr: '该品质将灵不可合成' },
SPIRIT_QUALITY_NOT_INTERGER: { code: 31405, simStr: '将灵材料不是整数倍' },
TARGET_SPIRIT_QUALITY_NOT_FOUND: { code: 31406, simStr: '目标品质将灵不存在' },
// 社交相关状态 40000 - 49999
SYS_CHANNEL_AUTH_NOT_ENOUGH: { code: 40000, simStr: '无法在系统频道发送消息' },

View File

@@ -1,5 +1,5 @@
import { dicHero, loadHero } from "./dictionary/DicHero";
import { dicGoods, figureCondition, loadGoods } from "./dictionary/DicGoods";
import { dicGoods, dicSpiritByQuality, figureCondition, loadGoods } from "./dictionary/DicGoods";
import { dicDaily, loadDaily } from "./dictionary/DicDaily";
import { dicEvent, dicEventList, loadEvent } from "./dictionary/DicEvent";
import { dicExpedition, DicExpedition, loadExpedition } from "./dictionary/DicExpedition";
@@ -173,6 +173,7 @@ import { dicRougePassiveWeight, loadRougePassiveWeight } from "./dictionary/DicR
import { dicRougeCharaCardPlan, loadRougeCharaCardPlan } from "./dictionary/DicRougeCharaCardPlan";
import { dicRougeHolyCardPlan, loadRougeHolyCardPlan } from "./dictionary/DicRougeHolyCardPlan";
import { dicBossHpRatio, loadBossHpRatio } from "./dictionary/DicBossHpRatio";
import { dicSpiritCompose, loadSpiritCompose } from "./dictionary/DicSpiritCompose";
export const gameData = {
daily: dicDaily,
@@ -433,6 +434,8 @@ export const gameData = {
rougeTechByRow: dicRougeTechIdByRow,
rougeTechLevel: dicRougeTechLevel,
bossHpRatio: dicBossHpRatio,
spiritCompose: dicSpiritCompose,
spiritByQuality: dicSpiritByQuality,
};
// 在此提供一些原先在gamedata中提供的方法以便更方便获取gameData数据
@@ -1803,6 +1806,7 @@ function loadDatas(type?: string) {
if (type == undefined || type == 'loadRougeTechCircle') loadRougeTechCircle();
if (type == undefined || type == 'loadRougeTechLevel') loadRougeTechLevel();
if (type == undefined || type == 'loadBossHpRatio') loadBossHpRatio();
if (type == undefined || type == 'loadSpiritCompose') loadSpiritCompose();
console.log('loadDatas type: ', type || 'all');

View File

@@ -1,6 +1,6 @@
// 物品表
import { decodeArrayListStr, readFileAndParse, parseGoodStr, } from '../util'
import { FILENAME, } from '../../consts'
import { FILENAME, ITID, } from '../../consts'
import { RewardInter } from '../interface';
const _ = require('lodash');
@@ -60,10 +60,12 @@ const DicGoodsKeys: KeysEnum<DicGoods> = {
}
export const dicGoods = new Map<number, DicGoods>();
export const figureCondition = new Map<number, { params: number[], id: number, gid: number }[]>(); // type => {params, id, gid}
export const dicSpiritByQuality = new Map<number, number[]>();
export function loadGoods() {
dicGoods.clear();
figureCondition.clear();
dicSpiritByQuality.clear();
let arr = readFileAndParse(FILENAME.DIC_GOODS);
@@ -78,6 +80,10 @@ export function loadGoods() {
}
o.condition = condition;
dicGoods.set(o.good_id, _.pick(o, Object.keys(DicGoodsKeys)));
if (o.itid == 67) {
if (!dicSpiritByQuality.has(o.quality)) dicSpiritByQuality.set(o.quality, []);
dicSpiritByQuality.get(o.quality)?.push(o.good_id);
}
});
arr = undefined;

View File

@@ -0,0 +1,25 @@
/**
* 将灵合成
*/
import { readFileAndParse } from '../util'
import { FILENAME } from '../../consts'
export interface DicSpiritCompose {
readonly goalQuality: number;
readonly materialQuality: number;
readonly materialNum: number;
}
export const dicSpiritCompose = new Map<number, DicSpiritCompose>();
export function loadSpiritCompose() {
dicSpiritCompose.clear();
let arr = readFileAndParse(FILENAME.DIC_SPIRIT_COMPOSE);
arr.forEach(o => {
dicSpiritCompose.set(o.materialQuality, o);
});
arr = undefined;
}

View File

@@ -0,0 +1,14 @@
[
{
"id": 1,
"goalQuality": 2,
"materialQuality": 1,
"materialNum": 5
},
{
"id": 2,
"goalQuality": 3,
"materialQuality": 2,
"materialNum": 10
}
]