feat: Add loot builder backend + static data + DB migration
- Migration 013: loot_profiles table (JSONB loot_table + loot_groups, license-scoped) - TypeORM entity matching migration schema exactly - NestJS loot module: 10 endpoints (CRUD, duplicate, apply, import, export, containers) - Multiplier logic recursively scales Min/Max/Scrap across loot tables and groups - Apply-to-server writes BetterLoot JSON via NATS file manager + RCON reload - Frontend static data: 191 Rust items, 51 container prefabs - TypeScript types for BetterLoot data model (PrefabLoot, LootEntry, LootRNG, etc.) - Fix vue-tsc errors: UngroupedItems uses LootRNG, null safety in store/view Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -26,7 +26,7 @@ const multipliers = [1, 2, 5, 10]
|
||||
|
||||
onMounted(async () => {
|
||||
await loot.fetchProfiles()
|
||||
if (loot.profiles.length > 0) {
|
||||
if (loot.profiles.length > 0 && loot.profiles[0]) {
|
||||
await loot.loadProfile(loot.profiles[0].id)
|
||||
}
|
||||
})
|
||||
@@ -110,7 +110,7 @@ function handleAddItem(shortname: string) {
|
||||
ItemSettings: { ItemsMin: 1, ItemsMax: 6, MinScrap: 0, MaxScrap: 0 },
|
||||
}
|
||||
}
|
||||
const container = table[loot.selectedContainer]
|
||||
const container = table[loot.selectedContainer]!
|
||||
if (!container.UngroupedItems) container.UngroupedItems = {}
|
||||
if (!container.UngroupedItems[shortname]) {
|
||||
container.UngroupedItems[shortname] = {
|
||||
|
||||
Reference in New Issue
Block a user