mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Adds 3 new npcs, tusk ram new design
This commit is contained in:
parent
53b0ba286a
commit
1b9815dc34
14
assets/common/abilities/unique/quadlowbeam/healingbeam.ron
Normal file
14
assets/common/abilities/unique/quadlowbeam/healingbeam.ron
Normal file
@ -0,0 +1,14 @@
|
||||
BasicBeam(
|
||||
buildup_duration: 0.25,
|
||||
recover_duration: 0.25,
|
||||
beam_duration: 1.0,
|
||||
base_hps: 60,
|
||||
base_dps: 60,
|
||||
tick_rate: 2.0,
|
||||
range: 25.0,
|
||||
max_angle: 1.0,
|
||||
lifesteal_eff: 0.15,
|
||||
energy_regen: 25,
|
||||
energy_cost: 50,
|
||||
energy_drain: 0,
|
||||
)
|
14
assets/common/abilities/unique/tidalclaws/bubbles.ron
Normal file
14
assets/common/abilities/unique/tidalclaws/bubbles.ron
Normal file
@ -0,0 +1,14 @@
|
||||
BasicBeam(
|
||||
buildup_duration: 0.4,
|
||||
recover_duration: 0.25,
|
||||
beam_duration: 0.5,
|
||||
base_hps: 0,
|
||||
base_dps: 150,
|
||||
tick_rate: 3.0,
|
||||
range: 15.0,
|
||||
max_angle: 22.5,
|
||||
lifesteal_eff: 0.0,
|
||||
energy_regen: 0,
|
||||
energy_cost: 0,
|
||||
energy_drain: 0,
|
||||
)
|
@ -97,6 +97,11 @@
|
||||
secondary: "common.abilities.unique.wendigomagic.singlestrike",
|
||||
skills: [],
|
||||
),
|
||||
Unique(TidalClaws): (
|
||||
primary: "common.abilities.staff.flamethrower",
|
||||
secondary: "common.abilities.unique.wendigomagic.singlestrike",
|
||||
skills: [],
|
||||
),
|
||||
Unique(QuadMedQuick): (
|
||||
primary: "common.abilities.unique.quadmedquick.triplestrike",
|
||||
secondary: "common.abilities.unique.quadmedquick.dash",
|
||||
@ -151,6 +156,13 @@
|
||||
secondary: "common.abilities.unique.quadlowbasic.singlestrike",
|
||||
abilities: [],
|
||||
),
|
||||
Unique(QuadLowBeam): (
|
||||
primary: "common.abilities.unique.quadlowbeam.healingbeam",
|
||||
secondary: "common.abilities.unique.quadlowbreathe.triplestrike",
|
||||
skills: [
|
||||
"common.abilities.unique.quadlowbreathe.dash",
|
||||
],
|
||||
),
|
||||
Unique(QuadSmallBasic): (
|
||||
primary: "common.abilities.unique.quadsmallbasic.singlestrike",
|
||||
secondary: "common.abilities.unique.quadsmallbasic.singlestrike",
|
||||
|
16
assets/common/items/npc_weapons/unique/quadlowbeam.ron
Normal file
16
assets/common/items/npc_weapons/unique/quadlowbeam.ron
Normal file
@ -0,0 +1,16 @@
|
||||
ItemDef(
|
||||
name: "Quad Small Beam",
|
||||
description: "testing123",
|
||||
kind: Tool(
|
||||
(
|
||||
kind: Unique(QuadLowBeam),
|
||||
stats: (
|
||||
equip_time_millis: 10,
|
||||
power: 1.00,
|
||||
poise_strength: 1.00,
|
||||
speed: 1.00,
|
||||
),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
16
assets/common/items/npc_weapons/unique/tidal_claws.ron
Normal file
16
assets/common/items/npc_weapons/unique/tidal_claws.ron
Normal file
@ -0,0 +1,16 @@
|
||||
ItemDef(
|
||||
name: "Tidal Claws",
|
||||
description: "Snip snap",
|
||||
kind: Tool(
|
||||
(
|
||||
kind: Unique(TidalClaws),
|
||||
stats: (
|
||||
equip_time_millis: 500,
|
||||
power: 1.00,
|
||||
poise_strength: 1.00,
|
||||
speed: 1.0,
|
||||
),
|
||||
)
|
||||
),
|
||||
quality: Low,
|
||||
)
|
@ -845,6 +845,10 @@
|
||||
minotaur: (
|
||||
keyword: "minotaur",
|
||||
generic: "Minotaur"
|
||||
),
|
||||
tidalwarrior: (
|
||||
keyword: "tidalwarrior",
|
||||
generic: "Tidal Warrior"
|
||||
)
|
||||
)
|
||||
),
|
||||
@ -982,6 +986,10 @@
|
||||
clownfish: (
|
||||
keyword: "clownfish",
|
||||
generic: "Clownfish"
|
||||
),
|
||||
piranha: (
|
||||
keyword: "piranha",
|
||||
generic: "Piranha"
|
||||
)
|
||||
)
|
||||
),
|
||||
@ -1065,7 +1073,11 @@
|
||||
basilisk: (
|
||||
keyword: "basilisk",
|
||||
generic: "Basilisk"
|
||||
)
|
||||
),
|
||||
deadwood: (
|
||||
keyword: "deadwood",
|
||||
generic: "Deadwood"
|
||||
),
|
||||
)
|
||||
)
|
||||
)
|
||||
|
@ -572,4 +572,56 @@
|
||||
central: ("armor.empty"),
|
||||
)
|
||||
),
|
||||
(Tidalwarrior, Male): (
|
||||
head: (
|
||||
offset: (-6.5, -6.5, -6.0),
|
||||
central: ("npc.tidalwarrior.male.head"),
|
||||
),
|
||||
torso_upper: (
|
||||
offset: (-9.0, -8.0, -10.5),
|
||||
central: ("npc.tidalwarrior.male.torso_upper"),
|
||||
),
|
||||
torso_lower: (
|
||||
offset: (-8.0, -7.0, -8.0),
|
||||
central: ("npc.tidalwarrior.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"),
|
||||
)
|
||||
),
|
||||
(Tidalwarrior, Female): (
|
||||
head: (
|
||||
offset: (-6.5, -6.5, -6.0),
|
||||
central: ("npc.tidalwarrior.male.head"),
|
||||
),
|
||||
torso_upper: (
|
||||
offset: (-9.0, -8.0, -10.5),
|
||||
central: ("npc.tidalwarrior.male.torso_upper"),
|
||||
),
|
||||
torso_lower: (
|
||||
offset: (-8.0, -7.0, -8.0),
|
||||
central: ("npc.tidalwarrior.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"),
|
||||
)
|
||||
),
|
||||
})
|
@ -747,4 +747,72 @@
|
||||
lateral: ("npc.minotaur.male.foot_r"),
|
||||
)
|
||||
),
|
||||
(Tidalwarrior, Male): (
|
||||
shoulder_l: (
|
||||
offset: (-5.5, -5.5, -6.5),
|
||||
lateral: ("npc.tidalwarrior.male.shoulder_l"),
|
||||
),
|
||||
shoulder_r: (
|
||||
offset: (-5.5, -5.5, -6.5),
|
||||
lateral: ("npc.tidalwarrior.male.shoulder_r"),
|
||||
),
|
||||
hand_l: (
|
||||
offset: (-6.0, -3.5, -18.0),
|
||||
lateral: ("npc.tidalwarrior.male.hand_l"),
|
||||
),
|
||||
hand_r: (
|
||||
offset: (-6.0, -3.5, -18.0),
|
||||
lateral: ("npc.tidalwarrior.male.hand_r"),
|
||||
),
|
||||
leg_l: (
|
||||
offset: (-2.5, -3.0, -3.5),
|
||||
lateral: ("npc.tidalwarrior.male.leg_l"),
|
||||
),
|
||||
leg_r: (
|
||||
offset: (-2.5, -3.0, -3.5),
|
||||
lateral: ("npc.tidalwarrior.male.leg_r"),
|
||||
),
|
||||
foot_l: (
|
||||
offset: (-2.5, -4.5, -4.5),
|
||||
lateral: ("npc.tidalwarrior.male.foot_l"),
|
||||
),
|
||||
foot_r: (
|
||||
offset: (-2.5, -4.5, -4.5),
|
||||
lateral: ("npc.tidalwarrior.male.foot_r"),
|
||||
)
|
||||
),
|
||||
(Tidalwarrior, Female): (
|
||||
shoulder_l: (
|
||||
offset: (-5.5, -5.5, -6.5),
|
||||
lateral: ("npc.tidalwarrior.male.shoulder_l"),
|
||||
),
|
||||
shoulder_r: (
|
||||
offset: (-5.5, -5.5, -6.5),
|
||||
lateral: ("npc.tidalwarrior.male.shoulder_r"),
|
||||
),
|
||||
hand_l: (
|
||||
offset: (-6.0, -3.5, -18.0),
|
||||
lateral: ("npc.tidalwarrior.male.hand_l"),
|
||||
),
|
||||
hand_r: (
|
||||
offset: (-6.0, -3.5, -18.0),
|
||||
lateral: ("npc.tidalwarrior.male.hand_r"),
|
||||
),
|
||||
leg_l: (
|
||||
offset: (-2.5, -3.0, -3.5),
|
||||
lateral: ("npc.tidalwarrior.male.leg_l"),
|
||||
),
|
||||
leg_r: (
|
||||
offset: (-2.5, -3.0, -3.5),
|
||||
lateral: ("npc.tidalwarrior.male.leg_r"),
|
||||
),
|
||||
foot_l: (
|
||||
offset: (-2.5, -4.5, -4.5),
|
||||
lateral: ("npc.tidalwarrior.male.foot_l"),
|
||||
),
|
||||
foot_r: (
|
||||
offset: (-2.5, -4.5, -4.5),
|
||||
lateral: ("npc.tidalwarrior.male.foot_r"),
|
||||
)
|
||||
),
|
||||
})
|
@ -43,6 +43,10 @@
|
||||
vox_spec: ("armor.empty", (0.0, 0.0, 0.0)),
|
||||
color: None
|
||||
),
|
||||
"common.items.npc_weapons.unique.tidal_claws": (
|
||||
vox_spec: ("armor.empty", (0.0, 0.0, 0.0)),
|
||||
color: None
|
||||
),
|
||||
"common.items.npc_weapons.spear.wooden_spear": (
|
||||
vox_spec: ("weapon.spear.sahagin", (-1.5, -3.0, -5.0)),
|
||||
color: None
|
||||
|
@ -749,6 +749,10 @@
|
||||
vox_spec: ("armor.empty", (0.0, 0.0, 0.0)),
|
||||
color: None
|
||||
),
|
||||
"common.items.npc_weapons.unique.tidal_claws": (
|
||||
vox_spec: ("armor.empty", (0.0, 0.0, 0.0)),
|
||||
color: None
|
||||
),
|
||||
"common.items.npc_weapons.spear.wooden_spear": (
|
||||
vox_spec: ("weapon.spear.sahagin", (-1.5, -3.0, -5.0)),
|
||||
color: None
|
||||
|
@ -19,4 +19,24 @@
|
||||
central: ("npc.clownfish.male.tail"),
|
||||
),
|
||||
),
|
||||
(Piranha, Male): (
|
||||
chest: (
|
||||
offset: (-1.5, -5.5, -5.5),
|
||||
central: ("npc.piranha.male.chest"),
|
||||
),
|
||||
tail: (
|
||||
offset: (-0.5, -5.0, -3.5),
|
||||
central: ("npc.piranha.male.tail"),
|
||||
),
|
||||
),
|
||||
(Piranha, Female): (
|
||||
chest: (
|
||||
offset: (-1.5, -5.5, -5.5),
|
||||
central: ("npc.piranha.male.chest"),
|
||||
),
|
||||
tail: (
|
||||
offset: (-0.5, -5.0, -3.5),
|
||||
central: ("npc.piranha.male.tail"),
|
||||
),
|
||||
),
|
||||
})
|
||||
|
@ -2,21 +2,41 @@
|
||||
(Clownfish, Male): (
|
||||
fin_l: (
|
||||
offset: (-0.5, -3.0, -4.0),
|
||||
lateral: ("npc.clownfish.male.fin_r"),
|
||||
lateral: ("npc.clownfish.male.fin"),
|
||||
),
|
||||
fin_r: (
|
||||
offset: (-0.5, -3.0, -4.0),
|
||||
lateral: ("npc.clownfish.male.fin_r"),
|
||||
lateral: ("npc.clownfish.male.fin"),
|
||||
),
|
||||
),
|
||||
(Clownfish, Female): (
|
||||
fin_l: (
|
||||
offset: (-0.5, -3.0, -4.0),
|
||||
lateral: ("npc.clownfish.male.fin_r"),
|
||||
lateral: ("npc.clownfish.male.fin"),
|
||||
),
|
||||
fin_r: (
|
||||
offset: (-0.5, -3.0, -4.0),
|
||||
lateral: ("npc.clownfish.male.fin_r"),
|
||||
lateral: ("npc.clownfish.male.fin"),
|
||||
),
|
||||
),
|
||||
(Piranha, Male): (
|
||||
fin_l: (
|
||||
offset: (-0.5, -4.0, -3.0),
|
||||
lateral: ("npc.piranha.male.fin"),
|
||||
),
|
||||
fin_r: (
|
||||
offset: (-0.5, -4.0, -3.0),
|
||||
lateral: ("npc.piranha.male.fin"),
|
||||
),
|
||||
),
|
||||
(Piranha, Female): (
|
||||
fin_l: (
|
||||
offset: (-0.5, -4.0, -3.0),
|
||||
lateral: ("npc.piranha.male.fin"),
|
||||
),
|
||||
fin_r: (
|
||||
offset: (-0.5, -4.0, -3.0),
|
||||
lateral: ("npc.piranha.male.fin"),
|
||||
),
|
||||
),
|
||||
})
|
||||
|
@ -973,6 +973,10 @@
|
||||
vox_spec: ("armor.empty", (0.0, 0.0, 0.0)),
|
||||
color: None
|
||||
),
|
||||
"common.items.npc_weapons.unique.tidal_claws": (
|
||||
vox_spec: ("armor.empty", (0.0, 0.0, 0.0)),
|
||||
color: None
|
||||
),
|
||||
//BIPEDSMALL
|
||||
"common.items.npc_weapons.spear.wooden_spear": (
|
||||
vox_spec: ("weapon.spear.sahagin", (-1.5, -3.0, -5.0)),
|
||||
|
BIN
assets/voxygen/voxel/npc/deadwood/male/chest.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/deadwood/male/chest.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/deadwood/male/foot_br.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/deadwood/male/foot_br.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/deadwood/male/foot_fr.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/deadwood/male/foot_fr.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/deadwood/male/head_upper.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/deadwood/male/head_upper.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/piranha/male/chest.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/piranha/male/chest.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/piranha/male/fin.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/piranha/male/fin.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/piranha/male/tail.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/piranha/male/tail.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/foot_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/foot_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/foot_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/foot_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/hand_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/hand_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/hand_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/hand_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/head.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/head.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/leg_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/leg_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/leg_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/leg_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/shoulder_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/shoulder_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/shoulder_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/shoulder_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/torso_lower.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/torso_lower.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/torso_upper.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/tidalwarrior/male/torso_upper.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/tuskram/male/foot_br.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/tuskram/male/foot_br.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/tuskram/male/foot_fr.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/tuskram/male/foot_fr.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/tuskram/male/head.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/tuskram/male/head.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/tuskram/male/jaw.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/tuskram/male/jaw.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/tuskram/male/leg_br.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/tuskram/male/leg_br.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/tuskram/male/leg_fr.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/tuskram/male/leg_fr.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/tuskram/male/neck.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/tuskram/male/neck.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/tuskram/male/tail.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/tuskram/male/tail.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/tuskram/male/torso_back.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/tuskram/male/torso_back.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/tuskram/male/torso_front.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/tuskram/male/torso_front.vox
(Stored with Git LFS)
Binary file not shown.
@ -676,4 +676,56 @@
|
||||
central: ("npc.basilisk.male.tail_front"),
|
||||
),
|
||||
),
|
||||
(Deadwood, Male): (
|
||||
upper: (
|
||||
offset: (-3.5, -3.5, -4.0),
|
||||
central: ("npc.deadwood.male.head_upper"),
|
||||
),
|
||||
lower: (
|
||||
offset: (0.0, 0.0, 0.0),
|
||||
central: ("armor.empty"),
|
||||
),
|
||||
jaw: (
|
||||
offset: (0.0, 0.0, 0.0),
|
||||
central: ("armor.empty"),
|
||||
),
|
||||
chest: (
|
||||
offset: (-12.5, -11.0, -9.0),
|
||||
central: ("npc.deadwood.male.chest"),
|
||||
),
|
||||
tail_rear: (
|
||||
offset: (0.0, 0.0, 0.0),
|
||||
central: ("armor.empty"),
|
||||
),
|
||||
tail_front: (
|
||||
offset: (0.0, 0.0, 0.0),
|
||||
central: ("armor.empty"),
|
||||
),
|
||||
),
|
||||
(Deadwood, Female): (
|
||||
upper: (
|
||||
offset: (-3.5, -3.5, -4.0),
|
||||
central: ("npc.deadwood.male.head_upper"),
|
||||
),
|
||||
lower: (
|
||||
offset: (0.0, 0.0, 0.0),
|
||||
central: ("armor.empty"),
|
||||
),
|
||||
jaw: (
|
||||
offset: (0.0, 0.0, 0.0),
|
||||
central: ("armor.empty"),
|
||||
),
|
||||
chest: (
|
||||
offset: (-12.5, -11.0, -9.0),
|
||||
central: ("npc.deadwood.male.chest"),
|
||||
),
|
||||
tail_rear: (
|
||||
offset: (0.0, 0.0, 0.0),
|
||||
central: ("armor.empty"),
|
||||
),
|
||||
tail_front: (
|
||||
offset: (0.0, 0.0, 0.0),
|
||||
central: ("armor.empty"),
|
||||
),
|
||||
),
|
||||
})
|
||||
|
@ -467,4 +467,40 @@
|
||||
lateral: ("npc.basilisk.male.foot_br"),
|
||||
),
|
||||
),
|
||||
(Deadwood, Male): (
|
||||
front_left: (
|
||||
offset: (-5.0, -2.0, -7.0),
|
||||
lateral: ("npc.deadwood.male.foot_fr"),
|
||||
),
|
||||
front_right: (
|
||||
offset: (0.0, -2.0, -7.0),
|
||||
lateral: ("npc.deadwood.male.foot_fr"),
|
||||
),
|
||||
back_left: (
|
||||
offset: (-5.0, -1.0, -7.0),
|
||||
lateral: ("npc.deadwood.male.foot_br"),
|
||||
),
|
||||
back_right: (
|
||||
offset: (0.0, -1.0, -7.0),
|
||||
lateral: ("npc.deadwood.male.foot_br"),
|
||||
),
|
||||
),
|
||||
(Deadwood, Female): (
|
||||
front_left: (
|
||||
offset: (-5.0, -2.0, -7.0),
|
||||
lateral: ("npc.deadwood.male.foot_fr"),
|
||||
),
|
||||
front_right: (
|
||||
offset: (0.0, -2.0, -7.0),
|
||||
lateral: ("npc.deadwood.male.foot_fr"),
|
||||
),
|
||||
back_left: (
|
||||
offset: (-5.0, -1.0, -7.0),
|
||||
lateral: ("npc.deadwood.male.foot_br"),
|
||||
),
|
||||
back_right: (
|
||||
offset: (0.0, -1.0, -7.0),
|
||||
lateral: ("npc.deadwood.male.foot_br"),
|
||||
),
|
||||
),
|
||||
})
|
||||
|
@ -121,61 +121,61 @@
|
||||
),
|
||||
(Tuskram, Male): (
|
||||
head: (
|
||||
offset: (-10.0, -2.0, -6.5),
|
||||
offset: (-15.0, -2.0, -10.0),
|
||||
central: ("npc.tuskram.male.head"),
|
||||
),
|
||||
neck: (
|
||||
offset: (-4.0, -2.0, -3.5),
|
||||
offset: (-4.0, -3.0, -6.0),
|
||||
central: ("npc.tuskram.male.neck"),
|
||||
),
|
||||
jaw: (
|
||||
offset: (-2.0, 0.0, -1.5),
|
||||
offset: (-5.0, 0.0, -8.0),
|
||||
central: ("npc.tuskram.male.jaw"),
|
||||
),
|
||||
torso_front: (
|
||||
offset: (-6.0, -15.0, -6.5),
|
||||
offset: (-7.0, -14.0, -8.0),
|
||||
central: ("npc.tuskram.male.torso_front"),
|
||||
),
|
||||
torso_back: (
|
||||
offset: (-4.0, -10.0, -4.5),
|
||||
offset: (-5.0, -10.0, -5.5),
|
||||
central: ("npc.tuskram.male.torso_back"),
|
||||
),
|
||||
ears: (
|
||||
offset: (-0.5, -0.5, 0.0),
|
||||
offset: (0.0, 0.0, 0.0),
|
||||
central: ("armor.empty"),
|
||||
),
|
||||
tail: (
|
||||
offset: (-3.0, -7.0, -8.0),
|
||||
offset: (-3.0, -6.0, -8.0),
|
||||
central: ("npc.tuskram.male.tail"),
|
||||
),
|
||||
),
|
||||
(Tuskram, Female): (
|
||||
head: (
|
||||
offset: (-10.0, -2.0, -6.5),
|
||||
offset: (-15.0, -2.0, -10.0),
|
||||
central: ("npc.tuskram.male.head"),
|
||||
),
|
||||
neck: (
|
||||
offset: (-4.0, -2.0, -3.5),
|
||||
offset: (-4.0, -3.0, -6.0),
|
||||
central: ("npc.tuskram.male.neck"),
|
||||
),
|
||||
jaw: (
|
||||
offset: (-2.0, 0.0, -1.5),
|
||||
offset: (-5.0, 0.0, -1.5),
|
||||
central: ("npc.tuskram.male.jaw"),
|
||||
),
|
||||
torso_front: (
|
||||
offset: (-6.0, -15.0, -6.5),
|
||||
offset: (-7.0, -14.0, -8.0),
|
||||
central: ("npc.tuskram.male.torso_front"),
|
||||
),
|
||||
torso_back: (
|
||||
offset: (-4.0, -10.0, -4.5),
|
||||
offset: (-5.0, -10.0, -5.5),
|
||||
central: ("npc.tuskram.male.torso_back"),
|
||||
),
|
||||
ears: (
|
||||
offset: (-0.5, -0.5, -0.0),
|
||||
offset: (0.0, 0.0, 0.0),
|
||||
central: ("armor.empty"),
|
||||
),
|
||||
tail: (
|
||||
offset: (-3.0, -7.0, -8.0),
|
||||
offset: (-3.0, -6.0, -8.0),
|
||||
central: ("npc.tuskram.male.tail"),
|
||||
),
|
||||
),
|
||||
|
@ -137,11 +137,11 @@
|
||||
),
|
||||
(Tuskram, Male): (
|
||||
leg_fl: (
|
||||
offset: (-2.0, -2.5, -3.0),
|
||||
offset: (-2.5, -4.5, -5.0),
|
||||
lateral: ("npc.tuskram.male.leg_fr"),
|
||||
),
|
||||
leg_fr: (
|
||||
offset: (-2.0, -2.5, -3.0),
|
||||
offset: (-2.5, -4.5, -5.0),
|
||||
lateral: ("npc.tuskram.male.leg_fr"),
|
||||
),
|
||||
leg_bl: (
|
||||
@ -171,11 +171,11 @@
|
||||
),
|
||||
(Tuskram, Female): (
|
||||
leg_fl: (
|
||||
offset: (-2.0, -2.5, -3.0),
|
||||
offset: (-2.5, -4.5, -5.0),
|
||||
lateral: ("npc.tuskram.male.leg_fr"),
|
||||
),
|
||||
leg_fr: (
|
||||
offset: (-2.0, -2.5, -3.0),
|
||||
offset: (-2.5, -4.5, -5.0),
|
||||
lateral: ("npc.tuskram.male.leg_fr"),
|
||||
),
|
||||
leg_bl: (
|
||||
|
@ -25,6 +25,7 @@ pub enum Tactic {
|
||||
TailSlap,
|
||||
QuadLowQuick,
|
||||
QuadLowBasic,
|
||||
QuadLowBeam,
|
||||
QuadMedJump,
|
||||
QuadMedBasic,
|
||||
Lavadrake,
|
||||
|
@ -188,6 +188,7 @@ impl Body {
|
||||
quadruped_low::Species::Salamander => 2.4,
|
||||
quadruped_low::Species::Pangolin => 2.0,
|
||||
quadruped_low::Species::Lavadrake => 2.5,
|
||||
quadruped_low::Species::Deadwood => 0.5,
|
||||
_ => 1.6,
|
||||
},
|
||||
Body::Theropod(body) => match body.species {
|
||||
@ -365,6 +366,7 @@ impl Body {
|
||||
biped_large::Species::Troll => 1500,
|
||||
biped_large::Species::Dullahan => 2000,
|
||||
biped_large::Species::Mindflayer => 8000,
|
||||
biped_large::Species::Tidalwarrior => 2500,
|
||||
_ => 1000,
|
||||
},
|
||||
Body::BipedSmall(_) => 10000,
|
||||
@ -392,6 +394,7 @@ impl Body {
|
||||
quadruped_low::Species::Sandshark => 600,
|
||||
quadruped_low::Species::Hakulaq => 400,
|
||||
quadruped_low::Species::Lavadrake => 900,
|
||||
quadruped_low::Species::Deadwood => 600,
|
||||
|
||||
_ => 200,
|
||||
},
|
||||
@ -461,6 +464,7 @@ impl Body {
|
||||
biped_large::Species::Troll => 60,
|
||||
biped_large::Species::Dullahan => 120,
|
||||
biped_large::Species::Mindflayer => 250,
|
||||
biped_large::Species::Tidalwarrior => 90,
|
||||
_ => 100,
|
||||
},
|
||||
Body::BipedSmall(_) => 10,
|
||||
@ -479,6 +483,7 @@ impl Body {
|
||||
quadruped_low::Species::Maneater => 30,
|
||||
quadruped_low::Species::Sandshark => 40,
|
||||
quadruped_low::Species::Hakulaq => 10,
|
||||
quadruped_low::Species::Deadwood => 30,
|
||||
_ => 20,
|
||||
},
|
||||
}
|
||||
|
@ -45,6 +45,7 @@ make_case_elim!(
|
||||
Slysaurok = 8,
|
||||
Mindflayer = 9,
|
||||
Minotaur = 10,
|
||||
Tidalwarrior = 11,
|
||||
}
|
||||
);
|
||||
|
||||
@ -64,6 +65,7 @@ pub struct AllSpecies<SpeciesMeta> {
|
||||
pub saurok_sly: SpeciesMeta,
|
||||
pub mindflayer: SpeciesMeta,
|
||||
pub minotaur: SpeciesMeta,
|
||||
pub tidalwarrior: SpeciesMeta,
|
||||
}
|
||||
|
||||
impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> {
|
||||
@ -83,11 +85,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
|
||||
Species::Slysaurok => &self.saurok_sly,
|
||||
Species::Mindflayer => &self.mindflayer,
|
||||
Species::Minotaur => &self.minotaur,
|
||||
Species::Tidalwarrior => &self.tidalwarrior,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub const ALL_SPECIES: [Species; 11] = [
|
||||
pub const ALL_SPECIES: [Species; 12] = [
|
||||
Species::Ogre,
|
||||
Species::Cyclops,
|
||||
Species::Wendigo,
|
||||
@ -99,6 +102,7 @@ pub const ALL_SPECIES: [Species; 11] = [
|
||||
Species::Slysaurok,
|
||||
Species::Mindflayer,
|
||||
Species::Minotaur,
|
||||
Species::Tidalwarrior,
|
||||
];
|
||||
|
||||
impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {
|
||||
|
@ -35,6 +35,7 @@ make_case_elim!(
|
||||
#[repr(u32)]
|
||||
pub enum Species {
|
||||
Clownfish = 0,
|
||||
Piranha = 1,
|
||||
}
|
||||
);
|
||||
|
||||
@ -44,6 +45,7 @@ make_case_elim!(
|
||||
#[derive(Clone, Debug, Deserialize)]
|
||||
pub struct AllSpecies<SpeciesMeta> {
|
||||
pub clownfish: SpeciesMeta,
|
||||
pub piranha: SpeciesMeta,
|
||||
}
|
||||
|
||||
impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> {
|
||||
@ -53,11 +55,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
|
||||
fn index(&self, &index: &'a Species) -> &Self::Output {
|
||||
match index {
|
||||
Species::Clownfish => &self.clownfish,
|
||||
Species::Piranha => &self.piranha,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub const ALL_SPECIES: [Species; 1] = [Species::Clownfish];
|
||||
pub const ALL_SPECIES: [Species; 2] = [Species::Clownfish, Species::Piranha];
|
||||
|
||||
impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {
|
||||
type IntoIter = std::iter::Copied<std::slice::Iter<'static, Self::Item>>;
|
||||
|
@ -47,6 +47,7 @@ make_case_elim!(
|
||||
Hakulaq = 10,
|
||||
Lavadrake = 11,
|
||||
Basilisk = 12,
|
||||
Deadwood = 13,
|
||||
}
|
||||
);
|
||||
|
||||
@ -68,6 +69,7 @@ pub struct AllSpecies<SpeciesMeta> {
|
||||
pub hakulaq: SpeciesMeta,
|
||||
pub lavadrake: SpeciesMeta,
|
||||
pub basilisk: SpeciesMeta,
|
||||
pub deadwood: SpeciesMeta,
|
||||
}
|
||||
|
||||
impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> {
|
||||
@ -89,11 +91,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
|
||||
Species::Hakulaq => &self.hakulaq,
|
||||
Species::Lavadrake => &self.lavadrake,
|
||||
Species::Basilisk => &self.basilisk,
|
||||
Species::Deadwood => &self.deadwood,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub const ALL_SPECIES: [Species; 13] = [
|
||||
pub const ALL_SPECIES: [Species; 14] = [
|
||||
Species::Crocodile,
|
||||
Species::Alligator,
|
||||
Species::Salamander,
|
||||
@ -107,6 +110,7 @@ pub const ALL_SPECIES: [Species; 13] = [
|
||||
Species::Hakulaq,
|
||||
Species::Lavadrake,
|
||||
Species::Basilisk,
|
||||
Species::Deadwood,
|
||||
];
|
||||
|
||||
impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {
|
||||
|
@ -375,6 +375,7 @@ pub enum UniqueKind {
|
||||
StoneGolemFist,
|
||||
BeastClaws,
|
||||
WendigoMagic,
|
||||
TidalClaws,
|
||||
QuadMedQuick,
|
||||
QuadMedJump,
|
||||
QuadMedHoof,
|
||||
@ -385,6 +386,7 @@ pub enum UniqueKind {
|
||||
QuadLowTail,
|
||||
QuadLowQuick,
|
||||
QuadLowBasic,
|
||||
QuadLowBeam,
|
||||
QuadSmallBasic,
|
||||
TheropodBasic,
|
||||
TheropodBird,
|
||||
|
@ -154,6 +154,11 @@ impl LoadoutBuilder {
|
||||
"common.items.npc_weapons.unique.quadlowbreathe",
|
||||
));
|
||||
},
|
||||
quadruped_low::Species::Deadwood => {
|
||||
main_tool = Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_weapons.unique.quadlowbeam",
|
||||
));
|
||||
},
|
||||
_ => {
|
||||
main_tool = Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_weapons.unique.quadlowbasic",
|
||||
@ -241,6 +246,11 @@ impl LoadoutBuilder {
|
||||
"common.items.npc_weapons.hammer.cyclops_hammer",
|
||||
));
|
||||
},
|
||||
(biped_large::Species::Tidalwarrior, _) => {
|
||||
main_tool = Some(Item::new_from_asset_expect(
|
||||
"common.items.npc_weapons.unique.tidal_claws",
|
||||
));
|
||||
},
|
||||
},
|
||||
Body::Object(object::Body::Crossbow) => {
|
||||
main_tool = Some(Item::new_from_asset_expect(
|
||||
|
@ -91,6 +91,7 @@ impl Body {
|
||||
quadruped_low::Species::Hakulaq => 140.0,
|
||||
quadruped_low::Species::Lavadrake => 100.0,
|
||||
quadruped_low::Species::Basilisk => 120.0,
|
||||
quadruped_low::Species::Deadwood => 140.0,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
@ -531,6 +531,7 @@ impl<'a> System<'a> for Sys {
|
||||
Tactic::QuadLowBasic
|
||||
},
|
||||
Some(ToolKind::Unique(UniqueKind::QuadLowBreathe)) => Tactic::Lavadrake,
|
||||
Some(ToolKind::Unique(UniqueKind::QuadLowBeam)) => Tactic::Lavadrake,
|
||||
Some(ToolKind::Unique(UniqueKind::TheropodBasic)) => Tactic::Theropod,
|
||||
Some(ToolKind::Unique(UniqueKind::TheropodBird)) => Tactic::Theropod,
|
||||
Some(ToolKind::Unique(UniqueKind::ObjectTurret)) => Tactic::Turret,
|
||||
@ -1349,7 +1350,7 @@ impl<'a> System<'a> for Sys {
|
||||
do_idle = true;
|
||||
}
|
||||
},
|
||||
Tactic::Lavadrake => {
|
||||
Tactic::Lavadrake | Tactic::QuadLowBeam => {
|
||||
if dist_sqrd < (2.5 * min_attack_dist * scale).powi(2) {
|
||||
inputs.move_dir = Vec2::zero();
|
||||
inputs.secondary.set_state(true);
|
||||
|
@ -154,6 +154,31 @@ impl Animation for AlphaAnimation {
|
||||
* Quaternion::rotation_z(move1 * -0.5 + move2 * 0.6);
|
||||
next.head.orientation = Quaternion::rotation_x(move1 * 0.3);
|
||||
},
|
||||
Some(ToolKind::Unique(UniqueKind::TidalClaws)) => {
|
||||
next.torso.position = Vec3::new(0.0, 0.0, move1 * -0.3);
|
||||
next.upper_torso.orientation = Quaternion::rotation_x(move1 * -0.5 + move2 * -0.4);
|
||||
next.lower_torso.orientation = Quaternion::rotation_x(move1 * 0.5 + move2 * 0.4);
|
||||
|
||||
next.shoulder_l.orientation = Quaternion::rotation_x(
|
||||
move1 * 0.4 + 0.4 * speednorm + (footrotl * -0.2) * speednorm,
|
||||
);
|
||||
next.shoulder_r.orientation = Quaternion::rotation_x(
|
||||
move1 * 0.4 + 0.4 * speednorm + (footrotl * -0.2) * speednorm,
|
||||
);
|
||||
|
||||
next.control_l.position =
|
||||
Vec3::new(-14.0 + move2 * 9.0, 12.0 + move1 * 6.0, -12.0 + move1 * 9.0);
|
||||
next.control_r.position =
|
||||
Vec3::new(14.0 + move2 * -9.0, 12.0 + move1 * 6.0, -12.0 + move1 * 9.0);
|
||||
|
||||
next.control_l.orientation = Quaternion::rotation_x(PI / 3.0 + move1 * 0.5)
|
||||
* Quaternion::rotation_y(-0.15)
|
||||
* Quaternion::rotation_z(move1 * 0.5 + move2 * -0.6);
|
||||
next.control_r.orientation = Quaternion::rotation_x(PI / 3.0 + move1 * 0.5)
|
||||
* Quaternion::rotation_y(0.15)
|
||||
* Quaternion::rotation_z(move1 * -0.5 + move2 * 0.6);
|
||||
next.head.orientation = Quaternion::rotation_x(move1 * 0.3);
|
||||
},
|
||||
_ => {},
|
||||
}
|
||||
next
|
||||
|
@ -153,6 +153,31 @@ impl Animation for BetaAnimation {
|
||||
* Quaternion::rotation_z(move1 * -0.5 + move2 * 0.6);
|
||||
next.head.orientation = Quaternion::rotation_x(move1 * 0.3);
|
||||
},
|
||||
Some(ToolKind::Unique(UniqueKind::TidalClaws)) => {
|
||||
next.torso.position = Vec3::new(0.0, 0.0, move1 * -0.3);
|
||||
next.upper_torso.orientation = Quaternion::rotation_x(move1 * -0.5 + move2 * -0.4);
|
||||
next.lower_torso.orientation = Quaternion::rotation_x(move1 * 0.5 + move2 * 0.4);
|
||||
|
||||
next.shoulder_l.orientation = Quaternion::rotation_x(
|
||||
move1 * 0.4 + 0.4 * speednorm + (footrotl * -0.2) * speednorm,
|
||||
);
|
||||
next.shoulder_r.orientation = Quaternion::rotation_x(
|
||||
move1 * 0.4 + 0.4 * speednorm + (footrotl * -0.2) * speednorm,
|
||||
);
|
||||
|
||||
next.control_l.position =
|
||||
Vec3::new(-14.0 + move2 * 9.0, 12.0 + move1 * 6.0, -12.0 + move1 * 9.0);
|
||||
next.control_r.position =
|
||||
Vec3::new(14.0 + move2 * -9.0, 12.0 + move1 * 6.0, -12.0 + move1 * 9.0);
|
||||
|
||||
next.control_l.orientation = Quaternion::rotation_x(PI / 3.0 + move1 * 0.5)
|
||||
* Quaternion::rotation_y(-0.15)
|
||||
* Quaternion::rotation_z(move1 * 0.5 + move2 * -0.6);
|
||||
next.control_r.orientation = Quaternion::rotation_x(PI / 3.0 + move1 * 0.5)
|
||||
* Quaternion::rotation_y(0.15)
|
||||
* Quaternion::rotation_z(move1 * -0.5 + move2 * 0.6);
|
||||
next.head.orientation = Quaternion::rotation_x(move1 * 0.3);
|
||||
},
|
||||
_ => {},
|
||||
}
|
||||
next
|
||||
|
@ -205,6 +205,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Slysaurok, _) => (6.0, 3.5),
|
||||
(Mindflayer, _) => (5.0, 5.5),
|
||||
(Minotaur, _) => (6.0, 3.0),
|
||||
(Tidalwarrior, _) => (6.5, 5.0),
|
||||
},
|
||||
jaw: match (body.species, body.body_type) {
|
||||
(Ogre, _) => (0.0, 0.0),
|
||||
@ -218,6 +219,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Slysaurok, _) => (1.0, -2.5),
|
||||
(Mindflayer, _) => (0.0, 0.0),
|
||||
(Minotaur, _) => (2.0, -4.0),
|
||||
(Tidalwarrior, _) => (0.0, 0.0),
|
||||
},
|
||||
upper_torso: match (body.species, body.body_type) {
|
||||
(Ogre, Male) => (0.0, 27.5),
|
||||
@ -232,6 +234,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Slysaurok, _) => (3.0, 24.0),
|
||||
(Mindflayer, _) => (0.0, 30.5),
|
||||
(Minotaur, _) => (-1.0, 31.5),
|
||||
(Tidalwarrior, _) => (-1.0, 25.0),
|
||||
},
|
||||
lower_torso: match (body.species, body.body_type) {
|
||||
(Ogre, Male) => (1.0, -7.0),
|
||||
@ -246,6 +249,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Slysaurok, _) => (0.0, -6.0),
|
||||
(Mindflayer, _) => (3.5, -19.5),
|
||||
(Minotaur, _) => (1.5, -8.5),
|
||||
(Tidalwarrior, _) => (0.0, -9.5),
|
||||
},
|
||||
tail: match (body.species, body.body_type) {
|
||||
(Werewolf, _) => (-5.5, -2.0),
|
||||
@ -268,6 +272,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Slysaurok, _) => (7.5, 1.0, 1.5),
|
||||
(Mindflayer, _) => (8.0, 0.5, -1.0),
|
||||
(Minotaur, _) => (10.0, 1.0, -1.0),
|
||||
(Tidalwarrior, _) => (14.0, -0.5, 2.0),
|
||||
},
|
||||
hand: match (body.species, body.body_type) {
|
||||
(Ogre, Male) => (14.5, 0.0, -4.0),
|
||||
@ -282,6 +287,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Slysaurok, _) => (8.0, 1.5, -5.5),
|
||||
(Mindflayer, _) => (9.0, 0.5, -4.5),
|
||||
(Minotaur, _) => (12.5, 0.5, -7.0),
|
||||
(Tidalwarrior, _) => (15.5, -0.5, -3.0),
|
||||
},
|
||||
leg: match (body.species, body.body_type) {
|
||||
(Ogre, Male) => (0.0, 0.0, -4.0),
|
||||
@ -296,6 +302,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Slysaurok, _) => (3.0, 0.5, -4.0),
|
||||
(Mindflayer, _) => (6.0, -2.0, 6.5),
|
||||
(Minotaur, _) => (5.0, 0.0, -10.0),
|
||||
(Tidalwarrior, _) => (2.5, 0.0, -5.5),
|
||||
},
|
||||
foot: match (body.species, body.body_type) {
|
||||
(Ogre, Male) => (4.0, 1.0, -12.0),
|
||||
@ -310,6 +317,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Slysaurok, _) => (3.5, 3.5, -10.0),
|
||||
(Mindflayer, _) => (4.5, 1.5, -7.0),
|
||||
(Minotaur, _) => (6.0, 4.5, -17.5),
|
||||
(Tidalwarrior, _) => (3.5, 0.5, -10.5),
|
||||
},
|
||||
scaler: match (body.species, body.body_type) {
|
||||
(Ogre, Male) => 1.4,
|
||||
@ -324,20 +332,16 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Slysaurok, _) => 1.2,
|
||||
(Mindflayer, _) => 1.5,
|
||||
(Minotaur, _) => 2.0,
|
||||
(Tidalwarrior, _) => 2.0,
|
||||
},
|
||||
tempo: match (body.species, body.body_type) {
|
||||
(Ogre, Male) => 0.9,
|
||||
(Ogre, Female) => 0.9,
|
||||
(Cyclops, _) => 0.8,
|
||||
(Wendigo, _) => 1.0,
|
||||
(Troll, _) => 0.9,
|
||||
(Dullahan, _) => 0.8,
|
||||
(Werewolf, _) => 1.0,
|
||||
(Occultsaurok, _) => 1.0,
|
||||
(Mightysaurok, _) => 1.0,
|
||||
(Slysaurok, _) => 1.0,
|
||||
(Mindflayer, _) => 1.0,
|
||||
(Minotaur, _) => 0.8,
|
||||
_ => 1.0,
|
||||
},
|
||||
grip: match (body.species, body.body_type) {
|
||||
(Ogre, Male) => 13.0,
|
||||
@ -352,6 +356,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Slysaurok, _) => 10.0,
|
||||
(Mindflayer, _) => 12.0,
|
||||
(Minotaur, _) => 14.0,
|
||||
(Tidalwarrior, _) => 14.0,
|
||||
},
|
||||
shl: match (body.species, body.body_type) {
|
||||
(Dullahan, _) => (-4.75, -11.0, 8.5, 1.47, -0.2, 0.0),
|
||||
|
@ -240,6 +240,15 @@ impl Animation for WieldAnimation {
|
||||
next.control_r.orientation =
|
||||
Quaternion::rotation_x(PI / 3.0) * Quaternion::rotation_y(0.15);
|
||||
},
|
||||
Some(ToolKind::Unique(UniqueKind::TidalClaws)) => {
|
||||
next.control_l.position = Vec3::new(-14.0, 12.0, -12.0);
|
||||
next.control_r.position = Vec3::new(14.0, 12.0, -12.0);
|
||||
|
||||
next.control_l.orientation =
|
||||
Quaternion::rotation_x(PI / 3.0) * Quaternion::rotation_y(-0.15);
|
||||
next.control_r.orientation =
|
||||
Quaternion::rotation_x(PI / 3.0) * Quaternion::rotation_y(0.15);
|
||||
},
|
||||
Some(ToolKind::Unique(UniqueKind::BeastClaws)) => {
|
||||
next.shoulder_l.position =
|
||||
Vec3::new(-s_a.shoulder.0, s_a.shoulder.1, s_a.shoulder.2);
|
||||
|
@ -80,18 +80,23 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
Self {
|
||||
chest: match (body.species, body.body_type) {
|
||||
(Clownfish, _) => (0.0, 5.0),
|
||||
(Piranha, _) => (0.0, 5.0),
|
||||
},
|
||||
tail: match (body.species, body.body_type) {
|
||||
(Clownfish, _) => (-7.5, -0.5),
|
||||
(Piranha, _) => (-5.5, -0.5),
|
||||
},
|
||||
fin: match (body.species, body.body_type) {
|
||||
(Clownfish, _) => (2.0, 0.5, 1.0),
|
||||
(Piranha, _) => (2.0, 0.5, -0.5),
|
||||
},
|
||||
tempo: match (body.species, body.body_type) {
|
||||
(Clownfish, _) => 5.0,
|
||||
(Piranha, _) => 5.0,
|
||||
},
|
||||
amplitude: match (body.species, body.body_type) {
|
||||
(Clownfish, _) => 4.0,
|
||||
(Piranha, _) => 4.0,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
@ -132,6 +132,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Hakulaq, _) => (8.0, 10.0),
|
||||
(Lavadrake, _) => (7.0, 8.0),
|
||||
(Basilisk, _) => (11.0, 13.5),
|
||||
(Deadwood, _) => (2.0, -3.0),
|
||||
},
|
||||
head_lower: match (body.species, body.body_type) {
|
||||
(Crocodile, _) => (8.0, 0.0),
|
||||
@ -148,6 +149,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Hakulaq, _) => (10.5, 1.0),
|
||||
(Lavadrake, _) => (11.5, -6.0),
|
||||
(Basilisk, _) => (8.5, -6.5),
|
||||
(Deadwood, _) => (0.0, 0.0),
|
||||
},
|
||||
jaw: match (body.species, body.body_type) {
|
||||
(Crocodile, _) => (2.5, -3.0),
|
||||
@ -164,6 +166,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Hakulaq, _) => (-6.5, -4.0),
|
||||
(Lavadrake, _) => (3.0, -5.0),
|
||||
(Basilisk, _) => (1.5, 1.0),
|
||||
(Deadwood, _) => (-1.0, 4.0),
|
||||
},
|
||||
chest: match (body.species, body.body_type) {
|
||||
(Crocodile, _) => (0.0, 5.0),
|
||||
@ -180,6 +183,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Hakulaq, _) => (0.0, 13.5),
|
||||
(Lavadrake, _) => (0.0, 16.5),
|
||||
(Basilisk, _) => (0.0, 16.5),
|
||||
(Deadwood, _) => (0.0, 12.0),
|
||||
},
|
||||
tail_rear: match (body.species, body.body_type) {
|
||||
(Crocodile, _) => (-12.5, -1.0),
|
||||
@ -196,6 +200,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Hakulaq, _) => (-9.0, -2.0),
|
||||
(Lavadrake, _) => (-12.0, -2.0),
|
||||
(Basilisk, _) => (-10.0, -3.0),
|
||||
(Deadwood, _) => (-15.0, 4.0),
|
||||
},
|
||||
tail_front: match (body.species, body.body_type) {
|
||||
(Crocodile, _) => (-6.0, 0.0),
|
||||
@ -212,6 +217,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Hakulaq, _) => (-6.0, -5.5),
|
||||
(Lavadrake, _) => (-7.0, -4.5),
|
||||
(Basilisk, _) => (-2.5, -4.5),
|
||||
(Deadwood, _) => (-1.0, 4.0),
|
||||
},
|
||||
feet_f: match (body.species, body.body_type) {
|
||||
(Crocodile, _) => (3.5, 6.0, -1.0),
|
||||
@ -228,6 +234,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Hakulaq, _) => (4.5, 2.0, -4.5),
|
||||
(Lavadrake, _) => (4.5, 4.0, -6.5),
|
||||
(Basilisk, _) => (6.5, 4.0, -7.5),
|
||||
(Deadwood, _) => (3.5, 4.0, -5.0),
|
||||
},
|
||||
feet_b: match (body.species, body.body_type) {
|
||||
(Crocodile, _) => (3.5, -6.0, -1.0),
|
||||
@ -244,6 +251,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
(Hakulaq, _) => (3.5, -8.0, -4.5),
|
||||
(Lavadrake, _) => (3.5, -8.0, -6.5),
|
||||
(Basilisk, _) => (4.5, -13.0, -7.5),
|
||||
(Deadwood, _) => (3.5, -6.0, -5.0),
|
||||
},
|
||||
lean: match (body.species, body.body_type) {
|
||||
(Pangolin, _) => (0.4, 0.0),
|
||||
|
@ -144,7 +144,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
head: match (body.species, body.body_type) {
|
||||
(Grolgar, _) => (0.0, -1.0),
|
||||
(Saber, _) => (5.0, -3.0),
|
||||
(Tuskram, _) => (2.0, 1.0),
|
||||
(Tuskram, _) => (0.0, 0.0),
|
||||
(Lion, _) => (4.5, 2.0),
|
||||
(Tarasque, _) => (-4.0, 3.5),
|
||||
(Tiger, _) => (2.0, 1.0),
|
||||
@ -205,7 +205,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
jaw: match (body.species, body.body_type) {
|
||||
(Grolgar, _) => (7.0, 2.0),
|
||||
(Saber, _) => (2.5, -2.0),
|
||||
(Tuskram, _) => (7.5, -3.5),
|
||||
(Tuskram, _) => (4.0, -5.0),
|
||||
(Lion, _) => (3.5, -4.0),
|
||||
(Tarasque, _) => (9.0, -9.5),
|
||||
(Tiger, _) => (3.0, -3.5),
|
||||
@ -235,7 +235,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
tail: match (body.species, body.body_type) {
|
||||
(Grolgar, _) => (-11.5, -0.5),
|
||||
(Saber, _) => (-11.0, 0.0),
|
||||
(Tuskram, _) => (-9.0, 2.0),
|
||||
(Tuskram, _) => (-8.0, 2.0),
|
||||
(Lion, _) => (-11.0, 1.0),
|
||||
(Tarasque, _) => (-11.0, 0.0),
|
||||
(Tiger, _) => (-13.5, 3.0),
|
||||
@ -265,7 +265,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
torso_front: match (body.species, body.body_type) {
|
||||
(Grolgar, _) => (10.0, 13.0),
|
||||
(Saber, _) => (14.0, 13.0),
|
||||
(Tuskram, _) => (10.0, 14.5),
|
||||
(Tuskram, _) => (10.0, 16.0),
|
||||
(Lion, _) => (10.0, 12.5),
|
||||
(Tarasque, _) => (11.5, 17.5),
|
||||
(Tiger, _) => (10.0, 13.0),
|
||||
@ -295,7 +295,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
torso_back: match (body.species, body.body_type) {
|
||||
(Grolgar, _) => (-10.0, 1.5),
|
||||
(Saber, _) => (-13.5, 0.0),
|
||||
(Tuskram, _) => (-12.5, -2.0),
|
||||
(Tuskram, _) => (-12.0, -2.5),
|
||||
(Lion, _) => (-12.0, -0.5),
|
||||
(Tarasque, _) => (-14.0, -1.0),
|
||||
(Tiger, _) => (-13.0, -0.5),
|
||||
@ -325,7 +325,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
ears: match (body.species, body.body_type) {
|
||||
(Grolgar, _) => (5.0, 8.0),
|
||||
(Saber, _) => (3.0, 5.5),
|
||||
(Tuskram, _) => (5.5, 12.0),
|
||||
(Tuskram, _) => (0.0, 0.0),
|
||||
(Lion, _) => (2.0, 3.5),
|
||||
(Tarasque, _) => (12.0, -3.0),
|
||||
(Tiger, _) => (2.5, 4.0),
|
||||
@ -355,7 +355,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
leg_f: match (body.species, body.body_type) {
|
||||
(Grolgar, _) => (7.5, -5.5, -1.0),
|
||||
(Saber, _) => (7.0, -4.0, -2.5),
|
||||
(Tuskram, _) => (6.0, -6.5, -4.0),
|
||||
(Tuskram, _) => (8.5, -4.5, -2.0),
|
||||
(Lion, _) => (6.5, -6.5, -1.5),
|
||||
(Tarasque, _) => (7.0, -8.0, -6.0),
|
||||
(Tiger, _) => (6.0, -6.0, -1.5),
|
||||
@ -385,7 +385,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
leg_b: match (body.species, body.body_type) {
|
||||
(Grolgar, _) => (6.0, -6.5, -4.0),
|
||||
(Saber, _) => (6.0, -7.0, -3.5),
|
||||
(Tuskram, _) => (5.0, -4.5, -2.5),
|
||||
(Tuskram, _) => (6.0, -5.5, -2.5),
|
||||
(Lion, _) => (6.0, -5.0, -1.5),
|
||||
(Tarasque, _) => (6.0, -6.5, -6.5),
|
||||
(Tiger, _) => (6.0, -7.0, -1.0),
|
||||
@ -415,7 +415,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
feet_f: match (body.species, body.body_type) {
|
||||
(Grolgar, _) => (0.0, 0.0, -4.0),
|
||||
(Saber, _) => (1.0, -3.5, -2.5),
|
||||
(Tuskram, _) => (0.5, 0.5, -3.0),
|
||||
(Tuskram, _) => (-1.0, -1.5, -6.0),
|
||||
(Lion, _) => (0.5, 0.5, -3.5),
|
||||
(Tarasque, _) => (1.0, 0.0, -3.0),
|
||||
(Tiger, _) => (0.5, 0.0, -4.5),
|
||||
@ -445,7 +445,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
||||
feet_b: match (body.species, body.body_type) {
|
||||
(Grolgar, _) => (0.5, -1.5, -3.0),
|
||||
(Saber, _) => (1.0, -1.0, -1.0),
|
||||
(Tuskram, _) => (0.5, -1.0, -2.5),
|
||||
(Tuskram, _) => (0.5, -1.0, -3.0),
|
||||
(Lion, _) => (0.5, -1.0, -3.0),
|
||||
(Tarasque, _) => (1.5, -1.0, -2.5),
|
||||
(Tiger, _) => (0.5, -1.0, -4.0),
|
||||
|
@ -160,7 +160,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
Entry {
|
||||
make_entity: |pos, rng| {
|
||||
EntityInfo::at(pos)
|
||||
.with_body(match rng.gen_range(0..5) {
|
||||
.with_body(match rng.gen_range(0..4) {
|
||||
0 => {
|
||||
bird_medium::Body::random_with(rng, &bird_medium::Species::Eagle).into()
|
||||
},
|
||||
@ -202,7 +202,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::Tarasque,
|
||||
@ -216,6 +216,10 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
2 => {
|
||||
theropod::Body::random_with(rng, &theropod::Species::Woodraptor).into()
|
||||
},
|
||||
3 => {
|
||||
quadruped_low::Body::random_with(rng, &quadruped_low::Species::Deadwood)
|
||||
.into()
|
||||
},
|
||||
_ => quadruped_medium::Body::random_with(
|
||||
rng,
|
||||
&quadruped_medium::Species::Saber,
|
||||
@ -665,7 +669,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
Entry {
|
||||
make_entity: |pos, rng| {
|
||||
EntityInfo::at(pos)
|
||||
.with_body(match rng.gen_range(0..2) {
|
||||
.with_body(match rng.gen_range(0..4) {
|
||||
0 => quadruped_medium::Body::random_with(
|
||||
rng,
|
||||
&quadruped_medium::Species::Bonerattler,
|
||||
@ -806,9 +810,12 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
Entry {
|
||||
make_entity: |pos, rng| {
|
||||
EntityInfo::at(pos)
|
||||
.with_body(match rng.gen_range(0..2) {
|
||||
.with_body(match rng.gen_range(0..3) {
|
||||
0 => fish_medium::Body::random_with(rng, &fish_medium::Species::Marlin)
|
||||
.into(),
|
||||
1 => {
|
||||
fish_small::Body::random_with(rng, &fish_small::Species::Piranha).into()
|
||||
},
|
||||
_ => fish_small::Body::random_with(rng, &fish_small::Species::Clownfish)
|
||||
.into(),
|
||||
})
|
||||
|
Loading…
Reference in New Issue
Block a user