返回提交历史
Modified
src/controllers/api/researchMushroomController.ts
+27
-25
XFEstudio/SpaceNinjaServer
fix: correctly handle Dull Button in getJournalRank (#3963)
Closes #3960 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/3963 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
6806c59c
代码差异
1 个文件
+27
-25
@@ -85,35 +85,37 @@ interface IResearchMushroom {
85
85
Convert: boolean;
86
86
}
87
87
88
const journalEntriesRank: Record<string, number> = {
89
"/Lotus/Types/Items/MushroomJournal/PlainMushroomJournalItem": 1,
90
"/Lotus/Types/Items/MushroomJournal/GasMushroomJournalItem": 4,
91
"/Lotus/Types/Items/MushroomJournal/ToxinMushroomJournalItem": 3,
92
"/Lotus/Types/Items/MushroomJournal/ViralMushroomJournalItem": 4,
93
"/Lotus/Types/Items/MushroomJournal/MagneticMushroomJournalItem": 4,
94
"/Lotus/Types/Items/MushroomJournal/ElectricMushroomJournalItem": 3,
95
"/Lotus/Types/Items/MushroomJournal/TauMushroomJournalItem": 5,
96
"/Lotus/Types/Items/MushroomJournal/SlashMushroomJournalItem": 3,
97
"/Lotus/Types/Items/MushroomJournal/BlastMushroomJournalItem": 4,
98
"/Lotus/Types/Items/MushroomJournal/ImpactMushroomJournalItem": 3,
99
"/Lotus/Types/Items/MushroomJournal/ColdMushroomJournalItem": 3,
100
"/Lotus/Types/Items/MushroomJournal/CorrosiveMushroomJournalItem": 4,
101
"/Lotus/Types/Items/MushroomJournal/PunctureMushroomJournalItem": 3,
102
"/Lotus/Types/Items/MushroomJournal/HeatMushroomJournalItem": 3,
103
"/Lotus/Types/Items/MushroomJournal/RadiationMushroomJournalItem": 4,
104
"/Lotus/Types/Items/MushroomJournal/VoidMushroomJournalItem": 5
88
const journalEntryRankUpRequirements: Record<string, [number, number, number]> = {
89
"/Lotus/Types/Items/MushroomJournal/HeatMushroomJournalItem": [3, 6, 9],
90
"/Lotus/Types/Items/MushroomJournal/CorrosiveMushroomJournalItem": [4, 8, 12],
91
"/Lotus/Types/Items/MushroomJournal/SlashMushroomJournalItem": [3, 6, 9],
92
"/Lotus/Types/Items/MushroomJournal/PlainMushroomJournalItem": [1, 1, 2], // Stinky
93
"/Lotus/Types/Items/MushroomJournal/MagneticMushroomJournalItem": [4, 8, 12],
94
"/Lotus/Types/Items/MushroomJournal/RadiationMushroomJournalItem": [4, 8, 12],
95
"/Lotus/Types/Items/MushroomJournal/ImpactMushroomJournalItem": [3, 6, 9],
96
"/Lotus/Types/Items/MushroomJournal/ToxinMushroomJournalItem": [3, 6, 9],
97
"/Lotus/Types/Items/MushroomJournal/VoidMushroomJournalItem": [5, 10, 15],
98
"/Lotus/Types/Items/MushroomJournal/GasMushroomJournalItem": [4, 8, 12],
99
"/Lotus/Types/Items/MushroomJournal/BlastMushroomJournalItem": [4, 8, 12],
100
"/Lotus/Types/Items/MushroomJournal/PunctureMushroomJournalItem": [3, 6, 9],
101
"/Lotus/Types/Items/MushroomJournal/ElectricMushroomJournalItem": [3, 6, 9],
102
"/Lotus/Types/Items/MushroomJournal/ViralMushroomJournalItem": [4, 8, 12],
103
"/Lotus/Types/Items/MushroomJournal/TauMushroomJournalItem": [5, 10, 15],
104
"/Lotus/Types/Items/MushroomJournal/ColdMushroomJournalItem": [3, 6, 9]
105
105
};
106
106
107
107
const syndicateTitleThresholds = [0, 1, 2, 6, 12, 16];
108
108
109
109
const getJournalRank = (journalEntry: IJournalEntry): number => {
110
const k = journalEntriesRank[journalEntry.EntryType];
111
if (!k) return 0;
112
113
const thresholds = [k * 1, k * 3, k * 6];
114
115
if (journalEntry.Progress >= thresholds[2]) return 3;
116
if (journalEntry.Progress >= thresholds[1]) return 2;
117
if (journalEntry.Progress >= thresholds[0]) return 1;
110
const requirements = journalEntryRankUpRequirements[journalEntry.EntryType] as [number, number, number] | undefined;
111
if (requirements) {
112
const rankOneThreshold = requirements[0];
113
const rankTwoThreshold = rankOneThreshold + requirements[1];
114
const rankThreeThreshold = rankTwoThreshold + requirements[2];
115
116
if (journalEntry.Progress >= rankThreeThreshold) return 3;
117
if (journalEntry.Progress >= rankTwoThreshold) return 2;
118
if (journalEntry.Progress >= rankOneThreshold) return 1;
119
}
118
120
return 0;
119
121
};