Open DRG-17 opened 1 year ago
Thanks for the report, it's most likely that I messed up copying the IDs over. I'll take a look at it sometime in the next few days
Any updates for this to be resolved?
Yeah one it seems to be missing the new Infected skin for Gunner's BRT7 Gun.
Says I do not have Paint Jobs - Black Crag, Regal Aegis, Toxic Defender, Scale Brigade on all Dwarves.
Sorry i guess i blanked out i didn't read they already said which ones. I just read it didnt have some.
I wanted to point out that every "prestige" based armor set are all unlocked across all characters once you hit that rank.
Currently these are: Black Crag, Regal Aegis, Toxic Defender, Scale Brigade
https://deeprockgalactic.wiki.gg/wiki/Armor_Skins
If you threw some logic into this block here, there might be a function you can create that pushes the Driller's "Prestige" armor based IDs across all of the rest? My assumption here is that Driller is first because it's alphabetical but 🤷 . It might be best to categorize them separately but at this rate I doubt they'd add any more of these so maybe even just hardcoding these from your JSON.
I do not normally use RUST but something like this might work? Apologies if this isn't exactly how this is done, I am just going off of patterns of other languages. 🥉
// Handle Driller armor paint jobs
if (miner.name === "Driller") {
const drillerArmorNames = ["Black Crag", "Regal Aegis", "Toxic Defender", "Scale Brigade"];
for (const armorPaintJob of miner.armorPaintJobs) {
if (drillerArmorNames.includes(armorPaintJob.name)) {
UnlockedVanityItemIDs.push(armorPaintJob.saveId);
}
}
}
// Handle other miners' armor paint jobs
for (const armorPaintJob of miner.armorPaintJobs) {
if (["Engineer", "Gunner", "Scout"].includes(miner.name)) {
// Assuming a consistent naming convention for corresponding armors
const correspondingArmorName = `${armorPaintJob.name} ${miner.name}`;
if (UnlockedVanityItemIDs.includes(correspondingArmorName)) {
UnlockedVanityItemIDs.push(armorPaintJob.saveId);
}
}
🤷 There is probably a more elegant solution here.
Your suggestion is actually roughly how it was implemented before, with the promotion assignment armor skins being handled totally separately. When I consolidated and normalized all the data I didn't have the GUIDs for the non-Driller skins, hence this bug. My intended fix, to avoid further complexity, was to just go and get the missing GUIDs, but I haven't gotten around to it yet (checking the GitHub repo's commit history shows that I tend to work on this project in bursts and I'm just between one of them). I'd rather not re-introduce special handling at the save file data's ingestion; if anything, maybe adding something to the DB code as a middleware (https://dexie.org/docs/DBCore/DBCore) such that this case is handled for both the save file parser and manually inputting unlocks. I imagine there are other unlocks in the game that could be handled very similarly, so building out that machinery might be handy.
When analyzing the save game the infected Season 4 weapon framework is not selected for the Gunner BRT7 although it is unlocked ingame.
Same for the Prestige Assignment Armor Paint Jobs (Toxic Defender, Regal Aegis, Black Crag & Scale Brigade) which is only selected for Driller and not the other dwarfs.