mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Husk brute animations
This commit is contained in:
parent
58b95d12d4
commit
8760b69345
@ -34,6 +34,11 @@
|
||||
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",
|
||||
|
18
assets/common/abilities/custom/husk_brute/chargedmelee.ron
Normal file
18
assets/common/abilities/custom/husk_brute/chargedmelee.ron
Normal file
@ -0,0 +1,18 @@
|
||||
ChargedMelee(
|
||||
energy_cost: 0,
|
||||
energy_drain: 0,
|
||||
initial_damage: 0,
|
||||
scaled_damage: 500,
|
||||
initial_poise_damage: 50,
|
||||
scaled_poise_damage: 150,
|
||||
initial_knockback: 0.0,
|
||||
scaled_knockback: 0.0,
|
||||
range: 5.0,
|
||||
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,
|
||||
)
|
28
assets/common/abilities/custom/husk_brute/singlestrike.ron
Normal file
28
assets/common/abilities/custom/husk_brute/singlestrike.ron
Normal file
@ -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: 2.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,
|
||||
)
|
12
assets/common/entity/dungeon/tier-5/husk_brute.ron
Normal file
12
assets/common/entity/dungeon/tier-5/husk_brute.ron
Normal file
@ -0,0 +1,12 @@
|
||||
EntityConfig (
|
||||
name: Some("Husk Brute"),
|
||||
body: Some(RandomWith("husk_brute")),
|
||||
|
||||
loot: Some(LootTable("common.loot_tables.dungeon.tier-5.minion")),
|
||||
|
||||
main_tool: None,
|
||||
second_tool: None,
|
||||
|
||||
loadout_asset: None,
|
||||
skillset_asset: None,
|
||||
)
|
18
assets/common/items/npc_weapons/unique/husk_brute.ron
Normal file
18
assets/common/items/npc_weapons/unique/husk_brute.ron
Normal file
@ -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")),
|
||||
)
|
6
assets/common/loot_tables/creature/quad_medium/wool.ron
Normal file
6
assets/common/loot_tables/creature/quad_medium/wool.ron
Normal file
@ -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)),
|
||||
]
|
@ -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
|
||||
|
BIN
assets/voxygen/voxel/npc/husk_brute/male/foot_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/husk_brute/male/foot_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/husk_brute/male/foot_r.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/husk_brute/male/foot_r.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/husk_brute/male/leg_r.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/husk_brute/male/leg_r.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/llama/male/torso_back.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/llama/male/torso_back.vox
(Stored with Git LFS)
Binary file not shown.
@ -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 {
|
||||
|
@ -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,
|
||||
@ -308,6 +311,7 @@ impl Body {
|
||||
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, 4.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 {
|
||||
@ -359,8 +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(5.0, 7.0, 8.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 {
|
||||
|
@ -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(
|
||||
@ -267,9 +269,9 @@ fn default_main_tool(body: &Body) -> Item {
|
||||
(biped_large::Species::Wendigo, _) => Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_weapons.unique.wendigo_magic",
|
||||
)),
|
||||
(biped_large::Species::Werewolf | biped_large::Species::Huskbrute, _) => Some(
|
||||
Item::new_from_asset_expect("common.items.npc_weapons.unique.beast_claws"),
|
||||
),
|
||||
(biped_large::Species::Werewolf, _) => Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_weapons.unique.beast_claws",
|
||||
)),
|
||||
(biped_large::Species::Cyclops, _) => Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_weapons.hammer.cyclops_hammer",
|
||||
)),
|
||||
@ -303,6 +305,9 @@ fn default_main_tool(body: &Body) -> Item {
|
||||
(biped_large::Species::Cultistwarlock, _) => Some(Item::new_from_asset_expect(
|
||||
"common.items.weapons.staff.bipedlarge-cultist_staff",
|
||||
)),
|
||||
(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(
|
||||
|
@ -70,8 +70,8 @@ impl Body {
|
||||
quadruped_medium::Species::Snowleopard => 160.0,
|
||||
quadruped_medium::Species::Mammoth => 180.0,
|
||||
quadruped_medium::Species::Ngoubou => 170.0,
|
||||
quadruped_medium::Species::Llama => 130.0,
|
||||
quadruped_medium::Species::Alpaca => 120.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,
|
||||
|
@ -369,7 +369,7 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc
|
||||
"common.loot_tables.creature.quad_small.mushroom"
|
||||
},
|
||||
quadruped_small::Species::Sheep => {
|
||||
"common.loot_tables.creature.quad_small.sheep"
|
||||
"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
|
||||
@ -418,10 +417,13 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc
|
||||
| quadruped_medium::Species::Antelope
|
||||
| quadruped_medium::Species::Kelpie
|
||||
| quadruped_medium::Species::Cattle
|
||||
| quadruped_medium::Species::Yak
|
||||
| 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.gentle"
|
||||
"common.loot_tables.creature.quad_medium.wool"
|
||||
},
|
||||
quadruped_medium::Species::Ngoubou => {
|
||||
"common.loot_tables.creature.quad_medium.horned"
|
||||
|
@ -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);
|
||||
}
|
||||
},
|
||||
_ => {},
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
},
|
||||
_ => {},
|
||||
}
|
||||
}
|
||||
|
@ -230,7 +230,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Blueoni, _) => (10.5, -3.0),
|
||||
(Redoni, _) => (10.5, -3.0),
|
||||
(Cultistwarlord, _) => (0.5, 14.5),
|
||||
(Cultistwarlock, _) => (0.5, 14.5),
|
||||
(Cultistwarlock, _) => (0.5, 11.0),
|
||||
(Huskbrute, _) => (8.5, 4.0),
|
||||
},
|
||||
jaw: match (body.species, body.body_type) {
|
||||
@ -301,8 +301,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Blueoni, _) => (0.0, -8.5),
|
||||
(Redoni, _) => (0.0, -8.5),
|
||||
(Cultistwarlord, _) => (0.0, -1.5),
|
||||
(Cultistwarlock, _) => (0.0, -1.5),
|
||||
(Huskbrute, _) => (0.0, -6.5),
|
||||
(Cultistwarlock, _) => (1.0, -3.5),
|
||||
(Huskbrute, _) => (-0.5, -7.0),
|
||||
},
|
||||
tail: match (body.species, body.body_type) {
|
||||
(Werewolf, _) => (-5.5, -2.0),
|
||||
@ -333,8 +333,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Blueoni, _) => (11.0, 2.0, -5.5),
|
||||
(Redoni, _) => (11.0, 2.0, -5.5),
|
||||
(Cultistwarlord, _) => (11.5, -1.0, 4.5),
|
||||
(Cultistwarlock, _) => (11.5, -1.0, 4.5),
|
||||
(Huskbrute, _) => (10.5, 1.0, -2.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),
|
||||
@ -357,8 +357,8 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Blueoni, _) => (13.5, 0.5, -8.0),
|
||||
(Redoni, _) => (13.5, 0.5, -8.0),
|
||||
(Cultistwarlord, _) => (11.5, -1.0, -1.0),
|
||||
(Cultistwarlock, _) => (11.5, -1.0, -1.0),
|
||||
(Huskbrute, _) => (12.0, 1.5, -6.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),
|
||||
@ -382,7 +382,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(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, -5.5),
|
||||
(Huskbrute, _) => (4.0, 0.0, -7.5),
|
||||
},
|
||||
foot: match (body.species, body.body_type) {
|
||||
(Ogre, Male) => (4.0, 1.0, -12.0),
|
||||
@ -405,7 +405,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(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, -12.5),
|
||||
(Cultistwarlock, _) => (3.5, 0.0, -10.5),
|
||||
(Huskbrute, _) => (4.5, 0.5, -12.5),
|
||||
},
|
||||
scaler: match (body.species, body.body_type) {
|
||||
|
@ -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);
|
||||
}
|
||||
},
|
||||
_ => {},
|
||||
}
|
||||
}
|
||||
|
@ -195,7 +195,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 +206,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,
|
||||
@ -916,7 +926,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
|
||||
|
@ -1093,7 +1093,7 @@ fn mini_boss_4(tile_wcenter: Vec3<i32>) -> Vec<EntityInfo> {
|
||||
|
||||
fn mini_boss_5(dynamic_rng: &mut impl Rng, tile_wcenter: Vec3<i32>) -> Vec<EntityInfo> {
|
||||
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))
|
||||
@ -1104,6 +1104,12 @@ fn mini_boss_5(dynamic_rng: &mut impl Rng, tile_wcenter: Vec3<i32>) -> Vec<Entit
|
||||
.with_asset_expect("common.entity.dungeon.tier-5.hound")
|
||||
});
|
||||
},
|
||||
1 => {
|
||||
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))
|
||||
|
Loading…
Reference in New Issue
Block a user