返回提交历史
Modified
src/services/missionInventoryUpdateService.ts
+30
-0
Modified
src/types/requestTypes.ts
+2
-0
XFEstudio/XFESpaceNinjaServer
feat: railjack abandoned caches (#2611)
Closes #2602 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2611 Reviewed-by: Sainan <63328889+sainan@users.noreply.github.com> Co-authored-by: VampireKitten <dynamightkobold@gmail.com> Co-committed-by: VampireKitten <dynamightkobold@gmail.com>
261dbd5f
代码差异
2 个文件
+32
-0
@@ -2000,6 +2000,36 @@ function getRandomMissionDrops(
2000
2000
}
2001
2001
});
2002
2002
2003
// Railjack Abandoned Cache Rewards, Rotation A (Mandatory Objectives)
2004
if (RewardInfo.POICompletions) {
2005
if (region.cacheRewardManifest) {
2006
const deck = ExportRewards[region.cacheRewardManifest];
2007
for (let cache = 0; cache != RewardInfo.POICompletions; ++cache) {
2008
const drop = getRandomRewardByChance(deck[0]);
2009
if (drop) {
2010
drops.push({ StoreItem: drop.type, ItemCount: drop.itemCount, FromEnemyCache: true });
2011
}
2012
}
2013
} else {
2014
logger.error(`POI completed, but there was no cache reward manifest at ${RewardInfo.node}`);
2015
}
2016
}
2017
2018
// Railjack Abandoned Cache Rewards, Rotation B (Optional Objectives)
2019
if (RewardInfo.LootDungeonCompletions) {
2020
if (region.cacheRewardManifest) {
2021
const deck = ExportRewards[region.cacheRewardManifest];
2022
for (let cache = 0; cache != RewardInfo.LootDungeonCompletions; ++cache) {
2023
const drop = getRandomRewardByChance(deck[1]);
2024
if (drop) {
2025
drops.push({ StoreItem: drop.type, ItemCount: drop.itemCount, FromEnemyCache: true });
2026
}
2027
}
2028
} else {
2029
logger.error(`Loot dungeon completed, but there was no cache reward manifest at ${RewardInfo.node}`);
2030
}
2031
}
2032
2003
2033
if (region.cacheRewardManifest && RewardInfo.EnemyCachesFound) {
2004
2034
const deck = ExportRewards[region.cacheRewardManifest];
2005
2035
for (let rotation = 0; rotation != RewardInfo.EnemyCachesFound; ++rotation) {
@@ -187,6 +187,8 @@ export interface IRewardInfo {
187
187
rewardQualifications?: string; // did a Survival for 5 minutes and this was "1"
188
188
rewardTierOverrides?: number[]; // Disruption
189
189
PurgatoryRewardQualifications?: string;
190
POICompletions?: number;
191
LootDungeonCompletions?: number;
190
192
rewardSeed?: number | bigint;
191
193
periodicMissionTag?: string;
192
194
T?: number; // Duviri