mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
new dungeon setups, new npcs, weapon specific loadouts, anims
This commit is contained in:
parent
ac16a8900d
commit
ca3248cc93
12
assets/common/items/npc_armor/chest/adlet.ron
Normal file
12
assets/common/items/npc_armor/chest/adlet.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Adlet",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Chest("Adlet"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/chest/gnarling.ron
Normal file
12
assets/common/items/npc_armor/chest/gnarling.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Gnarling",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Chest("Gnarling"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/chest/haniwa.ron
Normal file
12
assets/common/items/npc_armor/chest/haniwa.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Haniwa",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Chest("Haniwa"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/chest/kappa.ron
Normal file
12
assets/common/items/npc_armor/chest/kappa.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Kappa",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Chest("Kappa"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/chest/myrmidon.ron
Normal file
12
assets/common/items/npc_armor/chest/myrmidon.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Myrmidon",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Chest("Myrmidon"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/chest/sahagin.ron
Normal file
12
assets/common/items/npc_armor/chest/sahagin.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Sahagin",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Chest("Sahagin"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/foot/adlet.ron
Normal file
12
assets/common/items/npc_armor/foot/adlet.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Adlet",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Foot("Adlet"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/foot/gnarling.ron
Normal file
12
assets/common/items/npc_armor/foot/gnarling.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Gnarling",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Foot("Gnarling"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/foot/haniwa.ron
Normal file
12
assets/common/items/npc_armor/foot/haniwa.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Haniwa",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Foot("Haniwa"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/foot/kappa.ron
Normal file
12
assets/common/items/npc_armor/foot/kappa.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Kappa",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Foot("Kappa"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/foot/myrmidon.ron
Normal file
12
assets/common/items/npc_armor/foot/myrmidon.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Myrmidon",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Foot("Myrmidon"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/foot/sahagin.ron
Normal file
12
assets/common/items/npc_armor/foot/sahagin.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Sahagin",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Foot("Sahagin"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/hand/adlet.ron
Normal file
12
assets/common/items/npc_armor/hand/adlet.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Adlet",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Hand("Adlet"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/hand/gnarling.ron
Normal file
12
assets/common/items/npc_armor/hand/gnarling.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Gnarling",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Hand("Gnarling"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/hand/haniwa.ron
Normal file
12
assets/common/items/npc_armor/hand/haniwa.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Haniwa",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Hand("Haniwa"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/hand/kappa.ron
Normal file
12
assets/common/items/npc_armor/hand/kappa.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Kappa",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Hand("Kappa"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/hand/myrmidon.ron
Normal file
12
assets/common/items/npc_armor/hand/myrmidon.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Myrmidon",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Hand("Myrmidon"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/hand/sahagin.ron
Normal file
12
assets/common/items/npc_armor/hand/sahagin.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Sahagin",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Hand("Sahagin"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/pants/adlet.ron
Normal file
12
assets/common/items/npc_armor/pants/adlet.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Adlet",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Pants("Adlet"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/pants/gnarling.ron
Normal file
12
assets/common/items/npc_armor/pants/gnarling.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Gnarling",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Pants("Gnarling"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/pants/haniwa.ron
Normal file
12
assets/common/items/npc_armor/pants/haniwa.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Haniwa",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Pants("Haniwa"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/pants/kappa.ron
Normal file
12
assets/common/items/npc_armor/pants/kappa.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Kappa",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Pants("Kappa"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/pants/myrmidon.ron
Normal file
12
assets/common/items/npc_armor/pants/myrmidon.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Myrmidon",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Pants("Myrmidon"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
12
assets/common/items/npc_armor/pants/sahagin.ron
Normal file
12
assets/common/items/npc_armor/pants/sahagin.ron
Normal file
@ -0,0 +1,12 @@
|
||||
ItemDef(
|
||||
name: "Sahagin",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor(
|
||||
(
|
||||
kind: Pants("Sahagin"),
|
||||
stats: (
|
||||
protection: Normal(2.0)),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
15
assets/common/items/npc_weapons/staff/gnoll.ron
Normal file
15
assets/common/items/npc_weapons/staff/gnoll.ron
Normal file
@ -0,0 +1,15 @@
|
||||
ItemDef(
|
||||
name: "Gnoll Staff",
|
||||
description: "eekum bokum",
|
||||
kind: Tool(
|
||||
(
|
||||
kind: Staff,
|
||||
stats: (
|
||||
equip_time_millis: 200,
|
||||
power: 0.8,
|
||||
speed: 1.0
|
||||
),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
@ -952,6 +952,22 @@
|
||||
kappa: (
|
||||
keyword: "kappa",
|
||||
generic: "Kappa"
|
||||
),
|
||||
cactid: (
|
||||
keyword: "cactid",
|
||||
generic: "Cactid"
|
||||
),
|
||||
gnoll: (
|
||||
keyword: "gnoll",
|
||||
generic: "Gnoll"
|
||||
),
|
||||
haniwa: (
|
||||
keyword: "haniwa",
|
||||
generic: "Haniwa"
|
||||
),
|
||||
myrmidon: (
|
||||
keyword: "myrmidon",
|
||||
generic: "Myrmidon"
|
||||
)
|
||||
)
|
||||
),
|
||||
|
37
assets/voxygen/voxel/biped_small_armor_chest_manifest.ron
Normal file
37
assets/voxygen/voxel/biped_small_armor_chest_manifest.ron
Normal file
@ -0,0 +1,37 @@
|
||||
((
|
||||
default: (
|
||||
vox_spec: ("armor_none", (-5.0, -3.5, 1.0)),
|
||||
),
|
||||
map: {
|
||||
"Gnome": (
|
||||
vox_spec: ("npc.gnome.male.chest", (-5.0, -3.0, -2.5)),
|
||||
),
|
||||
"Sahagin": (
|
||||
vox_spec: ("npc.sahagin.male.chest", (-4.5, -8.0, -8.0)),
|
||||
),
|
||||
"Adlet": (
|
||||
vox_spec: ("npc.adlet.male.chest", (-5.0, -3.5, -2.0)),
|
||||
),
|
||||
"Gnarling": (
|
||||
vox_spec: ("npc.gnarling.male.chest", (-4.5, -3.5, -2.5)),
|
||||
),
|
||||
"Mandragora": (
|
||||
vox_spec: ("npc.mandragora.male.chest", (-11.0, -11.0, -6.5)),
|
||||
),
|
||||
"Kappa": (
|
||||
vox_spec: ("npc.kappa.male.chest", (-6.5, -8.0, -7.0)),
|
||||
),
|
||||
"Cactid": (
|
||||
vox_spec: ("npc.cactid.male.chest", (-3.0, -3.0, -2.5)),
|
||||
),
|
||||
"Gnoll": (
|
||||
vox_spec: ("npc.gnoll.male.chest", (-5.0, -4.5, -6.0)),
|
||||
),
|
||||
"Haniwa": (
|
||||
vox_spec: ("npc.haniwa.male.chest", (-6.5, -4.0, -3.0)),
|
||||
),
|
||||
"Myrmidon": (
|
||||
vox_spec: ("npc.myrmidon.male.chest", (-5.5, -4.0, -3.0)),
|
||||
),
|
||||
},
|
||||
))
|
92
assets/voxygen/voxel/biped_small_armor_foot_manifest.ron
Normal file
92
assets/voxygen/voxel/biped_small_armor_foot_manifest.ron
Normal file
@ -0,0 +1,92 @@
|
||||
((
|
||||
default: (
|
||||
left: (
|
||||
vox_spec: ("armor.foot.foot_right_none", (-1.5, -2.0, -4.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("armor.foot.foot_right_none", (-1.5, -2.0, -4.0)),
|
||||
)
|
||||
),
|
||||
map: {
|
||||
"Gnome": (
|
||||
left: (
|
||||
vox_spec: ("npc.gnome.male.foot_r", (-1.5, -2.0, -4.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("npc.gnome.male.foot_r", (-1.5, -2.0, -4.0)),
|
||||
)
|
||||
),
|
||||
"Sahagin": (
|
||||
left: (
|
||||
vox_spec: ("npc.sahagin.male.foot_r", (-2.5, -2.0, -8.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("npc.sahagin.male.foot_r", (-2.5, -2.0, -8.0)),
|
||||
)
|
||||
),
|
||||
"Adlet": (
|
||||
left: (
|
||||
vox_spec: ("npc.adlet.male.foot_r", (-1.5, -3.0, -7.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("npc.adlet.male.foot_r", (-1.5, -3.0, -7.0)),
|
||||
)
|
||||
),
|
||||
"Gnarling": (
|
||||
left: (
|
||||
vox_spec: ("npc.gnarling.male.foot_r", (-1.0, -2.0, -5.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("npc.gnarling.male.foot_r", (-1.0, -2.0, -5.0)),
|
||||
)
|
||||
),
|
||||
"Mandragora": (
|
||||
left: (
|
||||
vox_spec: ("npc.mandragora.male.foot_r", (-1.0, -1.5, -4.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("npc.mandragora.male.foot_r", (-1.0, -1.5, -4.0)),
|
||||
)
|
||||
),
|
||||
"Kappa": (
|
||||
left: (
|
||||
vox_spec: ("npc.kappa.male.foot_r", (-2.5, -3.0, -9.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("npc.kappa.male.foot_r", (-2.5, -3.0, -9.0)),
|
||||
)
|
||||
),
|
||||
"Cactid": (
|
||||
left: (
|
||||
vox_spec: ("npc.cactid.male.foot_r", (-1.5, -2.0, -5.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("npc.cactid.male.foot_r", (-1.5, -2.0, -5.0)),
|
||||
)
|
||||
),
|
||||
"Gnoll": (
|
||||
left: (
|
||||
vox_spec: ("npc.gnoll.male.foot_r", (-1.5, -3.0, -7.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("npc.gnoll.male.foot_r", (-1.5, -3.0, -7.0)),
|
||||
)
|
||||
),
|
||||
"Haniwa": (
|
||||
left: (
|
||||
vox_spec: ("npc.haniwa.male.foot_r", (-2.0, -2.5, -8.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("npc.haniwa.male.foot_r", (-2.0, -2.5, -8.0)),
|
||||
)
|
||||
),
|
||||
"Myrmidon": (
|
||||
left: (
|
||||
vox_spec: ("npc.myrmidon.male.foot_r", (-1.5, -2.5, -7.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("npc.myrmidon.male.foot_r", (-1.5, -2.5, -7.0)),
|
||||
)
|
||||
),
|
||||
},
|
||||
))
|
92
assets/voxygen/voxel/biped_small_armor_hand_manifest.ron
Normal file
92
assets/voxygen/voxel/biped_small_armor_hand_manifest.ron
Normal file
@ -0,0 +1,92 @@
|
||||
((
|
||||
default: (
|
||||
left: (
|
||||
vox_spec: ("armor.hand.hand_reft_none", (-3.0, -2.0, -5.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("armor.hand.hand_right_none", (-3.0, -2.0, -5.0)),
|
||||
)
|
||||
),
|
||||
map: {
|
||||
"Gnome": (
|
||||
left: (
|
||||
vox_spec: ("npc.gnome.male.hand_r", (-4.0, -2.0, -5.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("npc.gnome.male.hand_r", (0.0, -2.0, -5.0)),
|
||||
)
|
||||
),
|
||||
"Sahagin": (
|
||||
left: (
|
||||
vox_spec: ("npc.sahagin.male.hand_r", (-7.0, -4.0, -13.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("npc.sahagin.male.hand_r", (0.0, -4.0, -13.0)),
|
||||
)
|
||||
),
|
||||
"Adlet": (
|
||||
left: (
|
||||
vox_spec: ("npc.adlet.male.hand_r", (-4.0, -2.0, -7.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("npc.adlet.male.hand_r", (0.0, -2.0, -7.0)),
|
||||
)
|
||||
),
|
||||
"Gnarling": (
|
||||
left: (
|
||||
vox_spec: ("npc.gnarling.male.hand_r", (-3.0, -1.5, -7.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("npc.gnarling.male.hand_r", (0.0, -1.5, -7.0)),
|
||||
)
|
||||
),
|
||||
"Mandragora": (
|
||||
left: (
|
||||
vox_spec: ("npc.mandragora.male.hand_r", (-4.0, -1.5, -7.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("npc.mandragora.male.hand_r", (0.0, -1.5, -7.0)),
|
||||
)
|
||||
),
|
||||
"Kappa": (
|
||||
left: (
|
||||
vox_spec: ("npc.kappa.male.hand_r", (-6.0, -4.0, -12.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("npc.kappa.male.hand_r", (0.0, -4.0, -12.0)),
|
||||
)
|
||||
),
|
||||
"Cactid": (
|
||||
left: (
|
||||
vox_spec: ("npc.cactid.male.hand_r", (-5.0, -1.5, -8.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("npc.cactid.male.hand_r", (0.0, -1.5, -2.5)),
|
||||
)
|
||||
),
|
||||
"Gnoll": (
|
||||
left: (
|
||||
vox_spec: ("npc.gnoll.male.hand_r", (-6.0, -2.0, -9.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("npc.gnoll.male.hand_r", (0.0, -2.0, -9.0)),
|
||||
)
|
||||
),
|
||||
"Haniwa": (
|
||||
left: (
|
||||
vox_spec: ("npc.haniwa.male.hand_r", (-4.0, -2.0, -8.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("npc.haniwa.male.hand_r", (0.0, -2.0, -8.0)),
|
||||
)
|
||||
),
|
||||
"Myrmidon": (
|
||||
left: (
|
||||
vox_spec: ("npc.myrmidon.male.hand_r", (-5.0, -2.0, -9.0)),
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("npc.myrmidon.male.hand_r", (0.0, -2.0, -9.0)),
|
||||
)
|
||||
),
|
||||
},
|
||||
))
|
37
assets/voxygen/voxel/biped_small_armor_pants_manifest.ron
Normal file
37
assets/voxygen/voxel/biped_small_armor_pants_manifest.ron
Normal file
@ -0,0 +1,37 @@
|
||||
((
|
||||
default: (
|
||||
vox_spec: ("armor.pants.pants_none", (-5.0, -3.5, 1.0)),
|
||||
),
|
||||
map: {
|
||||
"Gnome": (
|
||||
vox_spec: ("npc.gnome.male.pants", (-4.0, -3.5, -2.5)),
|
||||
),
|
||||
"Sahagin": (
|
||||
vox_spec: ("npc.sahagin.male.pants", (-2.5, -3.5, -2.0)),
|
||||
),
|
||||
"Adlet": (
|
||||
vox_spec: ("npc.adlet.male.pants", (-5.0, -4.5, -3.0)),
|
||||
),
|
||||
"Gnarling": (
|
||||
vox_spec: ("npc.gnarling.male.pants", (-3.5, -3.0, -2.5)),
|
||||
),
|
||||
"Mandragora": (
|
||||
vox_spec: ("npc.mandragora.male.pants", (-3.0, -3.0, -1.0)),
|
||||
),
|
||||
"Kappa": (
|
||||
vox_spec: ("npc.kappa.male.pants", (-3.5, -4.0, -1.5)),
|
||||
),
|
||||
"Cactid": (
|
||||
vox_spec: ("npc.cactid.male.pants", (-3.0, -2.0, -1.0)),
|
||||
),
|
||||
"Gnoll": (
|
||||
vox_spec: ("npc.gnoll.male.pants", (-5.0, -4.0, -3.0)),
|
||||
),
|
||||
"Haniwa": (
|
||||
vox_spec: ("npc.haniwa.male.pants", (-4.5, -4.5, -1.5)),
|
||||
),
|
||||
"Myrmidon": (
|
||||
vox_spec: ("npc.myrmidon.male.pants", (-4.5, -4.5, -1.5)),
|
||||
),
|
||||
},
|
||||
))
|
@ -215,4 +215,148 @@
|
||||
central: ("npc.kappa.male.tail"),
|
||||
),
|
||||
),
|
||||
(Cactid, Male): (
|
||||
head: (
|
||||
offset: (-8.0, -4.0, -7.5),
|
||||
central: ("npc.cactid.male.head"),
|
||||
),
|
||||
chest: (
|
||||
offset: (-3.0, -3.0, -2.5),
|
||||
central: ("npc.cactid.male.chest"),
|
||||
),
|
||||
shorts: (
|
||||
offset: (-3.0, -2.0, -1.0),
|
||||
central: ("npc.cactid.male.shorts"),
|
||||
),
|
||||
tail: (
|
||||
offset: (0.0, 0.0, 0.0),
|
||||
central: ("armor.empty"),
|
||||
),
|
||||
),
|
||||
(Cactid, Female): (
|
||||
head: (
|
||||
offset: (-8.0, -4.0, -7.5),
|
||||
central: ("npc.cactid.male.head"),
|
||||
),
|
||||
chest: (
|
||||
offset: (-3.0, -3.0, -2.5),
|
||||
central: ("npc.cactid.male.chest"),
|
||||
),
|
||||
shorts: (
|
||||
offset: (-3.0, -2.0, -1.0),
|
||||
central: ("npc.cactid.male.shorts"),
|
||||
),
|
||||
tail: (
|
||||
offset: (0.0, 0.0, 0.0),
|
||||
central: ("armor.empty"),
|
||||
),
|
||||
),
|
||||
(Gnoll, Male): (
|
||||
head: (
|
||||
offset: (-4.0, -1.5, -3.0),
|
||||
central: ("npc.gnoll.male.head"),
|
||||
),
|
||||
chest: (
|
||||
offset: (-5.0, -4.5, -6.0),
|
||||
central: ("npc.gnoll.male.chest"),
|
||||
),
|
||||
shorts: (
|
||||
offset: (-5.0, -4.0, -3.0),
|
||||
central: ("npc.gnoll.male.shorts"),
|
||||
),
|
||||
tail: (
|
||||
offset: (-1.0, -11.0, -1.0),
|
||||
central: ("npc.gnoll.male.tail"),
|
||||
),
|
||||
),
|
||||
(Gnoll, Female): (
|
||||
head: (
|
||||
offset: (-4.0, -1.5, -3.0),
|
||||
central: ("npc.gnoll.male.head"),
|
||||
),
|
||||
chest: (
|
||||
offset: (-5.0, -4.5, -6.0),
|
||||
central: ("npc.gnoll.male.chest"),
|
||||
),
|
||||
shorts: (
|
||||
offset: (-5.0, -4.0, -3.0),
|
||||
central: ("npc.gnoll.male.shorts"),
|
||||
),
|
||||
tail: (
|
||||
offset: (-1.0, -11.0, -1.0),
|
||||
central: ("npc.gnoll.male.tail"),
|
||||
),
|
||||
),
|
||||
(Haniwa, Male): (
|
||||
head: (
|
||||
offset: (-5.5, -5.5, -5.5),
|
||||
central: ("npc.haniwa.male.head"),
|
||||
),
|
||||
chest: (
|
||||
offset: (-6.5, -4.0, -3.0),
|
||||
central: ("npc.haniwa.male.chest"),
|
||||
),
|
||||
shorts: (
|
||||
offset: (-4.5, -4.5, -1.5),
|
||||
central: ("npc.haniwa.male.shorts"),
|
||||
),
|
||||
tail: (
|
||||
offset: (0.0, 0.0, 0.0),
|
||||
central: ("armor.empty"),
|
||||
),
|
||||
),
|
||||
(Haniwa, Female): (
|
||||
head: (
|
||||
offset: (-5.5, -5.5, -5.5),
|
||||
central: ("npc.haniwa.male.head"),
|
||||
),
|
||||
chest: (
|
||||
offset: (-6.5, -4.0, -3.0),
|
||||
central: ("npc.haniwa.male.chest"),
|
||||
),
|
||||
shorts: (
|
||||
offset: (-4.5, -4.5, -1.5),
|
||||
central: ("npc.haniwa.male.shorts"),
|
||||
),
|
||||
tail: (
|
||||
offset: (0.0, 0.0, 0.0),
|
||||
central: ("armor.empty"),
|
||||
),
|
||||
),
|
||||
(Myrmidon, Male): (
|
||||
head: (
|
||||
offset: (-4.5, -7.0, -6.5),
|
||||
central: ("npc.myrmidon.male.head"),
|
||||
),
|
||||
chest: (
|
||||
offset: (-5.5, -4.0, -3.0),
|
||||
central: ("npc.myrmidon.male.chest"),
|
||||
),
|
||||
shorts: (
|
||||
offset: (-2.5, -3.5, -2.0),
|
||||
central: ("npc.myrmidon.male.shorts"),
|
||||
),
|
||||
tail: (
|
||||
offset: (-2.5, -7.0, -2.5),
|
||||
central: ("npc.myrmidon.male.tail"),
|
||||
),
|
||||
),
|
||||
(Myrmidon, Female): (
|
||||
head: (
|
||||
offset: (-4.5, -7.0, -6.5),
|
||||
central: ("npc.myrmidon.male.head"),
|
||||
),
|
||||
chest: (
|
||||
offset: (-5.5, -4.0, -3.0),
|
||||
central: ("npc.myrmidon.male.chest"),
|
||||
),
|
||||
shorts: (
|
||||
offset: (-2.5, -3.5, -2.0),
|
||||
central: ("npc.myrmidon.male.shorts"),
|
||||
),
|
||||
tail: (
|
||||
offset: (-2.5, -7.0, -2.5),
|
||||
central: ("npc.myrmidon.male.tail"),
|
||||
),
|
||||
),
|
||||
})
|
||||
|
@ -1,13 +1,5 @@
|
||||
({
|
||||
(Gnome, Male): (
|
||||
hand_l: (
|
||||
offset: (-4.0, -2.0, -5.0),
|
||||
lateral: ("npc.gnome.male.hand_l"),
|
||||
),
|
||||
hand_r: (
|
||||
offset: (0.0, -2.0, -5.0),
|
||||
lateral: ("npc.gnome.male.hand_r"),
|
||||
),
|
||||
foot_l: (
|
||||
offset: (-1.5, -2.0, -4.0),
|
||||
lateral: ("npc.gnome.male.foot_l"),
|
||||
@ -18,14 +10,6 @@
|
||||
),
|
||||
),
|
||||
(Gnome, Female): (
|
||||
hand_l: (
|
||||
offset: (-4.0, -2.0, -5.0),
|
||||
lateral: ("npc.gnome.male.hand_l"),
|
||||
),
|
||||
hand_r: (
|
||||
offset: (0.0, -2.0, -5.0),
|
||||
lateral: ("npc.gnome.male.hand_r"),
|
||||
),
|
||||
foot_l: (
|
||||
offset: (-1.5, -2.0, -4.0),
|
||||
lateral: ("npc.gnome.male.foot_l"),
|
||||
@ -36,14 +20,6 @@
|
||||
),
|
||||
),
|
||||
(Sahagin, Male): (
|
||||
hand_l: (
|
||||
offset: (-7.0, -4.0, -13.0),
|
||||
lateral: ("npc.sahagin.male.hand_l"),
|
||||
),
|
||||
hand_r: (
|
||||
offset: (0.0, -4.0, -13.0),
|
||||
lateral: ("npc.sahagin.male.hand_r"),
|
||||
),
|
||||
foot_l: (
|
||||
offset: (-2.5, -2.0, -8.0),
|
||||
lateral: ("npc.sahagin.male.foot_l"),
|
||||
@ -54,14 +30,6 @@
|
||||
),
|
||||
),
|
||||
(Sahagin, Female): (
|
||||
hand_l: (
|
||||
offset: (-7.0, -4.0, -13.0),
|
||||
lateral: ("npc.sahagin.male.hand_l"),
|
||||
),
|
||||
hand_r: (
|
||||
offset: (0.0, -4.0, -13.0),
|
||||
lateral: ("npc.sahagin.male.hand_r"),
|
||||
),
|
||||
foot_l: (
|
||||
offset: (-2.5, -2.0, -8.0),
|
||||
lateral: ("npc.sahagin.male.foot_l"),
|
||||
@ -72,14 +40,6 @@
|
||||
),
|
||||
),
|
||||
(Adlet, Male): (
|
||||
hand_l: (
|
||||
offset: (-4.0, -2.0, -7.0),
|
||||
lateral: ("npc.adlet.male.hand_l"),
|
||||
),
|
||||
hand_r: (
|
||||
offset: (0.0, -2.0, -7.0),
|
||||
lateral: ("npc.adlet.male.hand_r"),
|
||||
),
|
||||
foot_l: (
|
||||
offset: (-1.5, -3.0, -7.0),
|
||||
lateral: ("npc.adlet.male.foot_l"),
|
||||
@ -90,14 +50,6 @@
|
||||
),
|
||||
),
|
||||
(Adlet, Female): (
|
||||
hand_l: (
|
||||
offset: (-4.0, -2.0, -7.0),
|
||||
lateral: ("npc.adlet.male.hand_l"),
|
||||
),
|
||||
hand_r: (
|
||||
offset: (0.0, -2.0, -7.0),
|
||||
lateral: ("npc.adlet.male.hand_r"),
|
||||
),
|
||||
foot_l: (
|
||||
offset: (-1.5, -3.0, -7.0),
|
||||
lateral: ("npc.adlet.male.foot_l"),
|
||||
@ -108,14 +60,6 @@
|
||||
),
|
||||
),
|
||||
(Gnarling, Male): (
|
||||
hand_l: (
|
||||
offset: (-3.0, -1.5, -7.0),
|
||||
lateral: ("npc.gnarling.male.hand_l"),
|
||||
),
|
||||
hand_r: (
|
||||
offset: (0.0, -1.5, -7.0),
|
||||
lateral: ("npc.gnarling.male.hand_r"),
|
||||
),
|
||||
foot_l: (
|
||||
offset: (-1.0, -2.0, -5.0),
|
||||
lateral: ("npc.gnarling.male.foot_l"),
|
||||
@ -126,14 +70,6 @@
|
||||
),
|
||||
),
|
||||
(Gnarling, Female): (
|
||||
hand_l: (
|
||||
offset: (-3.0, -1.5, -7.0),
|
||||
lateral: ("npc.gnarling.male.hand_l"),
|
||||
),
|
||||
hand_r: (
|
||||
offset: (0.0, -1.5, -7.0),
|
||||
lateral: ("npc.gnarling.male.hand_r"),
|
||||
),
|
||||
foot_l: (
|
||||
offset: (-1.0, -2.0, -5.0),
|
||||
lateral: ("npc.gnarling.male.foot_l"),
|
||||
@ -144,14 +80,6 @@
|
||||
),
|
||||
),
|
||||
(Mandragora, Male): (
|
||||
hand_l: (
|
||||
offset: (-4.0, -1.5, -7.0),
|
||||
lateral: ("npc.mandragora.male.hand_l"),
|
||||
),
|
||||
hand_r: (
|
||||
offset: (0.0, -1.5, -7.0),
|
||||
lateral: ("npc.mandragora.male.hand_r"),
|
||||
),
|
||||
foot_l: (
|
||||
offset: (-1.0, -1.5, -4.0),
|
||||
lateral: ("npc.mandragora.male.foot_l"),
|
||||
@ -162,14 +90,6 @@
|
||||
),
|
||||
),
|
||||
(Mandragora, Female): (
|
||||
hand_l: (
|
||||
offset: (-4.0, -1.5, -7.0),
|
||||
lateral: ("npc.mandragora.male.hand_l"),
|
||||
),
|
||||
hand_r: (
|
||||
offset: (0.0, -1.5, -7.0),
|
||||
lateral: ("npc.mandragora.male.hand_r"),
|
||||
),
|
||||
foot_l: (
|
||||
offset: (-1.0, -1.5, -4.0),
|
||||
lateral: ("npc.mandragora.male.foot_l"),
|
||||
@ -180,14 +100,6 @@
|
||||
),
|
||||
),
|
||||
(Kappa, Male): (
|
||||
hand_l: (
|
||||
offset: (-6.0, -4.0, -12.0),
|
||||
lateral: ("npc.kappa.male.hand_l"),
|
||||
),
|
||||
hand_r: (
|
||||
offset: (0.0, -4.0, -12.0),
|
||||
lateral: ("npc.kappa.male.hand_r"),
|
||||
),
|
||||
foot_l: (
|
||||
offset: (-2.5, -3.0, -9.0),
|
||||
lateral: ("npc.kappa.male.foot_l"),
|
||||
@ -198,14 +110,6 @@
|
||||
),
|
||||
),
|
||||
(Kappa, Female): (
|
||||
hand_l: (
|
||||
offset: (-6.0, -4.0, -12.0),
|
||||
lateral: ("npc.kappa.male.hand_l"),
|
||||
),
|
||||
hand_r: (
|
||||
offset: (0.0, -4.0, -12.0),
|
||||
lateral: ("npc.kappa.male.hand_r"),
|
||||
),
|
||||
foot_l: (
|
||||
offset: (-2.5, -3.0, -9.0),
|
||||
lateral: ("npc.kappa.male.foot_l"),
|
||||
@ -215,4 +119,84 @@
|
||||
lateral: ("npc.kappa.male.foot_r"),
|
||||
),
|
||||
),
|
||||
(Cactid, Male): (
|
||||
foot_l: (
|
||||
offset: (-1.5, -2.0, -5.0),
|
||||
lateral: ("npc.cactid.male.foot_l"),
|
||||
),
|
||||
foot_r: (
|
||||
offset: (-1.5, -2.0, -5.0),
|
||||
lateral: ("npc.cactid.male.foot_r"),
|
||||
),
|
||||
),
|
||||
(Cactid, Female): (
|
||||
foot_l: (
|
||||
offset: (-1.5, -2.0, -5.0),
|
||||
lateral: ("npc.cactid.male.foot_l"),
|
||||
),
|
||||
foot_r: (
|
||||
offset: (-1.5, -2.0, -5.0),
|
||||
lateral: ("npc.cactid.male.foot_r"),
|
||||
),
|
||||
),
|
||||
(Gnoll, Male): (
|
||||
foot_l: (
|
||||
offset: (-1.5, -3.0, -7.0),
|
||||
lateral: ("npc.gnoll.male.foot_l"),
|
||||
),
|
||||
foot_r: (
|
||||
offset: (-1.5, -3.0, -7.0),
|
||||
lateral: ("npc.gnoll.male.foot_r"),
|
||||
),
|
||||
),
|
||||
(Gnoll, Female): (
|
||||
foot_l: (
|
||||
offset: (-1.5, -3.0, -7.0),
|
||||
lateral: ("npc.gnoll.male.foot_l"),
|
||||
),
|
||||
foot_r: (
|
||||
offset: (-1.5, -3.0, -7.0),
|
||||
lateral: ("npc.gnoll.male.foot_r"),
|
||||
),
|
||||
),
|
||||
(Haniwa, Male): (
|
||||
foot_l: (
|
||||
offset: (-2.0, -2.5, -8.0),
|
||||
lateral: ("npc.haniwa.male.foot_l"),
|
||||
),
|
||||
foot_r: (
|
||||
offset: (-2.0, -2.5, -8.0),
|
||||
lateral: ("npc.haniwa.male.foot_r"),
|
||||
),
|
||||
),
|
||||
(Haniwa, Female): (
|
||||
foot_l: (
|
||||
offset: (-2.0, -2.5, -8.0),
|
||||
lateral: ("npc.haniwa.male.foot_l"),
|
||||
),
|
||||
foot_r: (
|
||||
offset: (-2.0, -2.5, -8.0),
|
||||
lateral: ("npc.haniwa.male.foot_r"),
|
||||
),
|
||||
),
|
||||
(Myrmidon, Male): (
|
||||
foot_l: (
|
||||
offset: (-1.5, -2.5, -7.0),
|
||||
lateral: ("npc.myrmidon.male.foot_l"),
|
||||
),
|
||||
foot_r: (
|
||||
offset: (-1.5, -2.5, -7.0),
|
||||
lateral: ("npc.myrmidon.male.foot_r"),
|
||||
),
|
||||
),
|
||||
(Myrmidon, Female): (
|
||||
foot_l: (
|
||||
offset: (-1.5, -2.5, -7.0),
|
||||
lateral: ("npc.myrmidon.male.foot_l"),
|
||||
),
|
||||
foot_r: (
|
||||
offset: (-1.5, -2.5, -7.0),
|
||||
lateral: ("npc.myrmidon.male.foot_r"),
|
||||
),
|
||||
),
|
||||
})
|
||||
|
@ -11,4 +11,8 @@
|
||||
vox_spec: ("weapon.bow.adlet", (-0.5, -5.5, -9.5)),
|
||||
color: None
|
||||
),
|
||||
"common.items.npc_weapons.staff.gnoll": (
|
||||
vox_spec: ("weapon.staff.gnoll", (-2.5, -3.0, -4.0)),
|
||||
color: None
|
||||
),
|
||||
})
|
||||
|
BIN
assets/voxygen/voxel/npc/adlet/male/foot_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/adlet/male/foot_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/adlet/male/hand_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/adlet/male/hand_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/cactid/male/chest.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/cactid/male/chest.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/cactid/male/foot_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/cactid/male/foot_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/cactid/male/hand_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/cactid/male/hand_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/cactid/male/head.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/cactid/male/head.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/cactid/male/pants.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/cactid/male/pants.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/gnarling/male/foot_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/gnarling/male/foot_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/gnarling/male/hand_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/gnarling/male/hand_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/gnoll/male/chest.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/gnoll/male/chest.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/gnoll/male/foot_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/gnoll/male/foot_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/gnoll/male/hand_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/gnoll/male/hand_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/gnoll/male/head.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/gnoll/male/head.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/gnoll/male/pants.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/gnoll/male/pants.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/gnoll/male/tail.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/gnoll/male/tail.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/gnome/male/foot_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/gnome/male/foot_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/gnome/male/hand_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/gnome/male/hand_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/haniwa/male/HaniwaSoldier-7.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/haniwa/male/HaniwaSoldier-7.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/haniwa/male/chest.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/haniwa/male/chest.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/haniwa/male/foot_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/haniwa/male/foot_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/haniwa/male/hand_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/haniwa/male/hand_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/haniwa/male/head.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/haniwa/male/head.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/haniwa/male/pants.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/haniwa/male/pants.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/kappa/male/foot_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/kappa/male/foot_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/kappa/male/hand_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/kappa/male/hand_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/mandragora/male/foot_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/mandragora/male/foot_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/mandragora/male/hand_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/mandragora/male/hand_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/myrmidon/male/MyrmidonHoplite-5.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/myrmidon/male/MyrmidonHoplite-5.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/myrmidon/male/chest.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/myrmidon/male/chest.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/myrmidon/male/foot_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/myrmidon/male/foot_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/myrmidon/male/hand_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/myrmidon/male/hand_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/myrmidon/male/head.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/myrmidon/male/head.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/myrmidon/male/pants.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/myrmidon/male/pants.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/myrmidon/male/tail.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/myrmidon/male/tail.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/sahagin/male/foot_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/sahagin/male/foot_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/sahagin/male/hand_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/sahagin/male/hand_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/weapon/staff/gnoll.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/weapon/staff/gnoll.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -40,6 +40,10 @@ make_case_elim!(
|
||||
Gnarling = 3,
|
||||
Mandragora = 4,
|
||||
Kappa = 5,
|
||||
Cactid = 6,
|
||||
Gnoll = 7,
|
||||
Haniwa = 8,
|
||||
Myrmidon = 9,
|
||||
}
|
||||
);
|
||||
|
||||
@ -54,6 +58,10 @@ pub struct AllSpecies<SpeciesMeta> {
|
||||
pub gnarling: SpeciesMeta,
|
||||
pub mandragora: SpeciesMeta,
|
||||
pub kappa: SpeciesMeta,
|
||||
pub cactid: SpeciesMeta,
|
||||
pub gnoll: SpeciesMeta,
|
||||
pub haniwa: SpeciesMeta,
|
||||
pub myrmidon: SpeciesMeta,
|
||||
}
|
||||
|
||||
impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> {
|
||||
@ -68,17 +76,25 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
|
||||
Species::Gnarling => &self.gnarling,
|
||||
Species::Mandragora => &self.mandragora,
|
||||
Species::Kappa => &self.kappa,
|
||||
Species::Cactid => &self.cactid,
|
||||
Species::Gnoll => &self.gnoll,
|
||||
Species::Haniwa => &self.haniwa,
|
||||
Species::Myrmidon => &self.myrmidon,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub const ALL_SPECIES: [Species; 6] = [
|
||||
pub const ALL_SPECIES: [Species; 10] = [
|
||||
Species::Gnome,
|
||||
Species::Sahagin,
|
||||
Species::Adlet,
|
||||
Species::Gnarling,
|
||||
Species::Mandragora,
|
||||
Species::Kappa,
|
||||
Species::Cactid,
|
||||
Species::Gnoll,
|
||||
Species::Haniwa,
|
||||
Species::Myrmidon,
|
||||
];
|
||||
|
||||
impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {
|
||||
|
@ -4,7 +4,7 @@ use crate::comp::{
|
||||
loadout::Loadout,
|
||||
slot::{ArmorSlot, EquipSlot},
|
||||
},
|
||||
item::{Item, ItemKind},
|
||||
item::{tool::ToolKind, Item, ItemKind},
|
||||
object, quadruped_low, quadruped_medium, theropod, Body,
|
||||
};
|
||||
use rand::Rng;
|
||||
@ -32,8 +32,11 @@ pub struct LoadoutBuilder(Loadout);
|
||||
|
||||
#[derive(Copy, Clone)]
|
||||
pub enum LoadoutConfig {
|
||||
AdletArcher,
|
||||
AdletWarrior,
|
||||
Adlet,
|
||||
Gnarling,
|
||||
Sahagin,
|
||||
Haniwa,
|
||||
Myrmidon,
|
||||
Guard,
|
||||
Villager,
|
||||
Outcast,
|
||||
@ -248,7 +251,7 @@ impl LoadoutBuilder {
|
||||
{
|
||||
(biped_small::Species::Gnome, _) => {
|
||||
main_tool = Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_weapons.spear.wooden_spear",
|
||||
"common.items.npc_weapons.staff.gnoll",
|
||||
));
|
||||
},
|
||||
(biped_small::Species::Adlet, _) => {
|
||||
@ -258,7 +261,7 @@ impl LoadoutBuilder {
|
||||
},
|
||||
_ => {
|
||||
main_tool = Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_weapons.bow.adlet",
|
||||
"common.items.npc_weapons.spear.wooden_spear",
|
||||
));
|
||||
},
|
||||
},
|
||||
@ -272,19 +275,96 @@ impl LoadoutBuilder {
|
||||
} else {
|
||||
Some(Item::empty())
|
||||
};
|
||||
|
||||
let active_tool_kind = active_item.as_ref().and_then(|i| {
|
||||
if let ItemKind::Tool(tool) = &i.kind() {
|
||||
Some(tool.kind)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
});
|
||||
// Creates rest of loadout
|
||||
let loadout = if let Some(config) = config {
|
||||
use LoadoutConfig::*;
|
||||
match config {
|
||||
AdletArcher => LoadoutBuilder::new()
|
||||
.active_item(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_weapons.bow.adlet",
|
||||
Adlet => match active_tool_kind {
|
||||
Some(ToolKind::Bow) => LoadoutBuilder::new()
|
||||
.active_item(active_item)
|
||||
.hands(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_armor.hand.adlet",
|
||||
)))
|
||||
.feet(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_armor.foot.adlet",
|
||||
)))
|
||||
.chest(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_armor.chest.adlet",
|
||||
)))
|
||||
.pants(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_armor.pants.adlet",
|
||||
)))
|
||||
.build(),
|
||||
_ => LoadoutBuilder::new().active_item(active_item).build(),
|
||||
},
|
||||
Gnarling => match active_tool_kind {
|
||||
Some(ToolKind::Bow) => LoadoutBuilder::new()
|
||||
.active_item(active_item)
|
||||
.feet(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_armor.foot.gnarling",
|
||||
)))
|
||||
.hands(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_armor.hand.gnarling",
|
||||
)))
|
||||
.chest(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_armor.chest.gnarling",
|
||||
)))
|
||||
.pants(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_armor.pants.gnarling",
|
||||
)))
|
||||
.build(),
|
||||
_ => LoadoutBuilder::new().active_item(active_item).build(),
|
||||
},
|
||||
Sahagin => LoadoutBuilder::new()
|
||||
.active_item(active_item)
|
||||
.hands(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_armor.hand.sahagin",
|
||||
)))
|
||||
.feet(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_armor.foot.sahagin",
|
||||
)))
|
||||
.chest(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_armor.chest.sahagin",
|
||||
)))
|
||||
.pants(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_armor.pants.sahagin",
|
||||
)))
|
||||
.build(),
|
||||
AdletWarrior => LoadoutBuilder::new()
|
||||
.active_item(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_weapons.spear.wooden_spear",
|
||||
Haniwa => LoadoutBuilder::new()
|
||||
.active_item(active_item)
|
||||
.hands(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_armor.hand.haniwa",
|
||||
)))
|
||||
.feet(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_armor.foot.haniwa",
|
||||
)))
|
||||
.chest(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_armor.chest.haniwa",
|
||||
)))
|
||||
.pants(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_armor.pants.haniwa",
|
||||
)))
|
||||
.build(),
|
||||
Myrmidon => LoadoutBuilder::new()
|
||||
.active_item(active_item)
|
||||
.hands(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_armor.hand.myrmidon",
|
||||
)))
|
||||
.feet(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_armor.foot.myrmidon",
|
||||
)))
|
||||
.hands(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_armor.chest.myrmidon",
|
||||
)))
|
||||
.feet(Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_armor.pants.myrmidon",
|
||||
)))
|
||||
.build(),
|
||||
Guard => LoadoutBuilder::new()
|
||||
|
@ -8,6 +8,11 @@ use tracing::warn;
|
||||
|
||||
#[derive(Copy, Clone)]
|
||||
pub enum SkillSetConfig {
|
||||
Adlet,
|
||||
Gnarling,
|
||||
Sahagin,
|
||||
Haniwa,
|
||||
Myrmidon,
|
||||
Guard,
|
||||
Villager,
|
||||
Outcast,
|
||||
@ -38,6 +43,81 @@ impl SkillSetBuilder {
|
||||
|
||||
use SkillSetConfig::*;
|
||||
match config {
|
||||
Some(Adlet) => {
|
||||
match active_item {
|
||||
Some(ToolKind::Bow) => {
|
||||
// Bow
|
||||
Self::default()
|
||||
.with_skill_group(SkillGroupKind::Weapon(ToolKind::Bow))
|
||||
.with_skill(Skill::Bow(BowSkill::BDamage))
|
||||
.with_skill(Skill::Bow(BowSkill::CDamage))
|
||||
.with_skill(Skill::Bow(BowSkill::CKnockback))
|
||||
.with_skill(Skill::Bow(BowSkill::CSpeed))
|
||||
.with_skill(Skill::Bow(BowSkill::CMove))
|
||||
},
|
||||
_ => Self::default(),
|
||||
}
|
||||
},
|
||||
Some(Gnarling) => {
|
||||
match active_item {
|
||||
Some(ToolKind::Bow) => {
|
||||
// Bow
|
||||
Self::default()
|
||||
.with_skill_group(SkillGroupKind::Weapon(ToolKind::Bow))
|
||||
.with_skill(Skill::Bow(BowSkill::BDamage))
|
||||
.with_skill(Skill::Bow(BowSkill::CDamage))
|
||||
.with_skill(Skill::Bow(BowSkill::CKnockback))
|
||||
.with_skill(Skill::Bow(BowSkill::CSpeed))
|
||||
.with_skill(Skill::Bow(BowSkill::CMove))
|
||||
},
|
||||
_ => Self::default(),
|
||||
}
|
||||
},
|
||||
Some(Sahagin) => {
|
||||
match active_item {
|
||||
Some(ToolKind::Bow) => {
|
||||
// Bow
|
||||
Self::default()
|
||||
.with_skill_group(SkillGroupKind::Weapon(ToolKind::Bow))
|
||||
.with_skill(Skill::Bow(BowSkill::BDamage))
|
||||
.with_skill(Skill::Bow(BowSkill::CDamage))
|
||||
.with_skill(Skill::Bow(BowSkill::CKnockback))
|
||||
.with_skill(Skill::Bow(BowSkill::CSpeed))
|
||||
.with_skill(Skill::Bow(BowSkill::CMove))
|
||||
},
|
||||
_ => Self::default(),
|
||||
}
|
||||
},
|
||||
Some(Haniwa) => {
|
||||
match active_item {
|
||||
Some(ToolKind::Bow) => {
|
||||
// Bow
|
||||
Self::default()
|
||||
.with_skill_group(SkillGroupKind::Weapon(ToolKind::Bow))
|
||||
.with_skill(Skill::Bow(BowSkill::BDamage))
|
||||
.with_skill(Skill::Bow(BowSkill::CDamage))
|
||||
.with_skill(Skill::Bow(BowSkill::CKnockback))
|
||||
.with_skill(Skill::Bow(BowSkill::CSpeed))
|
||||
.with_skill(Skill::Bow(BowSkill::CMove))
|
||||
},
|
||||
_ => Self::default(),
|
||||
}
|
||||
},
|
||||
Some(Myrmidon) => {
|
||||
match active_item {
|
||||
Some(ToolKind::Bow) => {
|
||||
// Bow
|
||||
Self::default()
|
||||
.with_skill_group(SkillGroupKind::Weapon(ToolKind::Bow))
|
||||
.with_skill(Skill::Bow(BowSkill::BDamage))
|
||||
.with_skill(Skill::Bow(BowSkill::CDamage))
|
||||
.with_skill(Skill::Bow(BowSkill::CKnockback))
|
||||
.with_skill(Skill::Bow(BowSkill::CSpeed))
|
||||
.with_skill(Skill::Bow(BowSkill::CMove))
|
||||
},
|
||||
_ => Self::default(),
|
||||
}
|
||||
},
|
||||
Some(Guard) => {
|
||||
if let Some(ToolKind::Sword) = active_item {
|
||||
// Sword
|
||||
|
@ -67,7 +67,7 @@ impl Body {
|
||||
quadruped_medium::Species::Panda => 180.0,
|
||||
quadruped_medium::Species::Bear => 180.0,
|
||||
},
|
||||
Body::BipedSmall(_) => 100.0,
|
||||
Body::BipedSmall(_) => 80.0,
|
||||
Body::BirdMedium(_) => 80.0,
|
||||
Body::FishMedium(_) => 80.0,
|
||||
Body::Dragon(_) => 250.0,
|
||||
|
@ -67,8 +67,8 @@ impl Animation for AlphaAnimation {
|
||||
next.chest.position = Vec3::new(0.0, s_a.chest.0, s_a.chest.1) / 13.0;
|
||||
next.chest.orientation = Quaternion::rotation_z(movement1abs * 0.5 + movement2abs * -0.6);
|
||||
|
||||
next.shorts.position = Vec3::new(0.0, s_a.shorts.0, s_a.shorts.1);
|
||||
next.shorts.orientation = Quaternion::rotation_z(movement1abs * -0.2 + movement2abs * 0.2);
|
||||
next.pants.position = Vec3::new(0.0, s_a.pants.0, s_a.pants.1);
|
||||
next.pants.orientation = Quaternion::rotation_z(movement1abs * -0.2 + movement2abs * 0.2);
|
||||
|
||||
next.main.position = Vec3::new(0.0, 0.0, 0.0);
|
||||
next.main.orientation = Quaternion::rotation_x(0.0);
|
||||
|
@ -33,7 +33,7 @@ impl Animation for IdleAnimation {
|
||||
next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1 + slow * -0.1);
|
||||
|
||||
next.chest.position = Vec3::new(0.0, s_a.chest.0, s_a.chest.1 + slow * 0.3) / 13.0;
|
||||
next.shorts.position = Vec3::new(0.0, s_a.shorts.0, s_a.shorts.1);
|
||||
next.pants.position = Vec3::new(0.0, s_a.pants.0, s_a.pants.1);
|
||||
next.main.position = Vec3::new(2.0, -3.0, -3.0);
|
||||
next.main.orientation = Quaternion::rotation_y(-0.5) * Quaternion::rotation_z(1.57);
|
||||
|
||||
|
@ -19,7 +19,7 @@ pub type Body = comp::biped_small::Body;
|
||||
skeleton_impls!(struct BipedSmallSkeleton {
|
||||
+ head,
|
||||
+ chest,
|
||||
+ shorts,
|
||||
+ pants,
|
||||
+ tail,
|
||||
+ main,
|
||||
+ hand_l,
|
||||
@ -47,15 +47,15 @@ impl Skeleton for BipedSmallSkeleton {
|
||||
buf: &mut [FigureBoneData; super::MAX_BONE_COUNT],
|
||||
) -> Vec3<f32> {
|
||||
let chest_mat = base_mat * Mat4::<f32>::from(self.chest);
|
||||
let shorts_mat = chest_mat * Mat4::<f32>::from(self.shorts);
|
||||
let pants_mat = chest_mat * Mat4::<f32>::from(self.pants);
|
||||
let control_mat = chest_mat * Mat4::<f32>::from(self.control);
|
||||
let control_l_mat = Mat4::<f32>::from(self.control_l);
|
||||
let control_r_mat = Mat4::<f32>::from(self.control_r);
|
||||
*(<&mut [_; Self::BONE_COUNT]>::try_from(&mut buf[0..Self::BONE_COUNT]).unwrap()) = [
|
||||
make_bone(chest_mat * Mat4::<f32>::from(self.head)),
|
||||
make_bone(chest_mat),
|
||||
make_bone(shorts_mat),
|
||||
make_bone(shorts_mat * Mat4::<f32>::from(self.tail)),
|
||||
make_bone(pants_mat),
|
||||
make_bone(pants_mat * Mat4::<f32>::from(self.tail)),
|
||||
make_bone(control_mat * Mat4::<f32>::from(self.main)),
|
||||
make_bone(control_mat * control_l_mat * Mat4::<f32>::from(self.hand_l)),
|
||||
make_bone(control_mat * control_r_mat * Mat4::<f32>::from(self.hand_r)),
|
||||
@ -69,7 +69,7 @@ impl Skeleton for BipedSmallSkeleton {
|
||||
pub struct SkeletonAttr {
|
||||
head: (f32, f32),
|
||||
chest: (f32, f32),
|
||||
shorts: (f32, f32),
|
||||
pants: (f32, f32),
|
||||
tail: (f32, f32),
|
||||
hand: (f32, f32, f32),
|
||||
foot: (f32, f32, f32),
|
||||
@ -92,7 +92,7 @@ impl Default for SkeletonAttr {
|
||||
Self {
|
||||
head: (0.0, 0.0),
|
||||
chest: (0.0, 0.0),
|
||||
shorts: (0.0, 0.0),
|
||||
pants: (0.0, 0.0),
|
||||
tail: (0.0, 0.0),
|
||||
hand: (0.0, 0.0, 0.0),
|
||||
foot: (0.0, 0.0, 0.0),
|
||||
@ -112,6 +112,10 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Gnarling, _) => (0.0, 6.0),
|
||||
(Mandragora, _) => (-1.0, 9.0),
|
||||
(Kappa, _) => (8.0, 3.5),
|
||||
(Cactid, _) => (0.0, 7.0),
|
||||
(Gnoll, _) => (5.5, -1.0),
|
||||
(Haniwa, _) => (0.0, 7.0),
|
||||
(Myrmidon, _) => (0.0, 8.0),
|
||||
},
|
||||
chest: match (body.species, body.body_type) {
|
||||
(Gnome, _) => (0.0, 9.0),
|
||||
@ -120,14 +124,22 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Gnarling, _) => (0.0, 7.5),
|
||||
(Mandragora, _) => (0.0, 10.5),
|
||||
(Kappa, _) => (0.0, 14.5),
|
||||
(Cactid, _) => (0.0, 7.0),
|
||||
(Gnoll, _) => (0.0, 15.5),
|
||||
(Haniwa, _) => (0.0, 11.0),
|
||||
(Myrmidon, _) => (0.0, 11.0),
|
||||
},
|
||||
shorts: match (body.species, body.body_type) {
|
||||
pants: match (body.species, body.body_type) {
|
||||
(Gnome, _) => (0.0, -3.0),
|
||||
(Sahagin, _) => (0.5, -7.0),
|
||||
(Adlet, _) => (0.0, -3.0),
|
||||
(Gnarling, _) => (0.0, -3.0),
|
||||
(Mandragora, _) => (0.0, -6.5),
|
||||
(Kappa, _) => (0.0, -3.0),
|
||||
(Cactid, _) => (0.0, -3.0),
|
||||
(Gnoll, _) => (0.5, -7.5),
|
||||
(Haniwa, _) => (0.0, -3.5),
|
||||
(Myrmidon, _) => (0.0, -3.0),
|
||||
},
|
||||
tail: match (body.species, body.body_type) {
|
||||
(Gnome, _) => (0.0, 0.0),
|
||||
@ -136,6 +148,10 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Gnarling, _) => (-2.0, 1.5),
|
||||
(Mandragora, _) => (0.0, -1.0),
|
||||
(Kappa, _) => (0.0, -4.0),
|
||||
(Cactid, _) => (0.0, 0.0),
|
||||
(Gnoll, _) => (-2.5, -2.0),
|
||||
(Haniwa, _) => (-4.5, -2.0),
|
||||
(Myrmidon, _) => (-2.5, -1.0),
|
||||
},
|
||||
hand: match (body.species, body.body_type) {
|
||||
(Gnome, _) => (4.0, 0.5, -1.0),
|
||||
@ -144,6 +160,10 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Gnarling, _) => (4.0, 0.0, 1.5),
|
||||
(Mandragora, _) => (4.0, -0.5, -2.5),
|
||||
(Kappa, _) => (4.0, 3.5, -0.5),
|
||||
(Cactid, _) => (4.0, 0.5, -1.0),
|
||||
(Gnoll, _) => (3.5, 0.5, -1.0),
|
||||
(Haniwa, _) => (4.25, -1.0, 1.5),
|
||||
(Myrmidon, _) => (3.5, 1.5, 2.0),
|
||||
},
|
||||
foot: match (body.species, body.body_type) {
|
||||
(Gnome, _) => (3.0, 0.0, 4.0),
|
||||
@ -152,6 +172,10 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Gnarling, _) => (2.5, 1.0, 5.0),
|
||||
(Mandragora, _) => (3.0, 0.0, 4.0),
|
||||
(Kappa, _) => (3.0, 3.0, 9.0),
|
||||
(Cactid, _) => (3.0, 0.0, 5.0),
|
||||
(Gnoll, _) => (3.0, 1.0, 7.0),
|
||||
(Haniwa, _) => (3.0, 0.5, 8.0),
|
||||
(Myrmidon, _) => (3.0, 0.5, 7.0),
|
||||
},
|
||||
grip: match (body.species, body.body_type) {
|
||||
(Gnome, _) => (0.0, 0.0, 5.0),
|
||||
@ -160,6 +184,10 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Gnarling, _) => (0.0, 0.0, 7.0),
|
||||
(Mandragora, _) => (0.0, 0.0, 7.0),
|
||||
(Kappa, _) => (0.75, 1.0, 12.0),
|
||||
(Cactid, _) => (0.0, 0.0, 8.0),
|
||||
(Gnoll, _) => (1.0, 0.0, 9.0),
|
||||
(Haniwa, _) => (0.0, 0.5, 8.0),
|
||||
(Myrmidon, _) => (0.0, 0.0, 8.0),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
@ -108,8 +108,8 @@ impl Animation for RunAnimation {
|
||||
next.main.position = Vec3::new(2.0, -3.0, -3.0);
|
||||
next.main.orientation = Quaternion::rotation_y(-0.5) * Quaternion::rotation_z(1.57);
|
||||
|
||||
next.shorts.position = Vec3::new(0.0, s_a.shorts.0, s_a.shorts.1);
|
||||
next.shorts.orientation = Quaternion::rotation_x(0.1 * speednorm)
|
||||
next.pants.position = Vec3::new(0.0, s_a.pants.0, s_a.pants.1);
|
||||
next.pants.orientation = Quaternion::rotation_x(0.1 * speednorm)
|
||||
* Quaternion::rotation_z(short * 0.25 + tilt * -1.5)
|
||||
* Quaternion::rotation_y(tilt * 0.7);
|
||||
|
||||
|
@ -48,10 +48,8 @@ impl Animation for ShootAnimation {
|
||||
let mut next = (*skeleton).clone();
|
||||
let speed = Vec2::<f32>::from(velocity).magnitude();
|
||||
|
||||
let fastacc = (acc_vel * 2.0).sin();
|
||||
let fast = (anim_time as f32 * 10.0).sin();
|
||||
let fastalt = (anim_time as f32 * 10.0 + PI / 2.0).sin();
|
||||
let slow = (anim_time as f32 * 2.0).sin();
|
||||
|
||||
let speednorm = speed / 9.4;
|
||||
let speednormcancel = 1.0 - speednorm;
|
||||
@ -69,7 +67,7 @@ impl Animation for ShootAnimation {
|
||||
s_a.chest.1 + fastalt * 0.4 * speednormcancel + speednormcancel * -0.5,
|
||||
) / 13.0;
|
||||
|
||||
next.shorts.position = Vec3::new(0.0, s_a.shorts.0, s_a.shorts.1);
|
||||
next.pants.position = Vec3::new(0.0, s_a.pants.0, s_a.pants.1);
|
||||
|
||||
next.tail.position = Vec3::new(0.0, s_a.tail.0, s_a.tail.1);
|
||||
next.tail.orientation = Quaternion::rotation_x(0.05 * fastalt * speednormcancel)
|
||||
@ -96,8 +94,6 @@ impl Animation for ShootAnimation {
|
||||
let subtract = global_time - timer;
|
||||
let check = subtract - subtract.trunc();
|
||||
let mirror = (check - 0.5).signum() as f32;
|
||||
let movement1 = mirror * movement1base * pullback;
|
||||
let movement2 = mirror * movement2base * pullback;
|
||||
let movement1abs = movement1base * pullback;
|
||||
let movement2abs = movement2base * pullback;
|
||||
next.control_l.position = Vec3::new(
|
||||
|
@ -57,7 +57,7 @@ impl Animation for WieldAnimation {
|
||||
s_a.chest.1 + fastalt * 0.4 * speednormcancel + speednormcancel * -0.5,
|
||||
) / 13.0;
|
||||
|
||||
next.shorts.position = Vec3::new(0.0, s_a.shorts.0, s_a.shorts.1);
|
||||
next.pants.position = Vec3::new(0.0, s_a.pants.0, s_a.pants.1);
|
||||
|
||||
next.tail.position = Vec3::new(0.0, s_a.tail.0, s_a.tail.1);
|
||||
next.tail.orientation = Quaternion::rotation_x(0.05 * fastalt * speednormcancel)
|
||||
@ -118,6 +118,33 @@ impl Animation for WieldAnimation {
|
||||
next.control.orientation = Quaternion::rotation_x(-0.3 + 0.5 * speednorm)
|
||||
* Quaternion::rotation_y(0.5 * speednorm);
|
||||
},
|
||||
Some(ToolKind::Staff) => {
|
||||
next.control_l.position = Vec3::new(2.0 - s_a.grip.0 * 2.0, 1.0, 3.0);
|
||||
next.control_r.position =
|
||||
Vec3::new(7.0 + s_a.grip.0 * 2.0, -4.0, 3.0 + speednorm * -3.0);
|
||||
|
||||
next.control.position = Vec3::new(
|
||||
-5.0,
|
||||
-1.0 + s_a.grip.2,
|
||||
-2.0 + -s_a.grip.2 / 2.5
|
||||
+ s_a.grip.0 * -2.0
|
||||
+ fastacc * 1.5
|
||||
+ fastalt * 0.5 * speednormcancel
|
||||
+ speednorm * 2.0,
|
||||
);
|
||||
|
||||
next.control_l.orientation = Quaternion::rotation_x(PI / 2.0 + slow * 0.1)
|
||||
* Quaternion::rotation_y(-0.3)
|
||||
* Quaternion::rotation_z(-0.3);
|
||||
next.control_r.orientation =
|
||||
Quaternion::rotation_x(PI / 2.0 + slow * 0.1 + s_a.grip.0 * 0.2)
|
||||
* Quaternion::rotation_y(-0.4 + slow * 0.0 + s_a.grip.0 * 0.2)
|
||||
* Quaternion::rotation_z(-0.0);
|
||||
|
||||
next.control.orientation = Quaternion::rotation_x(-0.3 + 0.2 * speednorm)
|
||||
* Quaternion::rotation_y(-0.2 * speednorm)
|
||||
* Quaternion::rotation_z(0.5);
|
||||
},
|
||||
_ => {},
|
||||
}
|
||||
|
||||
|
@ -2475,8 +2475,6 @@ struct BipedSmallCentralSpec(HashMap<(BSSpecies, BSBodyType), SidedBSCentralVoxS
|
||||
#[derive(Deserialize)]
|
||||
struct SidedBSCentralVoxSpec {
|
||||
head: BipedSmallCentralSubSpec,
|
||||
chest: BipedSmallCentralSubSpec,
|
||||
shorts: BipedSmallCentralSubSpec,
|
||||
tail: BipedSmallCentralSubSpec,
|
||||
}
|
||||
#[derive(Deserialize)]
|
||||
@ -2484,30 +2482,27 @@ struct BipedSmallCentralSubSpec {
|
||||
offset: [f32; 3], // Should be relative to initial origin
|
||||
central: VoxSimple,
|
||||
}
|
||||
#[derive(Deserialize)]
|
||||
struct BipedSmallLateralSpec(HashMap<(BSSpecies, BSBodyType), SidedBSLateralVoxSpec>);
|
||||
#[derive(Deserialize)]
|
||||
struct SidedBSLateralVoxSpec {
|
||||
hand_l: BipedSmallLateralSubSpec,
|
||||
hand_r: BipedSmallLateralSubSpec,
|
||||
foot_l: BipedSmallLateralSubSpec,
|
||||
foot_r: BipedSmallLateralSubSpec,
|
||||
}
|
||||
#[derive(Deserialize)]
|
||||
struct BipedSmallLateralSubSpec {
|
||||
offset: [f32; 3], // Should be relative to initial origin
|
||||
lateral: VoxSimple,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct BipedSmallWeaponSpec(HashMap<String, ArmorVoxSpec>);
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct BipedSmallArmorHandSpec(ArmorVoxSpecMap<String, SidedArmorVoxSpec>);
|
||||
#[derive(Deserialize)]
|
||||
struct BipedSmallArmorFootSpec(ArmorVoxSpecMap<String, SidedArmorVoxSpec>);
|
||||
#[derive(Deserialize)]
|
||||
struct BipedSmallArmorChestSpec(ArmorVoxSpecMap<String, ArmorVoxSpec>);
|
||||
#[derive(Deserialize)]
|
||||
struct BipedSmallArmorPantsSpec(ArmorVoxSpecMap<String, ArmorVoxSpec>);
|
||||
make_vox_spec!(
|
||||
biped_small::Body,
|
||||
struct BipedSmallSpec {
|
||||
central: BipedSmallCentralSpec = "voxygen.voxel.biped_small_central_manifest",
|
||||
lateral: BipedSmallLateralSpec = "voxygen.voxel.biped_small_lateral_manifest",
|
||||
armor_foot: BipedSmallArmorFootSpec = "voxygen.voxel.biped_small_armor_foot_manifest",
|
||||
weapon: BipedSmallWeaponSpec = "voxygen.voxel.biped_small_weapon_manifest",
|
||||
armor_hand: BipedSmallArmorHandSpec = "voxygen.voxel.biped_small_armor_hand_manifest",
|
||||
armor_chest: BipedSmallArmorChestSpec = "voxygen.voxel.biped_small_armor_chest_manifest",
|
||||
armor_pants: BipedSmallArmorPantsSpec = "voxygen.voxel.biped_small_armor_pants_manifest",
|
||||
|
||||
},
|
||||
|FigureKey { body, extra }, spec| {
|
||||
const DEFAULT_LOADOUT: super::cache::CharacterCacheKey = super::cache::CharacterCacheKey {
|
||||
@ -2521,20 +2516,29 @@ make_vox_spec!(
|
||||
|
||||
// TODO: This is bad code, maybe this method should return Option<_>
|
||||
let loadout = extra.as_deref().unwrap_or(&DEFAULT_LOADOUT);
|
||||
let third_person = loadout.third_person.as_ref();
|
||||
let tool = loadout.tool.as_ref();
|
||||
let hand = loadout.hand.as_deref();
|
||||
let foot = loadout.foot.as_deref();
|
||||
|
||||
|
||||
[
|
||||
Some(spec.central.read().0.mesh_head(
|
||||
body.species,
|
||||
body.body_type,
|
||||
)),
|
||||
Some(spec.central.read().0.mesh_chest(
|
||||
body.species,
|
||||
body.body_type,
|
||||
)),
|
||||
Some(spec.central.read().0.mesh_shorts(
|
||||
body.species,
|
||||
body.body_type,
|
||||
)),
|
||||
third_person.map(|loadout| {
|
||||
spec.armor_chest.read().0.mesh_chest(
|
||||
loadout.chest.as_deref(),
|
||||
false,
|
||||
)
|
||||
}),
|
||||
third_person.map(|loadout| {
|
||||
spec.armor_pants.read().0.mesh_pants(
|
||||
loadout.pants.as_deref(),
|
||||
false,
|
||||
)
|
||||
}),
|
||||
Some(spec.central.read().0.mesh_tail(
|
||||
body.species,
|
||||
body.body_type,
|
||||
@ -2545,21 +2549,17 @@ make_vox_spec!(
|
||||
false,
|
||||
)
|
||||
}),
|
||||
Some(spec.lateral.read().0.mesh_hand_l(
|
||||
body.species,
|
||||
body.body_type,
|
||||
Some(spec.armor_hand.read().0.mesh_left_hand(
|
||||
hand,
|
||||
)),
|
||||
Some(spec.lateral.read().0.mesh_hand_r(
|
||||
body.species,
|
||||
body.body_type,
|
||||
Some(spec.armor_hand.read().0.mesh_right_hand(
|
||||
hand,
|
||||
)),
|
||||
Some(spec.lateral.read().0.mesh_foot_l(
|
||||
body.species,
|
||||
body.body_type,
|
||||
Some(spec.armor_foot.read().0.mesh_left_foot(
|
||||
foot,
|
||||
)),
|
||||
Some(spec.lateral.read().0.mesh_foot_r(
|
||||
body.species,
|
||||
body.body_type,
|
||||
Some(spec.armor_foot.read().0.mesh_right_foot(
|
||||
foot,
|
||||
)),
|
||||
None,
|
||||
None,
|
||||
@ -2589,38 +2589,6 @@ impl BipedSmallCentralSpec {
|
||||
(central, Vec3::from(spec.head.offset))
|
||||
}
|
||||
|
||||
fn mesh_chest(&self, species: BSSpecies, body_type: BSBodyType) -> BoneMeshes {
|
||||
let spec = match self.0.get(&(species, body_type)) {
|
||||
Some(spec) => spec,
|
||||
None => {
|
||||
error!(
|
||||
"No chest specification exists for the combination of {:?} and {:?}",
|
||||
species, body_type
|
||||
);
|
||||
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
|
||||
},
|
||||
};
|
||||
let central = graceful_load_segment(&spec.chest.central.0);
|
||||
|
||||
(central, Vec3::from(spec.chest.offset))
|
||||
}
|
||||
|
||||
fn mesh_shorts(&self, species: BSSpecies, body_type: BSBodyType) -> BoneMeshes {
|
||||
let spec = match self.0.get(&(species, body_type)) {
|
||||
Some(spec) => spec,
|
||||
None => {
|
||||
error!(
|
||||
"No shorts specification exists for the combination of {:?} and {:?}",
|
||||
species, body_type
|
||||
);
|
||||
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
|
||||
},
|
||||
};
|
||||
let central = graceful_load_segment(&spec.shorts.central.0);
|
||||
|
||||
(central, Vec3::from(spec.shorts.offset))
|
||||
}
|
||||
|
||||
fn mesh_tail(&self, species: BSSpecies, body_type: BSBodyType) -> BoneMeshes {
|
||||
let spec = match self.0.get(&(species, body_type)) {
|
||||
Some(spec) => spec,
|
||||
@ -2638,88 +2606,137 @@ impl BipedSmallCentralSpec {
|
||||
}
|
||||
}
|
||||
|
||||
impl BipedSmallLateralSpec {
|
||||
fn mesh_hand_l(&self, species: BSSpecies, body_type: BSBodyType) -> BoneMeshes {
|
||||
let spec = match self.0.get(&(species, body_type)) {
|
||||
Some(spec) => spec,
|
||||
None => {
|
||||
error!(
|
||||
"No hand specification exists for the combination of {:?} and {:?}",
|
||||
species, body_type
|
||||
);
|
||||
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
|
||||
},
|
||||
impl BipedSmallArmorChestSpec {
|
||||
fn mesh_chest(&self, chest: Option<&str>, flipped: bool) -> BoneMeshes {
|
||||
let spec = if let Some(chest) = chest {
|
||||
match self.0.map.get(chest) {
|
||||
Some(spec) => spec,
|
||||
None => {
|
||||
error!(?chest, "No chest specification exists");
|
||||
return load_mesh("not_found", Vec3::new(-1.5, -1.5, -7.0));
|
||||
},
|
||||
}
|
||||
} else {
|
||||
&self.0.default
|
||||
};
|
||||
let lateral = graceful_load_segment(&spec.hand_l.lateral.0);
|
||||
|
||||
(lateral, Vec3::from(spec.hand_l.offset))
|
||||
}
|
||||
|
||||
fn mesh_hand_r(&self, species: BSSpecies, body_type: BSBodyType) -> BoneMeshes {
|
||||
let spec = match self.0.get(&(species, body_type)) {
|
||||
Some(spec) => spec,
|
||||
None => {
|
||||
error!(
|
||||
"No hand specification exists for the combination of {:?} and {:?}",
|
||||
species, body_type
|
||||
);
|
||||
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
|
||||
},
|
||||
let chest_segment = if flipped {
|
||||
graceful_load_segment_flipped(&spec.vox_spec.0)
|
||||
} else {
|
||||
graceful_load_segment(&spec.vox_spec.0)
|
||||
};
|
||||
let lateral = graceful_load_segment(&spec.hand_r.lateral.0);
|
||||
|
||||
(lateral, Vec3::from(spec.hand_r.offset))
|
||||
}
|
||||
|
||||
fn mesh_foot_l(&self, species: BSSpecies, body_type: BSBodyType) -> BoneMeshes {
|
||||
let spec = match self.0.get(&(species, body_type)) {
|
||||
Some(spec) => spec,
|
||||
None => {
|
||||
error!(
|
||||
"No foot specification exists for the combination of {:?} and {:?}",
|
||||
species, body_type
|
||||
);
|
||||
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
|
||||
let offset = Vec3::new(
|
||||
if flipped {
|
||||
0.0 - spec.vox_spec.1[0] - (chest_segment.sz.x as f32)
|
||||
} else {
|
||||
spec.vox_spec.1[0]
|
||||
},
|
||||
};
|
||||
let lateral = graceful_load_segment(&spec.foot_l.lateral.0);
|
||||
spec.vox_spec.1[1],
|
||||
spec.vox_spec.1[2],
|
||||
);
|
||||
|
||||
(lateral, Vec3::from(spec.foot_l.offset))
|
||||
}
|
||||
|
||||
fn mesh_foot_r(&self, species: BSSpecies, body_type: BSBodyType) -> BoneMeshes {
|
||||
let spec = match self.0.get(&(species, body_type)) {
|
||||
Some(spec) => spec,
|
||||
None => {
|
||||
error!(
|
||||
"No foot specification exists for the combination of {:?} and {:?}",
|
||||
species, body_type
|
||||
);
|
||||
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
|
||||
},
|
||||
};
|
||||
let lateral = graceful_load_segment(&spec.foot_r.lateral.0);
|
||||
|
||||
(lateral, Vec3::from(spec.foot_r.offset))
|
||||
(chest_segment, offset)
|
||||
}
|
||||
}
|
||||
/*impl BipedSmallWeaponSpec {
|
||||
fn mesh_main(&self, species: BSSpecies, body_type: BSBodyType) -> BoneMeshes {
|
||||
let spec = match self.0.get(&(species, body_type)) {
|
||||
Some(spec) => spec,
|
||||
None => {
|
||||
error!(
|
||||
"No main specification exists for the combination of {:?} and {:?}",
|
||||
species, body_type
|
||||
);
|
||||
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
|
||||
},
|
||||
impl BipedSmallArmorPantsSpec {
|
||||
fn mesh_pants(&self, pants: Option<&str>, flipped: bool) -> BoneMeshes {
|
||||
let spec = if let Some(pants) = pants {
|
||||
match self.0.map.get(pants) {
|
||||
Some(spec) => spec,
|
||||
None => {
|
||||
error!(?pants, "No pants specification exists");
|
||||
return load_mesh("not_found", Vec3::new(-1.5, -1.5, -7.0));
|
||||
},
|
||||
}
|
||||
} else {
|
||||
&self.0.default
|
||||
};
|
||||
let weapon = graceful_load_segment(&spec.main.weapon.0);
|
||||
|
||||
(weapon, Vec3::from(spec.main.offset))
|
||||
let pants_segment = if flipped {
|
||||
graceful_load_segment_flipped(&spec.vox_spec.0)
|
||||
} else {
|
||||
graceful_load_segment(&spec.vox_spec.0)
|
||||
};
|
||||
|
||||
let offset = Vec3::new(
|
||||
if flipped {
|
||||
0.0 - spec.vox_spec.1[0] - (pants_segment.sz.x as f32)
|
||||
} else {
|
||||
spec.vox_spec.1[0]
|
||||
},
|
||||
spec.vox_spec.1[1],
|
||||
spec.vox_spec.1[2],
|
||||
);
|
||||
|
||||
(pants_segment, offset)
|
||||
}
|
||||
*///}
|
||||
}
|
||||
impl BipedSmallArmorHandSpec {
|
||||
fn mesh_hand(&self, hand: Option<&str>, flipped: bool) -> BoneMeshes {
|
||||
let spec = if let Some(hand) = hand {
|
||||
match self.0.map.get(hand) {
|
||||
Some(spec) => spec,
|
||||
None => {
|
||||
error!(?hand, "No hand specification exists");
|
||||
return load_mesh("not_found", Vec3::new(-1.5, -1.5, -7.0));
|
||||
},
|
||||
}
|
||||
} else {
|
||||
&self.0.default
|
||||
};
|
||||
|
||||
let hand_segment = if flipped {
|
||||
graceful_load_segment_flipped(&spec.left.vox_spec.0)
|
||||
} else {
|
||||
graceful_load_segment(&spec.right.vox_spec.0)
|
||||
};
|
||||
let offset = if flipped {
|
||||
spec.left.vox_spec.1
|
||||
} else {
|
||||
spec.right.vox_spec.1
|
||||
};
|
||||
|
||||
(hand_segment, Vec3::from(offset))
|
||||
}
|
||||
|
||||
fn mesh_left_hand(&self, hand: Option<&str>) -> BoneMeshes { self.mesh_hand(hand, true) }
|
||||
|
||||
fn mesh_right_hand(&self, hand: Option<&str>) -> BoneMeshes { self.mesh_hand(hand, false) }
|
||||
}
|
||||
impl BipedSmallArmorFootSpec {
|
||||
fn mesh_foot(&self, foot: Option<&str>, flipped: bool) -> BoneMeshes {
|
||||
let spec = if let Some(foot) = foot {
|
||||
match self.0.map.get(foot) {
|
||||
Some(spec) => spec,
|
||||
None => {
|
||||
error!(?foot, "No foot specification exists");
|
||||
return load_mesh("not_found", Vec3::new(-1.5, -1.5, -7.0));
|
||||
},
|
||||
}
|
||||
} else {
|
||||
&self.0.default
|
||||
};
|
||||
|
||||
let foot_segment = if flipped {
|
||||
graceful_load_segment_flipped(&spec.left.vox_spec.0)
|
||||
} else {
|
||||
graceful_load_segment(&spec.right.vox_spec.0)
|
||||
};
|
||||
let offset = if flipped {
|
||||
spec.left.vox_spec.1
|
||||
} else {
|
||||
spec.right.vox_spec.1
|
||||
};
|
||||
|
||||
(foot_segment, Vec3::from(offset))
|
||||
}
|
||||
|
||||
fn mesh_left_foot(&self, foot: Option<&str>) -> BoneMeshes { self.mesh_foot(foot, true) }
|
||||
|
||||
fn mesh_right_foot(&self, foot: Option<&str>) -> BoneMeshes { self.mesh_foot(foot, false) }
|
||||
}
|
||||
|
||||
impl BipedSmallWeaponSpec {
|
||||
fn mesh_main(&self, item_definition_id: &str, flipped: bool) -> BoneMeshes {
|
||||
let spec = match self.0.get(item_definition_id) {
|
||||
@ -2738,8 +2755,6 @@ impl BipedSmallWeaponSpec {
|
||||
|
||||
let offset = Vec3::new(
|
||||
if flipped {
|
||||
//log::warn!("tool kind segment {:?}", );
|
||||
//tool_kind_segment.;
|
||||
0.0 - spec.vox_spec.1[0] - (tool_kind_segment.sz.x as f32)
|
||||
} else {
|
||||
spec.vox_spec.1[0]
|
||||
|
@ -2736,7 +2736,7 @@ impl FigureMgr {
|
||||
Some(s.stage_section),
|
||||
state.state_time,
|
||||
),
|
||||
state.state_time,
|
||||
stage_progress,
|
||||
&mut state_animation_rate,
|
||||
skeleton_attr,
|
||||
)
|
||||
@ -2778,7 +2778,7 @@ impl FigureMgr {
|
||||
Some(s.stage_section),
|
||||
state.state_time,
|
||||
),
|
||||
state.state_time,
|
||||
stage_progress,
|
||||
&mut state_animation_rate,
|
||||
skeleton_attr,
|
||||
),
|
||||
@ -2794,7 +2794,7 @@ impl FigureMgr {
|
||||
Some(s.stage_section),
|
||||
state.state_time,
|
||||
),
|
||||
state.state_time,
|
||||
stage_progress,
|
||||
&mut state_animation_rate,
|
||||
skeleton_attr,
|
||||
),
|
||||
|
@ -7,6 +7,7 @@ use crate::{
|
||||
util::{attempt, Grid, RandomField, Sampler, CARDINALS, DIRS},
|
||||
IndexRef,
|
||||
};
|
||||
|
||||
use common::{
|
||||
assets::{AssetExt, AssetHandle},
|
||||
astar::Astar,
|
||||
@ -598,7 +599,6 @@ impl Floor {
|
||||
.map(|e| e as f32 / 16.0),
|
||||
)
|
||||
//.do_if(is_giant, |e| e.into_giant())
|
||||
.with_body(comp::Body::Humanoid(comp::humanoid::Body::random()))
|
||||
.with_alignment(comp::Alignment::Enemy)
|
||||
.with_loadout_config(loadout_builder::LoadoutConfig::CultistAcolyte)
|
||||
.with_skillset_config(common::skillset_builder::SkillSetConfig::CultistAcolyte)
|
||||
@ -606,88 +606,110 @@ impl Floor {
|
||||
.with_level(dynamic_rng.gen_range((room.difficulty as f32).powf(1.25) + 3.0..(room.difficulty as f32).powf(1.5) + 4.0).round() as u16);
|
||||
let entity = match room.difficulty {
|
||||
0 => entity
|
||||
.with_name("Outcast")
|
||||
.with_loadout_config(loadout_builder::LoadoutConfig::Outcast)
|
||||
.with_body(comp::Body::BipedSmall(
|
||||
comp::biped_small::Body::random_with(
|
||||
dynamic_rng,
|
||||
&comp::biped_small::Species::Gnarling,
|
||||
),
|
||||
))
|
||||
.with_name("Gnarling")
|
||||
.with_loadout_config(loadout_builder::LoadoutConfig::Gnarling)
|
||||
.with_skillset_config(
|
||||
common::skillset_builder::SkillSetConfig::Outcast,
|
||||
common::skillset_builder::SkillSetConfig::Gnarling,
|
||||
)
|
||||
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
|
||||
.with_main_tool(comp::Item::new_from_asset_expect(
|
||||
match dynamic_rng.gen_range(0..6) {
|
||||
0 => "common.items.weapons.axe.starter_axe",
|
||||
1..=2 => "common.items.weapons.sword.starter",
|
||||
3 => "common.items.weapons.hammer.starter_hammer",
|
||||
4 => "common.items.weapons.staff.starter_staff",
|
||||
_ => "common.items.weapons.bow.starter",
|
||||
match dynamic_rng.gen_range(0, 3) {
|
||||
0 => "common.items.npc_weapons.spear.wooden_spear",
|
||||
1 => "common.items.npc_weapons.staff.gnoll",
|
||||
_ => "common.items.npc_weapons.bow.adlet",
|
||||
},
|
||||
)),
|
||||
1 => entity
|
||||
.with_name("Highwayman")
|
||||
.with_loadout_config(loadout_builder::LoadoutConfig::Highwayman)
|
||||
.with_body(comp::Body::BipedSmall(
|
||||
comp::biped_small::Body::random_with(
|
||||
dynamic_rng,
|
||||
&comp::biped_small::Species::Adlet,
|
||||
),
|
||||
))
|
||||
.with_name("Adlet")
|
||||
.with_loadout_config(loadout_builder::LoadoutConfig::Adlet)
|
||||
.with_skillset_config(
|
||||
common::skillset_builder::SkillSetConfig::Highwayman,
|
||||
common::skillset_builder::SkillSetConfig::Adlet,
|
||||
)
|
||||
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
|
||||
.with_main_tool(comp::Item::new_from_asset_expect(
|
||||
match dynamic_rng.gen_range(0..6) {
|
||||
0 => "common.items.weapons.axe.worn_iron_axe-0",
|
||||
1..=2 => "common.items.weapons.sword.steel-8",
|
||||
3 => "common.items.weapons.hammer.worn_iron_hammer-0",
|
||||
4 => "common.items.weapons.staff.bone_staff",
|
||||
_ => "common.items.weapons.bow.hardwood-3",
|
||||
match dynamic_rng.gen_range(0, 3) {
|
||||
0 => "common.items.npc_weapons.spear.wooden_spear",
|
||||
1 => "common.items.npc_weapons.staff.gnoll",
|
||||
_ => "common.items.npc_weapons.bow.adlet",
|
||||
},
|
||||
)),
|
||||
2 => entity
|
||||
.with_name("Bandit")
|
||||
.with_loadout_config(loadout_builder::LoadoutConfig::Bandit)
|
||||
.with_body(comp::Body::BipedSmall(
|
||||
comp::biped_small::Body::random_with(
|
||||
dynamic_rng,
|
||||
&comp::biped_small::Species::Sahagin,
|
||||
),
|
||||
))
|
||||
.with_name("Sahagin")
|
||||
.with_loadout_config(loadout_builder::LoadoutConfig::Sahagin)
|
||||
.with_skillset_config(
|
||||
common::skillset_builder::SkillSetConfig::Bandit,
|
||||
common::skillset_builder::SkillSetConfig::Sahagin,
|
||||
)
|
||||
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
|
||||
.with_main_tool(comp::Item::new_from_asset_expect(
|
||||
match dynamic_rng.gen_range(0..6) {
|
||||
0 => "common.items.weapons.axe.bronze_axe-0",
|
||||
1 => "common.items.weapons.sword.iron-4",
|
||||
2 => "common.items.weapons.sword.cultist",
|
||||
3 => "common.items.weapons.hammer.bronze_hammer-0",
|
||||
4 => "common.items.weapons.staff.bone_staff",
|
||||
_ => "common.items.weapons.bow.wood-3",
|
||||
match dynamic_rng.gen_range(0, 3) {
|
||||
0 => "common.items.npc_weapons.spear.wooden_spear",
|
||||
1 => "common.items.npc_weapons.staff.gnoll",
|
||||
_ => "common.items.npc_weapons.bow.adlet",
|
||||
},
|
||||
)),
|
||||
3 => entity
|
||||
.with_name("Cultist Novice")
|
||||
.with_loadout_config(loadout_builder::LoadoutConfig::CultistNovice)
|
||||
.with_body(comp::Body::BipedSmall(
|
||||
comp::biped_small::Body::random_with(
|
||||
dynamic_rng,
|
||||
&comp::biped_small::Species::Haniwa,
|
||||
),
|
||||
))
|
||||
.with_name("Haniwa")
|
||||
.with_loadout_config(loadout_builder::LoadoutConfig::Haniwa)
|
||||
.with_skillset_config(
|
||||
common::skillset_builder::SkillSetConfig::CultistNovice,
|
||||
common::skillset_builder::SkillSetConfig::Haniwa,
|
||||
)
|
||||
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
|
||||
.with_main_tool(comp::Item::new_from_asset_expect(
|
||||
match dynamic_rng.gen_range(0..6) {
|
||||
0 => "common.items.weapons.axe.steel_axe-0",
|
||||
1..=2 => "common.items.weapons.sword.steel-2",
|
||||
3 => "common.items.weapons.hammer.cobalt_hammer-0",
|
||||
4 => "common.items.weapons.staff.amethyst_staff",
|
||||
_ => "common.items.weapons.bow.bone-1",
|
||||
match dynamic_rng.gen_range(0, 3) {
|
||||
0 => "common.items.npc_weapons.spear.wooden_spear",
|
||||
1 => "common.items.npc_weapons.staff.gnoll",
|
||||
_ => "common.items.npc_weapons.bow.adlet",
|
||||
},
|
||||
)),
|
||||
4 => entity
|
||||
.with_name("Cultist Acolyte")
|
||||
.with_loadout_config(loadout_builder::LoadoutConfig::CultistAcolyte)
|
||||
.with_body(comp::Body::BipedSmall(
|
||||
comp::biped_small::Body::random_with(
|
||||
dynamic_rng,
|
||||
&comp::biped_small::Species::Myrmidon,
|
||||
),
|
||||
))
|
||||
.with_name("Myrmidon")
|
||||
.with_loadout_config(loadout_builder::LoadoutConfig::Myrmidon)
|
||||
.with_skillset_config(
|
||||
common::skillset_builder::SkillSetConfig::CultistAcolyte,
|
||||
common::skillset_builder::SkillSetConfig::Myrmidon,
|
||||
)
|
||||
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
|
||||
.with_main_tool(comp::Item::new_from_asset_expect(
|
||||
match dynamic_rng.gen_range(0..6) {
|
||||
0 => "common.items.weapons.axe.malachite_axe-0",
|
||||
1..=2 => "common.items.weapons.sword.cultist",
|
||||
3 => "common.items.weapons.hammer.cultist_purp_2h-0",
|
||||
4 => "common.items.weapons.staff.cultist_staff",
|
||||
_ => "common.items.weapons.bow.bone-1",
|
||||
match dynamic_rng.gen_range(0, 3) {
|
||||
0 => "common.items.npc_weapons.spear.wooden_spear",
|
||||
1 => "common.items.npc_weapons.staff.gnoll",
|
||||
_ => "common.items.npc_weapons.bow.adlet",
|
||||
},
|
||||
)),
|
||||
5 => match dynamic_rng.gen_range(0..6) {
|
||||
0 => entity
|
||||
.with_body(comp::Body::BipedSmall(
|
||||
comp::biped_small::Body::random(),
|
||||
))
|
||||
.with_name("Cultist Warlock")
|
||||
.with_loadout_config(loadout_builder::LoadoutConfig::Warlock)
|
||||
.with_skillset_config(
|
||||
|
Loading…
Reference in New Issue
Block a user