Merge branch 'combat' into 'master'

Combat rewrite

See merge request veloren/veloren!855
This commit is contained in:
Imbris 2020-04-01 21:29:19 +00:00
commit f34d4b379e
923 changed files with 11698 additions and 6895 deletions

8
.gitignore vendored
View file

@ -23,11 +23,6 @@
.project
# Vim
**/*.swp
**/*.vi
# Veloren
*.rar
*.log
@ -40,3 +35,6 @@ todo.txt
# direnv
/.envrc
*.bat
# Mac
.DS_Store

View file

@ -31,6 +31,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Added Italian translation
- Added Portuguese translation
- Added Turkish translation
- Complete rewrite of the combat system into a state machine
- Abilities like Dash and Triplestrike
- Armor can now be eqipped as items
- Fireball explosions
- Inventory supports stacking
- Many new armors and weapons to find in chests
- Fleshed out "attack" animation into alpha, beta and spin type attacks
- Fleshed out range attack into charging and shooting anims for staff/bow
- Customized attack animation for hammers and axes
### Changed
@ -39,6 +48,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fixed /give_exp ignoring player argument
- Extend run sfx to small animals to prevent sneak attacks by geese.
- Decreased clientside latency of ServerEvent mediated effects (e.g. projectiles, inventory operations, etc)
- Started changing the visual theme of the UI
- Merge of the Bag and Character-Screen
- Merge of the Map and Questlog
- Overhauled icon art
- Asset cleanup to lower client-size
- Rewrote the humanoid skeleton to be more ideal for attack animations
### Removed

