feat: deepmines bounties

This commit is contained in:
AMelonInsideLemon 2025-10-24 02:45:33 +02:00
parent 18fafc38b5
commit 8104e2fc27

View File

@ -243,7 +243,7 @@ export const addMissionInventoryUpdates = async (
} }
} }
} }
if (inventoryUpdates.MissionStatus == "GS_SUCCESS" && inventoryUpdates.RewardInfo.jobId) { if (inventoryUpdates.RewardInfo.jobId) {
// e.g. for Profit-Taker Phase 1: // e.g. for Profit-Taker Phase 1:
// JobTier: -6, // JobTier: -6,
// jobId: '/Lotus/Types/Gameplay/Venus/Jobs/Heists/HeistProfitTakerBountyOne_-6_SolarisUnitedHub1_663a71c80000000000000025_EudicoHeists', // jobId: '/Lotus/Types/Gameplay/Venus/Jobs/Heists/HeistProfitTakerBountyOne_-6_SolarisUnitedHub1_663a71c80000000000000025_EudicoHeists',
@ -251,7 +251,10 @@ export const addMissionInventoryUpdates = async (
// eslint-disable-next-line @typescript-eslint/no-unused-vars // eslint-disable-next-line @typescript-eslint/no-unused-vars
const [bounty, tier, hub, id, tag] = inventoryUpdates.RewardInfo.jobId.split("_"); const [bounty, tier, hub, id, tag] = inventoryUpdates.RewardInfo.jobId.split("_");
if (tag == "EudicoHeists") { if (
(tag == "EudicoHeists" && inventoryUpdates.MissionStatus == "GS_SUCCESS") ||
(tag == "NokkoColony" && inventoryUpdates.RewardInfo.JobStage == 4)
) {
inventory.CompletedJobChains ??= []; inventory.CompletedJobChains ??= [];
let chain = inventory.CompletedJobChains.find(x => x.LocationTag == tag); let chain = inventory.CompletedJobChains.find(x => x.LocationTag == tag);
if (!chain) { if (!chain) {
@ -1514,7 +1517,7 @@ export const addMissionRewards = async (
syndicateEntry = Goals.find(m => m._id.$oid === syndicateMissionId); syndicateEntry = Goals.find(m => m._id.$oid === syndicateMissionId);
if (syndicateEntry) syndicateEntry.Tag = syndicateEntry.JobAffiliationTag!; if (syndicateEntry) syndicateEntry.Tag = syndicateEntry.JobAffiliationTag!;
} }
if (syndicateEntry && syndicateEntry.Jobs) { if (syndicateEntry && syndicateEntry.Jobs && !jobType.startsWith("/Lotus/Types/Gameplay/NokkoColony/Jobs")) {
let currentJob = syndicateEntry.Jobs[rewardInfo.JobTier!]; let currentJob = syndicateEntry.Jobs[rewardInfo.JobTier!];
if ( if (
[ [
@ -2022,6 +2025,17 @@ function getRandomMissionDrops(
xpAmounts: [1000] xpAmounts: [1000]
}; };
RewardInfo.Q = false; // Just in case RewardInfo.Q = false; // Just in case
} else if (jobType.startsWith("/Lotus/Types/Gameplay/NokkoColony/Jobs/NokkoJob")) {
job = {
rewards: jobType.replace(
"/Lotus/Types/Gameplay/NokkoColony/Jobs/NokkoJob",
"Lotus/Types/Game/MissionDecks/NokkoColonyRewards/NokkoColonyRewards"
),
masteryReq: 0,
minEnemyLevel: 30,
maxEnemyLevel: 40,
xpAmounts: [0, 0, 0, 0, 0]
};
} else { } else {
const tierMap = { const tierMap = {
Two: "B", Two: "B",
@ -2065,14 +2079,18 @@ function getRandomMissionDrops(
} else if (totalStage == 5 && curentStage == 4) { } else if (totalStage == 5 && curentStage == 4) {
tableIndex = 2; tableIndex = 2;
} }
if (jobType.startsWith("/Lotus/Types/Gameplay/NokkoColony/Jobs/NokkoJob")) {
if (RewardInfo.JobStage === job.xpAmounts.length - 1) rotations = [0, 1, 2];
} else {
rotations = [tableIndex]; rotations = [tableIndex];
}
} else { } else {
rotations = [0]; rotations = [0];
} }
if ( if (
RewardInfo.Q && RewardInfo.Q &&
(RewardInfo.JobStage === job.xpAmounts.length - 1 || jobType.endsWith("VaultBounty")) && (RewardInfo.JobStage === job.xpAmounts.length - 1 || jobType.endsWith("VaultBounty")) &&
!jobType.startsWith("/Lotus/Types/Gameplay/NokkoColony/Jobs/NokkoJob") &&
!isEndlessJob !isEndlessJob
) { ) {
rotations.push(ExportRewards[job.rewards].length - 1); rotations.push(ExportRewards[job.rewards].length - 1);
@ -2163,6 +2181,7 @@ function getRandomMissionDrops(
logger.warn(`RewardSeed mismatch:`, { client: RewardInfo.rewardSeed, database: inventory.RewardSeed }); logger.warn(`RewardSeed mismatch:`, { client: RewardInfo.rewardSeed, database: inventory.RewardSeed });
} }
} }
if (rotations.length > 1) {
const rng = new SRng(BigInt(RewardInfo.rewardSeed ?? generateRewardSeed()) ^ 0xffffffffffffffffn); const rng = new SRng(BigInt(RewardInfo.rewardSeed ?? generateRewardSeed()) ^ 0xffffffffffffffffn);
rewardManifests.forEach(name => { rewardManifests.forEach(name => {
const table = ExportRewards[name]; const table = ExportRewards[name];
@ -2179,6 +2198,7 @@ function getRandomMissionDrops(
} }
} }
}); });
}
// Railjack Abandoned Cache Rewards, Rotation A (Mandatory Objectives) // Railjack Abandoned Cache Rewards, Rotation A (Mandatory Objectives)
if (RewardInfo.POICompletions) { if (RewardInfo.POICompletions) {