diff --git a/assets/common/abilities/ability_set_manifest.ron b/assets/common/abilities/ability_set_manifest.ron index cdbfd1ac58..41b0c565d9 100644 --- a/assets/common/abilities/ability_set_manifest.ron +++ b/assets/common/abilities/ability_set_manifest.ron @@ -34,11 +34,15 @@ secondary: "common.abilities.custom.husk.triplestrike", abilities: [], ), + Custom("Husk Brute"): ( + primary: "common.abilities.custom.husk_brute.singlestrike", + secondary: "common.abilities.custom.husk_brute.chargedmelee", + abilities: [], + ), Tool(Spear): ( primary: "common.abilities.spear.doublestrike", secondary: "common.abilities.spear.dash", abilities: [], - ), Custom("Hammer Simple"): ( primary: "common.abilities.hammersimple.doublestrike", @@ -53,8 +57,7 @@ Custom("Sword Simple"): ( primary: "common.abilities.swordsimple.doublestrike", secondary: "common.abilities.swordsimple.dash", - abilities: [ - ], + abilities: [], ), Custom("Staff Simple"): ( primary: "common.abilities.staffsimple.firebomb", diff --git a/assets/common/abilities/custom/husk_brute/chargedmelee.ron b/assets/common/abilities/custom/husk_brute/chargedmelee.ron new file mode 100644 index 0000000000..9b778e9af8 --- /dev/null +++ b/assets/common/abilities/custom/husk_brute/chargedmelee.ron @@ -0,0 +1,18 @@ +ChargedMelee( + energy_cost: 0, + energy_drain: 0, + initial_damage: 50, + scaled_damage: 450, + initial_poise_damage: 50, + scaled_poise_damage: 150, + initial_knockback: 0.0, + scaled_knockback: 0.0, + range: 3.5, + max_angle: 45.0, + speed: 1.0, + charge_duration: 1.5, + swing_duration: 0.1, + hit_timing: 0.8, + recover_duration: 0.5, + damage_kind: Crushing, +) diff --git a/assets/common/abilities/custom/husk_brute/singlestrike.ron b/assets/common/abilities/custom/husk_brute/singlestrike.ron new file mode 100644 index 0000000000..3c93be79ca --- /dev/null +++ b/assets/common/abilities/custom/husk_brute/singlestrike.ron @@ -0,0 +1,28 @@ +ComboMelee( + stage_data: [ + ( + stage: 1, + base_damage: 160, + damage_increase: 0, + base_poise_damage: 12, + poise_damage_increase: 0, + knockback: 5.0, + range: 3.5, + angle: 60.0, + base_buildup_duration: 0.25, + base_swing_duration: 0.07, + hit_timing: 0.5, + base_recover_duration: 0.25, + forward_movement: 0.5, + damage_kind: Crushing, + ), + ], + initial_energy_gain: 0, + max_energy_gain: 0, + energy_increase: 0, + speed_increase: 0.0, + max_speed_increase: 0.0, + scales_from_combo: 0, + is_interruptible: false, + ori_modifier: 0.6, +) diff --git a/assets/common/abilities/custom/minotaur/cleave.ron b/assets/common/abilities/custom/minotaur/cleave.ron index dff30a6fe4..3aa9a1b690 100644 --- a/assets/common/abilities/custom/minotaur/cleave.ron +++ b/assets/common/abilities/custom/minotaur/cleave.ron @@ -1,8 +1,8 @@ ChargedMelee( energy_cost: 0, energy_drain: 0, - initial_damage: 0, - scaled_damage: 500, + initial_damage: 50, + scaled_damage: 450, initial_poise_damage: 50, scaled_poise_damage: 150, initial_knockback: 0.0, diff --git a/assets/common/entity/dungeon/tier-5/cultist.ron b/assets/common/entity/dungeon/tier-5/cultist.ron new file mode 100644 index 0000000000..8b19091d2d --- /dev/null +++ b/assets/common/entity/dungeon/tier-5/cultist.ron @@ -0,0 +1,18 @@ +EntityConfig ( + name: Some("Cultist"), + body: Some(RandomWith("humanoid")), + + loot: Some(LootTable("common.loot_tables.dungeon.tier-5.enemy")), + + main_tool: Some(Choice([ + (1.0, Some(Item("common.items.weapons.axe_1h.orichalcum-0"))), + (2.0, Some(Item("common.items.weapons.sword.cultist"))), + (1.0, Some(Item("common.items.weapons.hammer.cultist_purp_2h-0"))), + (1.0, Some(Item("common.items.weapons.hammer_1h.orichalcum-0"))), + (1.0, Some(Item("common.items.weapons.bow.velorite"))), + ])), + second_tool: None, + + loadout_asset: Some("common.loadout.dungeon.tier-5.cultist"), + skillset_asset: Some("common.skillset.dungeon.tier-5.enemy"), +) diff --git a/assets/common/entity/dungeon/tier-5/husk_brute.ron b/assets/common/entity/dungeon/tier-5/husk_brute.ron new file mode 100644 index 0000000000..40f26815b6 --- /dev/null +++ b/assets/common/entity/dungeon/tier-5/husk_brute.ron @@ -0,0 +1,12 @@ +EntityConfig ( + name: Some("Husk Brute"), + body: Some(RandomWith("husk_brute")), + + loot: Some(LootTable("common.loot_tables.dungeon.tier-5.miniboss")), + + main_tool: None, + second_tool: None, + + loadout_asset: None, + skillset_asset: None, +) diff --git a/assets/common/entity/dungeon/tier-5/warlock.ron b/assets/common/entity/dungeon/tier-5/warlock.ron index 0932bd714c..369bd091cb 100644 --- a/assets/common/entity/dungeon/tier-5/warlock.ron +++ b/assets/common/entity/dungeon/tier-5/warlock.ron @@ -1,12 +1,15 @@ EntityConfig ( name: Some("Cultist Warlock"), - body: Some(RandomWith("humanoid")), + body: Some(RandomWith("cultist_warlock")), loot: Some(LootTable("common.loot_tables.dungeon.tier-5.enemy")), - main_tool: Some(Item("common.items.weapons.staff.cultist_staff")), + main_tool: Some(Choice([ + (1.5, Some(Item("common.items.npc_weapons.staff.bipedlarge-cultist"))), + (1.0, Some(Item("common.items.npc_weapons.bow.bipedlarge-velorite"))), + ])), second_tool: None, - loadout_asset: Some("common.loadout.dungeon.tier-5.warlock"), - skillset_asset: Some("common.skillset.dungeon.tier-5.enemy"), + loadout_asset: None, + skillset_asset: None, ) diff --git a/assets/common/entity/dungeon/tier-5/warlord.ron b/assets/common/entity/dungeon/tier-5/warlord.ron index b85cb504de..fe2152e6e4 100644 --- a/assets/common/entity/dungeon/tier-5/warlord.ron +++ b/assets/common/entity/dungeon/tier-5/warlord.ron @@ -1,18 +1,15 @@ EntityConfig ( name: Some("Cultist Warlord"), - body: Some(RandomWith("humanoid")), + body: Some(RandomWith("cultist_warlord")), loot: Some(LootTable("common.loot_tables.dungeon.tier-5.enemy")), main_tool: Some(Choice([ - (1.0, Some(Item("common.items.weapons.axe_1h.orichalcum-0"))), - (2.0, Some(Item("common.items.weapons.sword.cultist"))), - (1.0, Some(Item("common.items.weapons.hammer.cultist_purp_2h-0"))), - (1.0, Some(Item("common.items.weapons.hammer_1h.orichalcum-0"))), - (1.0, Some(Item("common.items.weapons.bow.velorite"))), + (1.5, Some(Item("common.items.npc_weapons.sword.bipedlarge-cultist"))), + (1.0, Some(Item("common.items.npc_weapons.hammer.bipedlarge-cultist"))), ])), second_tool: None, - loadout_asset: Some("common.loadout.dungeon.tier-5.warlord"), - skillset_asset: Some("common.skillset.dungeon.tier-5.enemy"), + loadout_asset: None, + skillset_asset: None, ) diff --git a/assets/common/items/armor/warlock/back.ron b/assets/common/items/armor/warlock/back.ron deleted file mode 100644 index 8f71921ef1..0000000000 --- a/assets/common/items/armor/warlock/back.ron +++ /dev/null @@ -1,17 +0,0 @@ -ItemDef( - name: "Warlock cape", - description: "Belong to a mighty warlock.", - kind: Armor(( - kind: Back("Warlock"), - stats: ( - protection: Normal(4.0), - poise_resilience: Normal(0.0), - energy_max: 0, - energy_reward: 0.0, - crit_power: 0.0, - stealth: 0.0, - ), - )), - quality: Moderate, - tags: [], -) \ No newline at end of file diff --git a/assets/common/items/armor/warlock/belt.ron b/assets/common/items/armor/warlock/belt.ron deleted file mode 100644 index 571cf5f704..0000000000 --- a/assets/common/items/armor/warlock/belt.ron +++ /dev/null @@ -1,17 +0,0 @@ -ItemDef( - name: "Warlock Belt", - description: "Belong to a mighty warlock.", - kind: Armor(( - kind: Belt("Warlock"), - stats: ( - protection: Normal(8.0), - poise_resilience: Normal(0.0), - energy_max: 0, - energy_reward: 0.0, - crit_power: 0.0, - stealth: 0.0, - ), - )), - quality: Moderate, - tags: [], -) \ No newline at end of file diff --git a/assets/common/items/armor/warlock/chest.ron b/assets/common/items/armor/warlock/chest.ron deleted file mode 100644 index 83879ed7b8..0000000000 --- a/assets/common/items/armor/warlock/chest.ron +++ /dev/null @@ -1,17 +0,0 @@ -ItemDef( - name: "Warlock Vest", - description: "Belong to a mighty warlock.", - kind: Armor(( - kind: Chest("Warlock"), - stats: ( - protection: Normal(40.0), - poise_resilience: Normal(0.0), - energy_max: 0, - energy_reward: 0.0, - crit_power: 0.0, - stealth: 0.0, - ), - )), - quality: Moderate, - tags: [], -) \ No newline at end of file diff --git a/assets/common/items/armor/warlock/foot.ron b/assets/common/items/armor/warlock/foot.ron deleted file mode 100644 index 6d94314cea..0000000000 --- a/assets/common/items/armor/warlock/foot.ron +++ /dev/null @@ -1,17 +0,0 @@ -ItemDef( - name: "Warlock Slippers", - description: "Belong to a mighty warlock.", - kind: Armor(( - kind: Foot("Warlock"), - stats: ( - protection: Normal(8.0), - poise_resilience: Normal(0.0), - energy_max: 0, - energy_reward: 0.0, - crit_power: 0.0, - stealth: 0.0, - ), - )), - quality: Moderate, - tags: [], -) \ No newline at end of file diff --git a/assets/common/items/armor/warlock/hand.ron b/assets/common/items/armor/warlock/hand.ron deleted file mode 100644 index 95a430624d..0000000000 --- a/assets/common/items/armor/warlock/hand.ron +++ /dev/null @@ -1,17 +0,0 @@ -ItemDef( - name: "Warlock Gloves", - description: "Belong to a mighty warlock.", - kind: Armor(( - kind: Hand("Warlock"), - stats: ( - protection: Normal(15.0), - poise_resilience: Normal(0.0), - energy_max: 0, - energy_reward: 0.0, - crit_power: 0.0, - stealth: 0.0, - ), - )), - quality: Common, - tags: [], -) \ No newline at end of file diff --git a/assets/common/items/armor/warlock/head.ron b/assets/common/items/armor/warlock/head.ron deleted file mode 100644 index 5efede3c7e..0000000000 --- a/assets/common/items/armor/warlock/head.ron +++ /dev/null @@ -1,17 +0,0 @@ -ItemDef( - name: "Warlock", - description: "Belong to a mighty warlock.", - kind: Armor(( - kind: Head("Warlock"), - stats: ( - protection: Normal(10.0), - poise_resilience: Normal(0.0), - energy_max: 0, - energy_reward: 0.0, - crit_power: 0.0, - stealth: 0.0, - ), - )), - quality: Common, - tags: [], -) \ No newline at end of file diff --git a/assets/common/items/armor/warlock/pants.ron b/assets/common/items/armor/warlock/pants.ron deleted file mode 100644 index 6140b196af..0000000000 --- a/assets/common/items/armor/warlock/pants.ron +++ /dev/null @@ -1,17 +0,0 @@ -ItemDef( - name: "Warlock Kilt", - description: "Belong to a mighty warlock.", - kind: Armor(( - kind: Pants("Warlock"), - stats: ( - protection: Normal(30.0), - poise_resilience: Normal(0.0), - energy_max: 0, - energy_reward: 0.0, - crit_power: 0.0, - stealth: 0.0, - ), - )), - quality: Moderate, - tags: [], -) \ No newline at end of file diff --git a/assets/common/items/armor/warlock/shoulder.ron b/assets/common/items/armor/warlock/shoulder.ron deleted file mode 100644 index 105a3458c6..0000000000 --- a/assets/common/items/armor/warlock/shoulder.ron +++ /dev/null @@ -1,17 +0,0 @@ -ItemDef( - name: "Warlock Shoulders", - description: "Belong to a mighty warlock.", - kind: Armor(( - kind: Shoulder("Warlock"), - stats: ( - protection: Normal(22.0), - poise_resilience: Normal(0.0), - energy_max: 0, - energy_reward: 0.0, - crit_power: 0.0, - stealth: 0.0, - ), - )), - quality: Common, - tags: [], -) \ No newline at end of file diff --git a/assets/common/items/armor/warlord/back.ron b/assets/common/items/armor/warlord/back.ron deleted file mode 100644 index 2cd9450e7e..0000000000 --- a/assets/common/items/armor/warlord/back.ron +++ /dev/null @@ -1,17 +0,0 @@ -ItemDef( - name: "Warlord cape", - description: "Belong to a mighty warlord.", - kind: Armor(( - kind: Back("Warlord"), - stats: ( - protection: Normal(4.0), - poise_resilience: Normal(0.0), - energy_max: 0, - energy_reward: 0.0, - crit_power: 0.0, - stealth: 0.0, - ), - )), - quality: Moderate, - tags: [], -) \ No newline at end of file diff --git a/assets/common/items/armor/warlord/belt.ron b/assets/common/items/armor/warlord/belt.ron deleted file mode 100644 index ae60e2fcd2..0000000000 --- a/assets/common/items/armor/warlord/belt.ron +++ /dev/null @@ -1,17 +0,0 @@ -ItemDef( - name: "Warlord Belt", - description: "Belong to a mighty warlord.", - kind: Armor(( - kind: Belt("Warlord"), - stats: ( - protection: Normal(8.0), - poise_resilience: Normal(0.0), - energy_max: 0, - energy_reward: 0.0, - crit_power: 0.0, - stealth: 0.0, - ), - )), - quality: Moderate, - tags: [], -) \ No newline at end of file diff --git a/assets/common/items/armor/warlord/chest.ron b/assets/common/items/armor/warlord/chest.ron deleted file mode 100644 index dbaee7548f..0000000000 --- a/assets/common/items/armor/warlord/chest.ron +++ /dev/null @@ -1,17 +0,0 @@ -ItemDef( - name: "Warlord Cuirass", - description: "Belong to a mighty warlord.", - kind: Armor(( - kind: Chest("Warlord"), - stats: ( - protection: Normal(40.0), - poise_resilience: Normal(0.0), - energy_max: 0, - energy_reward: 0.0, - crit_power: 0.0, - stealth: 0.0, - ), - )), - quality: Moderate, - tags: [], -) \ No newline at end of file diff --git a/assets/common/items/armor/warlord/foot.ron b/assets/common/items/armor/warlord/foot.ron deleted file mode 100644 index 993cd6d067..0000000000 --- a/assets/common/items/armor/warlord/foot.ron +++ /dev/null @@ -1,17 +0,0 @@ -ItemDef( - name: "Warlord Feet", - description: "Belong to a mighty warlord.", - kind: Armor(( - kind: Foot("Warlord"), - stats: ( - protection: Normal(8.0), - poise_resilience: Normal(0.0), - energy_max: 0, - energy_reward: 0.0, - crit_power: 0.0, - stealth: 0.0, - ), - )), - quality: Moderate, - tags: [], -) \ No newline at end of file diff --git a/assets/common/items/armor/warlord/hand.ron b/assets/common/items/armor/warlord/hand.ron deleted file mode 100644 index 36f79edf77..0000000000 --- a/assets/common/items/armor/warlord/hand.ron +++ /dev/null @@ -1,17 +0,0 @@ -ItemDef( - name: "Warlord Handguards", - description: "Belong to a mighty warlord.", - kind: Armor(( - kind: Hand("Warlord"), - stats: ( - protection: Normal(15.0), - poise_resilience: Normal(0.0), - energy_max: 0, - energy_reward: 0.0, - crit_power: 0.0, - stealth: 0.0, - ), - )), - quality: Common, - tags: [], -) \ No newline at end of file diff --git a/assets/common/items/armor/warlord/head.ron b/assets/common/items/armor/warlord/head.ron deleted file mode 100644 index ba518e0cdf..0000000000 --- a/assets/common/items/armor/warlord/head.ron +++ /dev/null @@ -1,17 +0,0 @@ -ItemDef( - name: "Warlord Helmet", - description: "Belong to a mighty warlord.", - kind: Armor(( - kind: Head("Warlord"), - stats: ( - protection: Normal(10.0), - poise_resilience: Normal(0.0), - energy_max: 0, - energy_reward: 0.0, - crit_power: 0.0, - stealth: 0.0, - ), - )), - quality: Common, - tags: [], -) \ No newline at end of file diff --git a/assets/common/items/armor/warlord/pants.ron b/assets/common/items/armor/warlord/pants.ron deleted file mode 100644 index b896347aa2..0000000000 --- a/assets/common/items/armor/warlord/pants.ron +++ /dev/null @@ -1,17 +0,0 @@ -ItemDef( - name: "Warlord Legguards", - description: "Belong to a mighty warlord.", - kind: Armor(( - kind: Pants("Warlord"), - stats: ( - protection: Normal(30.0), - poise_resilience: Normal(0.0), - energy_max: 0, - energy_reward: 0.0, - crit_power: 0.0, - stealth: 0.0, - ), - )), - quality: Moderate, - tags: [], -) \ No newline at end of file diff --git a/assets/common/items/armor/warlord/shoulder.ron b/assets/common/items/armor/warlord/shoulder.ron deleted file mode 100644 index c38f423aff..0000000000 --- a/assets/common/items/armor/warlord/shoulder.ron +++ /dev/null @@ -1,17 +0,0 @@ -ItemDef( - name: "Warlord Shoulderguards", - description: "Belong to a mighty warlord.", - kind: Armor(( - kind: Shoulder("Warlord"), - stats: ( - protection: Normal(22.0), - poise_resilience: Normal(0.0), - energy_max: 0, - energy_reward: 0.0, - crit_power: 0.0, - stealth: 0.0, - ), - )), - quality: Common, - tags: [], -) \ No newline at end of file diff --git a/assets/common/items/crafting_ing/hide/rugged_hide.ron b/assets/common/items/crafting_ing/hide/rugged_hide.ron index 0c8bcc29d7..3a2f8ae583 100644 --- a/assets/common/items/crafting_ing/hide/rugged_hide.ron +++ b/assets/common/items/crafting_ing/hide/rugged_hide.ron @@ -4,7 +4,7 @@ ItemDef( kind: Ingredient( kind: "RuggedHide", ), - quality: Common, + quality: Epic, tags: [ Material(Leather) ], diff --git a/assets/common/items/npc_weapons/bow/bipedlarge-velorite.ron b/assets/common/items/npc_weapons/bow/bipedlarge-velorite.ron new file mode 100644 index 0000000000..40c9d278dc --- /dev/null +++ b/assets/common/items/npc_weapons/bow/bipedlarge-velorite.ron @@ -0,0 +1,18 @@ +ItemDef( + name: "Giant Velorite Bow", + description: "Infused with Velorite power.", + kind: Tool(( + kind: Bow, + hands: Two, + stats: Direct(( + equip_time_secs: 0.4, + power: 1.6, + poise_strength: 1.1, + speed: 0.8, + crit_chance: 0.140625, + )), + )), + quality: Epic, + tags: [], + ability_spec: Some(Custom("Bow Simple")), +) \ No newline at end of file diff --git a/assets/common/items/npc_weapons/hammer/bipedlarge-cultist.ron b/assets/common/items/npc_weapons/hammer/bipedlarge-cultist.ron new file mode 100644 index 0000000000..1493bb69a2 --- /dev/null +++ b/assets/common/items/npc_weapons/hammer/bipedlarge-cultist.ron @@ -0,0 +1,18 @@ +ItemDef( + name: "Giant Cultist Warhammer", + description: "This belonged to an evil Cult Leader.", + kind: Tool(( + kind: Hammer, + hands: Two, + stats: Direct(( + equip_time_secs: 0.5, + power: 1.6, + poise_strength: 1.0, + speed: 0.8, + crit_chance: 0.140625, + )), + )), + quality: Epic, + tags: [], + ability_spec: Some(Custom("Hammer Simple")), +) \ No newline at end of file diff --git a/assets/common/items/npc_weapons/staff/bipedlarge-cultist.ron b/assets/common/items/npc_weapons/staff/bipedlarge-cultist.ron new file mode 100644 index 0000000000..13139bd011 --- /dev/null +++ b/assets/common/items/npc_weapons/staff/bipedlarge-cultist.ron @@ -0,0 +1,18 @@ +ItemDef( + name: "Giant Cultist Staff", + description: "The fire gives off no heat.", + kind: Tool(( + kind: Staff, + hands: Two, + stats: Direct(( + equip_time_secs: 0.3, + power: 1.6, + poise_strength: 1.0, + speed: 0.8, + crit_chance: 0.140625, + )), + )), + quality: Epic, + tags: [], + ability_spec: Some(Custom("Staff Simple")), +) \ No newline at end of file diff --git a/assets/common/items/npc_weapons/sword/bipedlarge-cultist.ron b/assets/common/items/npc_weapons/sword/bipedlarge-cultist.ron new file mode 100644 index 0000000000..06eae29d7a --- /dev/null +++ b/assets/common/items/npc_weapons/sword/bipedlarge-cultist.ron @@ -0,0 +1,18 @@ +ItemDef( + name: "Giant Cultist Greatsword", + description: "This belonged to an evil Cult Leader.", + kind: Tool(( + kind: Sword, + hands: Two, + stats: Direct(( + equip_time_secs: 0.5, + power: 1.6, + poise_strength: 1.0, + speed: 0.8, + crit_chance: 0.140625, + )), + )), + quality: Epic, + tags: [], + ability_spec: Some(Custom("Sword Simple")), +) \ No newline at end of file diff --git a/assets/common/items/npc_weapons/unique/husk_brute.ron b/assets/common/items/npc_weapons/unique/husk_brute.ron new file mode 100644 index 0000000000..c2389e824c --- /dev/null +++ b/assets/common/items/npc_weapons/unique/husk_brute.ron @@ -0,0 +1,18 @@ +ItemDef( + name: "Husk Brute", + description: "testing123", + kind: Tool(( + kind: Natural, + hands: Two, + stats: Direct(( + equip_time_secs: 0.0, + power: 1.0, + poise_strength: 1.0, + speed: 1.0, + crit_chance: 0.0625, + )), + )), + quality: Low, + tags: [], + ability_spec: Some(Custom("Husk Brute")), +) \ No newline at end of file diff --git a/assets/common/loadout/dungeon/tier-5/cultist.ron b/assets/common/loadout/dungeon/tier-5/cultist.ron new file mode 100644 index 0000000000..426a32c963 --- /dev/null +++ b/assets/common/loadout/dungeon/tier-5/cultist.ron @@ -0,0 +1,17 @@ +({ + Armor(Shoulders): Item("common.items.armor.cultist.shoulder"), + Armor(Chest): Item("common.items.armor.cultist.chest"), + Armor(Belt): Item("common.items.armor.cultist.belt"), + Armor(Hands): Item("common.items.armor.cultist.hand"), + Armor(Legs): Item("common.items.armor.cultist.pants"), + Armor(Feet): Item("common.items.armor.cultist.foot"), + + Armor(Back): Item("common.items.armor.misc.back.dungeon_purple"), + + Lantern: Choice([ + (1.0, Some(Item("common.items.lantern.black_0"))), + (2.0, None), + ]), + + Glider: Item("common.items.glider.glider_purp"), +}) diff --git a/assets/common/loadout/dungeon/tier-5/warlock.ron b/assets/common/loadout/dungeon/tier-5/warlock.ron deleted file mode 100644 index bcc428fbda..0000000000 --- a/assets/common/loadout/dungeon/tier-5/warlock.ron +++ /dev/null @@ -1,17 +0,0 @@ -({ - Armor(Shoulders): Item("common.items.armor.warlock.shoulder"), - Armor(Chest): Item("common.items.armor.warlock.chest"), - Armor(Belt): Item("common.items.armor.warlock.belt"), - Armor(Hands): Item("common.items.armor.warlock.hand"), - Armor(Legs): Item("common.items.armor.warlock.pants"), - Armor(Feet): Item("common.items.armor.warlock.foot"), - - Armor(Back): Item("common.items.armor.warlock.back"), - - Lantern: Choice([ - (1.0, Some(Item("common.items.lantern.black_0"))), - (2.0, None), - ]), - - Glider: Item("common.items.glider.glider_purp"), -}) diff --git a/assets/common/loadout/dungeon/tier-5/warlord.ron b/assets/common/loadout/dungeon/tier-5/warlord.ron deleted file mode 100644 index 2d83fef3fa..0000000000 --- a/assets/common/loadout/dungeon/tier-5/warlord.ron +++ /dev/null @@ -1,17 +0,0 @@ -({ - Armor(Shoulders): Item("common.items.armor.warlord.shoulder"), - Armor(Chest): Item("common.items.armor.warlord.chest"), - Armor(Belt): Item("common.items.armor.warlord.belt"), - Armor(Hands): Item("common.items.armor.warlord.hand"), - Armor(Legs): Item("common.items.armor.warlord.pants"), - Armor(Feet): Item("common.items.armor.warlord.foot"), - - Armor(Back): Item("common.items.armor.warlord.back"), - - Lantern: Choice([ - (1.0, Some(Item("common.items.lantern.black_0"))), - (2.0, None), - ]), - - Glider: Item("common.items.glider.glider_purp"), -}) 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/horned.ron b/assets/common/loot_tables/creature/quad_medium/horned.ron new file mode 100644 index 0000000000..d3767b3bc1 --- /dev/null +++ b/assets/common/loot_tables/creature/quad_medium/horned.ron @@ -0,0 +1,4 @@ +[ + (1.0, Item("common.items.crafting_ing.hide.rugged_hide")), + (1.0, Item("common.items.crafting_ing.animal_misc.large_horn")), +] \ 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 new file mode 100644 index 0000000000..810ff5b9a5 --- /dev/null +++ b/assets/common/loot_tables/creature/quad_medium/mammoth.ron @@ -0,0 +1,4 @@ +[ + (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/quad_medium/wool.ron b/assets/common/loot_tables/creature/quad_medium/wool.ron new file mode 100644 index 0000000000..3b3fa3f62d --- /dev/null +++ b/assets/common/loot_tables/creature/quad_medium/wool.ron @@ -0,0 +1,6 @@ +[ + (1.5, Item("common.items.food.meat.beast_small_raw")), + (0.5, Item("common.items.food.meat.beast_large_raw")), + (1.0, Item("common.items.crafting_ing.hide.animal_hide")), + (5.0, ItemQuantity("common.items.crafting_ing.cloth.wool", 2, 5)), +] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_small/sheep.ron b/assets/common/loot_tables/creature/quad_small/wool.ron similarity index 100% rename from assets/common/loot_tables/creature/quad_small/sheep.ron rename to assets/common/loot_tables/creature/quad_small/wool.ron 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/npc_names.ron b/assets/common/npc_names.ron index ca8be884c0..0339622c22 100644 --- a/assets/common/npc_names.ron +++ b/assets/common/npc_names.ron @@ -546,7 +546,23 @@ snowleopard: ( keyword: "snowleopard", generic: "Snow Leopard" - ) + ), + mammoth: ( + keyword: "mammoth", + generic: "Mammoth" + ), + ngoubou: ( + keyword: "ngoubou", + generic: "Ngoubou" + ), + llama: ( + keyword: "llama", + generic: "Llama" + ), + alpaca: ( + keyword: "alpaca", + generic: "Alpaca" + ), ) ), quadruped_small: ( @@ -886,6 +902,18 @@ keyword: "oni_red", generic: "Red Oni" ), + cultist_warlord: ( + keyword: "cultist_warlord", + generic: "Cultist Warlord" + ), + cultist_warlock: ( + keyword: "cultist_warlock", + generic: "Cultist Warlock" + ), + husk_brute: ( + keyword: "husk_brute", + generic: "Husk Brute" + ), ) ), golem: ( 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/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index 8159668653..6d6e8d75ce 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -1548,56 +1548,6 @@ "voxel.armor.bonerattler.shoulder", (0.0, 0.0, 0.0), (-90.0, 130.0, 0.0), 1.2, ), - //Warlord Set - Armor(Chest("Warlord")): VoxTrans( - "voxel.armor.warlord.chest", - (0.0, 0.0, 0.0), (-90.0, 180.0, 0.0), 1.2, - ), - Armor(Pants("Warlord")): VoxTrans( - "voxel.armor.warlord.pants", - (0.0, 0.0, 0.0), (-90.0, 180.0, 0.0), 1.2, - ), - Armor(Belt("Warlord")): VoxTrans( - "voxel.armor.warlord.belt", - (0.0, 0.0, 0.0), (-90.0, 180.0, 0.0), 1.4, - ), - Armor(Foot("Warlord")): VoxTrans( - "voxel.armor.warlord.foot", - (0.0, 0.0, 0.0), (-95.0, 140.0, 0.0), 1.1, - ), - Armor(Hand("Warlord")): VoxTrans( - "voxel.armor.warlord.hand", - (0.0, -1.0, 0.0), (-90.0, 135.0, 0.0), 1.0, - ), - Armor(Shoulder("Warlord")): VoxTrans( - "voxel.armor.warlord.shoulder", - (0.0, 0.0, 0.0), (-90.0, 130.0, 0.0), 1.2, - ), - //Warlock Set - Armor(Chest("Warlock")): VoxTrans( - "voxel.armor.warlock.chest", - (0.0, 0.0, 0.0), (-90.0, 180.0, 0.0), 1.2, - ), - Armor(Pants("Warlock")): VoxTrans( - "voxel.armor.warlock.pants", - (0.0, 0.0, 0.0), (-90.0, 180.0, 0.0), 1.2, - ), - Armor(Belt("Warlock")): VoxTrans( - "voxel.armor.warlock.belt", - (0.0, 0.0, 0.0), (-90.0, 180.0, 0.0), 1.4, - ), - Armor(Foot("Warlock")): VoxTrans( - "voxel.armor.warlock.foot", - (0.0, 0.0, 0.0), (-95.0, 140.0, 0.0), 1.1, - ), - Armor(Hand("Warlock")): VoxTrans( - "voxel.armor.warlock.hand", - (0.0, -1.0, 0.0), (-90.0, 135.0, 0.0), 1.0, - ), - Armor(Shoulder("Warlock")): VoxTrans( - "voxel.armor.warlock.shoulder", - (0.0, 0.0, 0.0), (-90.0, 130.0, 0.0), 1.2, - ), //Rawhide Set Armor(Chest("Rawhide")): VoxTrans( "voxel.armor.hide.rawhide.chest", @@ -2183,14 +2133,6 @@ "voxel.armor.misc.back.backpack", (0.0, 0.0, 0.0), (-90.0, 0.0, 0.0), 1.0, ), - Armor(Back("Warlord")): VoxTrans( - "voxel.armor.warlord.back", - (0.0, 0.0, 0.0), (-90.0, 0.0, 0.0), 1.0, - ), - Armor(Back("Warlock")): VoxTrans( - "voxel.armor.warlock.back", - (0.0, 0.0, 0.0), (-90.0, 0.0, 0.0), 1.0, - ), // Rings Armor(Ring("Scratched")): VoxTrans( "voxel.armor.misc.ring.scratched", diff --git a/assets/voxygen/voxel/biped_large_central_manifest.ron b/assets/voxygen/voxel/biped_large_central_manifest.ron index 4d2830c1b2..2ecc30c8f1 100644 --- a/assets/voxygen/voxel/biped_large_central_manifest.ron +++ b/assets/voxygen/voxel/biped_large_central_manifest.ron @@ -936,4 +936,160 @@ central: ("armor.empty"), ) ), + (Cultistwarlord, Male): ( + head: ( + offset: (-10.0, -6.0, -9.0), + central: ("npc.cultist_warlord.male.head"), + ), + torso_upper: ( + offset: (-8.0, -6.0, -6.0), + central: ("npc.cultist_warlord.male.torso_upper"), + ), + torso_lower: ( + offset: (-7.0, -5.0, -9.0), + central: ("npc.cultist_warlord.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Cultistwarlord, Female): ( + head: ( + offset: (-10.0, -6.0, -9.0), + central: ("npc.cultist_warlord.male.head"), + ), + torso_upper: ( + offset: (-8.0, -6.0, -6.0), + central: ("npc.cultist_warlord.male.torso_upper"), + ), + torso_lower: ( + offset: (-7.0, -5.0, -9.0), + central: ("npc.cultist_warlord.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Cultistwarlock, Male): ( + head: ( + offset: (-6.0, -5.5, -6.5), + central: ("npc.cultist_warlock.male.head"), + ), + torso_upper: ( + offset: (-7.0, -5.5, -5.5), + central: ("npc.cultist_warlock.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.0, -4.5, -10.0), + central: ("npc.cultist_warlock.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Cultistwarlock, Female): ( + head: ( + offset: (-6.0, -5.5, -6.5), + central: ("npc.cultist_warlock.male.head"), + ), + torso_upper: ( + offset: (-7.0, -5.5, -5.5), + central: ("npc.cultist_warlock.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.0, -4.5, -10.0), + central: ("npc.cultist_warlock.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Huskbrute, Male): ( + head: ( + offset: (-6.0, -6.0, -6.5), + central: ("npc.husk_brute.male.head"), + ), + torso_upper: ( + offset: (-8.0, -8.0, -8.0), + central: ("npc.husk_brute.male.torso_upper"), + ), + torso_lower: ( + offset: (-7.0, -6.5, -9.0), + central: ("npc.husk_brute.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Huskbrute, Female): ( + head: ( + offset: (-6.0, -6.0, -6.5), + central: ("npc.husk_brute.male.head"), + ), + torso_upper: ( + offset: (-8.0, -8.0, -8.0), + central: ("npc.husk_brute.male.torso_upper"), + ), + torso_lower: ( + offset: (-7.0, -6.5, -9.0), + central: ("npc.husk_brute.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), }) diff --git a/assets/voxygen/voxel/biped_large_lateral_manifest.ron b/assets/voxygen/voxel/biped_large_lateral_manifest.ron index 8c8f0c046b..c5f8f2f087 100644 --- a/assets/voxygen/voxel/biped_large_lateral_manifest.ron +++ b/assets/voxygen/voxel/biped_large_lateral_manifest.ron @@ -1223,4 +1223,208 @@ lateral: ("npc.oni_red.male.foot_r"), ) ), + (Cultistwarlord, Male): ( + shoulder_l: ( + offset: (-6.0, -5.5, -6.0), + lateral: ("npc.cultist_warlord.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-6.0, -5.5, -6.0), + lateral: ("npc.cultist_warlord.male.shoulder_r"), + ), + hand_l: ( + offset: (-3.5, -3.5, -10.0), + lateral: ("npc.cultist_warlord.male.hand_l"), + ), + hand_r: ( + offset: (-3.5, -3.5, -10.0), + lateral: ("npc.cultist_warlord.male.hand_r"), + ), + leg_l: ( + offset: (-1.5, -2.0, -2.5), + lateral: ("npc.cultist_warlord.male.leg_l"), + ), + leg_r: ( + offset: (-1.5, -2.0, -2.5), + lateral: ("npc.cultist_warlord.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -4.0, -4.0), + lateral: ("npc.cultist_warlord.male.foot_l"), + ), + foot_r: ( + offset: (-2.5, -4.0, -4.0), + lateral: ("npc.cultist_warlord.male.foot_r"), + ) + ), + (Cultistwarlord, Female): ( + shoulder_l: ( + offset: (-6.0, -5.5, -6.0), + lateral: ("npc.cultist_warlord.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-6.0, -5.5, -6.0), + lateral: ("npc.cultist_warlord.male.shoulder_r"), + ), + hand_l: ( + offset: (-3.5, -3.5, -10.0), + lateral: ("npc.cultist_warlord.male.hand_l"), + ), + hand_r: ( + offset: (-3.5, -3.5, -10.0), + lateral: ("npc.cultist_warlord.male.hand_r"), + ), + leg_l: ( + offset: (-1.5, -2.0, -2.5), + lateral: ("npc.cultist_warlord.male.leg_l"), + ), + leg_r: ( + offset: (-1.5, -2.0, -2.5), + lateral: ("npc.cultist_warlord.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -4.0, -4.0), + lateral: ("npc.cultist_warlord.male.foot_l"), + ), + foot_r: ( + offset: (-2.5, -4.0, -4.0), + lateral: ("npc.cultist_warlord.male.foot_r"), + ) + ), + (Cultistwarlock, Male): ( + shoulder_l: ( + offset: (-3.5, -3.5, -3.0), + lateral: ("npc.cultist_warlock.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.5, -3.5, -3.0), + lateral: ("npc.cultist_warlock.male.shoulder_r"), + ), + hand_l: ( + offset: (-3.5, -3.5, -10.0), + lateral: ("npc.cultist_warlock.male.hand_l"), + ), + hand_r: ( + offset: (-3.5, -3.5, -10.0), + lateral: ("npc.cultist_warlock.male.hand_r"), + ), + leg_l: ( + offset: (-1.5, -2.0, -2.5), + lateral: ("npc.cultist_warlock.male.leg_l"), + ), + leg_r: ( + offset: (-1.5, -2.0, -2.5), + lateral: ("npc.cultist_warlock.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -4.0, -4.0), + lateral: ("npc.cultist_warlock.male.foot_l"), + ), + foot_r: ( + offset: (-2.5, -4.0, -4.0), + lateral: ("npc.cultist_warlock.male.foot_r"), + ) + ), + (Cultistwarlock, Female): ( + shoulder_l: ( + offset: (-3.5, -3.5, -3.0), + lateral: ("npc.cultist_warlock.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.5, -3.5, -3.0), + lateral: ("npc.cultist_warlock.male.shoulder_r"), + ), + hand_l: ( + offset: (-3.5, -3.5, -10.0), + lateral: ("npc.cultist_warlock.male.hand_l"), + ), + hand_r: ( + offset: (-3.5, -3.5, -10.0), + lateral: ("npc.cultist_warlock.male.hand_r"), + ), + leg_l: ( + offset: (-1.5, -2.0, -2.5), + lateral: ("npc.cultist_warlock.male.leg_l"), + ), + leg_r: ( + offset: (-1.5, -2.0, -2.5), + lateral: ("npc.cultist_warlock.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -4.0, -4.0), + lateral: ("npc.cultist_warlock.male.foot_l"), + ), + foot_r: ( + offset: (-2.5, -4.0, -4.0), + lateral: ("npc.cultist_warlock.male.foot_r"), + ) + ), + (Huskbrute, Male): ( + shoulder_l: ( + offset: (-4.0, -4.5, -4.0), + lateral: ("npc.husk_brute.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-4.0, -4.5, -4.0), + lateral: ("npc.husk_brute.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -3.5, -17.0), + lateral: ("npc.husk_brute.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -3.5, -17.0), + lateral: ("npc.husk_brute.male.hand_r"), + ), + leg_l: ( + offset: (-2.0, -2.5, -3.5), + lateral: ("npc.husk_brute.male.leg_l"), + ), + leg_r: ( + offset: (-2.0, -2.5, -3.5), + lateral: ("npc.husk_brute.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -3.5, -3.5), + lateral: ("npc.husk_brute.male.foot_l"), + ), + foot_r: ( + offset: (-2.5, -3.5, -3.5), + lateral: ("npc.husk_brute.male.foot_r"), + ) + ), + (Huskbrute, Female): ( + shoulder_l: ( + offset: (-4.0, -4.5, -4.0), + lateral: ("npc.husk_brute.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-4.0, -4.5, -4.0), + lateral: ("npc.husk_brute.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -3.5, -17.0), + lateral: ("npc.husk_brute.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -3.5, -17.0), + lateral: ("npc.husk_brute.male.hand_r"), + ), + leg_l: ( + offset: (-2.0, -2.5, -3.5), + lateral: ("npc.husk_brute.male.leg_l"), + ), + leg_r: ( + offset: (-2.0, -2.5, -3.5), + lateral: ("npc.husk_brute.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -3.5, -3.5), + lateral: ("npc.husk_brute.male.foot_l"), + ), + foot_r: ( + offset: (-2.5, -3.5, -3.5), + lateral: ("npc.husk_brute.male.foot_r"), + ) + ), }) \ No newline at end of file diff --git a/assets/voxygen/voxel/biped_weapon_manifest.ron b/assets/voxygen/voxel/biped_weapon_manifest.ron index 4cf216a2b6..04d8e11aea 100644 --- a/assets/voxygen/voxel/biped_weapon_manifest.ron +++ b/assets/voxygen/voxel/biped_weapon_manifest.ron @@ -1050,6 +1050,10 @@ vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), color: None ), + "common.items.npc_weapons.unique.husk_brute": ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + color: None + ), "common.items.npc_weapons.axe.minotaur_axe": ( vox_spec: ("weapon.axe.2haxe_minotaur", (-2.5, -9.0, -8.0)), color: None @@ -1070,6 +1074,22 @@ vox_spec: ("weapon.hammer.2hhammer_oni_red", (-3.0, -4.5, -12.0)), color: None ), + "common.items.npc_weapons.sword.bipedlarge-cultist": ( + vox_spec: ("weapon.sword.cultist", (-1.5, -4.0, -6.0)), + color: None + ), + "common.items.npc_weapons.hammer.bipedlarge-cultist": ( + vox_spec: ("weapon.hammer.cult_purp-0", (-3.5, -4.5, -5.0)), + color: None + ), + "common.items.npc_weapons.bow.bipedlarge-velorite": ( + vox_spec: ("weapon.bow.velorite", (-1.5, -4.0, -15.0)), + color: None + ), + "common.items.npc_weapons.staff.bipedlarge-cultist": ( + vox_spec: ("weapon.staff.firestaff_cultist", (-2.5, -2.5, -4.0)), + color: None + ), //BIPEDSMALL "common.items.npc_weapons.biped_small.adlet.adlet_bow": ( vox_spec: ("weapon.biped_small.bow.adlet", (-1.5, -3.0, -5.0)), diff --git a/assets/voxygen/voxel/bird_medium_central_manifest.ron b/assets/voxygen/voxel/bird_medium_central_manifest.ron index d24a0be621..de8da461ad 100644 --- a/assets/voxygen/voxel/bird_medium_central_manifest.ron +++ b/assets/voxygen/voxel/bird_medium_central_manifest.ron @@ -1,30 +1,30 @@ ({ (Duck, Male): ( head: ( - offset: (-1.5, -2.0, -1.5), + offset: (-2.0, -1.5, -2.5), central: ("npc.duck.male.head"), ), torso: ( - offset: (-2.5, -3.0, -2.0), + offset: (-3.0, -4.5, -3.0), central: ("npc.duck.male.torso"), ), tail: ( - offset: (-1.5, -0.5, -2.5), + offset: (-2.0, -1.5, -3.0), central: ("npc.duck.male.tail"), ) ), (Duck, Female): ( head: ( - offset: (-1.5, -2.0, -1.5), - central: ("npc.duck.female.head"), + offset: (-2.0, -1.5, -2.5), + central: ("npc.duck.male.head"), ), torso: ( - offset: (-2.5, -3.0, -2.0), - central: ("npc.duck.female.torso"), + offset: (-3.0, -4.5, -3.0), + central: ("npc.duck.male.torso"), ), tail: ( - offset: (-1.5, -0.5, -2.5), - central: ("npc.duck.female.tail"), + offset: (-2.0, -1.5, -3.0), + central: ("npc.duck.male.tail"), ) ), (Chicken, Male): ( diff --git a/assets/voxygen/voxel/bird_medium_lateral_manifest.ron b/assets/voxygen/voxel/bird_medium_lateral_manifest.ron index 95c4027cc7..14a20071d7 100644 --- a/assets/voxygen/voxel/bird_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/bird_medium_lateral_manifest.ron @@ -1,37 +1,37 @@ ({ (Duck, Male): ( wing_l: ( - offset: (-0.5, -2.5, -3.0), + offset: (-0.5, -4.0, -4.0), lateral: ("npc.duck.male.wing"), ), wing_r: ( - offset: (-0.5, -2.5, -3.0), + offset: (-0.5, -4.0, -4.0), lateral: ("npc.duck.male.wing"), ), foot_l: ( - offset: (-1.0, 0.0, -4.0), + offset: (-1.5, -1.5, -4.0), lateral: ("npc.duck.male.leg_r"), ), foot_r: ( - offset: (-1.0, 0.0, -4.0), + offset: (-1.5, -1.5, -4.0), lateral: ("npc.duck.male.leg_r"), ) ), (Duck, Female): ( wing_l: ( - offset: (-0.5, -2.5, -3.0), + offset: (-0.5, -4.0, -4.0), lateral: ("npc.duck.female.wing"), ), wing_r: ( - offset: (-0.5, -2.5, -3.0), + offset: (-0.5, -4.0, -4.0), lateral: ("npc.duck.female.wing"), ), foot_l: ( - offset: (-1.0, 0.0, -4.0), + offset: (-1.5, -1.5, -4.0), lateral: ("npc.duck.female.leg_r"), ), foot_r: ( - offset: (-1.0, 0.0, -4.0), + offset: (-1.5, -1.5, -4.0), lateral: ("npc.duck.female.leg_r"), ) ), diff --git a/assets/voxygen/voxel/humanoid_armor_back_manifest.ron b/assets/voxygen/voxel/humanoid_armor_back_manifest.ron index 61f2a8225d..1459d036eb 100644 --- a/assets/voxygen/voxel/humanoid_armor_back_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_back_manifest.ron @@ -40,14 +40,6 @@ vox_spec: ("armor.leather_blue.back", (-5.0, -1.0, -11.0)), color: None ), - "Warlord": ( - vox_spec: ("armor.warlord.back", (-5.0, -1.0, -14.0)), - color: None - ), - "Warlock": ( - vox_spec: ("armor.warlock.back", (-5.0, -1.5, -15.5)), - color: None - ), "Rawhide": ( vox_spec: ("armor.hide.rawhide.back", (-4.0, -1.0, -6.0)), color: None diff --git a/assets/voxygen/voxel/humanoid_armor_belt_manifest.ron b/assets/voxygen/voxel/humanoid_armor_belt_manifest.ron index 3678edd514..e6b95396a8 100644 --- a/assets/voxygen/voxel/humanoid_armor_belt_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_belt_manifest.ron @@ -72,14 +72,6 @@ vox_spec: ("armor.velorite_battlemage.belt", (-5.0, -3.5, 2.0)), color: None ), - "Warlord":( - vox_spec: ("armor.warlord.belt", (-4.0, -3.5, 1.0)), - color: None - ), - "Warlock":( - vox_spec: ("armor.warlock.belt", (-4.0, -3.0, 2.0)), - color: None - ), "Rawhide": ( vox_spec: ("armor.hide.rawhide.belt", (-4.0, -3.5, 2.0)), color: None diff --git a/assets/voxygen/voxel/humanoid_armor_chest_manifest.ron b/assets/voxygen/voxel/humanoid_armor_chest_manifest.ron index cbe2304567..db7a6b80ec 100644 --- a/assets/voxygen/voxel/humanoid_armor_chest_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_chest_manifest.ron @@ -142,14 +142,6 @@ vox_spec: ("armor.velorite_battlemage.chest", (-7.0, -3.5, 0.5)), color: None ), - "Warlord": ( - vox_spec: ("armor.warlord.chest", (-7.0, -3.5, -0.5)), - color: None - ), - "Warlock": ( - vox_spec: ("armor.warlock.chest", (-7.0, -3.5, 0.5)), - color: None - ), "Rawhide": ( vox_spec: ("armor.hide.rawhide.chest", (-7.0, -3.5, 2.0)), color: None diff --git a/assets/voxygen/voxel/humanoid_armor_foot_manifest.ron b/assets/voxygen/voxel/humanoid_armor_foot_manifest.ron index 5895fd0204..617d459fb3 100644 --- a/assets/voxygen/voxel/humanoid_armor_foot_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_foot_manifest.ron @@ -72,14 +72,6 @@ vox_spec: ("armor.velorite_battlemage.foot", (-2.5, -3.5, -2.0)), color: None ), - "Warlord": ( - vox_spec: ("armor.warlord.foot", (-2.5, -3.5, -2.0)), - color: None - ), - "Warlock": ( - vox_spec: ("armor.warlock.foot", (-2.5, -3.5, -2.0)), - color: None - ), "Rawhide": ( vox_spec: ("armor.hide.rawhide.foot", (-2.5, -3.5, -2.0)), color: None diff --git a/assets/voxygen/voxel/humanoid_armor_hand_manifest.ron b/assets/voxygen/voxel/humanoid_armor_hand_manifest.ron index de569659e1..7d3bff8625 100644 --- a/assets/voxygen/voxel/humanoid_armor_hand_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_hand_manifest.ron @@ -150,26 +150,6 @@ color: None ) ), - "Warlord": ( - left: ( - vox_spec: ("armor.warlord.hand", (-3.0, -2.0, -5.0)), - color: None - ), - right: ( - vox_spec: ("armor.warlord.hand", (-2.0, -2.0, -5.0)), - color: None - ) - ), - "Warlock": ( - left: ( - vox_spec: ("armor.warlock.hand", (-4.5, -3.5, -5.0)), - color: None - ), - right: ( - vox_spec: ("armor.warlock.hand", (-2.5, -3.5, -5.0)), - color: None - ) - ), "Rawhide": ( left: ( vox_spec: ("armor.hide.rawhide.hand", (-1.5, -1.5, -2.5)), diff --git a/assets/voxygen/voxel/humanoid_armor_pants_manifest.ron b/assets/voxygen/voxel/humanoid_armor_pants_manifest.ron index c92c63f592..9aa5dde696 100644 --- a/assets/voxygen/voxel/humanoid_armor_pants_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_pants_manifest.ron @@ -100,14 +100,6 @@ vox_spec: ("armor.leather_blue.pants", (-5.0, -3.5, 1.0)), color: None ), - "Warlord": ( - vox_spec: ("armor.warlord.pants", (-6.0, -4.5, -2.0)), - color: None - ), - "Warlock": ( - vox_spec: ("armor.warlock.pants", (-5.0, -4.0, -2.0)), - color: None - ), "Rawhide": ( vox_spec: ("armor.hide.rawhide.pants", (-5.0, -3.5, 1.0)), color: None diff --git a/assets/voxygen/voxel/humanoid_armor_shoulder_manifest.ron b/assets/voxygen/voxel/humanoid_armor_shoulder_manifest.ron index 5203c3c5d8..0b027a70a6 100644 --- a/assets/voxygen/voxel/humanoid_armor_shoulder_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_shoulder_manifest.ron @@ -231,26 +231,6 @@ color: None ) ), - "Warlord": ( - left: ( - vox_spec: ("armor.warlord.shoulder", (-8.0, -3.5 , -2.5)), - color: None - ), - right: ( - vox_spec: ("armor.warlord.shoulder", (-1.0, -3.5 , -2.5)), - color: None - ) - ), - "Warlock": ( - left: ( - vox_spec: ("armor.warlock.shoulder", (-6.0, -4.0 , -2.0)), - color: None - ), - right: ( - vox_spec: ("armor.warlock.shoulder", (0.0, -4.0, -2.0)), - color: None - ) - ), "Rawhide": ( left: ( vox_spec: ("armor.hide.rawhide.shoulder", (-4.0, -3.2, -0.5)), diff --git a/assets/voxygen/voxel/npc/alpaca/male/ears.vox b/assets/voxygen/voxel/npc/alpaca/male/ears.vox new file mode 100644 index 0000000000..1c60383e3a Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/alpaca/male/foot_br.vox b/assets/voxygen/voxel/npc/alpaca/male/foot_br.vox new file mode 100644 index 0000000000..31d5efd9e2 Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/alpaca/male/foot_fr.vox b/assets/voxygen/voxel/npc/alpaca/male/foot_fr.vox new file mode 100644 index 0000000000..2bde925b7d Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/alpaca/male/head.vox b/assets/voxygen/voxel/npc/alpaca/male/head.vox new file mode 100644 index 0000000000..e1ca48e537 Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/alpaca/male/jaw.vox b/assets/voxygen/voxel/npc/alpaca/male/jaw.vox new file mode 100644 index 0000000000..208e99b637 Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/alpaca/male/leg_br.vox b/assets/voxygen/voxel/npc/alpaca/male/leg_br.vox new file mode 100644 index 0000000000..abf878f736 Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/alpaca/male/leg_fr.vox b/assets/voxygen/voxel/npc/alpaca/male/leg_fr.vox new file mode 100644 index 0000000000..c522a33500 Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/alpaca/male/neck.vox b/assets/voxygen/voxel/npc/alpaca/male/neck.vox new file mode 100644 index 0000000000..d0f5b038fa Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/alpaca/male/tail.vox b/assets/voxygen/voxel/npc/alpaca/male/tail.vox new file mode 100644 index 0000000000..a3f11a8a2e Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/alpaca/male/torso_back.vox b/assets/voxygen/voxel/npc/alpaca/male/torso_back.vox new file mode 100644 index 0000000000..c24885d3b9 Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/alpaca/male/torso_front.vox b/assets/voxygen/voxel/npc/alpaca/male/torso_front.vox new file mode 100644 index 0000000000..b56793197f Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/foot_l.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/foot_l.vox new file mode 100644 index 0000000000..42edfc7f12 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/foot_r.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/foot_r.vox new file mode 100644 index 0000000000..42edfc7f12 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/hand_l.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/hand_l.vox new file mode 100644 index 0000000000..14344bc199 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/hand_r.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/hand_r.vox new file mode 100644 index 0000000000..23b2c540f7 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/head.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/head.vox new file mode 100644 index 0000000000..93b41e876d Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/leg_l.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/leg_l.vox new file mode 100644 index 0000000000..b2703dbb13 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/leg_r.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/leg_r.vox new file mode 100644 index 0000000000..b2703dbb13 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/shoulder_l.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/shoulder_l.vox new file mode 100644 index 0000000000..dafd45aa29 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/shoulder_r.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/shoulder_r.vox new file mode 100644 index 0000000000..0782325526 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/torso_lower.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/torso_lower.vox new file mode 100644 index 0000000000..06feb9e82f Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/torso_upper.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/torso_upper.vox new file mode 100644 index 0000000000..68cfdd9009 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/foot_l.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/foot_l.vox new file mode 100644 index 0000000000..bff6416922 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/foot_r.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/foot_r.vox new file mode 100644 index 0000000000..bff6416922 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/hand_l.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/hand_l.vox new file mode 100644 index 0000000000..d0aaa285b7 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/hand_r.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/hand_r.vox new file mode 100644 index 0000000000..498cd9d11d Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/head.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/head.vox new file mode 100644 index 0000000000..1b9512b75c Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/leg_l.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/leg_l.vox new file mode 100644 index 0000000000..33f465f7ef Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/leg_r.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/leg_r.vox new file mode 100644 index 0000000000..33f465f7ef Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/shoulder_l.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/shoulder_l.vox new file mode 100644 index 0000000000..e755867c60 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/shoulder_r.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/shoulder_r.vox new file mode 100644 index 0000000000..67b4db5bbb Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/torso_lower.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/torso_lower.vox new file mode 100644 index 0000000000..94450638f5 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/torso_upper.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/torso_upper.vox new file mode 100644 index 0000000000..5c210b0fdc Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/duck/female/head.vox b/assets/voxygen/voxel/npc/duck/female/head.vox index e099ff44fc..8d0bc5a28f 100644 Binary files a/assets/voxygen/voxel/npc/duck/female/head.vox and b/assets/voxygen/voxel/npc/duck/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/duck/female/leg_r.vox b/assets/voxygen/voxel/npc/duck/female/leg_r.vox index c227ff840c..b73d753576 100644 Binary files a/assets/voxygen/voxel/npc/duck/female/leg_r.vox and b/assets/voxygen/voxel/npc/duck/female/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/duck/female/tail.vox b/assets/voxygen/voxel/npc/duck/female/tail.vox index f73fb40d7f..dc574e3d43 100644 Binary files a/assets/voxygen/voxel/npc/duck/female/tail.vox and b/assets/voxygen/voxel/npc/duck/female/tail.vox differ diff --git a/assets/voxygen/voxel/npc/duck/female/torso.vox b/assets/voxygen/voxel/npc/duck/female/torso.vox index 9984a01c87..b3101e0885 100644 Binary files a/assets/voxygen/voxel/npc/duck/female/torso.vox and b/assets/voxygen/voxel/npc/duck/female/torso.vox differ diff --git a/assets/voxygen/voxel/npc/duck/female/wing.vox b/assets/voxygen/voxel/npc/duck/female/wing.vox index ea1de42e55..c425c9647f 100644 Binary files a/assets/voxygen/voxel/npc/duck/female/wing.vox and b/assets/voxygen/voxel/npc/duck/female/wing.vox differ diff --git a/assets/voxygen/voxel/npc/duck/male/head.vox b/assets/voxygen/voxel/npc/duck/male/head.vox index 8bc76d618f..db25d2d895 100644 Binary files a/assets/voxygen/voxel/npc/duck/male/head.vox and b/assets/voxygen/voxel/npc/duck/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/duck/male/leg_r.vox b/assets/voxygen/voxel/npc/duck/male/leg_r.vox index c227ff840c..3a7c7645a9 100644 Binary files a/assets/voxygen/voxel/npc/duck/male/leg_r.vox and b/assets/voxygen/voxel/npc/duck/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/duck/male/tail.vox b/assets/voxygen/voxel/npc/duck/male/tail.vox index 16c46bb07d..f362de284d 100644 Binary files a/assets/voxygen/voxel/npc/duck/male/tail.vox and b/assets/voxygen/voxel/npc/duck/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/duck/male/torso.vox b/assets/voxygen/voxel/npc/duck/male/torso.vox index 80ce831912..2e40ba490f 100644 Binary files a/assets/voxygen/voxel/npc/duck/male/torso.vox and b/assets/voxygen/voxel/npc/duck/male/torso.vox differ diff --git a/assets/voxygen/voxel/npc/duck/male/wing.vox b/assets/voxygen/voxel/npc/duck/male/wing.vox index 36e8fb6f0d..0ad4a8dddf 100644 Binary files a/assets/voxygen/voxel/npc/duck/male/wing.vox and b/assets/voxygen/voxel/npc/duck/male/wing.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/foot_l.vox b/assets/voxygen/voxel/npc/husk_brute/male/foot_l.vox new file mode 100644 index 0000000000..8e09ba544e Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/foot_r.vox b/assets/voxygen/voxel/npc/husk_brute/male/foot_r.vox new file mode 100644 index 0000000000..8eca7482a2 Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/hand_l.vox b/assets/voxygen/voxel/npc/husk_brute/male/hand_l.vox new file mode 100644 index 0000000000..f4d8d5d139 Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/hand_r.vox b/assets/voxygen/voxel/npc/husk_brute/male/hand_r.vox new file mode 100644 index 0000000000..09a0652069 Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/head.vox b/assets/voxygen/voxel/npc/husk_brute/male/head.vox new file mode 100644 index 0000000000..b79caa6df9 Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/leg_l.vox b/assets/voxygen/voxel/npc/husk_brute/male/leg_l.vox new file mode 100644 index 0000000000..c0d38b48c6 Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/leg_r.vox b/assets/voxygen/voxel/npc/husk_brute/male/leg_r.vox new file mode 100644 index 0000000000..c0d38b48c6 Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/shoulder_l.vox b/assets/voxygen/voxel/npc/husk_brute/male/shoulder_l.vox new file mode 100644 index 0000000000..f5b43cfc8e Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/shoulder_r.vox b/assets/voxygen/voxel/npc/husk_brute/male/shoulder_r.vox new file mode 100644 index 0000000000..ccb9e9960a Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/torso_lower.vox b/assets/voxygen/voxel/npc/husk_brute/male/torso_lower.vox new file mode 100644 index 0000000000..fed77758ea Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/torso_upper.vox b/assets/voxygen/voxel/npc/husk_brute/male/torso_upper.vox new file mode 100644 index 0000000000..3997bfefd1 Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/llama/male/ears.vox b/assets/voxygen/voxel/npc/llama/male/ears.vox new file mode 100644 index 0000000000..905e7ae7d6 Binary files /dev/null and b/assets/voxygen/voxel/npc/llama/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/llama/male/foot_br.vox b/assets/voxygen/voxel/npc/llama/male/foot_br.vox new file mode 100644 index 0000000000..3c6f4129fb Binary files /dev/null and b/assets/voxygen/voxel/npc/llama/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/llama/male/foot_fr.vox b/assets/voxygen/voxel/npc/llama/male/foot_fr.vox new file mode 100644 index 0000000000..568575e414 Binary files /dev/null and b/assets/voxygen/voxel/npc/llama/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/llama/male/head.vox b/assets/voxygen/voxel/npc/llama/male/head.vox new file mode 100644 index 0000000000..7343d7c3a4 Binary files /dev/null and b/assets/voxygen/voxel/npc/llama/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/llama/male/jaw.vox b/assets/voxygen/voxel/npc/llama/male/jaw.vox new file mode 100644 index 0000000000..80be1dbc24 Binary files /dev/null and b/assets/voxygen/voxel/npc/llama/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/llama/male/leg_br.vox b/assets/voxygen/voxel/npc/llama/male/leg_br.vox new file mode 100644 index 0000000000..007f8b0856 Binary files /dev/null and b/assets/voxygen/voxel/npc/llama/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/llama/male/leg_fr.vox b/assets/voxygen/voxel/npc/llama/male/leg_fr.vox new file mode 100644 index 0000000000..b5e2be3f48 Binary files /dev/null and b/assets/voxygen/voxel/npc/llama/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/llama/male/neck.vox b/assets/voxygen/voxel/npc/llama/male/neck.vox new file mode 100644 index 0000000000..d07c3108e0 Binary files /dev/null and b/assets/voxygen/voxel/npc/llama/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/llama/male/tail.vox b/assets/voxygen/voxel/npc/llama/male/tail.vox new file mode 100644 index 0000000000..4f7956942f Binary files /dev/null and b/assets/voxygen/voxel/npc/llama/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/llama/male/torso_back.vox b/assets/voxygen/voxel/npc/llama/male/torso_back.vox new file mode 100644 index 0000000000..a36bd45767 Binary files /dev/null and b/assets/voxygen/voxel/npc/llama/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/llama/male/torso_front.vox b/assets/voxygen/voxel/npc/llama/male/torso_front.vox new file mode 100644 index 0000000000..652fcae624 Binary files /dev/null and b/assets/voxygen/voxel/npc/llama/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/mammoth/male/foot_br.vox b/assets/voxygen/voxel/npc/mammoth/male/foot_br.vox new file mode 100644 index 0000000000..157f0ff79c Binary files /dev/null and b/assets/voxygen/voxel/npc/mammoth/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/mammoth/male/foot_fr.vox b/assets/voxygen/voxel/npc/mammoth/male/foot_fr.vox new file mode 100644 index 0000000000..70c6dc5014 Binary files /dev/null and b/assets/voxygen/voxel/npc/mammoth/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/mammoth/male/head.vox b/assets/voxygen/voxel/npc/mammoth/male/head.vox new file mode 100644 index 0000000000..8fa9293b44 Binary files /dev/null and b/assets/voxygen/voxel/npc/mammoth/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/mammoth/male/jaw.vox b/assets/voxygen/voxel/npc/mammoth/male/jaw.vox new file mode 100644 index 0000000000..7100b76845 Binary files /dev/null and b/assets/voxygen/voxel/npc/mammoth/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/mammoth/male/leg_br.vox b/assets/voxygen/voxel/npc/mammoth/male/leg_br.vox new file mode 100644 index 0000000000..95c2f1f90b Binary files /dev/null and b/assets/voxygen/voxel/npc/mammoth/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/mammoth/male/leg_fr.vox b/assets/voxygen/voxel/npc/mammoth/male/leg_fr.vox new file mode 100644 index 0000000000..6084d12963 Binary files /dev/null and b/assets/voxygen/voxel/npc/mammoth/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/mammoth/male/neck.vox b/assets/voxygen/voxel/npc/mammoth/male/neck.vox new file mode 100644 index 0000000000..726bf900f0 Binary files /dev/null and b/assets/voxygen/voxel/npc/mammoth/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/mammoth/male/tail.vox b/assets/voxygen/voxel/npc/mammoth/male/tail.vox new file mode 100644 index 0000000000..840e5bf1c8 Binary files /dev/null and b/assets/voxygen/voxel/npc/mammoth/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/mammoth/male/torso_back.vox b/assets/voxygen/voxel/npc/mammoth/male/torso_back.vox new file mode 100644 index 0000000000..562f1d301b Binary files /dev/null and b/assets/voxygen/voxel/npc/mammoth/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/mammoth/male/torso_front.vox b/assets/voxygen/voxel/npc/mammoth/male/torso_front.vox new file mode 100644 index 0000000000..e344c7a8cf Binary files /dev/null and b/assets/voxygen/voxel/npc/mammoth/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/ngoubou/male/foot_br.vox b/assets/voxygen/voxel/npc/ngoubou/male/foot_br.vox new file mode 100644 index 0000000000..5590503019 Binary files /dev/null and b/assets/voxygen/voxel/npc/ngoubou/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/ngoubou/male/foot_fr.vox b/assets/voxygen/voxel/npc/ngoubou/male/foot_fr.vox new file mode 100644 index 0000000000..f9604f79ef Binary files /dev/null and b/assets/voxygen/voxel/npc/ngoubou/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/ngoubou/male/head.vox b/assets/voxygen/voxel/npc/ngoubou/male/head.vox new file mode 100644 index 0000000000..aad64a1160 Binary files /dev/null and b/assets/voxygen/voxel/npc/ngoubou/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/ngoubou/male/jaw.vox b/assets/voxygen/voxel/npc/ngoubou/male/jaw.vox new file mode 100644 index 0000000000..6f067dc999 Binary files /dev/null and b/assets/voxygen/voxel/npc/ngoubou/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/ngoubou/male/leg_br.vox b/assets/voxygen/voxel/npc/ngoubou/male/leg_br.vox new file mode 100644 index 0000000000..da48a6dd27 Binary files /dev/null and b/assets/voxygen/voxel/npc/ngoubou/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/ngoubou/male/leg_fr.vox b/assets/voxygen/voxel/npc/ngoubou/male/leg_fr.vox new file mode 100644 index 0000000000..ff41150038 Binary files /dev/null and b/assets/voxygen/voxel/npc/ngoubou/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/ngoubou/male/neck.vox b/assets/voxygen/voxel/npc/ngoubou/male/neck.vox new file mode 100644 index 0000000000..507f39cd82 Binary files /dev/null and b/assets/voxygen/voxel/npc/ngoubou/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/ngoubou/male/tail.vox b/assets/voxygen/voxel/npc/ngoubou/male/tail.vox new file mode 100644 index 0000000000..931a069a78 Binary files /dev/null and b/assets/voxygen/voxel/npc/ngoubou/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/ngoubou/male/torso_back.vox b/assets/voxygen/voxel/npc/ngoubou/male/torso_back.vox new file mode 100644 index 0000000000..6434fec7d2 Binary files /dev/null and b/assets/voxygen/voxel/npc/ngoubou/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/ngoubou/male/torso_front.vox b/assets/voxygen/voxel/npc/ngoubou/male/torso_front.vox new file mode 100644 index 0000000000..752a5fb1fe Binary files /dev/null and b/assets/voxygen/voxel/npc/ngoubou/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index 72e6b57a67..69901c6685 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -1799,4 +1799,244 @@ central: ("npc.snowleopard.male.tail"), ), ), + (Mammoth, Male): ( + head: ( + offset: (-13.0, 0.0, -11.0), + central: ("npc.mammoth.male.head"), + ), + neck: ( + offset: (-6.0, -3.5, -11.5), + central: ("npc.mammoth.male.neck"), + ), + jaw: ( + offset: (-3.0, -5.0, -13.0), + central: ("npc.mammoth.male.jaw"), + ), + torso_front: ( + offset: (-9.0, -14.0, -15.0), + central: ("npc.mammoth.male.torso_front"), + ), + torso_back: ( + offset: (-8.0, -14.0, -12.5), + central: ("npc.mammoth.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -6.0, -15.0), + central: ("npc.mammoth.male.tail"), + ), + ), + (Mammoth, Female): ( + head: ( + offset: (-13.0, 0.0, -11.0), + central: ("npc.mammoth.male.head"), + ), + neck: ( + offset: (-6.0, -3.5, -11.5), + central: ("npc.mammoth.male.neck"), + ), + jaw: ( + offset: (-3.0, -5.0, -13.0), + central: ("npc.mammoth.male.jaw"), + ), + torso_front: ( + offset: (-9.0, -14.0, -15.0), + central: ("npc.mammoth.male.torso_front"), + ), + torso_back: ( + offset: (-8.0, -14.0, -12.5), + central: ("npc.mammoth.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -6.0, -15.0), + central: ("npc.mammoth.male.tail"), + ), + ), + (Ngoubou, Male): ( + head: ( + offset: (-9.5, 0.0, -9.0), + central: ("npc.ngoubou.male.head"), + ), + neck: ( + offset: (-4.5, -3.0, -7.5), + central: ("npc.ngoubou.male.neck"), + ), + jaw: ( + offset: (-2.5, -7.0, -3.0), + central: ("npc.ngoubou.male.jaw"), + ), + torso_front: ( + offset: (-5.5, -9.0, -9.5), + central: ("npc.ngoubou.male.torso_front"), + ), + torso_back: ( + offset: (-5.5, -13.0, -7.5), + central: ("npc.ngoubou.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-1.5, -8.0, -14.0), + central: ("npc.ngoubou.male.tail"), + ), + ), + (Ngoubou, Female): ( + head: ( + offset: (-9.5, 0.0, -9.0), + central: ("npc.ngoubou.male.head"), + ), + neck: ( + offset: (-4.5, -3.0, -7.5), + central: ("npc.ngoubou.male.neck"), + ), + jaw: ( + offset: (-2.5, 0.0, -3.0), + central: ("npc.ngoubou.male.jaw"), + ), + torso_front: ( + offset: (-5.5, -9.0, -9.5), + central: ("npc.ngoubou.male.torso_front"), + ), + torso_back: ( + offset: (-5.5, -13.0, -7.5), + central: ("npc.ngoubou.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-1.5, -8.0, -14.0), + central: ("npc.ngoubou.male.tail"), + ), + ), + (Llama, Male): ( + head: ( + offset: (-3.0, -2.0, -3.5), + central: ("npc.llama.male.head"), + ), + neck: ( + offset: (-3.0, -4.5, -9.5), + central: ("npc.llama.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("npc.llama.male.jaw"), + ), + torso_front: ( + offset: (-6.0, -9.0, -6.0), + central: ("npc.llama.male.torso_front"), + ), + torso_back: ( + offset: (-5.0, -12.0, -5.0), + central: ("npc.llama.male.torso_back"), + ), + ears: ( + offset: (-4.0, -1.0, 0.0), + central: ("npc.llama.male.ears"), + ), + tail: ( + offset: (-2.0, -5.0, -7.0), + central: ("npc.llama.male.tail"), + ), + ), + (Llama, Female): ( + head: ( + offset: (-3.0, -2.0, -3.5), + central: ("npc.llama.male.head"), + ), + neck: ( + offset: (-3.0, -4.5, -9.5), + central: ("npc.llama.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("npc.llama.male.jaw"), + ), + torso_front: ( + offset: (-6.0, -9.0, -6.0), + central: ("npc.llama.male.torso_front"), + ), + torso_back: ( + offset: (-5.0, -12.0, -5.0), + central: ("npc.llama.male.torso_back"), + ), + ears: ( + offset: (-4.0, -1.0, 0.0), + central: ("npc.llama.male.ears"), + ), + tail: ( + offset: (-2.0, -5.0, -7.0), + central: ("npc.llama.male.tail"), + ), + ), + (Alpaca, Male): ( + head: ( + offset: (-4.0, -3.0, -4.0), + central: ("npc.alpaca.male.head"), + ), + neck: ( + offset: (-3.0, -3.5, -6.5), + central: ("npc.alpaca.male.neck"), + ), + jaw: ( + offset: (-1.0, 0.0, -0.5), + central: ("npc.alpaca.male.jaw"), + ), + torso_front: ( + offset: (-5.0, -8.0, -4.5), + central: ("npc.alpaca.male.torso_front"), + ), + torso_back: ( + offset: (-5.0, -10.0, -4.5), + central: ("npc.alpaca.male.torso_back"), + ), + ears: ( + offset: (-4.0, -1.0, 0.0), + central: ("npc.alpaca.male.ears"), + ), + tail: ( + offset: (-3.0, -5.0, -8.0), + central: ("npc.alpaca.male.tail"), + ), + ), + (Alpaca, Female): ( + head: ( + offset: (-4.0, -3.0, -4.0), + central: ("npc.alpaca.male.head"), + ), + neck: ( + offset: (-3.0, -3.5, -6.5), + central: ("npc.alpaca.male.neck"), + ), + jaw: ( + offset: (-1.0, 0.0, -0.5), + central: ("npc.alpaca.male.jaw"), + ), + torso_front: ( + offset: (-5.0, -8.0, -4.5), + central: ("npc.alpaca.male.torso_front"), + ), + torso_back: ( + offset: (-5.0, -10.0, -4.5), + central: ("npc.alpaca.male.torso_back"), + ), + ears: ( + offset: (-4.0, -1.0, 0.0), + central: ("npc.alpaca.male.ears"), + ), + tail: ( + offset: (-3.0, -5.0, -8.0), + central: ("npc.alpaca.male.tail"), + ), + ), }) diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index 31d36969bb..8e0ff588b2 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -2039,4 +2039,276 @@ lateral: ("npc.snowleopard.male.foot_br"), ), ), + (Mammoth, Male): ( + leg_fl: ( + offset: (-4.0, -5.0, -6.0), + lateral: ("npc.mammoth.male.leg_fr"), + ), + leg_fr: ( + offset: (-4.0, -5.0, -6.0), + lateral: ("npc.mammoth.male.leg_fr"), + ), + leg_bl: ( + offset: (-3.5, -5.0, -5.5), + lateral: ("npc.mammoth.male.leg_br"), + ), + leg_br: ( + offset: (-3.5, -5.0, -5.5), + lateral: ("npc.mammoth.male.leg_br"), + ), + foot_fl: ( + offset: (-3.5, -4.5, -10.0), + lateral: ("npc.mammoth.male.foot_fr"), + ), + foot_fr: ( + offset: (-3.5, -4.5, -10.0), + lateral: ("npc.mammoth.male.foot_fr"), + ), + foot_bl: ( + offset: (-3.0, -4.5, -9.0), + lateral: ("npc.mammoth.male.foot_br"), + ), + foot_br: ( + offset: (-3.0, -4.5, -9.0), + lateral: ("npc.mammoth.male.foot_br"), + ), + ), + (Mammoth, Female): ( + leg_fl: ( + offset: (-4.0, -5.0, -6.0), + lateral: ("npc.mammoth.male.leg_fr"), + ), + leg_fr: ( + offset: (-4.0, -5.0, -6.0), + lateral: ("npc.mammoth.male.leg_fr"), + ), + leg_bl: ( + offset: (-3.5, -5.0, -5.5), + lateral: ("npc.mammoth.male.leg_br"), + ), + leg_br: ( + offset: (-3.5, -5.0, -5.5), + lateral: ("npc.mammoth.male.leg_br"), + ), + foot_fl: ( + offset: (-3.5, -4.5, -10.0), + lateral: ("npc.mammoth.male.foot_fr"), + ), + foot_fr: ( + offset: (-3.5, -4.5, -10.0), + lateral: ("npc.mammoth.male.foot_fr"), + ), + foot_bl: ( + offset: (-3.0, -4.5, -9.0), + lateral: ("npc.mammoth.male.foot_br"), + ), + foot_br: ( + offset: (-3.0, -4.5, -9.0), + lateral: ("npc.mammoth.male.foot_br"), + ), + ), + (Ngoubou, Male): ( + leg_fl: ( + offset: (-2.5, -4.0, -7.0), + lateral: ("npc.ngoubou.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.5, -4.0, -7.0), + lateral: ("npc.ngoubou.male.leg_fr"), + ), + leg_bl: ( + offset: (-3.0, -4.5, -5.5), + lateral: ("npc.ngoubou.male.leg_br"), + ), + leg_br: ( + offset: (-3.0, -4.5, -5.5), + lateral: ("npc.ngoubou.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.ngoubou.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.ngoubou.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.ngoubou.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.ngoubou.male.foot_br"), + ), + ), + (Ngoubou, Female): ( + leg_fl: ( + offset: (-2.5, -4.0, -7.0), + lateral: ("npc.ngoubou.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.5, -4.0, -7.0), + lateral: ("npc.ngoubou.male.leg_fr"), + ), + leg_bl: ( + offset: (-3.0, -4.5, -5.5), + lateral: ("npc.ngoubou.male.leg_br"), + ), + leg_br: ( + offset: (-3.0, -4.5, -5.5), + lateral: ("npc.ngoubou.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.ngoubou.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.ngoubou.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.ngoubou.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.ngoubou.male.foot_br"), + ), + ), + (Llama, Male): ( + leg_fl: ( + offset: (-2.0, -2.5, -6.0), + lateral: ("npc.llama.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -2.5, -6.0), + lateral: ("npc.llama.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0, -5.0), + lateral: ("npc.llama.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -5.0), + lateral: ("npc.llama.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.llama.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.llama.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.llama.male.foot_br"), + ), + foot_br: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.llama.male.foot_br"), + ), + ), + (Llama, Female): ( + leg_fl: ( + offset: (-2.0, -2.5, -6.0), + lateral: ("npc.llama.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -2.5, -6.0), + lateral: ("npc.llama.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0, -5.0), + lateral: ("npc.llama.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -5.0), + lateral: ("npc.llama.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.llama.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.llama.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.llama.male.foot_br"), + ), + foot_br: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.llama.male.foot_br"), + ), + ), + (Alpaca, Male): ( + leg_fl: ( + offset: (-1.5, -2.5, -4.0), + lateral: ("npc.alpaca.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, -2.5, -4.0), + lateral: ("npc.alpaca.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.5, -2.5, -4.5), + lateral: ("npc.alpaca.male.leg_br"), + ), + leg_br: ( + offset: (-2.5, -2.5, -4.5), + lateral: ("npc.alpaca.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -2.0, -6.0), + lateral: ("npc.alpaca.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -2.0, -6.0), + lateral: ("npc.alpaca.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.0, -2.0, -6.0), + lateral: ("npc.alpaca.male.foot_br"), + ), + foot_br: ( + offset: (-2.0, -2.0, -6.0), + lateral: ("npc.alpaca.male.foot_br"), + ), + ), + (Alpaca, Female): ( + leg_fl: ( + offset: (-1.5, -2.5, -4.0), + lateral: ("npc.alpaca.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, -2.5, -4.0), + lateral: ("npc.alpaca.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.5, -2.5, -4.5), + lateral: ("npc.alpaca.male.leg_br"), + ), + leg_br: ( + offset: (-2.5, -2.5, -4.5), + lateral: ("npc.alpaca.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -2.0, -6.0), + lateral: ("npc.alpaca.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -2.0, -6.0), + lateral: ("npc.alpaca.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.0, -2.0, -6.0), + lateral: ("npc.alpaca.male.foot_br"), + ), + foot_br: ( + offset: (-2.0, -2.0, -6.0), + lateral: ("npc.alpaca.male.foot_br"), + ), + ), }) diff --git a/common/src/comp/agent.rs b/common/src/comp/agent.rs index 6b8059cedc..f7262502a7 100644 --- a/common/src/comp/agent.rs +++ b/common/src/comp/agent.rs @@ -218,6 +218,8 @@ impl<'a> From<&'a Body> for Psyche { quadruped_medium::Species::Darkhound => 0.9, quadruped_medium::Species::Dreadhorn => 0.8, quadruped_medium::Species::Snowleopard => 0.7, + quadruped_medium::Species::Llama => 0.6, + quadruped_medium::Species::Alpaca => 0.6, _ => 0.5, }, Body::QuadrupedLow(quadruped_low) => match quadruped_low.species { diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index 623f164283..2ae9bc6905 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -180,6 +180,9 @@ impl Body { biped_large::Species::Mightysaurok => 400.0, biped_large::Species::Mindflayer => 420.0, biped_large::Species::Minotaur => 500.0, + biped_large::Species::Cavetroll => 600.0, + biped_large::Species::Mountaintroll => 600.0, + biped_large::Species::Swamptroll => 600.0, _ => 400.0, }, Body::BipedSmall(_) => 50.0, @@ -306,7 +309,9 @@ impl Body { biped_large::Species::Slysaurok => Vec3::new(4.0, 3.0, 3.4), biped_large::Species::Werewolf => Vec3::new(4.0, 3.0, 3.5), biped_large::Species::Harvester => Vec3::new(4.6, 3.0, 5.4), - + biped_large::Species::Cultistwarlord => Vec3::new(3.0, 3.0, 4.5), + biped_large::Species::Cultistwarlock => Vec3::new(3.0, 3.0, 3.5), + biped_large::Species::Huskbrute => Vec3::new(4.6, 3.0, 5.0), _ => Vec3::new(4.6, 3.0, 6.0), }, Body::BipedSmall(body) => match body.species { @@ -358,6 +363,10 @@ impl Body { quadruped_medium::Species::Saber => Vec3::new(2.0, 3.0, 2.0), quadruped_medium::Species::Tarasque => Vec3::new(2.0, 4.0, 2.6), quadruped_medium::Species::Yak => Vec3::new(2.0, 3.6, 3.0), + quadruped_medium::Species::Mammoth => Vec3::new(2.0, 7.0, 8.0), + quadruped_medium::Species::Ngoubou => Vec3::new(2.0, 3.2, 2.4), + quadruped_medium::Species::Llama => Vec3::new(2.0, 2.5, 2.6), + quadruped_medium::Species::Alpaca => Vec3::new(2.0, 2.0, 2.0), _ => Vec3::new(2.0, 3.0, 2.0), }, Body::QuadrupedSmall(body) => match body.species { @@ -459,7 +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::Dreadhorn => 1300, + quadruped_medium::Species::Mammoth => 2500, + quadruped_medium::Species::Ngoubou => 1800, _ => 700, }, Body::BirdMedium(bird_medium) => match bird_medium.species { @@ -493,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 { @@ -530,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, @@ -583,6 +595,8 @@ impl Body { quadruped_medium::Species::Bear => 40, quadruped_medium::Species::Moose => 30, quadruped_medium::Species::Dreadhorn => 50, + quadruped_medium::Species::Mammoth => 80, + quadruped_medium::Species::Ngoubou => 60, _ => 20, }, Body::BirdMedium(bird_medium) => match bird_medium.species { @@ -609,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, @@ -631,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, @@ -657,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/common/src/comp/body/biped_large.rs b/common/src/comp/body/biped_large.rs index d152693658..44285fa21e 100644 --- a/common/src/comp/body/biped_large.rs +++ b/common/src/comp/body/biped_large.rs @@ -52,6 +52,9 @@ make_case_elim!( Harvester = 15, Blueoni = 16, Redoni = 17, + Cultistwarlord = 18, + Cultistwarlock = 19, + Huskbrute = 20, } ); @@ -78,6 +81,9 @@ pub struct AllSpecies { pub harvester: SpeciesMeta, pub oni_blue: SpeciesMeta, pub oni_red: SpeciesMeta, + pub cultist_warlord: SpeciesMeta, + pub cultist_warlock: SpeciesMeta, + pub husk_brute: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -104,11 +110,14 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Harvester => &self.harvester, Species::Blueoni => &self.oni_blue, Species::Redoni => &self.oni_red, + Species::Cultistwarlord => &self.cultist_warlord, + Species::Cultistwarlock => &self.cultist_warlock, + Species::Huskbrute => &self.husk_brute, } } } -pub const ALL_SPECIES: [Species; 18] = [ +pub const ALL_SPECIES: [Species; 21] = [ Species::Ogre, Species::Cyclops, Species::Wendigo, @@ -127,6 +136,9 @@ pub const ALL_SPECIES: [Species; 18] = [ Species::Harvester, Species::Blueoni, Species::Redoni, + Species::Cultistwarlord, + Species::Cultistwarlock, + Species::Huskbrute, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/common/src/comp/body/quadruped_medium.rs b/common/src/comp/body/quadruped_medium.rs index 192e7559b5..04efc68c25 100644 --- a/common/src/comp/body/quadruped_medium.rs +++ b/common/src/comp/body/quadruped_medium.rs @@ -62,6 +62,10 @@ pub enum Species { Dreadhorn = 29, Moose = 30, Snowleopard = 31, + Mammoth = 32, + Ngoubou = 33, + Llama = 34, + Alpaca = 35, } /// Data representing per-species generic data. @@ -99,6 +103,10 @@ pub struct AllSpecies { pub dreadhorn: SpeciesMeta, pub moose: SpeciesMeta, pub snowleopard: SpeciesMeta, + pub mammoth: SpeciesMeta, + pub ngoubou: SpeciesMeta, + pub llama: SpeciesMeta, + pub alpaca: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -137,11 +145,15 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Dreadhorn => &self.dreadhorn, Species::Moose => &self.moose, Species::Snowleopard => &self.snowleopard, + Species::Mammoth => &self.mammoth, + Species::Ngoubou => &self.ngoubou, + Species::Llama => &self.llama, + Species::Alpaca => &self.alpaca, } } } -pub const ALL_SPECIES: [Species; 30] = [ +pub const ALL_SPECIES: [Species; 34] = [ Species::Grolgar, Species::Saber, Species::Tiger, @@ -172,6 +184,10 @@ pub const ALL_SPECIES: [Species; 30] = [ Species::Dreadhorn, Species::Moose, Species::Snowleopard, + Species::Mammoth, + Species::Ngoubou, + Species::Llama, + Species::Alpaca, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/common/src/comp/inventory/loadout_builder.rs b/common/src/comp/inventory/loadout_builder.rs index d4396b2749..2eb0a990d7 100644 --- a/common/src/comp/inventory/loadout_builder.rs +++ b/common/src/comp/inventory/loadout_builder.rs @@ -175,7 +175,9 @@ fn default_main_tool(body: &Body) -> Item { | quadruped_medium::Species::Kelpie | quadruped_medium::Species::Hirdrasil | quadruped_medium::Species::Deer - | quadruped_medium::Species::Antelope => Some(Item::new_from_asset_expect( + | quadruped_medium::Species::Antelope + | quadruped_medium::Species::Llama + | quadruped_medium::Species::Alpaca => Some(Item::new_from_asset_expect( "common.items.npc_weapons.unique.quadmedhoof", )), quadruped_medium::Species::Saber => Some(Item::new_from_asset_expect( @@ -184,7 +186,9 @@ fn default_main_tool(body: &Body) -> Item { quadruped_medium::Species::Tuskram | quadruped_medium::Species::Roshwalr | quadruped_medium::Species::Moose - | quadruped_medium::Species::Dreadhorn => Some(Item::new_from_asset_expect( + | quadruped_medium::Species::Dreadhorn + | quadruped_medium::Species::Mammoth + | quadruped_medium::Species::Ngoubou => Some(Item::new_from_asset_expect( "common.items.npc_weapons.unique.quadmedcharge", )), quadruped_medium::Species::Highland @@ -297,6 +301,15 @@ fn default_main_tool(body: &Body) -> Item { (biped_large::Species::Redoni, _) => Some(Item::new_from_asset_expect( "common.items.npc_weapons.hammer.oni_red_hammer", )), + (biped_large::Species::Cultistwarlord, _) => Some(Item::new_from_asset_expect( + "common.items.npc_weapons.sword.bipedlarge-cultist", + )), + (biped_large::Species::Cultistwarlock, _) => Some(Item::new_from_asset_expect( + "common.items.npc_weapons.staff.bipedlarge-cultist", + )), + (biped_large::Species::Huskbrute, _) => Some(Item::new_from_asset_expect( + "common.items.npc_weapons.unique.husk_brute", + )), }, Body::Object(body) => match body { object::Body::Crossbow => Some(Item::new_from_asset_expect( diff --git a/common/src/states/utils.rs b/common/src/states/utils.rs index 4027e4eda4..d18830cf56 100644 --- a/common/src/states/utils.rs +++ b/common/src/states/utils.rs @@ -68,6 +68,10 @@ impl Body { quadruped_medium::Species::Dreadhorn => 140.0, quadruped_medium::Species::Moose => 130.0, quadruped_medium::Species::Snowleopard => 160.0, + quadruped_medium::Species::Mammoth => 180.0, + quadruped_medium::Species::Ngoubou => 170.0, + quadruped_medium::Species::Llama => 120.0, + quadruped_medium::Species::Alpaca => 110.0, }, Body::BipedLarge(body) => match body.species { biped_large::Species::Slysaurok => 100.0, @@ -75,6 +79,9 @@ impl Body { biped_large::Species::Mightysaurok => 100.0, biped_large::Species::Mindflayer => 90.0, biped_large::Species::Minotaur => 60.0, + biped_large::Species::Huskbrute => 130.0, + biped_large::Species::Cultistwarlord => 110.0, + biped_large::Species::Cultistwarlock => 90.0, _ => 80.0, }, Body::BirdMedium(_) => 80.0, @@ -134,7 +141,10 @@ impl Body { match self { Body::Humanoid(_) => 3.5, Body::QuadrupedSmall(_) => 3.0, - Body::QuadrupedMedium(_) => 2.8, + Body::QuadrupedMedium(quadruped_medium) => match quadruped_medium.species { + quadruped_medium::Species::Mammoth => 2.2, + _ => 2.8, + }, Body::BirdMedium(_) => 6.0, Body::FishMedium(_) => 6.0, Body::Dragon(_) => 1.0, diff --git a/server/src/events/entity_manipulation.rs b/server/src/events/entity_manipulation.rs index 1dfba60f4e..b01f17e13a 100644 --- a/server/src/events/entity_manipulation.rs +++ b/server/src/events/entity_manipulation.rs @@ -368,8 +368,8 @@ 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 => { - "common.loot_tables.creature.quad_small.sheep" + quadruped_small::Species::Sheep | quadruped_small::Species::Goat => { + "common.loot_tables.creature.quad_small.wool" }, quadruped_small::Species::Skunk | quadruped_small::Species::Quokka @@ -407,8 +407,7 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc quadruped_medium::Species::Dreadhorn => { "common.loot_tables.creature.quad_medium.dreadhorn" }, - quadruped_medium::Species::Mouflon - | quadruped_medium::Species::Camel + quadruped_medium::Species::Camel | quadruped_medium::Species::Deer | quadruped_medium::Species::Hirdrasil | quadruped_medium::Species::Horse @@ -421,6 +420,17 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc | quadruped_medium::Species::Yak => { "common.loot_tables.creature.quad_medium.gentle" }, + quadruped_medium::Species::Mouflon + | quadruped_medium::Species::Llama + | quadruped_medium::Species::Alpaca => { + "common.loot_tables.creature.quad_medium.wool" + }, + quadruped_medium::Species::Ngoubou => { + "common.loot_tables.creature.quad_medium.horned" + }, + quadruped_medium::Species::Mammoth => { + "common.loot_tables.creature.quad_medium.mammoth" + }, _ => "common.loot_tables.creature.quad_medium.fanged", }, Some(common::comp::Body::BirdMedium(_)) => { @@ -485,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 new file mode 100644 index 0000000000..500a505c56 --- /dev/null +++ b/server/src/migrations/V41_remove_warlock_warlord.sql @@ -0,0 +1,31 @@ +-- Replace all warlord and warlock sets into cultist set +UPDATE item +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.cultist.chest' WHERE item_definition_id = 'common.items.armor.warlock.chest'; +UPDATE item +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.cultist.hand' WHERE item_definition_id = 'common.items.armor.warlock.hand'; +UPDATE item +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.cultist.foot' WHERE item_definition_id = 'common.items.armor.warlock.foot'; +UPDATE item +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.cultist.shoulder' WHERE item_definition_id = 'common.items.armor.warlord.shoulder'; +UPDATE item +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.cultist.belt' WHERE item_definition_id = 'common.items.armor.warlord.belt'; +UPDATE item +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.cultist.pants' WHERE item_definition_id = 'common.items.armor.warlord.pants'; +UPDATE item +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.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/server/src/sys/agent.rs b/server/src/sys/agent.rs index 54d9fa04c2..2810a7cd40 100644 --- a/server/src/sys/agent.rs +++ b/server/src/sys/agent.rs @@ -1637,7 +1637,7 @@ impl<'a> AgentData<'a> { }, "Quad Med Jump" => Tactic::QuadMedJump, "Quad Med Charge" => Tactic::CircleCharge { - radius: 12, + radius: 6, circle_time: 1, }, "Quad Med Basic" => Tactic::QuadMedBasic, @@ -1645,7 +1645,7 @@ impl<'a> AgentData<'a> { "Quad Low Breathe" | "Quad Low Beam" | "Basilisk" => { Tactic::QuadLowBeam }, - "Quad Low Tail" => Tactic::TailSlap, + "Quad Low Tail" | "Husk Brute" => Tactic::TailSlap, "Quad Low Quick" => Tactic::QuadLowQuick, "Quad Low Basic" => Tactic::QuadLowBasic, "Theropod Basic" | "Theropod Bird" => Tactic::Theropod, diff --git a/voxygen/anim/src/biped_large/alpha.rs b/voxygen/anim/src/biped_large/alpha.rs index 0d3e7c61aa..7f2ac702ed 100644 --- a/voxygen/anim/src/biped_large/alpha.rs +++ b/voxygen/anim/src/biped_large/alpha.rs @@ -384,6 +384,48 @@ impl Animation for AlphaAnimation { * Quaternion::rotation_y(-2.8 + move1 * 3.0 + move2 * -3.0) * Quaternion::rotation_z(move1 * -1.5); }, + "Husk Brute" => { + next.shoulder_l.position = + Vec3::new(-s_a.shoulder.0, s_a.shoulder.1, s_a.shoulder.2); + next.shoulder_r.position = + Vec3::new(s_a.shoulder.0, s_a.shoulder.1, s_a.shoulder.2); + next.hand_l.position = Vec3::new(-s_a.hand.0, s_a.hand.1, s_a.hand.2); + next.hand_r.position = Vec3::new(s_a.hand.0, s_a.hand.1, s_a.hand.2); + + if mirror > 0.0 { + next.shoulder_l.orientation = Quaternion::rotation_x(move1 * 1.0) + * Quaternion::rotation_y(move1 * 1.0 + move2 * -2.0); + + next.shoulder_r.orientation = Quaternion::rotation_x(move1 * -0.6); + + next.upper_torso.orientation = + Quaternion::rotation_z(move1 * 0.4 + move2 * -1.1); + next.lower_torso.orientation = + Quaternion::rotation_z(move1 * -0.2 + move2 * 0.6); + + next.hand_l.orientation = Quaternion::rotation_x(move1 * 1.2) + * Quaternion::rotation_y(move1 * 1.0 + move2 * -2.0); + + next.hand_r.orientation = Quaternion::rotation_z(move1 * 1.0) + * Quaternion::rotation_y(move1 * 0.8 + move2 * -1.2); + } else { + next.shoulder_r.orientation = Quaternion::rotation_x(move1 * 1.0) + * Quaternion::rotation_y(move1 * -1.0 + move2 * 2.0); + + next.shoulder_l.orientation = Quaternion::rotation_x(move1 * 0.6); + + next.upper_torso.orientation = + Quaternion::rotation_z(move1 * -0.4 + move2 * 1.1); + next.lower_torso.orientation = + Quaternion::rotation_z(move1 * 0.2 + move2 * -0.6); + + next.hand_r.orientation = Quaternion::rotation_x(move1 * 1.2) + * Quaternion::rotation_y(move1 * -1.0 + move2 * 2.0); + + next.hand_l.orientation = Quaternion::rotation_z(move1 * 1.0) + * Quaternion::rotation_y(move1 * -0.8 + move2 * 1.2); + } + }, _ => {}, } } diff --git a/voxygen/anim/src/biped_large/chargemelee.rs b/voxygen/anim/src/biped_large/chargemelee.rs index 16e25c148b..74162d0691 100644 --- a/voxygen/anim/src/biped_large/chargemelee.rs +++ b/voxygen/anim/src/biped_large/chargemelee.rs @@ -148,6 +148,66 @@ impl Animation for ChargeMeleeAnimation { next.shoulder_r.orientation = Quaternion::rotation_x(-0.3 + move1 * 1.0); }, + "Husk Brute" => { + next.second.scale = Vec3::one() * 0.0; + + next.head.orientation = + Quaternion::rotation_x(move1 * 0.3 + move2 * -0.6); + next.jaw.position = Vec3::new(0.0, s_a.jaw.0, s_a.jaw.1); + next.jaw.orientation = Quaternion::rotation_x(move2 * -0.3); + next.control_l.position = Vec3::new(-0.5, 4.0, 1.0); + next.control_r.position = Vec3::new(-0.5, 4.0, 1.0); + next.control_l.orientation = Quaternion::rotation_x(1.57); + next.control_r.orientation = Quaternion::rotation_x(1.57); + next.weapon_l.position = + Vec3::new(-12.0 + (move1 * 10.0).min(6.0), -1.0, -15.0); + next.weapon_r.position = + Vec3::new(12.0 + (move1 * -10.0).max(-6.0), -1.0, -15.0); + + next.weapon_l.orientation = Quaternion::rotation_x(-1.57 - 0.1) + * Quaternion::rotation_z(move1 * -0.8); + next.weapon_r.orientation = Quaternion::rotation_x(-1.57 - 0.1) + * Quaternion::rotation_z(move1 * 0.8); + + next.shoulder_l.orientation = + Quaternion::rotation_x(-0.3 + move1 * 2.8 + move2 * -2.8); + + next.shoulder_r.orientation = + Quaternion::rotation_x(-0.3 + move1 * 2.8 + move2 * -2.8); + + next.control.orientation = + Quaternion::rotation_x(move1 * 2.5 + move2 * -2.0); + + next.upper_torso.position = + Vec3::new(0.0, s_a.upper_torso.0, s_a.upper_torso.1); + next.upper_torso.orientation = + Quaternion::rotation_x(move1 * 0.2 + move2 * -0.6); + next.lower_torso.orientation = + Quaternion::rotation_x(move1 * -0.2 + move2 * 0.6); + + if speed < 0.1 { + next.foot_l.position = Vec3::new( + -s_a.foot.0, + s_a.foot.1 + move1 * -7.0 + move2 * 7.0, + s_a.foot.2, + ); + next.foot_l.orientation = + Quaternion::rotation_x(move1 * -0.8 + move2 * 0.8) + * Quaternion::rotation_z(move1 * 0.3 + move2 * -0.3); + + next.foot_r.position = Vec3::new( + s_a.foot.0, + s_a.foot.1 + move1 * 5.0 + move2 * -5.0, + s_a.foot.2, + ); + next.foot_r.orientation = + Quaternion::rotation_y(move1 * -0.3 + move2 * 0.3) + * Quaternion::rotation_z(move1 * 0.4 + move2 * -0.4); + } + next.main.orientation = + Quaternion::rotation_y(move1 * 0.4 + move2 * -0.6) + * Quaternion::rotation_x(move2 * -0.4); + }, _ => {}, } } diff --git a/voxygen/anim/src/biped_large/idle.rs b/voxygen/anim/src/biped_large/idle.rs index 96a2448fce..366a4c33bd 100644 --- a/voxygen/anim/src/biped_large/idle.rs +++ b/voxygen/anim/src/biped_large/idle.rs @@ -90,7 +90,7 @@ impl Animation for IdleAnimation { match active_tool_kind { Some(ToolKind::Bow) => { - next.main.position = Vec3::new(-2.0, -5.0, -6.0); + next.main.position = Vec3::new(0.0, -6.0, 0.0); next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57); }, Some(ToolKind::Staff) | Some(ToolKind::Sceptre) => { diff --git a/voxygen/anim/src/biped_large/mod.rs b/voxygen/anim/src/biped_large/mod.rs index 9597f8f2e7..3af791809f 100644 --- a/voxygen/anim/src/biped_large/mod.rs +++ b/voxygen/anim/src/biped_large/mod.rs @@ -157,6 +157,7 @@ pub struct SkeletonAttr { bc: (f32, f32, f32, f32, f32, f32), beast: bool, float: bool, + height: f32, } impl<'a> std::convert::TryFrom<&'a comp::Body> for SkeletonAttr { @@ -199,6 +200,7 @@ impl Default for SkeletonAttr { bc: (0.0, 0.0, 0.0, 0.0, 0.0, 0.0), beast: false, float: false, + height: 0.0, } } } @@ -227,6 +229,9 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Harvester, _) => (6.0, 11.0), (Blueoni, _) => (10.5, -3.0), (Redoni, _) => (10.5, -3.0), + (Cultistwarlord, _) => (0.5, 14.5), + (Cultistwarlock, _) => (0.5, 11.0), + (Huskbrute, _) => (8.5, 4.0), }, jaw: match (body.species, body.body_type) { (Ogre, _) => (0.0, 0.0), @@ -247,6 +252,9 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Harvester, _) => (-2.0, -7.0), (Blueoni, _) => (0.0, 3.5), (Redoni, _) => (0.0, 3.5), + (Cultistwarlord, _) => (0.0, 3.5), + (Cultistwarlock, _) => (0.0, 3.5), + (Huskbrute, _) => (-5.0, -5.0), }, upper_torso: match (body.species, body.body_type) { (Ogre, Male) => (0.0, 27.5), @@ -268,6 +276,9 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Harvester, _) => (-1.0, 18.0), (Blueoni, _) => (-1.0, 26.5), (Redoni, _) => (-1.0, 26.5), + (Cultistwarlord, _) => (-1.0, 18.5), + (Cultistwarlock, _) => (-1.0, 17.5), + (Huskbrute, _) => (-1.0, 23.5), }, lower_torso: match (body.species, body.body_type) { (Ogre, Male) => (1.0, -7.0), @@ -289,6 +300,9 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Harvester, _) => (-1.0, -4.5), (Blueoni, _) => (0.0, -8.5), (Redoni, _) => (0.0, -8.5), + (Cultistwarlord, _) => (0.0, -1.5), + (Cultistwarlock, _) => (1.0, -2.5), + (Huskbrute, _) => (-0.5, -7.0), }, tail: match (body.species, body.body_type) { (Werewolf, _) => (-5.5, -2.0), @@ -318,6 +332,9 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Harvester, _) => (8.0, 1.0, -1.5), (Blueoni, _) => (11.0, 2.0, -5.5), (Redoni, _) => (11.0, 2.0, -5.5), + (Cultistwarlord, _) => (11.5, -1.0, 4.5), + (Cultistwarlock, _) => (8.0, 0.0, 3.5), + (Huskbrute, _) => (10.5, 0.0, -1.5), }, hand: match (body.species, body.body_type) { (Ogre, Male) => (14.5, 0.0, -4.0), @@ -339,6 +356,9 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Harvester, _) => (11.5, 1.5, -5.5), (Blueoni, _) => (13.5, 0.5, -8.0), (Redoni, _) => (13.5, 0.5, -8.0), + (Cultistwarlord, _) => (11.5, -1.0, -1.0), + (Cultistwarlock, _) => (9.5, -1.0, 1.0), + (Huskbrute, _) => (13.0, 0.5, -4.0), }, leg: match (body.species, body.body_type) { (Ogre, Male) => (0.0, 0.0, -4.0), @@ -360,6 +380,9 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Harvester, _) => (3.5, 1.0, -4.0), (Blueoni, _) => (4.5, 2.0, -5.5), (Redoni, _) => (4.5, 2.0, -5.5), + (Cultistwarlord, _) => (3.5, -1.0, -8.5), + (Cultistwarlock, _) => (3.5, -1.0, -8.5), + (Huskbrute, _) => (4.0, 0.0, -7.5), }, foot: match (body.species, body.body_type) { (Ogre, Male) => (4.0, 1.0, -12.0), @@ -381,6 +404,9 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Harvester, _) => (4.5, 0.5, -9.5), (Blueoni, _) => (5.0, 5.0, -12.5), (Redoni, _) => (5.0, 5.0, -12.5), + (Cultistwarlord, _) => (3.5, 0.0, -12.5), + (Cultistwarlock, _) => (3.5, 0.0, -10.5), + (Huskbrute, _) => (4.5, 0.5, -12.5), }, scaler: match (body.species, body.body_type) { (Ogre, Male) => 1.12, @@ -395,13 +421,16 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Occultsaurok, _) => 1.0, (Mightysaurok, _) => 1.0, (Slysaurok, _) => 1.0, - (Mindflayer, _) => 1.5, + (Mindflayer, _) => 1.6, (Minotaur, _) => 1.7, (Tidalwarrior, _) => 1.7, (Yeti, _) => 1.2, (Harvester, _) => 1.2, (Blueoni, _) => 1.2, (Redoni, _) => 1.2, + (Cultistwarlord, _) => 1.0, + (Cultistwarlock, _) => 1.0, + (Huskbrute, _) => 1.2, }, tempo: match (body.species, body.body_type) { (Ogre, Male) => 0.9, @@ -434,6 +463,9 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Harvester, _) => (7.5, 0.0), (Blueoni, _) => (12.5, 0.0), (Redoni, _) => (12.5, 0.0), + (Cultistwarlord, _) => (8.0, 0.0), + (Cultistwarlock, _) => (8.0, 0.0), + (Huskbrute, _) => (12.5, 0.0), }, shl: match (body.species, body.body_type) { (Dullahan, _) => (-4.75, -11.0, 8.5, 1.47, -0.2, 0.0), @@ -494,6 +526,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { }, beast: matches!((body.species, body.body_type), (Werewolf, _)), float: matches!((body.species, body.body_type), (Mindflayer, _)), + height: comp::Body::BipedLarge(*body).dimensions().z, } } } diff --git a/voxygen/anim/src/biped_large/run.rs b/voxygen/anim/src/biped_large/run.rs index e4c074d2f5..51c5829d0d 100644 --- a/voxygen/anim/src/biped_large/run.rs +++ b/voxygen/anim/src/biped_large/run.rs @@ -295,7 +295,7 @@ impl Animation for RunAnimation { match active_tool_kind { Some(ToolKind::Bow) => { - next.main.position = Vec3::new(-2.0, -5.0, -6.0); + next.main.position = Vec3::new(0.0, -6.0, 0.0); next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57); }, diff --git a/voxygen/anim/src/biped_large/shockwave.rs b/voxygen/anim/src/biped_large/shockwave.rs index 81d373014a..07614db1d6 100644 --- a/voxygen/anim/src/biped_large/shockwave.rs +++ b/voxygen/anim/src/biped_large/shockwave.rs @@ -62,7 +62,7 @@ impl Animation for ShockwaveAnimation { next.hand_r.orientation = Quaternion::rotation_x(0.0); match active_tool_kind { - Some(ToolKind::Sceptre) => { + Some(ToolKind::Sceptre | ToolKind::Staff) => { next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1); next.hand_l.position = Vec3::new(s_a.sthl.0, s_a.sthl.1, s_a.sthl.2); diff --git a/voxygen/anim/src/biped_large/shoot.rs b/voxygen/anim/src/biped_large/shoot.rs index c5fba1b268..2b9428d06f 100644 --- a/voxygen/anim/src/biped_large/shoot.rs +++ b/voxygen/anim/src/biped_large/shoot.rs @@ -156,18 +156,19 @@ impl Animation for ShootAnimation { next.control.position = Vec3::new( -1.0 + move1 * 2.0, 6.0 + s_a.grip.0 / 1.2 + move1 * 7.0, - -5.0 + -s_a.grip.0 / 2.0 + move1 * 8.0, + -5.0 + -s_a.grip.0 / 2.0 + move1 * s_a.height * 3.4, ); next.control_l.orientation = - Quaternion::rotation_x(PI / 2.0 + move2 * 0.4) * Quaternion::rotation_y(-0.2); + Quaternion::rotation_x(move1 * 0.2 + PI / 2.0 + move2 * 0.4) + * Quaternion::rotation_y(-0.2); next.control_r.orientation = Quaternion::rotation_x(PI / 2.2 + move1 * 0.4) - * Quaternion::rotation_y(0.2) + * Quaternion::rotation_y(0.4) * Quaternion::rotation_z(0.0); next.control.orientation = Quaternion::rotation_x(-0.2) * Quaternion::rotation_y(1.0 + move1 * -0.4) - * Quaternion::rotation_z(-0.3); + * Quaternion::rotation_z(-0.1); next.head.orientation = Quaternion::rotation_z(move1 * 0.25); next.shoulder_l.position = Vec3::new( -s_a.shoulder.0, @@ -175,7 +176,7 @@ impl Animation for ShootAnimation { s_a.shoulder.2 - foothorir * 1.0, ); next.shoulder_l.orientation = - Quaternion::rotation_x(move1 * 0.8 + 1.2 * speednorm + (footrotr * -0.2)); + Quaternion::rotation_x(move1 * 1.2 + 1.2 * speednorm + (footrotr * -0.2)); next.shoulder_r.position = Vec3::new( s_a.shoulder.0, diff --git a/voxygen/anim/src/biped_large/wield.rs b/voxygen/anim/src/biped_large/wield.rs index c3d985fd71..ef94cd66e8 100644 --- a/voxygen/anim/src/biped_large/wield.rs +++ b/voxygen/anim/src/biped_large/wield.rs @@ -498,6 +498,63 @@ impl Animation for WieldAnimation { next.shoulder_r.orientation = Quaternion::rotation_y(0.4) * Quaternion::rotation_x(0.4); }, + "Husk Brute" => { + if speed > 0.1 { + next.hand_l.position = + Vec3::new(-s_a.hand.0, s_a.hand.1, s_a.hand.2); + next.hand_l.orientation = + Quaternion::rotation_x(1.4 + slow * 0.1) + * Quaternion::rotation_z(-PI / 2.0); + + next.hand_r.position = + Vec3::new(s_a.hand.0, s_a.hand.1, s_a.hand.2); + next.hand_r.orientation = + Quaternion::rotation_x(1.4 - slow * 0.1) + * Quaternion::rotation_z(PI / 2.0); + + next.shoulder_l.position = + Vec3::new(-s_a.shoulder.0, s_a.shoulder.1, s_a.shoulder.2); + next.shoulder_l.orientation = + Quaternion::rotation_x(1.1 + slow * 0.1); + + next.shoulder_r.position = + Vec3::new(s_a.shoulder.0, s_a.shoulder.1, s_a.shoulder.2); + next.shoulder_r.orientation = + Quaternion::rotation_x(1.1 - slow * 0.1); + } else { + next.shoulder_l.position = + Vec3::new(-s_a.shoulder.0, s_a.shoulder.1, s_a.shoulder.2); + next.shoulder_l.orientation = Quaternion::rotation_x(breathe); + + next.shoulder_r.position = + Vec3::new(s_a.shoulder.0, s_a.shoulder.1, s_a.shoulder.2); + next.shoulder_r.orientation = Quaternion::rotation_x(breathe); + + next.hand_l.position = Vec3::new( + -s_a.hand.0, + s_a.hand.1, + s_a.hand.2 + torso * -0.1, + ); + + next.hand_r.position = Vec3::new( + s_a.hand.0, + s_a.hand.1, + s_a.hand.2 + torso * -0.1, + ); + + next.leg_l.position = + Vec3::new(-s_a.leg.0, s_a.leg.1, s_a.leg.2 + torso * -0.2); + + next.leg_r.position = + Vec3::new(s_a.leg.0, s_a.leg.1, s_a.leg.2 + torso * -0.2); + + next.foot_l.position = + Vec3::new(-s_a.foot.0, s_a.foot.1, s_a.foot.2); + + next.foot_r.position = + Vec3::new(s_a.foot.0, s_a.foot.1, s_a.foot.2); + } + }, _ => {}, } } diff --git a/voxygen/anim/src/bird_medium/mod.rs b/voxygen/anim/src/bird_medium/mod.rs index ab72ea8173..5caa8f17ae 100644 --- a/voxygen/anim/src/bird_medium/mod.rs +++ b/voxygen/anim/src/bird_medium/mod.rs @@ -90,7 +90,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { use comp::bird_medium::{BodyType::*, Species::*}; Self { head: match (body.species, body.body_type) { - (Duck, _) => (4.0, 3.0), + (Duck, _) => (2.0, 5.5), (Chicken, Male) => (3.0, 4.5), (Chicken, Female) => (3.0, 6.0), (Goose, _) => (5.0, 2.5), @@ -101,7 +101,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Parrot, _) => (0.5, 4.5), }, chest: match (body.species, body.body_type) { - (Duck, _) => (0.0, 5.0), + (Duck, _) => (0.0, 6.0), (Chicken, Male) => (0.0, 6.5), (Chicken, Female) => (0.0, 6.5), (Goose, _) => (0.0, 8.0), @@ -112,7 +112,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Parrot, _) => (0.0, 5.0), }, tail: match (body.species, body.body_type) { - (Duck, _) => (-3.0, 1.5), + (Duck, _) => (-5.0, 1.0), (Chicken, Male) => (-7.5, 3.5), (Chicken, Female) => (-4.5, 3.0), (Goose, _) => (-5.0, 3.0), @@ -123,7 +123,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Parrot, _) => (-8.0, -2.0), }, wing: match (body.species, body.body_type) { - (Duck, _) => (2.75, 0.0, 1.0), + (Duck, _) => (3.5, -0.5, 2.0), (Chicken, Male) => (3.0, -1.0, 2.5), (Chicken, Female) => (3.0, -1.5, 2.5), (Goose, _) => (3.75, -1.0, 2.0), @@ -134,7 +134,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Parrot, _) => (2.0, -4.5, 3.0), }, foot: match (body.species, body.body_type) { - (Duck, _) => (2.0, -1.5, 4.0), + (Duck, _) => (2.5, -2.0, 4.0), (Chicken, Male) => (2.0, 0.0, 6.0), (Chicken, Female) => (2.0, 0.0, 6.0), (Goose, _) => (2.0, -1.5, 7.0), diff --git a/voxygen/anim/src/quadruped_medium/mod.rs b/voxygen/anim/src/quadruped_medium/mod.rs index c4ae82537f..96cdd6a2ac 100644 --- a/voxygen/anim/src/quadruped_medium/mod.rs +++ b/voxygen/anim/src/quadruped_medium/mod.rs @@ -175,6 +175,10 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Moose, Male) => (-0.5, 5.0), (Moose, Female) => (3.5, 0.5), (Snowleopard, _) => (1.5, 0.5), + (Mammoth, _) => (0.5, -1.5), + (Ngoubou, _) => (0.5, -2.5), + (Llama, _) => (0.5, 10.0), + (Alpaca, _) => (0.5, 7.5), }, neck: match (body.species, body.body_type) { (Grolgar, _) => (1.0, -1.0), @@ -208,6 +212,10 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Dreadhorn, _) => (0.5, 0.0), (Moose, _) => (-0.5, 0.5), (Snowleopard, _) => (0.0, 1.5), + (Mammoth, _) => (0.5, -0.5), + (Ngoubou, _) => (2.0, 1.0), + (Llama, _) => (2.5, 4.5), + (Alpaca, _) => (-1.5, 3.0), }, jaw: match (body.species, body.body_type) { (Grolgar, _) => (7.0, 2.0), @@ -242,6 +250,10 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Moose, Male) => (10.0, -7.0), (Moose, Female) => (6.0, -2.5), (Snowleopard, _) => (3.0, -3.0), + (Mammoth, _) => (9.5, -3.0), + (Ngoubou, _) => (8.5, -4.0), + (Llama, _) => (4.0, -1.0), + (Alpaca, _) => (3.0, -2.5), }, tail: match (body.species, body.body_type) { (Grolgar, _) => (-11.5, -0.5), @@ -275,6 +287,10 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Dreadhorn, _) => (-5.5, 1.5), (Moose, _) => (-12.5, 3.5), (Snowleopard, _) => (-10.5, 3.0), + (Mammoth, _) => (-13.0, -1.5), + (Ngoubou, _) => (-12.0, 5.5), + (Llama, _) => (-9.0, 6.0), + (Alpaca, _) => (-8.5, 3.5), }, torso_front: match (body.species, body.body_type) { (Grolgar, _) => (10.0, 13.0), @@ -308,6 +324,10 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Dreadhorn, _) => (1.5, 15.5), (Moose, _) => (1.5, 19.5), (Snowleopard, _) => (1.5, 13.0), + (Mammoth, _) => (11.5, 20.5), + (Ngoubou, _) => (9.5, 16.5), + (Llama, _) => (7.0, 15.0), + (Alpaca, _) => (7.0, 11.5), }, torso_back: match (body.species, body.body_type) { (Grolgar, _) => (-10.0, 1.5), @@ -341,6 +361,10 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Dreadhorn, _) => (-20.0, -1.0), (Moose, _) => (-10.0, -1.0), (Snowleopard, _) => (-11.0, 0.0), + (Mammoth, _) => (-13.0, -2.5), + (Ngoubou, _) => (-8.0, -2.0), + (Llama, _) => (-8.0, 0.0), + (Alpaca, _) => (-6.0, 0.0), }, ears: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 8.0), @@ -375,6 +399,10 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Moose, Male) => (6.0, 1.0), (Moose, Female) => (2.0, 4.5), (Snowleopard, _) => (1.5, 3.0), + (Mammoth, _) => (12.0, -3.0), + (Ngoubou, _) => (12.0, -3.0), + (Llama, _) => (1.0, 3.5), + (Alpaca, _) => (1.0, 2.0), }, leg_f: match (body.species, body.body_type) { (Grolgar, _) => (7.5, -5.5, -1.0), @@ -408,6 +436,10 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Dreadhorn, _) => (8.5, -7.0, -0.5), (Moose, _) => (5.5, -4.0, 1.0), (Snowleopard, _) => (6.5, -4.0, -2.5), + (Mammoth, _) => (10.0, -5.0, -5.0), + (Ngoubou, _) => (7.5, -4.0, -1.5), + (Llama, _) => (5.0, -1.5, -1.0), + (Alpaca, _) => (3.5, -2.5, -0.5), }, leg_b: match (body.species, body.body_type) { (Grolgar, _) => (6.0, -6.5, -4.0), @@ -441,6 +473,10 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Dreadhorn, _) => (6.0, 0.0, -3.0), (Moose, _) => (4.5, -10.0, -2.0), (Snowleopard, _) => (5.5, -5.0, -1.5), + (Mammoth, _) => (7.5, -7.0, -5.0), + (Ngoubou, _) => (4.5, -9.5, 0.0), + (Llama, _) => (5.0, -7.0, -2.0), + (Alpaca, _) => (3.5, -7.0, 0.0), }, feet_f: match (body.species, body.body_type) { (Grolgar, _) => (0.0, 0.0, -4.0), @@ -474,6 +510,10 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Dreadhorn, _) => (-0.5, 0.5, -5.0), (Moose, _) => (-1.0, 1.5, -9.5), (Snowleopard, _) => (0.5, 0.5, -4.5), + (Mammoth, _) => (-0.5, -0.5, -6.0), + (Ngoubou, _) => (-1.0, 0.5, -6.0), + (Llama, _) => (-0.5, 0.5, -6.0), + (Alpaca, _) => (0.0, -0.5, -5.0), }, feet_b: match (body.species, body.body_type) { (Grolgar, _) => (0.5, -1.5, -3.0), @@ -507,6 +547,10 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Dreadhorn, _) => (-0.5, 0.5, -3.5), (Moose, _) => (-1.0, 0.0, -6.5), (Snowleopard, _) => (0.5, 0.5, -5.5), + (Mammoth, _) => (0.5, -0.5, -4.5), + (Ngoubou, _) => (0.5, 1.0, -5.5), + (Llama, _) => (0.5, -1.5, -3.5), + (Alpaca, _) => (-0.5, -0.5, -5.5), }, scaler: match (body.species, body.body_type) { (Grolgar, _) => (1.05), @@ -531,6 +575,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Dreadhorn, _) => (1.6), (Moose, _) => (0.95), (Snowleopard, _) => (0.95), + (Mammoth, _) => (3.0), + (Ngoubou, _) => (1.0), _ => (0.9), }, startangle: match (body.species, body.body_type) { @@ -594,6 +640,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { _ => (1.0), }, feed: match (body.species, body.body_type) { + // TODO: Rework some species to allow for feed anim (Tuskram, _) => (true, 0.5), (Mouflon, _) => (true, 0.7), (Deer, _) => (true, 1.0), diff --git a/world/src/layer/wildlife.rs b/world/src/layer/wildlife.rs index 362fcf2fed..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 { @@ -195,7 +200,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..5) { 0 => quadruped_medium::Body::random_with( rng, &quadruped_medium::Species::Mouflon, @@ -206,6 +211,16 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( &quadruped_medium::Species::Yak, ) .into(), + 2 => quadruped_medium::Body::random_with( + rng, + &quadruped_medium::Species::Llama, + ) + .into(), + 3 => quadruped_medium::Body::random_with( + rng, + &quadruped_medium::Species::Alpaca, + ) + .into(), _ => quadruped_medium::Body::random_with( rng, &quadruped_medium::Species::Highland, @@ -302,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, @@ -354,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(), }) @@ -822,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, @@ -831,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, @@ -916,7 +946,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( close(c.temp, CONFIG.desert_temp + 0.2, 0.3) * close(c.humidity, CONFIG.desert_hum, 0.5) * BASE_DENSITY - * 0.01 + * 0.005 }, }, // Desert solitary wild diff --git a/world/src/site/dungeon/mod.rs b/world/src/site/dungeon/mod.rs index bfbfe39a9d..750119baaa 100644 --- a/world/src/site/dungeon/mod.rs +++ b/world/src/site/dungeon/mod.rs @@ -990,7 +990,8 @@ fn enemy_5(dynamic_rng: &mut impl Rng, entity: EntityInfo) -> EntityInfo { .with_body(comp::Body::Object(comp::object::Body::Crossbow)) .with_asset_expect("common.entity.dungeon.tier-5.turret"), 1 => entity.with_asset_expect("common.entity.dungeon.tier-5.warlock"), - _ => entity.with_asset_expect("common.entity.dungeon.tier-5.warlord"), + 2 => entity.with_asset_expect("common.entity.dungeon.tier-5.warlord"), + _ => entity.with_asset_expect("common.entity.dungeon.tier-5.cultist"), } } @@ -1092,7 +1093,7 @@ fn mini_boss_4(tile_wcenter: Vec3) -> Vec { fn mini_boss_5(dynamic_rng: &mut impl Rng, tile_wcenter: Vec3) -> Vec { let mut entities = Vec::new(); - match dynamic_rng.gen_range(0..2) { + match dynamic_rng.gen_range(0..3) { 0 => { entities.push( EntityInfo::at(tile_wcenter.map(|e| e as f32)) @@ -1103,6 +1104,12 @@ fn mini_boss_5(dynamic_rng: &mut impl Rng, tile_wcenter: Vec3) -> Vec { + entities.resize_with(2, || { + EntityInfo::at(tile_wcenter.map(|e| e as f32)) + .with_asset_expect("common.entity.dungeon.tier-5.husk_brute") + }); + }, _ => { entities.resize_with(10, || { EntityInfo::at(tile_wcenter.map(|e| e as f32))