changes
This commit is contained in:
+316
-5
@@ -429,6 +429,168 @@ INSERT OR IGNORE INTO character_inventory (character_id, item_id, quantity, equi
|
||||
(3, 100, 1, 1), (3, 101, 1, 1), (3, 102, 1, 1), (3, 103, 1, 1),
|
||||
(3, 104, 1, 1), (3, 108, 1, 1), (3, 105, 1, 1), (3, 109, 1, 1), (3, 106, 1, 1), (3, 107, 1, 0);
|
||||
|
||||
-- Coin gearing override: every boss/difficulty drops one boss coin, and each
|
||||
-- craft costs the target item level in that source boss coin.
|
||||
UPDATE crafting_recipes
|
||||
SET source_dungeon_id = 1,
|
||||
source_encounter_id = 3
|
||||
WHERE id BETWEEN 1001 AND 1409
|
||||
AND item_id IN (SELECT id FROM items WHERE slot IN ('helmet', 'chest', 'gloves'));
|
||||
|
||||
UPDATE crafting_recipes
|
||||
SET source_dungeon_id = 1,
|
||||
source_encounter_id = 12
|
||||
WHERE id BETWEEN 1001 AND 1409
|
||||
AND item_id IN (SELECT id FROM items WHERE slot IN ('boots', 'ring', 'trinket'));
|
||||
|
||||
UPDATE crafting_recipes
|
||||
SET source_dungeon_id = 1,
|
||||
source_encounter_id = 22
|
||||
WHERE id BETWEEN 1001 AND 1409
|
||||
AND item_id IN (SELECT id FROM items WHERE slot IN ('weapon', 'pants', 'necklace'));
|
||||
|
||||
UPDATE crafting_recipes
|
||||
SET difficulty_id = CASE
|
||||
(SELECT item_level FROM items WHERE items.id = crafting_recipes.item_id)
|
||||
WHEN 5 THEN 1
|
||||
WHEN 10 THEN 2
|
||||
WHEN 15 THEN 3
|
||||
WHEN 20 THEN 4
|
||||
WHEN 25 THEN 5
|
||||
ELSE difficulty_id
|
||||
END
|
||||
WHERE id BETWEEN 1001 AND 1409;
|
||||
|
||||
UPDATE items
|
||||
SET rarity = CASE item_level
|
||||
WHEN 5 THEN 'common'
|
||||
WHEN 10 THEN 'uncommon'
|
||||
WHEN 15 THEN 'rare'
|
||||
WHEN 20 THEN 'epic'
|
||||
WHEN 25 THEN 'legendary'
|
||||
ELSE rarity
|
||||
END
|
||||
WHERE id IN (SELECT item_id FROM crafting_recipes);
|
||||
|
||||
UPDATE items
|
||||
SET name = (
|
||||
SELECT
|
||||
CASE items.item_level
|
||||
WHEN 5 THEN ''
|
||||
WHEN 10 THEN 'Green '
|
||||
WHEN 15 THEN 'Blue '
|
||||
WHEN 20 THEN 'Purple '
|
||||
WHEN 25 THEN 'Orange '
|
||||
ELSE ''
|
||||
END
|
||||
|| encounters.name || ' '
|
||||
|| CASE items.slot
|
||||
WHEN 'weapon' THEN 'Weapon'
|
||||
WHEN 'helmet' THEN 'Helmet'
|
||||
WHEN 'chest' THEN 'Chest'
|
||||
WHEN 'gloves' THEN 'Gloves'
|
||||
WHEN 'boots' THEN 'Boots'
|
||||
WHEN 'pants' THEN 'Pants'
|
||||
WHEN 'ring' THEN 'Ring'
|
||||
WHEN 'necklace' THEN 'Necklace'
|
||||
WHEN 'trinket' THEN 'Trinket'
|
||||
ELSE items.name
|
||||
END
|
||||
FROM crafting_recipes
|
||||
JOIN encounters ON encounters.id = crafting_recipes.source_encounter_id
|
||||
WHERE crafting_recipes.item_id = items.id
|
||||
LIMIT 1
|
||||
),
|
||||
description = (
|
||||
SELECT 'Crafted with ' || encounters.name || ' coins.'
|
||||
FROM crafting_recipes
|
||||
JOIN encounters ON encounters.id = crafting_recipes.source_encounter_id
|
||||
WHERE crafting_recipes.item_id = items.id
|
||||
LIMIT 1
|
||||
)
|
||||
WHERE id IN (SELECT item_id FROM crafting_recipes);
|
||||
|
||||
CREATE TEMP TABLE IF NOT EXISTS coin_sources (
|
||||
item_id INTEGER PRIMARY KEY,
|
||||
encounter_id INTEGER NOT NULL,
|
||||
difficulty_id INTEGER NOT NULL,
|
||||
item_level INTEGER NOT NULL,
|
||||
slug TEXT NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
rarity TEXT NOT NULL,
|
||||
glyph TEXT NOT NULL,
|
||||
description TEXT NOT NULL
|
||||
);
|
||||
|
||||
DELETE FROM coin_sources;
|
||||
|
||||
INSERT INTO coin_sources
|
||||
SELECT
|
||||
280000 + encounters.id * 100 + difficulties.dropped_item_level,
|
||||
encounters.id,
|
||||
difficulties.id,
|
||||
difficulties.dropped_item_level,
|
||||
encounters.slug || '-coin-ilvl-' || difficulties.dropped_item_level,
|
||||
CASE difficulties.dropped_item_level
|
||||
WHEN 5 THEN ''
|
||||
WHEN 10 THEN 'Green '
|
||||
WHEN 15 THEN 'Blue '
|
||||
WHEN 20 THEN 'Purple '
|
||||
WHEN 25 THEN 'Orange '
|
||||
ELSE ''
|
||||
END || encounters.name || ' Coin',
|
||||
CASE difficulties.dropped_item_level
|
||||
WHEN 5 THEN 'common'
|
||||
WHEN 10 THEN 'uncommon'
|
||||
WHEN 15 THEN 'rare'
|
||||
WHEN 20 THEN 'epic'
|
||||
WHEN 25 THEN 'legendary'
|
||||
ELSE 'common'
|
||||
END,
|
||||
'$',
|
||||
'A boss coin from ' || encounters.name || ' used for item level '
|
||||
|| difficulties.dropped_item_level || ' crafting.'
|
||||
FROM encounters
|
||||
JOIN dungeon_difficulties ON dungeon_difficulties.dungeon_id = encounters.dungeon_id
|
||||
JOIN difficulties ON difficulties.id = dungeon_difficulties.difficulty_id
|
||||
WHERE encounters.encounter_type = 'boss';
|
||||
|
||||
INSERT OR IGNORE INTO items
|
||||
(id, slug, name, slot, rarity, item_level, healing_power, max_resource_bonus, glyph, description)
|
||||
SELECT item_id, slug, name, 'component', rarity, item_level, 0, 0, glyph, description
|
||||
FROM coin_sources;
|
||||
|
||||
UPDATE items
|
||||
SET slug = (SELECT slug FROM coin_sources WHERE coin_sources.item_id = items.id),
|
||||
name = (SELECT name FROM coin_sources WHERE coin_sources.item_id = items.id),
|
||||
slot = 'component',
|
||||
rarity = (SELECT rarity FROM coin_sources WHERE coin_sources.item_id = items.id),
|
||||
item_level = (SELECT item_level FROM coin_sources WHERE coin_sources.item_id = items.id),
|
||||
healing_power = 0,
|
||||
max_resource_bonus = 0,
|
||||
glyph = (SELECT glyph FROM coin_sources WHERE coin_sources.item_id = items.id),
|
||||
description = (SELECT description FROM coin_sources WHERE coin_sources.item_id = items.id)
|
||||
WHERE id IN (SELECT item_id FROM coin_sources);
|
||||
|
||||
DELETE FROM encounter_loot;
|
||||
|
||||
INSERT INTO encounter_loot (encounter_id, item_id, difficulty_id, drop_weight, drop_chance)
|
||||
SELECT encounter_id, item_id, difficulty_id, 100, 1.0
|
||||
FROM coin_sources;
|
||||
|
||||
DELETE FROM crafting_recipe_components;
|
||||
|
||||
INSERT INTO crafting_recipe_components (recipe_id, item_id, quantity)
|
||||
SELECT
|
||||
crafting_recipes.id,
|
||||
coin_sources.item_id,
|
||||
items.item_level
|
||||
FROM crafting_recipes
|
||||
JOIN items ON items.id = crafting_recipes.item_id
|
||||
JOIN coin_sources
|
||||
ON coin_sources.encounter_id = crafting_recipes.source_encounter_id
|
||||
AND coin_sources.difficulty_id = crafting_recipes.difficulty_id;
|
||||
|
||||
INSERT OR IGNORE INTO talents
|
||||
(id, class_id, slug, name, max_rank, tier, branch, prerequisite_talent_id, prerequisite_rank, effect_type, effect_value_per_rank, glyph, description)
|
||||
VALUES
|
||||
@@ -678,9 +840,9 @@ SET slug = CASE id
|
||||
END,
|
||||
encounter_type = CASE WHEN id IN (102, 105, 108) THEN 'boss' ELSE 'trash' END,
|
||||
description = CASE id
|
||||
WHEN 102 THEN 'Tigrex drops monster parts for item level 10 crafting.'
|
||||
WHEN 105 THEN 'Rathalos drops monster parts for item level 10 crafting.'
|
||||
WHEN 108 THEN 'Gypceros drops monster parts for item level 10 crafting.'
|
||||
WHEN 102 THEN 'Tigrex drops boss coins for item level 10 crafting.'
|
||||
WHEN 105 THEN 'Rathalos drops boss coins for item level 10 crafting.'
|
||||
WHEN 108 THEN 'Gypceros drops boss coins for item level 10 crafting.'
|
||||
ELSE 'Hunters clear the raid path.'
|
||||
END
|
||||
WHERE id BETWEEN 100 AND 108;
|
||||
@@ -702,7 +864,7 @@ SELECT
|
||||
offset.tank_damage + generated_bosses.boss_index * 2 + generated_loot_tiers.item_level / 8,
|
||||
offset.party_damage + generated_bosses.boss_index * 3,
|
||||
CASE offset.encounter_type
|
||||
WHEN 'boss' THEN generated_bosses.boss_name || ' drops monster parts for item level ' || generated_loot_tiers.item_level || ' crafting.'
|
||||
WHEN 'boss' THEN generated_bosses.boss_name || ' drops boss coins for item level ' || generated_loot_tiers.item_level || ' crafting.'
|
||||
ELSE 'Hunters clear the path before ' || generated_bosses.boss_name || '.'
|
||||
END
|
||||
FROM generated_loot_tiers
|
||||
@@ -730,7 +892,7 @@ SELECT
|
||||
offset.tank_damage + generated_bosses.boss_index * 2 + generated_loot_tiers.item_level / 8,
|
||||
offset.party_damage + generated_bosses.boss_index * 3 + 24,
|
||||
CASE offset.encounter_type
|
||||
WHEN 'boss' THEN generated_bosses.boss_name || ' drops monster parts for item level ' || generated_loot_tiers.item_level || ' crafting.'
|
||||
WHEN 'boss' THEN generated_bosses.boss_name || ' drops boss coins for item level ' || generated_loot_tiers.item_level || ' crafting.'
|
||||
ELSE 'Hunters clear the raid path before ' || generated_bosses.boss_name || '.'
|
||||
END
|
||||
FROM generated_loot_tiers
|
||||
@@ -1011,3 +1173,152 @@ INSERT OR IGNORE INTO crafting_recipe_components (recipe_id, item_id, quantity)
|
||||
(1007, 868, 5), (1007, 869, 3), (1007, 871, 1),
|
||||
(1008, 868, 5), (1008, 869, 3), (1008, 871, 1),
|
||||
(1009, 868, 5), (1009, 869, 3), (1009, 871, 1);
|
||||
|
||||
-- Final coin gearing override. Keep this after legacy loot edits.
|
||||
UPDATE crafting_recipes
|
||||
SET source_dungeon_id = 1,
|
||||
source_encounter_id = 3
|
||||
WHERE id BETWEEN 1001 AND 1409
|
||||
AND item_id IN (SELECT id FROM items WHERE slot IN ('helmet', 'chest', 'gloves'));
|
||||
|
||||
UPDATE crafting_recipes
|
||||
SET source_dungeon_id = 1,
|
||||
source_encounter_id = 12
|
||||
WHERE id BETWEEN 1001 AND 1409
|
||||
AND item_id IN (SELECT id FROM items WHERE slot IN ('boots', 'ring', 'trinket'));
|
||||
|
||||
UPDATE crafting_recipes
|
||||
SET source_dungeon_id = 1,
|
||||
source_encounter_id = 22
|
||||
WHERE id BETWEEN 1001 AND 1409
|
||||
AND item_id IN (SELECT id FROM items WHERE slot IN ('weapon', 'pants', 'necklace'));
|
||||
|
||||
UPDATE crafting_recipes
|
||||
SET difficulty_id = CASE
|
||||
(SELECT item_level FROM items WHERE items.id = crafting_recipes.item_id)
|
||||
WHEN 5 THEN 1
|
||||
WHEN 10 THEN 2
|
||||
WHEN 15 THEN 3
|
||||
WHEN 20 THEN 4
|
||||
WHEN 25 THEN 5
|
||||
ELSE difficulty_id
|
||||
END
|
||||
WHERE id BETWEEN 1001 AND 1409;
|
||||
|
||||
UPDATE items
|
||||
SET rarity = CASE item_level
|
||||
WHEN 5 THEN 'common'
|
||||
WHEN 10 THEN 'uncommon'
|
||||
WHEN 15 THEN 'rare'
|
||||
WHEN 20 THEN 'epic'
|
||||
WHEN 25 THEN 'legendary'
|
||||
ELSE rarity
|
||||
END
|
||||
WHERE id IN (SELECT item_id FROM crafting_recipes);
|
||||
|
||||
UPDATE items
|
||||
SET name = (
|
||||
SELECT
|
||||
CASE items.item_level
|
||||
WHEN 5 THEN ''
|
||||
WHEN 10 THEN 'Green '
|
||||
WHEN 15 THEN 'Blue '
|
||||
WHEN 20 THEN 'Purple '
|
||||
WHEN 25 THEN 'Orange '
|
||||
ELSE ''
|
||||
END
|
||||
|| encounters.name || ' '
|
||||
|| CASE items.slot
|
||||
WHEN 'weapon' THEN 'Weapon'
|
||||
WHEN 'helmet' THEN 'Helmet'
|
||||
WHEN 'chest' THEN 'Chest'
|
||||
WHEN 'gloves' THEN 'Gloves'
|
||||
WHEN 'boots' THEN 'Boots'
|
||||
WHEN 'pants' THEN 'Pants'
|
||||
WHEN 'ring' THEN 'Ring'
|
||||
WHEN 'necklace' THEN 'Necklace'
|
||||
WHEN 'trinket' THEN 'Trinket'
|
||||
ELSE items.name
|
||||
END
|
||||
FROM crafting_recipes
|
||||
JOIN encounters ON encounters.id = crafting_recipes.source_encounter_id
|
||||
WHERE crafting_recipes.item_id = items.id
|
||||
LIMIT 1
|
||||
),
|
||||
description = (
|
||||
SELECT 'Crafted with ' || encounters.name || ' coins.'
|
||||
FROM crafting_recipes
|
||||
JOIN encounters ON encounters.id = crafting_recipes.source_encounter_id
|
||||
WHERE crafting_recipes.item_id = items.id
|
||||
LIMIT 1
|
||||
)
|
||||
WHERE id IN (SELECT item_id FROM crafting_recipes);
|
||||
|
||||
DELETE FROM coin_sources;
|
||||
|
||||
INSERT INTO coin_sources
|
||||
SELECT
|
||||
280000 + encounters.id * 100 + difficulties.dropped_item_level,
|
||||
encounters.id,
|
||||
difficulties.id,
|
||||
difficulties.dropped_item_level,
|
||||
encounters.slug || '-coin-ilvl-' || difficulties.dropped_item_level,
|
||||
CASE difficulties.dropped_item_level
|
||||
WHEN 5 THEN ''
|
||||
WHEN 10 THEN 'Green '
|
||||
WHEN 15 THEN 'Blue '
|
||||
WHEN 20 THEN 'Purple '
|
||||
WHEN 25 THEN 'Orange '
|
||||
ELSE ''
|
||||
END || encounters.name || ' Coin',
|
||||
CASE difficulties.dropped_item_level
|
||||
WHEN 5 THEN 'common'
|
||||
WHEN 10 THEN 'uncommon'
|
||||
WHEN 15 THEN 'rare'
|
||||
WHEN 20 THEN 'epic'
|
||||
WHEN 25 THEN 'legendary'
|
||||
ELSE 'common'
|
||||
END,
|
||||
'$',
|
||||
'A boss coin from ' || encounters.name || ' used for item level '
|
||||
|| difficulties.dropped_item_level || ' crafting.'
|
||||
FROM encounters
|
||||
JOIN dungeon_difficulties ON dungeon_difficulties.dungeon_id = encounters.dungeon_id
|
||||
JOIN difficulties ON difficulties.id = dungeon_difficulties.difficulty_id
|
||||
WHERE encounters.encounter_type = 'boss';
|
||||
|
||||
INSERT OR IGNORE INTO items
|
||||
(id, slug, name, slot, rarity, item_level, healing_power, max_resource_bonus, glyph, description)
|
||||
SELECT item_id, slug, name, 'component', rarity, item_level, 0, 0, glyph, description
|
||||
FROM coin_sources;
|
||||
|
||||
UPDATE items
|
||||
SET slug = (SELECT slug FROM coin_sources WHERE coin_sources.item_id = items.id),
|
||||
name = (SELECT name FROM coin_sources WHERE coin_sources.item_id = items.id),
|
||||
slot = 'component',
|
||||
rarity = (SELECT rarity FROM coin_sources WHERE coin_sources.item_id = items.id),
|
||||
item_level = (SELECT item_level FROM coin_sources WHERE coin_sources.item_id = items.id),
|
||||
healing_power = 0,
|
||||
max_resource_bonus = 0,
|
||||
glyph = (SELECT glyph FROM coin_sources WHERE coin_sources.item_id = items.id),
|
||||
description = (SELECT description FROM coin_sources WHERE coin_sources.item_id = items.id)
|
||||
WHERE id IN (SELECT item_id FROM coin_sources);
|
||||
|
||||
DELETE FROM encounter_loot;
|
||||
|
||||
INSERT INTO encounter_loot (encounter_id, item_id, difficulty_id, drop_weight, drop_chance)
|
||||
SELECT encounter_id, item_id, difficulty_id, 100, 1.0
|
||||
FROM coin_sources;
|
||||
|
||||
DELETE FROM crafting_recipe_components;
|
||||
|
||||
INSERT INTO crafting_recipe_components (recipe_id, item_id, quantity)
|
||||
SELECT
|
||||
crafting_recipes.id,
|
||||
coin_sources.item_id,
|
||||
items.item_level
|
||||
FROM crafting_recipes
|
||||
JOIN items ON items.id = crafting_recipes.item_id
|
||||
JOIN coin_sources
|
||||
ON coin_sources.encounter_id = crafting_recipes.source_encounter_id
|
||||
AND coin_sources.difficulty_id = crafting_recipes.difficulty_id;
|
||||
|
||||
Reference in New Issue
Block a user