mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Merge branch 'slipped/tweaks' into 'master'
more spots See merge request veloren/veloren!2806
This commit is contained in:
commit
7538f29b9e
13
assets/common/entity/spot/gnome/spear.ron
Normal file
13
assets/common/entity/spot/gnome/spear.ron
Normal file
@ -0,0 +1,13 @@
|
||||
EntityConfig (
|
||||
name: Name("Gnome"),
|
||||
body: RandomWith("gnome"),
|
||||
alignment: Alignment(Wild),
|
||||
|
||||
loot: LootTable("common.loot_tables.dungeon.tier-4.enemy"),
|
||||
|
||||
hands: TwoHanded(Item("common.items.npc_weapons.biped_small.myrmidon.wooden_spear")),
|
||||
|
||||
meta: [
|
||||
LoadoutAsset("common.loadout.spots.gnome"),
|
||||
],
|
||||
)
|
@ -9,5 +9,6 @@ EntityConfig (
|
||||
|
||||
meta: [
|
||||
LoadoutAsset("common.loadout.dungeon.tier-4.myrmidon"),
|
||||
|
||||
],
|
||||
)
|
||||
|
24
assets/common/entity/spot/pirate.ron
Normal file
24
assets/common/entity/spot/pirate.ron
Normal file
@ -0,0 +1,24 @@
|
||||
EntityConfig (
|
||||
name: Name("Pirate"),
|
||||
body: Exact(Humanoid(Body(
|
||||
species: Human,
|
||||
body_type: Female,
|
||||
hair_style: 2,
|
||||
beard: 0,
|
||||
eyes: 0,
|
||||
accessory: 0,
|
||||
hair_color: 0,
|
||||
skin: 0,
|
||||
eye_color: 0,
|
||||
))),
|
||||
alignment: Alignment(Enemy),
|
||||
|
||||
loot: LootTable("common.loot_tables.creature.biped_large.saurok"),
|
||||
|
||||
hands: Paired(Item("common.items.weapons.sword_1h.iron-2")),
|
||||
|
||||
meta: [
|
||||
SkillSetAsset("common.skillset.dungeon.tier-5.sword"),
|
||||
LoadoutAsset("common.loadout.spots.pirate"),
|
||||
],
|
||||
)
|
19
assets/common/items/armor/pirate/belt.ron
Normal file
19
assets/common/items/armor/pirate/belt.ron
Normal file
@ -0,0 +1,19 @@
|
||||
ItemDef(
|
||||
name: "Pirate Belt",
|
||||
description: "",
|
||||
kind: Armor((
|
||||
kind: Belt("Pirate"),
|
||||
stats: (
|
||||
protection: Normal(8.0),
|
||||
poise_resilience: Normal(1.0),
|
||||
energy_max: 20,
|
||||
energy_reward: 0.025,
|
||||
crit_power: 0.02,
|
||||
stealth: 0.0,
|
||||
),
|
||||
)),
|
||||
quality: Epic,
|
||||
tags: [
|
||||
|
||||
],
|
||||
)
|
19
assets/common/items/armor/pirate/chest.ron
Normal file
19
assets/common/items/armor/pirate/chest.ron
Normal file
@ -0,0 +1,19 @@
|
||||
ItemDef(
|
||||
name: "Pirate Jacket",
|
||||
description: "",
|
||||
kind: Armor((
|
||||
kind: Chest("Pirate"),
|
||||
stats: (
|
||||
protection: Normal(48.0),
|
||||
poise_resilience: Normal(6.0),
|
||||
energy_max: 135,
|
||||
energy_reward: 0.135,
|
||||
crit_power: 0.125,
|
||||
stealth: 0.0,
|
||||
),
|
||||
)),
|
||||
quality: Epic,
|
||||
tags: [
|
||||
|
||||
],
|
||||
)
|
19
assets/common/items/armor/pirate/foot.ron
Normal file
19
assets/common/items/armor/pirate/foot.ron
Normal file
@ -0,0 +1,19 @@
|
||||
ItemDef(
|
||||
name: "Pirate Boots",
|
||||
description: "",
|
||||
kind: Armor((
|
||||
kind: Foot("Pirate"),
|
||||
stats: (
|
||||
protection: Normal(16.0),
|
||||
poise_resilience: Normal(2.0),
|
||||
energy_max: 45,
|
||||
energy_reward: 0.045,
|
||||
crit_power: 0.04,
|
||||
stealth: 0.0,
|
||||
),
|
||||
)),
|
||||
quality: Epic,
|
||||
tags: [
|
||||
|
||||
],
|
||||
)
|
19
assets/common/items/armor/pirate/hand.ron
Normal file
19
assets/common/items/armor/pirate/hand.ron
Normal file
@ -0,0 +1,19 @@
|
||||
ItemDef(
|
||||
name: "Pirate Gloves",
|
||||
description: "",
|
||||
kind: Armor((
|
||||
kind: Hand("Pirate"),
|
||||
stats: (
|
||||
protection: Normal(16.0),
|
||||
poise_resilience: Normal(2.0),
|
||||
energy_max: 45,
|
||||
energy_reward: 0.045,
|
||||
crit_power: 0.04,
|
||||
stealth: 0.0,
|
||||
),
|
||||
)),
|
||||
quality: Epic,
|
||||
tags: [
|
||||
|
||||
],
|
||||
)
|
19
assets/common/items/armor/pirate/hat.ron
Normal file
19
assets/common/items/armor/pirate/hat.ron
Normal file
@ -0,0 +1,19 @@
|
||||
ItemDef(
|
||||
name: "Pirate Hat",
|
||||
description: "",
|
||||
kind: Armor((
|
||||
kind: Head("Pirate"),
|
||||
stats: (
|
||||
protection: Normal(32.0),
|
||||
poise_resilience: Normal(5.0),
|
||||
energy_max: 90,
|
||||
energy_reward: 0.1,
|
||||
crit_power: 0.08,
|
||||
stealth: 0.0,
|
||||
),
|
||||
)),
|
||||
quality: Epic,
|
||||
tags: [
|
||||
|
||||
],
|
||||
)
|
19
assets/common/items/armor/pirate/pants.ron
Normal file
19
assets/common/items/armor/pirate/pants.ron
Normal file
@ -0,0 +1,19 @@
|
||||
ItemDef(
|
||||
name: "Pirate Pants",
|
||||
description: "",
|
||||
kind: Armor((
|
||||
kind: Pants("Pirate"),
|
||||
stats: (
|
||||
protection: Normal(32.0),
|
||||
poise_resilience: Normal(4.0),
|
||||
energy_max: 90,
|
||||
energy_reward: 0.1,
|
||||
crit_power: 0.08,
|
||||
stealth: 0.0,
|
||||
),
|
||||
)),
|
||||
quality: Epic,
|
||||
tags: [
|
||||
|
||||
],
|
||||
)
|
19
assets/common/items/armor/pirate/shoulder.ron
Normal file
19
assets/common/items/armor/pirate/shoulder.ron
Normal file
@ -0,0 +1,19 @@
|
||||
ItemDef(
|
||||
name: "Pirate Mantle",
|
||||
description: "",
|
||||
kind: Armor((
|
||||
kind: Shoulder("Pirate"),
|
||||
stats: (
|
||||
protection: Normal(32.0),
|
||||
poise_resilience: Normal(5.0),
|
||||
energy_max: 90,
|
||||
energy_reward: 0.1,
|
||||
crit_power: 0.08,
|
||||
stealth: 0.0,
|
||||
),
|
||||
)),
|
||||
quality: Epic,
|
||||
tags: [
|
||||
|
||||
],
|
||||
)
|
@ -14,6 +14,6 @@ ItemDef(
|
||||
)),
|
||||
quality: Epic,
|
||||
tags: [
|
||||
Cultist,
|
||||
|
||||
],
|
||||
)
|
||||
|
@ -14,6 +14,6 @@ ItemDef(
|
||||
)),
|
||||
quality: Epic,
|
||||
tags: [
|
||||
Cultist,
|
||||
|
||||
],
|
||||
)
|
||||
|
@ -14,6 +14,6 @@ ItemDef(
|
||||
)),
|
||||
quality: Epic,
|
||||
tags: [
|
||||
Cultist,
|
||||
|
||||
],
|
||||
)
|
||||
|
@ -14,6 +14,6 @@ ItemDef(
|
||||
)),
|
||||
quality: Epic,
|
||||
tags: [
|
||||
Cultist,
|
||||
|
||||
],
|
||||
)
|
||||
|
@ -14,6 +14,6 @@ ItemDef(
|
||||
)),
|
||||
quality: Epic,
|
||||
tags: [
|
||||
Cultist,
|
||||
|
||||
],
|
||||
)
|
||||
|
@ -14,6 +14,6 @@ ItemDef(
|
||||
)),
|
||||
quality: Epic,
|
||||
tags: [
|
||||
Cultist,
|
||||
|
||||
],
|
||||
)
|
||||
|
@ -14,6 +14,6 @@ ItemDef(
|
||||
)),
|
||||
quality: Epic,
|
||||
tags: [
|
||||
Cultist,
|
||||
|
||||
],
|
||||
)
|
||||
|
@ -14,6 +14,6 @@ ItemDef(
|
||||
)),
|
||||
quality: Epic,
|
||||
tags: [
|
||||
Cultist,
|
||||
|
||||
],
|
||||
)
|
||||
|
@ -0,0 +1,17 @@
|
||||
ItemDef(
|
||||
name: "Gnome",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor((
|
||||
kind: Chest("Gnome"),
|
||||
stats: (
|
||||
protection: Normal(36.0),
|
||||
poise_resilience: Normal(1.0),
|
||||
energy_max: 0,
|
||||
energy_reward: 0.0,
|
||||
crit_power: 0.0,
|
||||
stealth: 0.0,
|
||||
),
|
||||
)),
|
||||
quality: Low,
|
||||
tags: [],
|
||||
)
|
@ -0,0 +1,17 @@
|
||||
ItemDef(
|
||||
name: "Gnome",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor((
|
||||
kind: Foot("Gnome"),
|
||||
stats: (
|
||||
protection: Normal(1.0),
|
||||
poise_resilience: Normal(1.0),
|
||||
energy_max: 0,
|
||||
energy_reward: 0.0,
|
||||
crit_power: 0.0,
|
||||
stealth: 0.0,
|
||||
),
|
||||
)),
|
||||
quality: Low,
|
||||
tags: [],
|
||||
)
|
@ -0,0 +1,17 @@
|
||||
ItemDef(
|
||||
name: "Gnome",
|
||||
description: "Ceremonial attire used by members..",
|
||||
kind: Armor((
|
||||
kind: Hand("Gnome"),
|
||||
stats: (
|
||||
protection: Normal(1.0),
|
||||
poise_resilience: Normal(1.0),
|
||||
energy_max: 0,
|
||||
energy_reward: 0.0,
|
||||
crit_power: 0.0,
|
||||
stealth: 0.0,
|
||||
),
|
||||
)),
|
||||
quality: Low,
|
||||
tags: [],
|
||||
)
|
@ -0,0 +1,17 @@
|
||||
ItemDef(
|
||||
name: "Gnome",
|
||||
description: "Ceremonial attire used by members.",
|
||||
kind: Armor((
|
||||
kind: Head("Gnome"),
|
||||
stats: (
|
||||
protection: Normal(1.0),
|
||||
poise_resilience: Normal(1.0),
|
||||
energy_max: 0,
|
||||
energy_reward: 0.0,
|
||||
crit_power: 0.0,
|
||||
stealth: 0.0,
|
||||
),
|
||||
)),
|
||||
quality: Low,
|
||||
tags: [],
|
||||
)
|
@ -0,0 +1,17 @@
|
||||
ItemDef(
|
||||
name: "Gnome",
|
||||
description: "Ceremonial attire used by members..",
|
||||
kind: Armor((
|
||||
kind: Pants("Gnome"),
|
||||
stats: (
|
||||
protection: Normal(1.0),
|
||||
poise_resilience: Normal(1.0),
|
||||
energy_max: 0,
|
||||
energy_reward: 0.0,
|
||||
crit_power: 0.0,
|
||||
stealth: 0.0,
|
||||
),
|
||||
)),
|
||||
quality: Low,
|
||||
tags: [],
|
||||
)
|
7
assets/common/loadout/spots/gnome.ron
Normal file
7
assets/common/loadout/spots/gnome.ron
Normal file
@ -0,0 +1,7 @@
|
||||
({
|
||||
Armor(Head): Item("common.items.npc_armor.biped_small.gnome.head.gnome"),
|
||||
Armor(Feet): Item("common.items.npc_armor.biped_small.gnome.foot.gnome"),
|
||||
Armor(Hands): Item("common.items.npc_armor.biped_small.gnome.hand.gnome"),
|
||||
Armor(Chest): Item("common.items.npc_armor.biped_small.gnome.chest.gnome"),
|
||||
Armor(Legs): Item("common.items.npc_armor.biped_small.gnome.pants.gnome"),
|
||||
})
|
10
assets/common/loadout/spots/pirate.ron
Normal file
10
assets/common/loadout/spots/pirate.ron
Normal file
@ -0,0 +1,10 @@
|
||||
({
|
||||
Armor(Head): Item("common.items.armor.pirate.hat"),
|
||||
Armor(Chest): Item("common.items.armor.pirate.chest"),
|
||||
Armor(Shoulders): Item("common.items.armor.pirate.shoulder"),
|
||||
Armor(Belt): Item("common.items.armor.pirate.belt"),
|
||||
Armor(Hands): Item("common.items.armor.pirate.hand"),
|
||||
Armor(Legs): Item("common.items.armor.pirate.pants"),
|
||||
Armor(Feet): Item("common.items.armor.pirate.foot"),
|
||||
Lantern: Item("common.items.lantern.black_0"),
|
||||
})
|
BIN
assets/voxygen/voxel/armor/pirate/belt.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/armor/pirate/belt.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/armor/pirate/chest.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/armor/pirate/chest.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/armor/pirate/foot.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/armor/pirate/foot.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/armor/pirate/hand.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/armor/pirate/hand.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/armor/pirate/hat.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/armor/pirate/hat.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/armor/pirate/pants.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/armor/pirate/pants.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/armor/pirate/shoulder.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/armor/pirate/shoulder.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -100,6 +100,14 @@
|
||||
vox_spec: ("armor.savage.belt", (-4.0, -4.0, 1.0)),
|
||||
color: None
|
||||
),
|
||||
"Witch":(
|
||||
vox_spec: ("armor.witch.belt", (-4.0, -3.5, -2.0)),
|
||||
color: None
|
||||
),
|
||||
"Pirate":(
|
||||
vox_spec: ("armor.pirate.belt", (-4.0, -4.0, 2.5)),
|
||||
color: None
|
||||
),
|
||||
"Linen":(
|
||||
vox_spec: ("armor.cloth.linen.belt", (-4.0, -4.0, 0.0)),
|
||||
color: None
|
||||
@ -112,10 +120,6 @@
|
||||
vox_spec: ("armor.cloth.silken.belt", (-4.0, -3.5, -3.0)),
|
||||
color: None
|
||||
),
|
||||
"Witch":(
|
||||
vox_spec: ("armor.witch.belt", (-4.0, -3.5, -3.0)),
|
||||
color: None
|
||||
),
|
||||
"Druid":(
|
||||
vox_spec: ("armor.cloth.druid.belt", (-4.0, -4.0, -0.5)),
|
||||
color: None
|
||||
|
@ -170,6 +170,14 @@
|
||||
vox_spec: ("armor.hide.savage.chest", (-7.0, -4.0, 1.0)),
|
||||
color: None
|
||||
),
|
||||
"Witch": (
|
||||
vox_spec: ("armor.witch.chest", (-7.0, -4.0, 2.0)),
|
||||
color: None
|
||||
),
|
||||
"Pirate": (
|
||||
vox_spec: ("armor.pirate.chest", (-7.0, -4.0, 2.0)),
|
||||
color: None
|
||||
),
|
||||
"Linen": (
|
||||
vox_spec: ("armor.cloth.linen.chest", (-7.0, -4.0, 2.0)),
|
||||
color: None
|
||||
@ -182,10 +190,6 @@
|
||||
vox_spec: ("armor.cloth.silken.chest", (-7.0, -4.0, 1.0)),
|
||||
color: None
|
||||
),
|
||||
"Witch": (
|
||||
vox_spec: ("armor.witch.chest", (-7.0, -4.0, 1.0)),
|
||||
color: None
|
||||
),
|
||||
"Druid": (
|
||||
vox_spec: ("armor.cloth.druid.chest", (-7.0, -4.0, 2.0)),
|
||||
color: None
|
||||
|
@ -100,6 +100,14 @@
|
||||
vox_spec: ("armor.savage.foot", (-2.5, -3.5, -2.0)),
|
||||
color: None
|
||||
),
|
||||
"Witch": (
|
||||
vox_spec: ("armor.witch.foot", (-2.5, -3.5, -2.0)),
|
||||
color: None
|
||||
),
|
||||
"Pirate": (
|
||||
vox_spec: ("armor.pirate.foot", (-2.5, -3.5, -2.0)),
|
||||
color: None
|
||||
),
|
||||
"Linen": (
|
||||
vox_spec: ("armor.cloth.linen.foot", (-2.5, -3.5, -2.0)),
|
||||
color: None
|
||||
@ -112,10 +120,6 @@
|
||||
vox_spec: ("armor.cloth.silken.foot", (-2.5, -3.5, -2.0)),
|
||||
color: None
|
||||
),
|
||||
"Witch": (
|
||||
vox_spec: ("armor.witch.foot", (-2.5, -3.5, -2.0)),
|
||||
color: None
|
||||
),
|
||||
"Druid": (
|
||||
vox_spec: ("armor.cloth.druid.foot", (-2.5, -3.5, -2.0)),
|
||||
color: None
|
||||
|
@ -220,6 +220,26 @@
|
||||
color: None
|
||||
)
|
||||
),
|
||||
"Witch": (
|
||||
left: (
|
||||
vox_spec: ("armor.witch.hand", (-2.5, -2.5, -4.0)),
|
||||
color: None
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("armor.witch.hand", (-1.5, -2.5, -4.0)),
|
||||
color: None
|
||||
)
|
||||
),
|
||||
"Pirate": (
|
||||
left: (
|
||||
vox_spec: ("armor.pirate.hand", (-2.5, -2.5, -4.0)),
|
||||
color: None
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("armor.pirate.hand", (-1.5, -2.5, -4.0)),
|
||||
color: None
|
||||
)
|
||||
),
|
||||
"Linen": (
|
||||
left: (
|
||||
vox_spec: ("armor.cloth.linen.hand", (-1.5, -2.0, -3.0)),
|
||||
@ -250,16 +270,6 @@
|
||||
color: None
|
||||
)
|
||||
),
|
||||
"Witch": (
|
||||
left: (
|
||||
vox_spec: ("armor.witch.hand", (-2.5, -2.5, -4.0)),
|
||||
color: None
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("armor.witch.hand", (-1.5, -2.5, -4.0)),
|
||||
color: None
|
||||
)
|
||||
),
|
||||
"Druid": (
|
||||
left: (
|
||||
vox_spec: ("armor.cloth.druid.hand", (-2.5, -1.0, -3.0)),
|
||||
|
@ -32,5 +32,9 @@
|
||||
vox_spec: ("armor.witch.hat", (-2.0, -2.0, 5.0)),
|
||||
color: None
|
||||
),
|
||||
(Human, "Pirate"): (
|
||||
vox_spec: ("armor.pirate.hat", (-2.0, -2.0, 5.0)),
|
||||
color: None
|
||||
),
|
||||
}
|
||||
))
|
||||
|
@ -128,6 +128,14 @@
|
||||
vox_spec: ("armor.savage.pants", (-5.0, -4.0, 0.5)),
|
||||
color: None
|
||||
),
|
||||
"Witch": (
|
||||
vox_spec: ("armor.witch.pants", (-5.0, -4.0, 0.5)),
|
||||
color: None
|
||||
),
|
||||
"Pirate": (
|
||||
vox_spec: ("armor.pirate.pants", (-5.0, -4.0, 1.5)),
|
||||
color: None
|
||||
),
|
||||
"Linen": (
|
||||
vox_spec: ("armor.cloth.linen.pants", (-5.0, -4.0, 0.5)),
|
||||
color: None
|
||||
@ -140,10 +148,6 @@
|
||||
vox_spec: ("armor.cloth.silken.pants", (-5.0, -4.0, 0.5)),
|
||||
color: None
|
||||
),
|
||||
"Witch": (
|
||||
vox_spec: ("armor.witch.pants", (-5.0, -4.0, 0.5)),
|
||||
color: None
|
||||
),
|
||||
"Druid": (
|
||||
vox_spec: ("armor.cloth.druid.pants", (-5.0, -4.0, 0.5)),
|
||||
color: None
|
||||
|
@ -301,6 +301,26 @@
|
||||
color: None
|
||||
)
|
||||
),
|
||||
"Witch": (
|
||||
left: (
|
||||
vox_spec: ("armor.witch.shoulder", (-5.0, -4.0 , -2.0)),
|
||||
color: None
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("armor.witch.shoulder", (-1.0, -4.0 , -2.0)),
|
||||
color: None
|
||||
)
|
||||
),
|
||||
"Pirate": (
|
||||
left: (
|
||||
vox_spec: ("armor.pirate.shoulder", (-5.0, -4.0 , -2.0)),
|
||||
color: None
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("armor.empty", (-3.0, -3.5, 1.0)),
|
||||
color: None
|
||||
)
|
||||
),
|
||||
"Linen": (
|
||||
left: (
|
||||
vox_spec: ("armor.cloth.linen.shoulder", (-3.5, -4.0 , -1.0)),
|
||||
@ -331,16 +351,6 @@
|
||||
color: None
|
||||
)
|
||||
),
|
||||
"Witch": (
|
||||
left: (
|
||||
vox_spec: ("armor.witch.shoulder", (-5.0, -4.0 , -2.0)),
|
||||
color: None
|
||||
),
|
||||
right: (
|
||||
vox_spec: ("armor.witch.shoulder", (-1.0, -4.0, -2.0)),
|
||||
color: None
|
||||
)
|
||||
),
|
||||
"Druid": (
|
||||
left: (
|
||||
vox_spec: ("armor.cloth.druid.shoulder", (-4.5, -4.0 , -3.5)),
|
||||
|
12
assets/world/manifests/spots/arch.ron
Normal file
12
assets/world/manifests/spots/arch.ron
Normal file
@ -0,0 +1,12 @@
|
||||
#![enable(unwrap_newtypes)]
|
||||
|
||||
[
|
||||
(
|
||||
specifier: "world.structure.natural.arch",
|
||||
center: (32, 14, 10)
|
||||
),
|
||||
(
|
||||
specifier: "world.structure.natural.arch-1",
|
||||
center: (14, 12, 10)
|
||||
),
|
||||
]
|
8
assets/world/manifests/spots/big-mushroom.ron
Normal file
8
assets/world/manifests/spots/big-mushroom.ron
Normal file
@ -0,0 +1,8 @@
|
||||
#![enable(unwrap_newtypes)]
|
||||
|
||||
[
|
||||
(
|
||||
specifier: "world.structure.natural.big_mushroom",
|
||||
center: (12, 12, 4),
|
||||
),
|
||||
]
|
@ -3,6 +3,6 @@
|
||||
[
|
||||
(
|
||||
specifier: "world.structure.natural.shipwreck",
|
||||
center: (32, 14, 6),
|
||||
center: (32, 14, 16),
|
||||
),
|
||||
]
|
||||
|
8
assets/world/manifests/spots_general/igloo.ron
Normal file
8
assets/world/manifests/spots_general/igloo.ron
Normal file
@ -0,0 +1,8 @@
|
||||
#![enable(unwrap_newtypes)]
|
||||
|
||||
[
|
||||
(
|
||||
specifier: "world.structure.natural.igloo",
|
||||
center: (13, 10, 2),
|
||||
),
|
||||
]
|
16
assets/world/manifests/spots_general/pirate_hideout.ron
Normal file
16
assets/world/manifests/spots_general/pirate_hideout.ron
Normal file
@ -0,0 +1,16 @@
|
||||
#![enable(unwrap_newtypes)]
|
||||
|
||||
[
|
||||
(
|
||||
specifier: "world.structure.natural.pirate_hideout",
|
||||
center: (32, 27, 5),
|
||||
custom_indices: {
|
||||
12: Sprite(Cauldron),
|
||||
10: Sprite(WitchWindow),
|
||||
44: Filled(GlowingRock, (r: 54, g: 180, b: 64)),
|
||||
8: Filled(Air, (r: 255, g: 255, b: 255)),
|
||||
249: Sprite(PotionMinor),
|
||||
251: Sprite(Ember),
|
||||
},
|
||||
),
|
||||
]
|
8
assets/world/manifests/spots_savannah/wolf_burrow.ron
Normal file
8
assets/world/manifests/spots_savannah/wolf_burrow.ron
Normal file
@ -0,0 +1,8 @@
|
||||
#![enable(unwrap_newtypes)]
|
||||
|
||||
[
|
||||
(
|
||||
specifier: "world.structure.natural.wolf_burrow",
|
||||
center: (10, 10, 0),
|
||||
),
|
||||
]
|
BIN
assets/world/structure/natural/arch-1.vox
(Stored with Git LFS)
Normal file
BIN
assets/world/structure/natural/arch-1.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/world/structure/natural/arch.vox
(Stored with Git LFS)
Normal file
BIN
assets/world/structure/natural/arch.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/world/structure/natural/big_mushroom.vox
(Stored with Git LFS)
Normal file
BIN
assets/world/structure/natural/big_mushroom.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/world/structure/natural/dock.vox
(Stored with Git LFS)
Normal file
BIN
assets/world/structure/natural/dock.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/world/structure/natural/igloo.vox
(Stored with Git LFS)
Normal file
BIN
assets/world/structure/natural/igloo.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/world/structure/natural/pirate_hideout.vox
(Stored with Git LFS)
Normal file
BIN
assets/world/structure/natural/pirate_hideout.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/world/structure/natural/wolf_burrow.vox
(Stored with Git LFS)
Normal file
BIN
assets/world/structure/natural/wolf_burrow.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -7,6 +7,7 @@ SpawnEntry (
|
||||
// Casual
|
||||
(5, (1, 1, "common.entity.wild.aggressive.asp")),
|
||||
(5, (1, 1, "common.entity.wild.aggressive.tiger")),
|
||||
(5, (1, 1, "common.entity.wild.aggressive.maneater")),
|
||||
// Rare
|
||||
(1, (1, 1, "common.entity.wild.aggressive.sunlizard")),
|
||||
(1, (1, 1, "common.entity.wild.aggressive.odonto")),
|
||||
|
116
voxygen/anim/src/biped_small/beam.rs
Normal file
116
voxygen/anim/src/biped_small/beam.rs
Normal file
@ -0,0 +1,116 @@
|
||||
use super::{
|
||||
super::{vek::*, Animation},
|
||||
BipedSmallSkeleton, SkeletonAttr,
|
||||
};
|
||||
use common::{comp::item::ToolKind, states::utils::StageSection};
|
||||
use std::f32::consts::PI;
|
||||
|
||||
pub struct BeamAnimation;
|
||||
|
||||
type BeamAnimationDependency = (
|
||||
Option<ToolKind>,
|
||||
Vec3<f32>,
|
||||
Vec3<f32>,
|
||||
Vec3<f32>,
|
||||
f32,
|
||||
Vec3<f32>,
|
||||
f32,
|
||||
Option<StageSection>,
|
||||
f32,
|
||||
);
|
||||
|
||||
impl Animation for BeamAnimation {
|
||||
type Dependency<'a> = BeamAnimationDependency;
|
||||
type Skeleton = BipedSmallSkeleton;
|
||||
|
||||
#[cfg(feature = "use-dyn-lib")]
|
||||
const UPDATE_FN: &'static [u8] = b"biped_small_beam\0";
|
||||
|
||||
#[cfg_attr(feature = "be-dyn-lib", export_name = "biped_small_beam")]
|
||||
|
||||
fn update_skeleton_inner<'a>(
|
||||
skeleton: &Self::Skeleton,
|
||||
(
|
||||
_active_tool_kind,
|
||||
velocity,
|
||||
_orientation,
|
||||
_last_ori,
|
||||
_global_time,
|
||||
_avg_vel,
|
||||
_acc_vel,
|
||||
stage_section,
|
||||
_timer,
|
||||
): Self::Dependency<'a>,
|
||||
anim_time: f32,
|
||||
_rate: &mut f32,
|
||||
s_a: &SkeletonAttr,
|
||||
) -> Self::Skeleton {
|
||||
let mut next = (*skeleton).clone();
|
||||
let speed = Vec2::<f32>::from(velocity).magnitude();
|
||||
|
||||
let fast = (anim_time * 10.0).sin();
|
||||
let fastalt = (anim_time * 10.0 + PI / 2.0).sin();
|
||||
|
||||
let speednorm = speed / 9.4;
|
||||
let speednormcancel = 1.0 - speednorm;
|
||||
|
||||
next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1 + fast * -0.1 * speednormcancel);
|
||||
next.head.orientation = Quaternion::rotation_x(0.45 * speednorm)
|
||||
* Quaternion::rotation_y(fast * 0.07 * speednormcancel);
|
||||
next.chest.position = Vec3::new(
|
||||
0.0,
|
||||
s_a.chest.0,
|
||||
s_a.chest.1 + fastalt * 0.4 * speednormcancel + speednormcancel * -0.5,
|
||||
);
|
||||
|
||||
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)
|
||||
* Quaternion::rotation_z(fast * 0.15 * speednormcancel);
|
||||
|
||||
next.main.position = Vec3::new(0.0, 0.0, 0.0);
|
||||
next.main.orientation = Quaternion::rotation_x(0.0);
|
||||
|
||||
next.hand_l.position = Vec3::new(s_a.grip.0 * 4.0, 0.0, s_a.grip.2);
|
||||
next.hand_r.position = Vec3::new(-s_a.grip.0 * 4.0, 0.0, s_a.grip.2);
|
||||
|
||||
next.hand_l.orientation = Quaternion::rotation_x(0.0);
|
||||
next.hand_r.orientation = Quaternion::rotation_x(0.0);
|
||||
|
||||
let (move1base, move2base, move3) = match stage_section {
|
||||
Some(StageSection::Buildup) => (anim_time.powf(0.25), 0.0, 0.0),
|
||||
Some(StageSection::Action) => (1.0, (anim_time * 4.0).sin(), 0.0),
|
||||
Some(StageSection::Recover) => (1.0, 1.0, anim_time),
|
||||
_ => (0.0, 0.0, 0.0),
|
||||
};
|
||||
let pullback = 1.0 - move3;
|
||||
let move1abs = move1base * pullback;
|
||||
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 + move1abs * -8.0,
|
||||
-4.0 + move1abs * 0.0,
|
||||
3.0 + move1abs * 10.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 + move1abs * 5.0,
|
||||
);
|
||||
|
||||
next.control_l.orientation = Quaternion::rotation_x(PI / 2.0 + move1abs * 0.8)
|
||||
* Quaternion::rotation_y(-0.3)
|
||||
* Quaternion::rotation_z(-0.3);
|
||||
next.control_r.orientation =
|
||||
Quaternion::rotation_x(PI / 2.0 + s_a.grip.0 * 0.2 + move1abs * 0.8)
|
||||
* Quaternion::rotation_y(-0.4 + s_a.grip.0 * 0.2 + move1abs * 0.8)
|
||||
* Quaternion::rotation_z(-0.0 + move1abs * 2.0 + move2base * 0.6);
|
||||
|
||||
next.control.orientation = Quaternion::rotation_x(-0.3 + move1abs * -0.6)
|
||||
* Quaternion::rotation_y(-0.2 * speednorm + move1abs * 0.8)
|
||||
* Quaternion::rotation_z(0.5 + move1abs * 0.6);
|
||||
|
||||
next
|
||||
}
|
||||
}
|
@ -1,4 +1,5 @@
|
||||
pub mod alpha;
|
||||
pub mod beam;
|
||||
pub mod dash;
|
||||
pub mod idle;
|
||||
pub mod run;
|
||||
@ -8,8 +9,8 @@ pub mod wield;
|
||||
|
||||
// Reexports
|
||||
pub use self::{
|
||||
alpha::AlphaAnimation, dash::DashAnimation, idle::IdleAnimation, run::RunAnimation,
|
||||
shoot::ShootAnimation, stunned::StunnedAnimation, wield::WieldAnimation,
|
||||
alpha::AlphaAnimation, beam::BeamAnimation, dash::DashAnimation, idle::IdleAnimation,
|
||||
run::RunAnimation, shoot::ShootAnimation, stunned::StunnedAnimation, wield::WieldAnimation,
|
||||
};
|
||||
|
||||
use super::{make_bone, vek::*, FigureBoneData, Offsets, Skeleton};
|
||||
|
@ -55,13 +55,14 @@ impl Animation for RollAnimation {
|
||||
Some(StageSection::Recover) => (1.0, 1.0, anim_time.powf(0.75)),
|
||||
_ => (0.0, 0.0, 0.0),
|
||||
};
|
||||
let movement1 = movement1base * (1.0 - movement3);
|
||||
let pullback = 1.0 - movement3;
|
||||
let movement1 = movement1base * pullback;
|
||||
next.head.position = Vec3::new(
|
||||
0.0,
|
||||
s_a.head.0 + 3.0 * movement1,
|
||||
s_a.head.0 + 1.5 * movement1,
|
||||
s_a.head.1 - 1.0 * movement1,
|
||||
);
|
||||
next.head.orientation = Quaternion::rotation_x(-0.75 * movement1base + 0.75 * movement2);
|
||||
next.head.orientation = Quaternion::rotation_x(-0.3 * movement1);
|
||||
|
||||
next.chest.position = Vec3::new(0.0, s_a.chest.0, -9.5 * movement1 + s_a.chest.1);
|
||||
next.chest.orientation = Quaternion::rotation_x(-0.2 * movement1);
|
||||
|
@ -2893,6 +2893,37 @@ impl FigureMgr {
|
||||
skeleton_attr,
|
||||
)
|
||||
},
|
||||
CharacterState::RepeaterRanged(s) => {
|
||||
let stage_time = s.timer.as_secs_f32();
|
||||
|
||||
let stage_progress = match s.stage_section {
|
||||
StageSection::Buildup => {
|
||||
stage_time / s.static_data.buildup_duration.as_secs_f32()
|
||||
},
|
||||
StageSection::Recover => {
|
||||
stage_time / s.static_data.recover_duration.as_secs_f32()
|
||||
},
|
||||
|
||||
_ => 0.0,
|
||||
};
|
||||
anim::biped_small::ShootAnimation::update_skeleton(
|
||||
&target_base,
|
||||
(
|
||||
active_tool_kind,
|
||||
rel_vel,
|
||||
ori * anim::vek::Vec3::<f32>::unit_y(),
|
||||
state.last_ori * anim::vek::Vec3::<f32>::unit_y(),
|
||||
time,
|
||||
rel_avg_vel,
|
||||
state.acc_vel,
|
||||
Some(s.stage_section),
|
||||
state.state_time,
|
||||
),
|
||||
stage_progress,
|
||||
&mut state_animation_rate,
|
||||
skeleton_attr,
|
||||
)
|
||||
},
|
||||
CharacterState::BasicRanged(s) => {
|
||||
let stage_time = s.timer.as_secs_f32();
|
||||
|
||||
@ -2924,6 +2955,36 @@ impl FigureMgr {
|
||||
skeleton_attr,
|
||||
)
|
||||
},
|
||||
CharacterState::BasicBeam(s) => {
|
||||
let stage_time = s.timer.as_secs_f32();
|
||||
let stage_progress = match s.stage_section {
|
||||
StageSection::Buildup => {
|
||||
stage_time / s.static_data.buildup_duration.as_secs_f32()
|
||||
},
|
||||
StageSection::Action => s.timer.as_secs_f32(),
|
||||
StageSection::Recover => {
|
||||
stage_time / s.static_data.recover_duration.as_secs_f32()
|
||||
},
|
||||
_ => 0.0,
|
||||
};
|
||||
anim::biped_small::BeamAnimation::update_skeleton(
|
||||
&target_base,
|
||||
(
|
||||
active_tool_kind,
|
||||
rel_vel,
|
||||
ori * anim::vek::Vec3::<f32>::unit_y(),
|
||||
state.last_ori * anim::vek::Vec3::<f32>::unit_y(),
|
||||
time,
|
||||
rel_avg_vel,
|
||||
state.acc_vel,
|
||||
Some(s.stage_section),
|
||||
state.state_time,
|
||||
),
|
||||
stage_progress,
|
||||
&mut state_animation_rate,
|
||||
skeleton_attr,
|
||||
)
|
||||
},
|
||||
CharacterState::ComboMelee(s) => {
|
||||
let stage_index = (s.stage - 1) as usize;
|
||||
let stage_time = s.timer.as_secs_f32();
|
||||
|
@ -37,6 +37,10 @@ pub enum Spot {
|
||||
MyrmidonTemple,
|
||||
GnarlingTotem,
|
||||
WitchHouse,
|
||||
PirateHideout,
|
||||
BigMushroom,
|
||||
WolfBurrow,
|
||||
Igloo,
|
||||
//BanditCamp,
|
||||
//EnchantedRock,
|
||||
//TowerRuin,
|
||||
@ -50,6 +54,7 @@ pub enum Spot {
|
||||
LionRock,
|
||||
TreeStumpForest,
|
||||
DesertBones,
|
||||
Arch,
|
||||
AirshipCrash,
|
||||
FruitTree,
|
||||
Shipwreck,
|
||||
@ -77,6 +82,34 @@ impl Spot {
|
||||
},
|
||||
false,
|
||||
);
|
||||
Self::generate_spots(
|
||||
Spot::Igloo,
|
||||
world,
|
||||
100.0,
|
||||
|g, c| {
|
||||
g < 0.5
|
||||
&& !c.near_cliffs()
|
||||
&& !c.river.near_water()
|
||||
&& !c.path.0.is_way()
|
||||
&& c.sites.is_empty()
|
||||
&& matches!(c.get_biome(), Snowland)
|
||||
},
|
||||
false,
|
||||
);
|
||||
Self::generate_spots(
|
||||
Spot::PirateHideout,
|
||||
world,
|
||||
3.0,
|
||||
|g, c| {
|
||||
g < 0.25
|
||||
&& !c.near_cliffs()
|
||||
&& !c.river.near_water()
|
||||
&& !c.path.0.is_way()
|
||||
&& c.sites.is_empty()
|
||||
&& matches!(c.get_biome(), Forest | Jungle)
|
||||
},
|
||||
false,
|
||||
);
|
||||
Self::generate_spots(
|
||||
Spot::DwarvenGrave,
|
||||
world,
|
||||
@ -162,6 +195,20 @@ impl Spot {
|
||||
},
|
||||
false,
|
||||
);
|
||||
Self::generate_spots(
|
||||
Spot::WolfBurrow,
|
||||
world,
|
||||
10.0,
|
||||
|g, c| {
|
||||
g < 0.25
|
||||
&& !c.near_cliffs()
|
||||
&& !c.river.near_water()
|
||||
&& !c.path.0.is_way()
|
||||
&& c.sites.is_empty()
|
||||
&& matches!(c.get_biome(), Forest | Grassland)
|
||||
},
|
||||
false,
|
||||
);
|
||||
Self::generate_spots(
|
||||
Spot::TreeStumpForest,
|
||||
world,
|
||||
@ -190,6 +237,20 @@ impl Spot {
|
||||
},
|
||||
false,
|
||||
);
|
||||
Self::generate_spots(
|
||||
Spot::Arch,
|
||||
world,
|
||||
2.0,
|
||||
|g, c| {
|
||||
g < 0.25
|
||||
&& !c.near_cliffs()
|
||||
&& !c.river.near_water()
|
||||
&& !c.path.0.is_way()
|
||||
&& c.sites.is_empty()
|
||||
&& matches!(c.get_biome(), Desert)
|
||||
},
|
||||
false,
|
||||
);
|
||||
Self::generate_spots(
|
||||
Spot::AirshipCrash,
|
||||
world,
|
||||
@ -218,6 +279,20 @@ impl Spot {
|
||||
},
|
||||
true,
|
||||
);
|
||||
Self::generate_spots(
|
||||
Spot::BigMushroom,
|
||||
world,
|
||||
20.0,
|
||||
|g, c| {
|
||||
g < 0.25
|
||||
&& !c.near_cliffs()
|
||||
&& !c.river.near_water()
|
||||
&& !c.path.0.is_way()
|
||||
&& c.sites.is_empty()
|
||||
&& matches!(c.get_biome(), Forest)
|
||||
},
|
||||
true,
|
||||
);
|
||||
Self::generate_spots(
|
||||
Spot::Shipwreck,
|
||||
world,
|
||||
@ -342,6 +417,24 @@ pub fn apply_spots_to(canvas: &mut Canvas, _dynamic_rng: &mut impl Rng) {
|
||||
(0..3, "common.entity.wild.peaceful.frog"),
|
||||
],
|
||||
},
|
||||
Spot::Igloo => SpotConfig {
|
||||
base_structures: Some("spots_general.igloo"),
|
||||
entity_radius: 2.0,
|
||||
entities: &[
|
||||
(3..5, "common.entity.dungeon.tier-1.spear"),
|
||||
(3..5, "common.entity.dungeon.tier-1.bow"),
|
||||
(2..3, "common.entity.dungeon.tier-1.staff"),
|
||||
],
|
||||
},
|
||||
Spot::PirateHideout => SpotConfig {
|
||||
base_structures: Some("spots_general.pirate_hideout"),
|
||||
entity_radius: 70.0,
|
||||
entities: &[
|
||||
(12..16, "common.entity.spot.pirate"),
|
||||
(2..4, "common.entity.wild.peaceful.parrot"),
|
||||
(4..6, "common.entity.wild.peaceful.rat"),
|
||||
],
|
||||
},
|
||||
Spot::GnarlingTotem => SpotConfig {
|
||||
base_structures: Some("spots_grasslands.gnarling_totem"),
|
||||
entity_radius: 30.0,
|
||||
@ -357,16 +450,26 @@ pub fn apply_spots_to(canvas: &mut Canvas, _dynamic_rng: &mut impl Rng) {
|
||||
entity_radius: 20.0,
|
||||
entities: &[(5..8, "common.entity.wild.aggressive.lion")],
|
||||
},
|
||||
Spot::WolfBurrow => SpotConfig {
|
||||
base_structures: Some("spots_savannah.wolf_burrow"),
|
||||
entity_radius: 0.2,
|
||||
entities: &[(5..8, "common.entity.wild.aggressive.wolf")],
|
||||
},
|
||||
Spot::TreeStumpForest => SpotConfig {
|
||||
base_structures: Some("trees.oak_stumps"),
|
||||
entity_radius: 30.0,
|
||||
entities: &[(0..2, "common.entity.wild.aggressive.deadwood")],
|
||||
},
|
||||
Spot::DesertBones => SpotConfig {
|
||||
base_structures: Some("trees.quirky_dry"),
|
||||
base_structures: Some("spots.bones"),
|
||||
entity_radius: 40.0,
|
||||
entities: &[(4..9, "common.entity.wild.aggressive.hyena")],
|
||||
},
|
||||
Spot::Arch => SpotConfig {
|
||||
base_structures: Some("spots.arch"),
|
||||
entity_radius: 50.0,
|
||||
entities: &[(2..3, "common.entity.wild.aggressive.ngoubou")],
|
||||
},
|
||||
Spot::AirshipCrash => SpotConfig {
|
||||
base_structures: Some("trees.airship_crash"),
|
||||
entity_radius: 20.0,
|
||||
@ -377,6 +480,11 @@ pub fn apply_spots_to(canvas: &mut Canvas, _dynamic_rng: &mut impl Rng) {
|
||||
entity_radius: 2.0,
|
||||
entities: &[(0..2, "common.entity.wild.peaceful.bear")],
|
||||
},
|
||||
Spot::BigMushroom => SpotConfig {
|
||||
base_structures: Some("spots.big-mushroom"),
|
||||
entity_radius: 40.0,
|
||||
entities: &[(7..10, "common.entity.spot.gnome.spear")],
|
||||
},
|
||||
Spot::Shipwreck => SpotConfig {
|
||||
base_structures: Some("spots.water.shipwreck"),
|
||||
entity_radius: 2.0,
|
||||
|
Loading…
Reference in New Issue
Block a user