feat(稷下学宫): 修改带出英灵奖励数量, 修改特性卡随机权重(流派、品质、等级相关)

This commit is contained in:
zhangxk
2023-09-08 14:07:52 +08:00
parent 98b4b56143
commit e5bbd112b7
10 changed files with 8077 additions and 7656 deletions

View File

@@ -595,7 +595,7 @@ export async function getPassiveCardPlan(passiveCardPlan: number, passiveCardRan
let cardsMap = await getCardCount(gameCode, ROUGE_LIKE_CARD_TYPE.PASSIVE);
const { chooseCardsMap, noChooseCardsMap } = await getIsChooseCard(gameCode);
for (let obj of cards) {
let weightRecord: { originalWight?: number, passiveRedWight?: number, passiveLableNum?: number, authorAddWeight?: number, passiveLableNumAddWeight?: number, finalWeight?: number } = {};
let weightRecord: { originalWight?: number, passiveRedWight?: number, holyAddWeight?: number, passiveLableNum?: number, authorAddWeight?: number, passiveLableNumAddWeight?: number, finalWeight?: number } = {};
if (!obj) continue;
let { cardId, weight } = obj;
if (!cardId || !weight) continue;
@@ -617,11 +617,17 @@ export async function getPassiveCardPlan(passiveCardPlan: number, passiveCardRan
}
const holyAddWeight = await getAddPassiveWeight(roleId, gameCode, type);
weight += holyAddWeight;
weightRecord.holyAddWeight = holyAddWeight;
weight += await getAddPassiveWeight(roleId, gameCode, type);
if ((passiveCardData?.authorType || 0) == type) {
weight += ROUGELIKE.AUTHOR_ADD_RANDOM;
weightRecord.authorAddWeight = ROUGELIKE.AUTHOR_ADD_RANDOM;
const { authorType = 0, quality = 0, lv = 0 } = passiveCardData;
if (authorType == type) {
const passiveWeightData = gameData.rougePassiveWeight.get(authorType + '_' + quality + '_' + lv);
if (passiveWeightData && passiveWeightData.authorTypeWeightAdd) {
weight += passiveWeightData.authorTypeWeightAdd;
weightRecord.authorAddWeight = passiveWeightData.authorTypeWeightAdd;
}
}
@@ -632,13 +638,6 @@ export async function getPassiveCardPlan(passiveCardPlan: number, passiveCardRan
weightRecord.passiveLableNumAddWeight = ROUGELIKE.PASSIVE_LABLE_ADD_RANDOM * (Math.ceil(labelNum / ROUGELIKE.PASSIVE_LABLE_NUM));
}
// if (!passiveCardData.passiveLabel || passiveCardData.passiveLabel.length == 0) continue;
// for (let val of passiveCardData.passiveLabel) {
// let labelNum = lableMap.get(val) || 0;
// if (labelNum < ROUGELIKE.PASSIVE_LABLE_NUM || ROUGELIKE.PASSIVE_LABLE_NUM == 0) continue;
// weight += ROUGELIKE.PASSIVE_LABLE_ADD_RANDOM * (Math.ceil(labelNum / ROUGELIKE.PASSIVE_LABLE_NUM));
// }
weightRecord.finalWeight = weight;
newCards.push({ ...obj, weight, weightRecord });
@@ -861,7 +860,7 @@ export async function updateChalleng(dbRecord: RougelikeRecordType, roleId: stri
}
export function getLayerRewardOneData(type: number, grade: number, layer: number, nodeType: number) {
let result: { takeoutReward?: RewardInter[], coin?: number, score?: number, tech?: number, spiritPlan?: number } = {};
let result: { takeoutReward?: RewardInter[], coin?: number, score?: number, tech?: number, spiritPlan?: RewardInter[] } = {};
const typeGradeData = gameData.rougeTypeGrade.get(type + '_' + grade);
if (!typeGradeData) return result;
const layerPlanData = gameData.rougeLayerPlan.get(typeGradeData.layerPlan + '_' + layer);
@@ -871,15 +870,15 @@ export function getLayerRewardOneData(type: number, grade: number, layer: number
const layerRewardData = gameData.rougeLayerRewardPlan.get(layerPlanData.rewardPlan + '_' + nodeType);
if (!layerRewardData) return result;
result = { ...layerRewardData, ...result };
return result;
}
export function getRandomSpirit(spiritPlan: number) {
export function getRandomSpirit(spiritPlan: number, randomNum: number) {
let spiritId: number[] = [];
const spiritPlanData = gameData.spiritPlan.get(spiritPlan);
if (ROUGELIKE.SPIRIT_RANDOM_NUM == 0 || !spiritPlanData || spiritPlanData.length == 0) return spiritId;
let random = getRandEelmWithWeightAndNum(spiritPlanData, ROUGELIKE.SPIRIT_RANDOM_NUM);
if (randomNum == 0 || !spiritPlanData || spiritPlanData.length == 0) return spiritId;
let random = getRandEelmWithWeightAndNum(spiritPlanData, randomNum);
spiritId = random.map(cur => { return cur.dic.spiritId });
return spiritId;