676
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,8 @@
Item(
name: "Apple",
description: "Red and juicy.",
description: "Red and juicy.
Restores 20 Health.",
kind: Consumable(
kind: Apple,
effect: Health((

View file

@ -0,0 +1,8 @@
Item(
name: "Assassin Belt",
description: "Only the best for a member of the creed.",
kind: Armor(
kind: Belt(Assassin),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Blue Linen Belt",
description: "Soft and warm",
kind: Armor(
kind: Belt(ClothBlue0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Green Linen Belt",
description: "Soft and warm",
kind: Armor(
kind: Belt(ClothGreen0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Purple Linen Belt",
description: "Soft and warm",
kind: Armor(
kind: Belt(ClothPurple0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Swift Belt",
description: "Swift like the wind.",
kind: Armor(
kind: Belt(Leather0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Iron Belt",
description: "WIP",
kind: Armor(
kind: Belt(Plate0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Assassin Chest",
description: "Only the best for a member of the creed.",
kind: Armor(
kind: Chest(Assassin),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Blue Linen Chest",
description: "Soft and warm",
kind: Armor(
kind: Chest(ClothBlue0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Green Linen Chest",
description: "Soft and warm",
kind: Armor(
kind: Chest(ClothGreen0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Purple Linen Chest",
description: "Soft and warm",
kind: Armor(
kind: Chest(ClothPurple0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Swift Chest",
description: "Swift like the wind.",
kind: Armor(
kind: Chest(Leather0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Iron Chestplate",
description: "Arrows to the stomach are soooo last update.",
kind: Armor(
kind: Chest(PlateGreen0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Assassin Boots",
description: "Only the best for a member of the creed.",
kind: Armor(
kind: Foot(Assassin),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Blue Linen Boots",
description: "Soft and warm",
kind: Armor(
kind: Foot(ClothBlue0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Green Linen Boots",
description: "Soft and warm",
kind: Armor(
kind: Foot(ClothGreen0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Purple Linen Boots",
description: "Soft and warm",
kind: Armor(
kind: Foot(ClothPurple0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Swift Boots",
description: "Swift like the wind.",
kind: Armor(
kind: Foot(Leather0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Iron Feet",
description: "WIP",
kind: Armor(
kind: Foot(Plate0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Assassin Gloves",
description: "Only the best for a member of the creed.",
kind: Armor(
kind: Hand(Assassin),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Blue Linen Wrists",
description: "WIP",
kind: Armor(
kind: Hand(ClothBlue0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Green Linen Wrists",
description: "WIP",
kind: Armor(
kind: Hand(ClothGreen0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Purple Silk Wrists",
description: "WIP",
kind: Armor(
kind: Hand(ClothPurple0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Swift Gloves",
description: "Swift like the wind.",
kind: Armor(
kind: Hand(Leather0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Iron Handguards",
description: "WIP",
kind: Armor(
kind: Hand(Plate0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Assassin Pants",
description: "Only the best for a member of the creed.",
kind: Armor(
kind: Pants(Assassin),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Blue Linen Skirt",
description: "WIP",
kind: Armor(
kind: Pants(ClothBlue0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Green Linen Skirt",
description: "WIP",
kind: Armor(
kind: Pants(ClothGreen0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Purple Linen Skirt",
description: "WIP",
kind: Armor(
kind: Pants(ClothPurple0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Hunting Pants",
description: "",
kind: Armor(
kind: Pants(Green),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Swift Pants",
description: "",
kind: Armor(
kind: Pants(Leather0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Iron Legguards",
description: "WIP",
kind: Armor(
kind: Pants(PlateGreen0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Assassin Shoulder Guard",
description: "Only the best for a member of the creed.",
kind: Armor(
kind: Shoulder(Assassin),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Blue Linen Coat",
description: "WIP",
kind: Armor(
kind: Shoulder(ClothBlue0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Green Linen Coat",
description: "WIP",
kind: Armor(
kind: Shoulder(ClothGreen0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Purple Linen Coat",
description: "WIP",
kind: Armor(
kind: Shoulder(ClothPurple0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Leather Pauldrons",
description: "",
kind: Armor(
kind: Shoulder(Leather0),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Swift Shoulderpads",
description: "Swift like the wind.",
kind: Armor(
kind: Shoulder(Leather1),
stats: (20),
),
)

View file

@ -0,0 +1,8 @@
Item(
name: "Iron Shoulderguards",
description: "A strong shoulder to lean on.",
kind: Armor(
kind: Shoulder(Plate0),
stats: (20),
),
)

View file

@ -1,10 +1,12 @@
Item(
name: "Dwarven Cheese",
description: "Aromatic and nutritious.",
description: "Aromatic and nutritious.
Restores 15 Health.",
kind: Consumable(
kind: Cheese,
effect: Health((
amount: 40,
amount: 15,
cause: Item,
)),
),

View file

@ -2,8 +2,10 @@ Item(
name: "Weightless Rod",
description: "The sky is the limit.",
kind: Tool(
kind: Debug(Boost),
power: 0,
(
kind: Debug(Boost),
equip_time_millis: 0,
)
),
)
// And the ground is pretty hard at maximum velocity...
// And the ground is pretty hard at maximum velocity...

View file

@ -2,8 +2,10 @@ Item(
name: "Rod of Possession",
description: "It's fixed on my branch.",
kind: Tool(
kind: Debug(Possess),
power: 0,
(
kind: Debug(Possess),
equip_time_millis: 0,
)
),
)
// ... as zesterer always uses to tell us.
// ... as zesterer always uses to tell us.

View file

@ -1,5 +1,7 @@
Item(
name: "Blue Flower",
description: "Matches the color of the sky.",
kind: Ingredient,
kind: Ingredient(
kind: Flower,
)
)

View file

@ -1,5 +1,7 @@
Item(
name: "Pink Flower",
description: "Looks like a lollipop.",
kind: Ingredient,
kind: Ingredient(
kind: Flower,
)
)

View file

@ -1,5 +1,7 @@
Item(
name: "Red Flower",
description: "Roses are red...",
kind: Ingredient,
kind: Ingredient(
kind: Flower,
)
)

View file

@ -1,5 +1,7 @@
Item(
name: "Sunflower",
description: "Smells like summer.",
kind: Ingredient,
kind: Ingredient(
kind: Flower,
)
)

View file

@ -1,5 +1,7 @@
Item(
name: "White flower",
description: "Pure and precious.",
kind: Ingredient,
kind: Ingredient(
kind: Flower,
)
)

View file

@ -1,5 +1,7 @@
Item(
name: "Yellow Flower",
description: "Glows like the sun.",
kind: Ingredient,
kind: Ingredient(
kind: Flower,
)
)

View file

@ -1,5 +1,7 @@
Item(
name: "Long Grass",
description: "Greener than an orc's snout.",
kind: Ingredient,
kind: Ingredient(
kind: Grass,
)
)

View file

@ -1,5 +1,7 @@
Item(
name: "Medium Grass",
description: "Greener than an orc's snout.",
kind: Ingredient,
kind: Ingredient(
kind: Grass,
)
)

View file

@ -1,5 +1,7 @@
Item(
name: "Short Grass",
description: "Greener than an orc's snout.",
kind: Ingredient,
kind: Ingredient(
kind: Grass,
)
)

View file

@ -1,6 +1,8 @@
Item(
name: "Mushroom",
description: "Hopefully this one is not poisonous.",
description: "Hopefully this one is not poisonous.
Restores 10 Health.",
kind: Consumable(
kind: Mushroom,
effect: Health((

View file

@ -1,6 +1,8 @@
Item(
name: "Minor Potion",
description: "Restores a small amount of Health.",
description: "Restores a small amount of Health.
Restores 50 Health.",
kind: Consumable(
kind: PotionMinor,
effect: Health((

View file

@ -1,8 +1,10 @@
Item(
name: "Velorite",
description: "Just a slight touch makes you feel the knowledge of ancient times.",
description: "Just a slight touch makes you feel the knowledge of ancient times.
Increases Exp by 20.",
kind: Consumable(
kind: Velorite,
effect: Xp(50),
effect: Xp(20),
),
)

View file

@ -1,8 +1,10 @@
Item(
name: "Velorite Fragment",
description: "Small runes sparkle on its surface.",
description: "Small runes sparkle on its surface.
Increases Exp by 10.",
kind: Consumable(
kind: VeloriteFrag,
effect: Xp(20),
effect: Xp(10),
),
)

View file

@ -1,8 +1,12 @@
Item(
name: "Crude Mallet",
description: "Breaks bones like sticks and stones.",
description: "Breaks bones like sticks and stones.
\n
Power: 20",
kind: Tool(
kind: Hammer,
power: 20,
),
(
kind: Hammer(BasicHammer),
equip_time_millis: 500,
)
)
)

View file

@ -0,0 +1,10 @@
Item(
name: "A Shield",
description: "Legends tell this item is useless.",
kind: Tool (
(
kind: Shield(BasicShield),
equip_time_millis: 400,
)
),
)

View file

@ -0,0 +1,11 @@
Item(
name: "Vicious Gladius",
description: "
Power: 15",
kind: Tool(
(
kind: Sword(Short0),
equip_time_millis: 400,
)
),
)

View file

@ -1,8 +1,12 @@
Item(
name: "Humble Stick",
description: "Walking stick with a sharpened end.",
description: "Walking stick with a sharpened end.
Power: 6",
kind: Tool(
kind: Hammer,
power: 6,
(
kind: Staff(BasicStaff),
equip_time_millis: 200,
)
),
)

View file

@ -0,0 +1,11 @@
Item(
name: "Sceptre of Regeneration",
description: " Infused by the power of Nature.
Power: 25",
kind: Tool(
(
kind: Staff(Sceptre),
equip_time_millis: 400,
)
),
)

View file

@ -1,8 +1,12 @@
Item(
name: "Notched Axe",
description: "Every dent tells the story of a chopped tree.",
description: "Every dent tells the story of a chopped tree.
Power: 15",
kind: Tool(
kind: Axe,
power: 15,
(
kind: Axe(BasicAxe),
equip_time_millis: 400,
)
),
)

View file

@ -1,8 +1,12 @@
Item(
name: "Uneven Bow",
description: "Someone carved his initials into it...",
description: "Someone carved his initials into it...
Power: 15",
kind: Tool(
kind: Bow,
power: 15,
(
kind: Bow(BasicBow),
equip_time_millis: 400,
)
),
)

View file

@ -1,8 +1,12 @@
Item(
name: "Sharp Kitchen Knife",
description: "Great for cutting meat.",
description: "Great for cutting meat.
Power: 15",
kind: Tool(
kind: Dagger,
power: 15,
(
kind: Dagger(BasicDagger),
equip_time_millis: 300,
)
),
)

View file

@ -1,8 +1,12 @@
Item(
name: "Sturdy Old Hammer",
description: "'Property of...' The rest is missing. ",
description: "'Property of...' The rest is missing.
Power: 15",
kind: Tool(
kind: Hammer,
power: 15,
(
kind: Hammer(BasicHammer),
equip_time_millis: 500,
)
),
)

View file

@ -1,8 +1,12 @@
Item(
name: "Gnarled Rod",
description: "Smells like resin and magic.",
description: "Smells like resin and magic.
Power: 20",
kind: Tool(
kind: Staff,
power: 20,
(
kind: Staff(BasicStaff),
equip_time_millis: 300,
)
),
)

View file

@ -1,8 +1,12 @@
Item(
name: "Battered Sword",
description: "Held together by Rust and hope.",
description: "Held together by Rust and hope.
Power: 15",
kind: Tool(
kind: Sword,
power: 15,
(
kind: Sword(BasicSword),
equip_time_millis: 300,
)
),
)

View file

@ -0,0 +1,11 @@
Item(
name: "Wooden Training Sword",
description: "
Power: 15",
kind: Tool(
(
kind: Sword(WoodTraining),
equip_time_millis: 400,
)
),
)

View file

@ -0,0 +1,11 @@
Item(
name: "Sturdy Bihander",
description: "
Power: 15",
kind: Tool(
(
kind: Sword(Zweihander0),
equip_time_millis: 500,
)
),
)

View file

@ -23,17 +23,17 @@
],
threshold: 0.5,
),
Wield(Sword): (
Wield(Sword(BasicSword)): (
files: [
"voxygen.audio.sfx.weapon.sword_out",
],
threshold: 0.5,
threshold: 1.0,
),
Unwield(Sword): (
Unwield(Sword(BasicSword)): (
files: [
"voxygen.audio.sfx.weapon.sword_in",
],
threshold: 0.5,
threshold: 1.0,
),
Inventory(Collected): (
files: [
@ -96,4 +96,4 @@
threshold: 0.3,
)
}
)
)

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:192ecc3b4f6d746d6033d1960b3a67ebea770fd8fb7e609633f2773ba62a576a
size 1518647

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a2fb5c403dced0781cff9dc7ea824a290178a114db9199e50cd762f8540f80c9
size 2002

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:73c7c79a8803598a53977b35a7a1594b97a6b6e9eea9056b414392d3abb81e8e
size 256

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2e21e1e9419d01ffcdd9446fcfb84b75c87b00cdb4146b580dc0d0b6d7c4967e
size 251

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:67700122405403d71def32ad9121b3b6d636703be731e77a72b18d50672134f6
size 261

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0ecd12bed8f6b7d33fb243e8a77c167685e34e85d0a9889dfa0d0c7045937526
size 273

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7203aadbd31a2717fbfcab16cf27b7e89ad4e5ba398770c87e6d20d9c57e58b5
size 265

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cc5ffdf4c5c251018510e05d6038d6e8698a87de3b19ab735fecca2b25bf5483
size 266

View file

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c6bd13aad12b5e809263a4831527d302a1ca1497c2792a8969edd2e46eab1b4b
size 6176

View file

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:994c7060abbf1cb2ff7c3aab66514b522838a8d80fc979b9ac5038b0df6dae4b
size 6176

View file

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7dd71861482f9472077be6fcbd5181bc10d46b5bd81fdf486d83be9514a18735
size 6176

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:31e49f8953cf6c4ec90b86b504b837e83955c22a2b254f4292497237b01a7a41
size 470

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b5a5a2c23ac7a90c7a48b22d5785b343938aaca40ed17beef4eb923abd317578
size 485

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:37d07c311f9dd99b8d8af2cb0443c56bad4b1e8a701a4961139cf3eb091a60f7
size 469

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3d19cb3d350b1e192a4a83472c231b35847812f50118adc0eed21aa07a2bad46
size 719

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3d19cb3d350b1e192a4a83472c231b35847812f50118adc0eed21aa07a2bad46
size 719

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9ce200dd3b21561d5ddafb2f0a7d22708495185f80aaf84cde4f9160a1494c56
size 318

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0b1cf070dec414799b192dfcbb2efc96ce04ff50a6f56bf8bd46548e9f0aaa31
size 316

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ab46da914aa73fd0a7aff023883cd5392d01f0609383d4c143d5c3680b65250a
size 57195

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:641d77903cb71d36a99c9551e418d73ee6b2bf85039f3a6546aaea9770072e0e
size 305

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2e46d4152a06998dabdc04112aa2fcd1706438ca08c6b48e45211c50f45b0ab9
size 574

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4ad7f5d7662ba295592272ed80281428e18b779021f0ae15d9485d88581be32b
size 340

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4ad7f5d7662ba295592272ed80281428e18b779021f0ae15d9485d88581be32b
size 340

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0ac279d297cb9480128ef5c5eda66e78d21c88064fedc0065662e7997a92a2e2
size 223

View file

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b32bf65b8f205ae1ece1a365cc115080954f81b4606c0ecdadc5348fcdc1a05e
size 58044

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:434e55754eda06ebc1cfac3b178ce0a9984a50b9841c532bbf1dcdf4ef66b82a
size 222

View file

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:15d0cf0a74d08e6654d7afcbc9626089bafc83c499c75d77693867e5f3761835
size 58044

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6d3cff85f44a4302878353f07a587decc5de89dda11beb8d676212a3c9c7d52e
size 222

Some files were not shown because too many files have changed in this diff Show more