diff --git a/assets/common/entity/dungeon/tier-5/husk_brute.ron b/assets/common/entity/dungeon/tier-5/husk_brute.ron index fc2592fb47..40f26815b6 100644 --- a/assets/common/entity/dungeon/tier-5/husk_brute.ron +++ b/assets/common/entity/dungeon/tier-5/husk_brute.ron @@ -2,7 +2,7 @@ EntityConfig ( name: Some("Husk Brute"), body: Some(RandomWith("husk_brute")), - loot: Some(LootTable("common.loot_tables.dungeon.tier-5.minion")), + loot: Some(LootTable("common.loot_tables.dungeon.tier-5.miniboss")), main_tool: None, second_tool: None, diff --git a/assets/common/entity/dungeon/tier-5/warlord.ron b/assets/common/entity/dungeon/tier-5/warlord.ron index e248724c60..01f7c29a71 100644 --- a/assets/common/entity/dungeon/tier-5/warlord.ron +++ b/assets/common/entity/dungeon/tier-5/warlord.ron @@ -11,5 +11,5 @@ EntityConfig ( second_tool: None, loadout_asset: None, - skillset_asset: Some("common.skillset.dungeon.tier-5.enemy"), + skillset_asset: Some("common.skillset.dungeon.tier-5.warlord"), ) diff --git a/assets/common/loot_tables/creature/quad_low/salamander.ron b/assets/common/loot_tables/creature/quad_low/salamander.ron new file mode 100644 index 0000000000..faad9ec4e5 --- /dev/null +++ b/assets/common/loot_tables/creature/quad_low/salamander.ron @@ -0,0 +1,4 @@ +[ + (1.0, Item("common.items.crafting_ing.hide.tough_hide")), + (3.0, Item("common.items.crafting_ing.hide.scales")), +] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/dreadhorn.ron b/assets/common/loot_tables/creature/quad_medium/dreadhorn.ron index 74c79cede6..dbdeda8a3a 100644 --- a/assets/common/loot_tables/creature/quad_medium/dreadhorn.ron +++ b/assets/common/loot_tables/creature/quad_medium/dreadhorn.ron @@ -2,5 +2,5 @@ (1.5, Item("common.items.food.meat.beast_small_raw")), (0.5, Item("common.items.food.meat.beast_large_raw")), (2.0, Item("common.items.crafting_ing.animal_misc.large_horn")), - (3.0, Item("common.items.crafting_ing.hide.carapace")), + (3.0, Item("common.items.crafting_ing.hide.rugged_hide")), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/mammoth.ron b/assets/common/loot_tables/creature/quad_medium/mammoth.ron index 73dd2ad8a6..810ff5b9a5 100644 --- a/assets/common/loot_tables/creature/quad_medium/mammoth.ron +++ b/assets/common/loot_tables/creature/quad_medium/mammoth.ron @@ -1,4 +1,4 @@ [ - (1.0, ItemQuantity("common.items.crafting_ing.hide.tough_hide", 2, 3)), + (1.0, ItemQuantity("common.items.crafting_ing.hide.rugged_hide", 1, 2)), (1.0, ItemQuantity("common.items.crafting_ing.animal_misc.large_horn", 2, 3)), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/theropod/generic.ron b/assets/common/loot_tables/creature/theropod/generic.ron index 14dbec1175..17b921280a 100644 --- a/assets/common/loot_tables/creature/theropod/generic.ron +++ b/assets/common/loot_tables/creature/theropod/generic.ron @@ -1,3 +1,3 @@ [ - (1.0, Item("common.items.crafting_ing.hide.plate")), + (1.0, Item("common.items.crafting_ing.hide.rugged_hide")), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/theropod/raptor.ron b/assets/common/loot_tables/creature/theropod/raptor.ron index 2cd8de953f..818f740948 100644 --- a/assets/common/loot_tables/creature/theropod/raptor.ron +++ b/assets/common/loot_tables/creature/theropod/raptor.ron @@ -1,5 +1,5 @@ [ (0.5, Item("common.items.food.meat.beast_large_raw")), - (1.0, Item("common.items.crafting_ing.hide.tough_hide")), + (1.0, Item("common.items.crafting_ing.hide.scales")), (1.0, Item("common.items.crafting_ing.animal_misc.raptor_feather")), ] \ No newline at end of file diff --git a/assets/common/recipe_book.ron b/assets/common/recipe_book.ron index 9f8f48e7dd..16bf38cecd 100644 --- a/assets/common/recipe_book.ron +++ b/assets/common/recipe_book.ron @@ -275,7 +275,7 @@ output: ("common.items.mineral.ingot.bloodsteel", 2), inputs: [ (Item("common.items.mineral.ore.bloodstone"), 1), - (Item("common.items.mineral.ore.iron"), 1), + (Item("common.items.mineral.ingot.iron"), 1), (Item("common.items.mineral.ore.coal"), 1), ], craft_sprite: Some(Forge), @@ -283,7 +283,7 @@ "steel ingot": ( output: ("common.items.mineral.ingot.steel", 1), inputs: [ - (Item("common.items.mineral.ore.iron"), 1), + (Item("common.items.mineral.ingot.iron"), 1), (Item("common.items.mineral.ore.coal"), 1), ], craft_sprite: Some(Forge), @@ -917,8 +917,8 @@ "woolen belt": ( output: ("common.items.armor.cloth.woolen.belt", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 2), - (Item("common.items.crafting_ing.cloth.cotton"), 2), + (Item("common.items.crafting_ing.cloth.wool"), 1), + (Item("common.items.crafting_ing.cloth.cotton"), 1), (Item("common.items.crafting_ing.animal_misc.fur"), 1), (Item("common.items.crafting_tools.sewing_set"), 0), ], @@ -927,7 +927,7 @@ "woolen chest": ( output: ("common.items.armor.cloth.woolen.chest", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 10), + (Item("common.items.crafting_ing.cloth.wool"), 8), (Item("common.items.crafting_ing.cloth.cotton"), 2), (Item("common.items.crafting_ing.animal_misc.fur"), 2), (Item("common.items.crafting_tools.sewing_set"), 0), @@ -937,7 +937,7 @@ "woolen feet": ( output: ("common.items.armor.cloth.woolen.foot", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 3), + (Item("common.items.crafting_ing.cloth.wool"), 2), (Item("common.items.crafting_ing.cloth.cotton"), 1), (Item("common.items.crafting_ing.animal_misc.fur"), 1), (Item("common.items.crafting_tools.sewing_set"), 0), @@ -947,7 +947,7 @@ "woolen hands": ( output: ("common.items.armor.cloth.woolen.hand", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 3), + (Item("common.items.crafting_ing.cloth.wool"), 2), (Item("common.items.crafting_ing.cloth.cotton"), 1), (Item("common.items.crafting_ing.animal_misc.fur"), 1), (Item("common.items.crafting_tools.sewing_set"), 0), @@ -957,7 +957,7 @@ "woolen pants": ( output: ("common.items.armor.cloth.woolen.pants", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 8), + (Item("common.items.crafting_ing.cloth.wool"), 6), (Item("common.items.crafting_ing.cloth.cotton"), 2), (Item("common.items.crafting_ing.animal_misc.fur"), 2), (Item("common.items.crafting_tools.sewing_set"), 0), @@ -967,7 +967,7 @@ "woolen shoulder": ( output: ("common.items.armor.cloth.woolen.shoulder", 1), inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 8), + (Item("common.items.crafting_ing.cloth.wool"), 6), (Item("common.items.crafting_ing.cloth.cotton"), 2), (Item("common.items.crafting_ing.animal_misc.fur"), 2), (Item("common.items.crafting_tools.sewing_set"), 0), diff --git a/assets/common/skillset/dungeon/tier-5/sword_simple.ron b/assets/common/skillset/dungeon/tier-5/sword_simple.ron new file mode 100644 index 0000000000..28d8bc547d --- /dev/null +++ b/assets/common/skillset/dungeon/tier-5/sword_simple.ron @@ -0,0 +1,13 @@ +([ + Group(Weapon(Sword)), + + // TripleStrike + Skill((Sword(TsCombo), None)), + Skill((Sword(TsDamage), Some(1))), + Skill((Sword(TsRegen), Some(1))), + + // Dash + Skill((Sword(DDamage), Some(1))), + Skill((Sword(DCost), Some(1))), + Skill((Sword(DDrain), Some(1))), +]) diff --git a/assets/common/skillset/dungeon/tier-5/warlord.ron b/assets/common/skillset/dungeon/tier-5/warlord.ron new file mode 100644 index 0000000000..85c6edcab3 --- /dev/null +++ b/assets/common/skillset/dungeon/tier-5/warlord.ron @@ -0,0 +1,5 @@ +([ + // Just gather everything + Tree("common.skillset.dungeon.tier-5.sword_simple"), + Tree("common.skillset.dungeon.tier-5.hammer"), +]) diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index 8a1ab6de4a..2ae9bc6905 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -468,9 +468,9 @@ impl Body { quadruped_medium::Species::Panda => 900, quadruped_medium::Species::Bear => 900, quadruped_medium::Species::Moose => 800, - quadruped_medium::Species::Dreadhorn => 1100, - quadruped_medium::Species::Mammoth => 1900, - quadruped_medium::Species::Ngoubou => 1500, + quadruped_medium::Species::Dreadhorn => 1300, + quadruped_medium::Species::Mammoth => 2500, + quadruped_medium::Species::Ngoubou => 1800, _ => 700, }, Body::BirdMedium(bird_medium) => match bird_medium.species { @@ -504,6 +504,7 @@ impl Body { biped_large::Species::Harvester => 5000, biped_large::Species::Blueoni => 2400, biped_large::Species::Redoni => 2400, + biped_large::Species::Huskbrute => 8000, _ => 1200, }, Body::BipedSmall(biped_small) => match biped_small.species { @@ -541,7 +542,7 @@ impl Body { quadruped_low::Species::Rocksnapper => 1400, quadruped_low::Species::Pangolin => 400, quadruped_low::Species::Maneater => 1300, - quadruped_low::Species::Sandshark => 900, + quadruped_low::Species::Sandshark => 1100, quadruped_low::Species::Hakulaq => 500, quadruped_low::Species::Lavadrake => 1600, quadruped_low::Species::Basilisk => 2000, @@ -595,7 +596,7 @@ impl Body { quadruped_medium::Species::Moose => 30, quadruped_medium::Species::Dreadhorn => 50, quadruped_medium::Species::Mammoth => 80, - quadruped_medium::Species::Ngoubou => 50, + quadruped_medium::Species::Ngoubou => 60, _ => 20, }, Body::BirdMedium(bird_medium) => match bird_medium.species { @@ -622,6 +623,7 @@ impl Body { biped_large::Species::Mountaintroll => 60, biped_large::Species::Swamptroll => 60, biped_large::Species::Dullahan => 120, + biped_large::Species::Huskbrute => 100, // Boss enemies have their health set, not adjusted by level. biped_large::Species::Mindflayer => 0, biped_large::Species::Minotaur => 0, @@ -644,7 +646,7 @@ impl Body { quadruped_low::Species::Rocksnapper => 50, quadruped_low::Species::Pangolin => 10, quadruped_low::Species::Maneater => 30, - quadruped_low::Species::Sandshark => 40, + quadruped_low::Species::Sandshark => 45, quadruped_low::Species::Hakulaq => 10, quadruped_low::Species::Deadwood => 30, _ => 20, @@ -670,6 +672,11 @@ impl Body { Body::Golem(g) => matches!(g.species, golem::Species::ClayGolem), Body::BipedSmall(b) => matches!(b.species, biped_small::Species::Haniwa), Body::Object(object::Body::HaniwaSentry) => true, + Body::QuadrupedLow(q) => matches!(q.species, quadruped_low::Species::Lavadrake), + Body::BirdLarge(b) => matches!( + b.species, + bird_large::Species::Phoenix | bird_large::Species::Cockatrice + ), _ => false, }, BuffKind::Ensnared => { diff --git a/server/src/events/entity_manipulation.rs b/server/src/events/entity_manipulation.rs index 35ac92b0a5..b01f17e13a 100644 --- a/server/src/events/entity_manipulation.rs +++ b/server/src/events/entity_manipulation.rs @@ -368,7 +368,7 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc quadruped_small::Species::Truffler | quadruped_small::Species::Fungome => { "common.loot_tables.creature.quad_small.mushroom" }, - quadruped_small::Species::Sheep => { + quadruped_small::Species::Sheep | quadruped_small::Species::Goat => { "common.loot_tables.creature.quad_small.wool" }, quadruped_small::Species::Skunk @@ -495,6 +495,9 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc quadruped_low::Species::Basilisk => { "common.loot_tables.creature.quad_low.basilisk" }, + quadruped_low::Species::Salamander => { + "common.loot_tables.creature.quad_low.salamander" + }, _ => "common.loot_tables.creature.quad_low.generic", } }, diff --git a/server/src/migrations/V41_remove_warlock_warlord.sql b/server/src/migrations/V41_remove_warlock_warlord.sql index e445c8a50d..500a505c56 100644 --- a/server/src/migrations/V41_remove_warlock_warlord.sql +++ b/server/src/migrations/V41_remove_warlock_warlord.sql @@ -1,33 +1,31 @@ --- xx +-- Replace all warlord and warlock sets into cultist set UPDATE item -SET item_definition_id = 'common.items.armor.warlock.shoulder' WHERE item_definition_id = 'common.items.armor.cultist.shoulder'; +SET item_definition_id = 'common.items.armor.cultist.shoulder' WHERE item_definition_id = 'common.items.armor.warlock.shoulder'; UPDATE item -SET item_definition_id = 'common.items.armor.warlock.chest' WHERE item_definition_id = 'common.items.armor.cultist.chest'; +SET item_definition_id = 'common.items.armor.cultist.chest' WHERE item_definition_id = 'common.items.armor.warlock.chest'; UPDATE item -SET item_definition_id = 'common.items.armor.warlock.belt' WHERE item_definition_id = 'common.items.armor.cultist.belt'; +SET item_definition_id = 'common.items.armor.cultist.belt' WHERE item_definition_id = 'common.items.armor.warlock.belt'; UPDATE item -SET item_definition_id = 'common.items.armor.warlock.hand' WHERE item_definition_id = 'common.items.armor.cultist.hand'; +SET item_definition_id = 'common.items.armor.cultist.hand' WHERE item_definition_id = 'common.items.armor.warlock.hand'; UPDATE item -SET item_definition_id = 'common.items.armor.warlock.pants' WHERE item_definition_id = 'common.items.armor.cultist.pants'; +SET item_definition_id = 'common.items.armor.cultist.pants' WHERE item_definition_id = 'common.items.armor.warlock.pants'; UPDATE item -SET item_definition_id = 'common.items.armor.warlock.foot' WHERE item_definition_id = 'common.items.armor.cultist.foot'; +SET item_definition_id = 'common.items.armor.cultist.foot' WHERE item_definition_id = 'common.items.armor.warlock.foot'; UPDATE item -SET item_definition_id = 'common.items.armor.warlock.back' WHERE item_definition_id = 'common.items.armor.misc.back.dungeon_purple'; +SET item_definition_id = 'common.items.armor.misc.back.dungeon_purple' WHERE item_definition_id = 'common.items.armor.warlock.back'; +DELETE FROM item WHERE item_definition_id = 'common.items.armor.warlock.head'; UPDATE item -SET item_definition_id = 'common.items.armor.warlock.head' WHERE item_definition_id = 'common.items.armor.cultist.head'; +SET item_definition_id = 'common.items.armor.cultist.shoulder' WHERE item_definition_id = 'common.items.armor.warlord.shoulder'; UPDATE item -SET item_definition_id = 'common.items.armor.warlord.shoulder' WHERE item_definition_id = 'common.items.armor.cultist.shoulder'; +SET item_definition_id = 'common.items.armor.cultist.chest' WHERE item_definition_id = 'common.items.armor.warlord.chest'; UPDATE item -SET item_definition_id = 'common.items.armor.warlord.chest' WHERE item_definition_id = 'common.items.armor.cultist.chest'; +SET item_definition_id = 'common.items.armor.cultist.belt' WHERE item_definition_id = 'common.items.armor.warlord.belt'; UPDATE item -SET item_definition_id = 'common.items.armor.warlord.belt' WHERE item_definition_id = 'common.items.armor.cultist.belt'; +SET item_definition_id = 'common.items.armor.cultist.hand' WHERE item_definition_id = 'common.items.armor.warlord.hand'; UPDATE item -SET item_definition_id = 'common.items.armor.warlord.hand' WHERE item_definition_id = 'common.items.armor.cultist.hand'; +SET item_definition_id = 'common.items.armor.cultist.pants' WHERE item_definition_id = 'common.items.armor.warlord.pants'; UPDATE item -SET item_definition_id = 'common.items.armor.warlord.pants' WHERE item_definition_id = 'common.items.armor.cultist.pants'; +SET item_definition_id = 'common.items.armor.cultist.foot' WHERE item_definition_id = 'common.items.armor.warlord.foot'; UPDATE item -SET item_definition_id = 'common.items.armor.warlord.foot' WHERE item_definition_id = 'common.items.armor.cultist.foot'; -UPDATE item -SET item_definition_id = 'common.items.armor.warlord.back' WHERE item_definition_id = 'common.items.armor.misc.back.dungeon_purple'; -UPDATE item -SET item_definition_id = 'common.items.armor.warlord.head' WHERE item_definition_id = 'common.items.armor.cultist.head'; \ No newline at end of file +SET item_definition_id = 'common.items.armor.misc.back.dungeon_purple' WHERE item_definition_id = 'common.items.armor.warlord.back'; +DELETE FROM item WHERE item_definition_id = 'common.items.armor.warlord.head'; \ No newline at end of file diff --git a/voxygen/anim/src/biped_large/mod.rs b/voxygen/anim/src/biped_large/mod.rs index f90f29f610..3af791809f 100644 --- a/voxygen/anim/src/biped_large/mod.rs +++ b/voxygen/anim/src/biped_large/mod.rs @@ -277,7 +277,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Blueoni, _) => (-1.0, 26.5), (Redoni, _) => (-1.0, 26.5), (Cultistwarlord, _) => (-1.0, 18.5), - (Cultistwarlock, _) => (-1.0, 18.5), + (Cultistwarlock, _) => (-1.0, 17.5), (Huskbrute, _) => (-1.0, 23.5), }, lower_torso: match (body.species, body.body_type) { @@ -301,7 +301,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Blueoni, _) => (0.0, -8.5), (Redoni, _) => (0.0, -8.5), (Cultistwarlord, _) => (0.0, -1.5), - (Cultistwarlock, _) => (1.0, -3.5), + (Cultistwarlock, _) => (1.0, -2.5), (Huskbrute, _) => (-0.5, -7.0), }, tail: match (body.species, body.body_type) { diff --git a/world/src/layer/wildlife.rs b/world/src/layer/wildlife.rs index d09e3412d5..df7c579196 100644 --- a/world/src/layer/wildlife.rs +++ b/world/src/layer/wildlife.rs @@ -119,9 +119,14 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( Entry { make_entity: |pos, rng| { EntityInfo::at(pos) - .with_body(match rng.gen_range(0..2) { + .with_body(match rng.gen_range(0..3) { 0 => biped_large::Body::random_with(rng, &biped_large::Species::Wendigo) .into(), + 1 => quadruped_medium::Body::random_with( + rng, + &quadruped_medium::Species::Mammoth, + ) + .into(), _ => biped_large::Body::random_with( rng, &biped_large::Species::Mountaintroll, @@ -133,7 +138,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( group_size: 1..2, is_underwater: false, day_period: vec![Night, Morning, Noon, Evening], - get_density: |c, _col| close(c.temp, CONFIG.snow_temp, 0.15) * BASE_DENSITY * 0.1, + get_density: |c, _col| close(c.temp, CONFIG.snow_temp, 0.15) * BASE_DENSITY * 0.15, }, // Tundra rock solitary ennemies Entry { @@ -312,7 +317,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( Entry { make_entity: |pos, rng| { EntityInfo::at(pos) - .with_body(match rng.gen_range(0..12) { + .with_body(match rng.gen_range(0..14) { 0 => quadruped_medium::Body::random_with( rng, &quadruped_medium::Species::Deer, @@ -364,6 +369,16 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( quadruped_small::Body::random_with(rng, &quadruped_small::Species::Goat) .into() }, + 11 => quadruped_medium::Body::random_with( + rng, + &quadruped_medium::Species::Llama, + ) + .into(), + 12 => quadruped_medium::Body::random_with( + rng, + &quadruped_medium::Species::Alpaca, + ) + .into(), _ => bird_medium::Body::random_with(rng, &bird_medium::Species::Chicken) .into(), }) @@ -832,7 +847,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( Entry { make_entity: |pos, rng| { EntityInfo::at(pos) - .with_body(match rng.gen_range(0..3) { + .with_body(match rng.gen_range(0..4) { 0 => quadruped_medium::Body::random_with( rng, &quadruped_medium::Species::Bonerattler, @@ -841,6 +856,11 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( 1 => { theropod::Body::random_with(rng, &theropod::Species::Sandraptor).into() }, + 2 => quadruped_medium::Body::random_with( + rng, + &quadruped_medium::Species::Ngoubou, + ) + .into(), _ => quadruped_low::Body::random_with( rng, &quadruped_low::Species::Sandshark,