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 .project
# Vim
**/*.swp
**/*.vi
# Veloren # Veloren
*.rar *.rar
*.log *.log
@ -40,3 +35,6 @@ todo.txt
# direnv # direnv
/.envrc /.envrc
*.bat *.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 Italian translation
- Added Portuguese translation - Added Portuguese translation
- Added Turkish 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 ### 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 - Fixed /give_exp ignoring player argument
- Extend run sfx to small animals to prevent sneak attacks by geese. - 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) - 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 ### Removed

676
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,8 @@
Item( Item(
name: "Apple", name: "Apple",
description: "Red and juicy.", description: "Red and juicy.
Restores 20 Health.",
kind: Consumable( kind: Consumable(
kind: Apple, kind: Apple,
effect: Health(( 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( Item(
name: "Dwarven Cheese", name: "Dwarven Cheese",
description: "Aromatic and nutritious.", description: "Aromatic and nutritious.
Restores 15 Health.",
kind: Consumable( kind: Consumable(
kind: Cheese, kind: Cheese,
effect: Health(( effect: Health((
amount: 40, amount: 15,
cause: Item, cause: Item,
)), )),
), ),

View File

@ -2,8 +2,10 @@ Item(
name: "Weightless Rod", name: "Weightless Rod",
description: "The sky is the limit.", description: "The sky is the limit.",
kind: Tool( kind: Tool(
(
kind: Debug(Boost), kind: Debug(Boost),
power: 0, 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", name: "Rod of Possession",
description: "It's fixed on my branch.", description: "It's fixed on my branch.",
kind: Tool( kind: Tool(
(
kind: Debug(Possess), kind: Debug(Possess),
power: 0, 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( Item(
name: "Blue Flower", name: "Blue Flower",
description: "Matches the color of the sky.", description: "Matches the color of the sky.",
kind: Ingredient, kind: Ingredient(
kind: Flower,
)
) )

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,8 +1,10 @@
Item( Item(
name: "Velorite", 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: Consumable(
kind: Velorite, kind: Velorite,
effect: Xp(50), effect: Xp(20),
), ),
) )

View File

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

View File

@ -1,8 +1,12 @@
Item( Item(
name: "Crude Mallet", name: "Crude Mallet",
description: "Breaks bones like sticks and stones.", description: "Breaks bones like sticks and stones.
\n
Power: 20",
kind: Tool( 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( Item(
name: "Humble Stick", name: "Humble Stick",
description: "Walking stick with a sharpened end.", description: "Walking stick with a sharpened end.
Power: 6",
kind: Tool( 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( Item(
name: "Notched Axe", 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: Tool(
kind: Axe, (
power: 15, kind: Axe(BasicAxe),
equip_time_millis: 400,
)
), ),
) )

View File

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

View File

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

View File

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

View File

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

View File

@ -1,8 +1,12 @@
Item( Item(
name: "Battered Sword", name: "Battered Sword",
description: "Held together by Rust and hope.", description: "Held together by Rust and hope.
Power: 15",
kind: Tool( 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, threshold: 0.5,
), ),
Wield(Sword): ( Wield(Sword(BasicSword)): (
files: [ files: [
"voxygen.audio.sfx.weapon.sword_out", "voxygen.audio.sfx.weapon.sword_out",
], ],
threshold: 0.5, threshold: 1.0,
), ),
Unwield(Sword): ( Unwield(Sword(BasicSword)): (
files: [ files: [
"voxygen.audio.sfx.weapon.sword_in", "voxygen.audio.sfx.weapon.sword_in",
], ],
threshold: 0.5, threshold: 1.0,
), ),
Inventory(Collected): ( Inventory(Collected): (
files: [ files: [

BIN
assets/voxygen/background/bg_9.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/armor_slot.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/button_mmap_closed.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/button_mmap_closed_hover.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/button_mmap_closed_press.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/button_mmap_open.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/button_mmap_open_hover.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/button_mmap_open_press.png (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
assets/voxygen/element/buttons/close_btn.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/close_btn_hover.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/close_btn_press.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/indicator_mmap.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/indicator_mmap_small.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/inv_slot.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/inv_slot_sel.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/inv_tab.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/inv_tab_active.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/inv_tab_inactive.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/inv_tab_inactive_hover.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/inv_tab_inactive_press.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/min_plus/mmap_button-min.png (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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