feat(宝物): 添加宝物系统

This commit is contained in:
luying
2022-12-07 10:55:30 +08:00
parent b684307818
commit a83deeff5f
46 changed files with 15656 additions and 54 deletions

View File

@@ -110,6 +110,13 @@ import { dicLadderMatch, loadLadderMatch } from "./dictionary/DicLadderMatch";
import { dicLadderDifficultRatio, loadLadderDifficultRatio } from "./dictionary/DicLadderDifficultRatio";
import { dicLadderRankReward, loadLadderRankReward } from "./dictionary/DicLadderRankReward";
import { dicGeneralGoods, loadGeneralGoods } from "./dictionary/DicGeneralGoods";
import { dicArtifact, dicArtifactByGid, dicArtifactByGidAndType, dicArtifactsByGroup, loadArtifact } from "./dictionary/DicArtifact";
import { DicArtifactLvPlan, dicArtifactLvPlan, loadArtifactLvPlan } from "./dictionary/DicArtifactLvPlan";
import { dicArtifactQuality, dicArtifactQualityById, loadArtifactQuality } from "./dictionary/DicArtifactQuality";
import { dicArtifactQualityPlan, loadArtifactQualityPlan } from "./dictionary/DicArtifactQualityPlan";
import { dicArtifactSeid, loadArtifactSeid } from "./dictionary/DicArtifactSeid";
import { DicArtifact } from "./dictionary/DicArtifact";
import { DicArtifactQuality } from "./dictionary/DicArtifactQuality";
export const gameData = {
daily: dicDaily,
@@ -277,6 +284,15 @@ export const gameData = {
comBattleRewardTime: new Array<{from: string, to: string}>(),
comBattleReward: dicComBattleReward,
relationGoods: dicGeneralGoods,
artifact: dicArtifact,
artifactByGid: dicArtifactByGid,
artifactByGidAndType: dicArtifactByGidAndType,
artifactLvPlan: dicArtifactLvPlan,
artifactQuality: dicArtifactQuality,
artifactQualityById: dicArtifactQualityById,
artifactQualityPlan: dicArtifactQualityPlan,
artifactSeid: dicArtifactSeid,
artifactByGroupAndQuality: dicArtifactsByGroup,
};
// 在此提供一些原先在gamedata中提供的方法以便更方便获取gameData数据
@@ -991,6 +1007,64 @@ export function getShopType(shop: number, type: number) {
return gameData.shopType.get(key)||null;
}
export function getDefArtifactByGid(gid: number): DicArtifact {
let artifactId = gameData.artifactByGid.get(gid);
return gameData.artifact.get(artifactId);
}
export function getDicArtifactQualityByStage(quality: number, qualityStage: number): DicArtifactQuality {
let uniqId = gameData.artifactQuality.get(`${quality}_${qualityStage}`);
return gameData.artifactQualityById.get(uniqId);
}
export function getNextArtifactQuality(quality: number, qualityStage: number): DicArtifactQuality {
let dicArtifactQuality = getDicArtifactQualityByStage(quality, qualityStage);
if(!dicArtifactQuality) return null;
return gameData.artifactQualityById.get(dicArtifactQuality.nextId);
}
export function getNextArtifact(artifactId: number): (DicArtifact&DicArtifactQuality) {
let dicArtifact = gameData.artifact.get(artifactId);
if(!dicArtifact) return null;
let dicNextArtifactQuality = getNextArtifactQuality(dicArtifact.quality, dicArtifact.qualityStage);
if(!dicNextArtifactQuality) return null;
let dicNextArtifact = getArtifactByGroupAndQuality(dicArtifact.group, dicArtifact.type, dicNextArtifactQuality.quality, dicNextArtifactQuality.qualityStage);
if(!dicNextArtifact) return null;
return {...dicNextArtifact, ...dicNextArtifactQuality}
}
export function getArtifactStageZero(artifactId: number): (DicArtifact&DicArtifactQuality) {
let dicArtifact = getArtifactWithQuality(artifactId);
if(!dicArtifact) return null;
let dicZeroArtifact = gameData.artifactByGroupAndQuality.get(`${dicArtifact.group}_${dicArtifact.type}_${dicArtifact.quality}_${0}`);
if(!dicZeroArtifact) return null;
let dicZeroArtifactQuality = getDicArtifactQualityByStage(dicArtifact.quality, dicArtifact.qualityStage);
if(!dicZeroArtifactQuality) return null;
return {...dicZeroArtifact, ...dicZeroArtifactQuality}
}
export function getArtifactByGroupAndQuality(group: string, type: number, quality: number, qualityStage: number): DicArtifact {
return gameData.artifactByGroupAndQuality.get(`${group}_${type}_${quality}_${qualityStage}`);
}
export function getDicArtifactLvByPlanId(planId: number, lv: number): DicArtifactLvPlan {
let map = gameData.artifactLvPlan.get(planId);
return map?.get(lv);
}
export function getArtifactByGidAndType(goodId: number, type: number): DicArtifact {
let artifactId = gameData.artifactByGidAndType.get(`${goodId}_${type}`);
return gameData.artifact.get(artifactId);
}
export function getArtifactWithQuality(artifactId: number): (DicArtifact&DicArtifactQuality) {
let dicArtifact = gameData.artifact.get(artifactId);
if(!dicArtifact) return null;
let dicArtifactQuality = getDicArtifactQualityByStage(dicArtifact.quality, dicArtifact.qualityStage);
if(!dicArtifactQuality) return null;
return {...dicArtifact, ...dicArtifactQuality}
}
// 初始加载
function initDatas() {
parseDicParam();
@@ -1180,6 +1254,11 @@ function loadDatas() {
loadLadderDifficultRatio();
loadLadderRankReward();
loadGeneralGoods();
loadArtifact();
loadArtifactLvPlan();
loadArtifactQuality();
loadArtifactQualityPlan();
loadArtifactSeid();
}
// 重载dicParam