mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Adds mindflayer npc
This commit is contained in:
parent
9bfccd42d3
commit
42d2108c39
14
assets/common/items/npc_weapons/staff/mindflayer_staff.ron
Normal file
14
assets/common/items/npc_weapons/staff/mindflayer_staff.ron
Normal file
@ -0,0 +1,14 @@
|
||||
ItemDef(
|
||||
name: "Mindflayer Staff",
|
||||
description: "Placeholder",
|
||||
kind: Tool(
|
||||
(
|
||||
kind: Staff,
|
||||
stats: (
|
||||
equip_time_millis: 500,
|
||||
power: 1.00,
|
||||
),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
@ -617,6 +617,10 @@
|
||||
"saurok_sly": {
|
||||
"keyword": "saurok_sly",
|
||||
"generic": "Sly Saurok"
|
||||
},
|
||||
"mindflayer": {
|
||||
"keyword": "mindflayer",
|
||||
"generic": "Mindflayer"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -539,4 +539,64 @@
|
||||
central: ("weapon.bow.longbow_saurok"),
|
||||
)
|
||||
),
|
||||
(Mindflayer, Male): (
|
||||
head: (
|
||||
offset: (-8.5, -8.0, -10.5),
|
||||
central: ("npc.mindflayer.male.head"),
|
||||
),
|
||||
torso_upper: (
|
||||
offset: (-10.5, -8.5, -11.0),
|
||||
central: ("npc.mindflayer.male.torso_upper"),
|
||||
),
|
||||
torso_lower: (
|
||||
offset: (-4.5, -6.0, -7.5),
|
||||
central: ("npc.mindflayer.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"),
|
||||
),
|
||||
main: (
|
||||
offset: (-5.5, -3.5, -4.0),
|
||||
central: ("weapon.staff.firestaff_mindflayer"),
|
||||
)
|
||||
),
|
||||
(Mindflayer, Female): (
|
||||
head: (
|
||||
offset: (-8.5, -8.0, -10.5),
|
||||
central: ("npc.mindflayer.male.head"),
|
||||
),
|
||||
torso_upper: (
|
||||
offset: (-10.5, -8.5, -11.0),
|
||||
central: ("npc.mindflayer.male.torso_upper"),
|
||||
),
|
||||
torso_lower: (
|
||||
offset: (-4.5, -6.0, -7.5),
|
||||
central: ("npc.mindflayer.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"),
|
||||
),
|
||||
main: (
|
||||
offset: (-5.5, -3.5, -4.0),
|
||||
central: ("weapon.staff.firestaff_mindflayer"),
|
||||
)
|
||||
),
|
||||
})
|
@ -611,4 +611,72 @@
|
||||
lateral: ("npc.saurok_sly.female.foot_r"),
|
||||
),
|
||||
),
|
||||
(Mindflayer, Male): (
|
||||
shoulder_l: (
|
||||
offset: (-4.5, -3.0, -4.0),
|
||||
lateral: ("npc.mindflayer.male.shoulder_l"),
|
||||
),
|
||||
shoulder_r: (
|
||||
offset: (-4.5, -3.0, -4.0),
|
||||
lateral: ("npc.mindflayer.male.shoulder_r"),
|
||||
),
|
||||
hand_l: (
|
||||
offset: (-4.5, -4.0, -12.0),
|
||||
lateral: ("npc.mindflayer.male.hand_l"),
|
||||
),
|
||||
hand_r: (
|
||||
offset: (-4.5, -4.0, -12.0),
|
||||
lateral: ("npc.mindflayer.male.hand_r"),
|
||||
),
|
||||
leg_l: (
|
||||
offset: (-6.5, -10.0, -16.0),
|
||||
lateral: ("npc.mindflayer.male.leg_l"),
|
||||
),
|
||||
leg_r: (
|
||||
offset: (-6.5, -10.0, -16.0),
|
||||
lateral: ("npc.mindflayer.male.leg_r"),
|
||||
),
|
||||
foot_l: (
|
||||
offset: (-2.0, -4.5, -4.0),
|
||||
lateral: ("npc.mindflayer.male.foot_l"),
|
||||
),
|
||||
foot_r: (
|
||||
offset: (-2.0, -4.5, -4.0),
|
||||
lateral: ("npc.mindflayer.male.foot_r"),
|
||||
)
|
||||
),
|
||||
(Mindflayer, Female): (
|
||||
shoulder_l: (
|
||||
offset: (-4.5, -3.0, -4.0),
|
||||
lateral: ("npc.mindflayer.male.shoulder_l"),
|
||||
),
|
||||
shoulder_r: (
|
||||
offset: (-4.5, -3.0, -4.0),
|
||||
lateral: ("npc.mindflayer.male.shoulder_r"),
|
||||
),
|
||||
hand_l: (
|
||||
offset: (-4.5, -4.0, -12.0),
|
||||
lateral: ("npc.mindflayer.male.hand_l"),
|
||||
),
|
||||
hand_r: (
|
||||
offset: (-4.5, -4.0, -12.0),
|
||||
lateral: ("npc.mindflayer.male.hand_r"),
|
||||
),
|
||||
leg_l: (
|
||||
offset: (-6.5, -10.0, -16.0),
|
||||
lateral: ("npc.mindflayer.male.leg_l"),
|
||||
),
|
||||
leg_r: (
|
||||
offset: (-6.5, -10.0, -16.0),
|
||||
lateral: ("npc.mindflayer.male.leg_r"),
|
||||
),
|
||||
foot_l: (
|
||||
offset: (-2.0, -4.5, -4.0),
|
||||
lateral: ("npc.mindflayer.male.foot_l"),
|
||||
),
|
||||
foot_r: (
|
||||
offset: (-2.0, -4.5, -4.0),
|
||||
lateral: ("npc.mindflayer.male.foot_r"),
|
||||
)
|
||||
),
|
||||
})
|
BIN
assets/voxygen/voxel/npc/mindflayer/male/foot_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/mindflayer/male/foot_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/mindflayer/male/foot_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/mindflayer/male/foot_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/mindflayer/male/hand_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/mindflayer/male/hand_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/mindflayer/male/hand_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/mindflayer/male/hand_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/mindflayer/male/head.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/mindflayer/male/head.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/mindflayer/male/leg_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/mindflayer/male/leg_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/mindflayer/male/leg_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/mindflayer/male/leg_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/mindflayer/male/shoulder_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/mindflayer/male/shoulder_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/mindflayer/male/shoulder_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/mindflayer/male/shoulder_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/mindflayer/male/torso_lower.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/mindflayer/male/torso_lower.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/mindflayer/male/torso_upper.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/mindflayer/male/torso_upper.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/weapon/staff/firestaff_mindflayer.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/weapon/staff/firestaff_mindflayer.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/weapon/staff/orc-0.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/weapon/staff/orc-0.vox
(Stored with Git LFS)
Binary file not shown.
@ -43,6 +43,7 @@ make_case_elim!(
|
||||
Occultsaurok = 6,
|
||||
Mightysaurok = 7,
|
||||
Slysaurok = 8,
|
||||
Mindflayer = 9,
|
||||
}
|
||||
);
|
||||
|
||||
@ -60,6 +61,7 @@ pub struct AllSpecies<SpeciesMeta> {
|
||||
pub saurok_occult: SpeciesMeta,
|
||||
pub saurok_mighty: SpeciesMeta,
|
||||
pub saurok_sly: SpeciesMeta,
|
||||
pub mindflayer: SpeciesMeta,
|
||||
}
|
||||
|
||||
impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> {
|
||||
@ -77,11 +79,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
|
||||
Species::Occultsaurok => &self.saurok_occult,
|
||||
Species::Mightysaurok => &self.saurok_mighty,
|
||||
Species::Slysaurok => &self.saurok_sly,
|
||||
Species::Mindflayer => &self.mindflayer,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub const ALL_SPECIES: [Species; 9] = [
|
||||
pub const ALL_SPECIES: [Species; 10] = [
|
||||
Species::Ogre,
|
||||
Species::Cyclops,
|
||||
Species::Wendigo,
|
||||
@ -91,6 +94,7 @@ pub const ALL_SPECIES: [Species; 9] = [
|
||||
Species::Occultsaurok,
|
||||
Species::Mightysaurok,
|
||||
Species::Slysaurok,
|
||||
Species::Mindflayer,
|
||||
];
|
||||
|
||||
impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {
|
||||
|
@ -139,6 +139,11 @@ impl LoadoutBuilder {
|
||||
"common.items.npc_weapons.sword.dullahan_sword",
|
||||
));
|
||||
},
|
||||
(biped_large::Species::Mindflayer, _) => {
|
||||
main_tool = Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_weapons.staff.mindflayer_staff",
|
||||
));
|
||||
},
|
||||
},
|
||||
Body::Humanoid(_) => {
|
||||
if is_giant {
|
||||
|
@ -191,6 +191,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Occultsaurok, _) => (6.0, 3.5),
|
||||
(Mightysaurok, _) => (6.0, 3.5),
|
||||
(Slysaurok, _) => (6.0, 3.5),
|
||||
(Mindflayer, _) => (5.0, 5.5),
|
||||
},
|
||||
jaw: match (body.species, body.body_type) {
|
||||
(Ogre, _) => (0.0, 0.0),
|
||||
@ -202,6 +203,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Occultsaurok, _) => (1.0, -2.5),
|
||||
(Mightysaurok, _) => (1.0, -2.5),
|
||||
(Slysaurok, _) => (1.0, -2.5),
|
||||
(Mindflayer, _) => (0.0, 0.0),
|
||||
},
|
||||
upper_torso: match (body.species, body.body_type) {
|
||||
(Ogre, Male) => (0.0, 28.0),
|
||||
@ -214,6 +216,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Occultsaurok, _) => (3.0, 23.0),
|
||||
(Mightysaurok, _) => (3.0, 23.0),
|
||||
(Slysaurok, _) => (3.0, 23.0),
|
||||
(Mindflayer, _) => (0.0, 31.0),
|
||||
},
|
||||
lower_torso: match (body.species, body.body_type) {
|
||||
(Ogre, Male) => (1.0, -7.0),
|
||||
@ -226,17 +229,14 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Occultsaurok, _) => (0.0, -6.0),
|
||||
(Mightysaurok, _) => (0.0, -6.0),
|
||||
(Slysaurok, _) => (0.0, -6.0),
|
||||
(Mindflayer, _) => (5.5, -18.0),
|
||||
},
|
||||
tail: match (body.species, body.body_type) {
|
||||
(Ogre, _) => (0.0, 0.0),
|
||||
(Cyclops, _) => (0.0, 0.0),
|
||||
(Wendigo, _) => (0.0, 0.0),
|
||||
(Troll, _) => (0.0, 0.0),
|
||||
(Dullahan, _) => (0.0, 0.0),
|
||||
(Werewolf, _) => (-5.5, -2.0),
|
||||
(Occultsaurok, _) => (-4.5, -6.0),
|
||||
(Mightysaurok, _) => (-4.5, -6.0),
|
||||
(Slysaurok, _) => (-4.5, -6.0),
|
||||
(_, _) => (0.0, 0.0),
|
||||
},
|
||||
shoulder: match (body.species, body.body_type) {
|
||||
(Ogre, Male) => (12.0, 0.5, 0.0),
|
||||
@ -249,6 +249,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Occultsaurok, _) => (7.5, 1.0, -1.5),
|
||||
(Mightysaurok, _) => (7.5, 1.0, -1.5),
|
||||
(Slysaurok, _) => (7.5, 1.0, -1.5),
|
||||
(Mindflayer, _) => (8.0, 0.5, -1.0),
|
||||
},
|
||||
hand: match (body.species, body.body_type) {
|
||||
(Ogre, Male) => (14.5, 0.0, -2.0),
|
||||
@ -261,6 +262,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Occultsaurok, _) => (8.0, 1.5, -5.5),
|
||||
(Mightysaurok, _) => (8.0, 1.5, -5.5),
|
||||
(Slysaurok, _) => (8.0, 1.5, -5.5),
|
||||
(Mindflayer, _) => (9.0, 0.5, -4.5),
|
||||
},
|
||||
leg: match (body.species, body.body_type) {
|
||||
(Ogre, Male) => (0.0, 0.0, -4.0),
|
||||
@ -273,6 +275,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Occultsaurok, _) => (3.0, 0.5, -6.0),
|
||||
(Mightysaurok, _) => (3.0, 0.5, -6.0),
|
||||
(Slysaurok, _) => (3.0, 0.5, -6.0),
|
||||
(Mindflayer, _) => (6.0, -2.0, 6.5),
|
||||
},
|
||||
foot: match (body.species, body.body_type) {
|
||||
(Ogre, Male) => (4.0, 1.0, -13.5),
|
||||
@ -285,6 +288,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Occultsaurok, _) => (3.5, 2.0, -12.0),
|
||||
(Mightysaurok, _) => (3.5, 2.0, -12.0),
|
||||
(Slysaurok, _) => (3.5, 2.0, -12.0),
|
||||
(Mindflayer, _) => (4.5, -0.5, -12.5),
|
||||
},
|
||||
shl: match (body.species, body.body_type) {
|
||||
(Dullahan, _) => (-4.75, -11.0, 8.5, 1.47, -0.2, 0.0),
|
||||
@ -322,16 +326,19 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
sthl: match (body.species, body.body_type) {
|
||||
(Ogre, Female) => (-1.0, -5.0, 12.0, 1.27, 0.0, 0.0),
|
||||
(Occultsaurok, _) => (-1.0, -7.0, 12.0, 1.27, 0.0, 0.0),
|
||||
(Mindflayer, _) => (-1.0, -5.0, 12.0, 1.27, 0.0, 0.0),
|
||||
(_, _) => (11.0, 5.0, -4.0, 1.27, 0.0, 0.0),
|
||||
},
|
||||
sthr: match (body.species, body.body_type) {
|
||||
(Ogre, Female) => (5.0, -3.5, 18.0, 1.57, 0.8, 0.0),
|
||||
(Occultsaurok, _) => (7.0, -3.5, 18.0, 1.57, 0.8, 0.0),
|
||||
(Mindflayer, _) => (7.0, -3.5, 18.0, 1.57, 0.8, 0.0),
|
||||
(_, _) => (17.0, 7.5, 2.0, 1.57, 0.8, 0.0),
|
||||
},
|
||||
stc: match (body.species, body.body_type) {
|
||||
(Ogre, Female) => (-10.0, 7.0, -23.0, -0.3, 0.15, 0.0),
|
||||
(Occultsaurok, _) => (-10.0, 7.0, -22.0, -0.3, 0.15, 0.0),
|
||||
(Mindflayer, _) => (-10.0, 7.0, -22.0, -0.3, 0.15, 0.0),
|
||||
(_, _) => (-18.0, 1.0, -2.0, -0.3, 0.15, 0.0),
|
||||
},
|
||||
bhl: match (body.species, body.body_type) {
|
||||
|
@ -263,10 +263,10 @@ impl Animation for WieldAnimation {
|
||||
next.main.orientation = Quaternion::rotation_y(0.0);
|
||||
},
|
||||
Some(ToolKind::Staff) => {
|
||||
next.hand_l.position = Vec3::new(s_a.sthl.0, s_a.sthl.1, s_a.sthl.2);
|
||||
next.hand_l.position = Vec3::new(s_a.sthl.0 + 2.0, s_a.sthl.1 - 5.5, s_a.sthl.2 - 5.0);
|
||||
next.hand_l.orientation =
|
||||
Quaternion::rotation_x(s_a.sthl.3) * Quaternion::rotation_y(s_a.sthl.4);
|
||||
next.hand_r.position = Vec3::new(s_a.sthr.0, s_a.sthr.1, s_a.sthr.2);
|
||||
next.hand_r.position = Vec3::new(s_a.sthr.0, s_a.sthr.1 - 5.5, s_a.sthr.2 - 5.0);
|
||||
next.hand_r.orientation =
|
||||
Quaternion::rotation_x(s_a.sthr.3) * Quaternion::rotation_y(s_a.sthr.4);
|
||||
|
||||
@ -278,7 +278,7 @@ impl Animation for WieldAnimation {
|
||||
next.main.position = Vec3::new(0.0, 0.0, 0.0);
|
||||
next.main.orientation = Quaternion::rotation_y(0.0);
|
||||
|
||||
next.control.position = Vec3::new(s_a.stc.0, s_a.stc.1, s_a.stc.2);
|
||||
next.control.position = Vec3::new(s_a.stc.0, s_a.stc.1 + 5.5, s_a.stc.2);
|
||||
next.control.orientation = Quaternion::rotation_x(-0.3 + u_slow * 0.1)
|
||||
* Quaternion::rotation_y(0.15)
|
||||
* Quaternion::rotation_z(u_slowalt * 0.08);
|
||||
|
Loading…
Reference in New Issue
Block a user