Merge branch veloren:master into jcoxeye/price-entries

This commit is contained in:
JCoxeye 2024-01-11 14:21:23 +00:00
commit be951e747c
167 changed files with 3661 additions and 3386 deletions

View File

@ -40,6 +40,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Added hit_timing to BasicMelee abilities
- A tavern building where npcs go to relax.
- Toggle for walking instead of running (Default: `I`).
- Added day duration slider configuration on map creation UI.
- Potion of Agility
### Changed
@ -73,6 +75,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fixed offset of items carried on backs when wearing cloaks and backpacks
- Linearize light colors on the CPU rather than in shaders on the GPU
- You can no longer stack self buffs
- Renamed "Burning Potion" to "Potion of Combustion"
### Removed
- Medium and large potions from all loot tables
@ -91,6 +94,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fixed bug where airship captains would mass generate after using /reload_chunks
- Fixed french translation "Énergie Consommée" -> "Regain d'Énergie"
- Fixed Perforate icon not displaying
- Make cave entrances easier to follow
- Renamed Twiggy Shoulders to match the Twig Armor set
## [0.15.0] - 2023-07-01

93
Cargo.lock generated
View File

@ -58,14 +58,15 @@ dependencies = [
[[package]]
name = "ahash"
version = "0.8.3"
version = "0.8.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
dependencies = [
"cfg-if 1.0.0",
"getrandom 0.2.10",
"once_cell",
"version_check",
"zerocopy",
]
[[package]]
@ -320,7 +321,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f00425f4c1f3349b35daf0a73477249f6574fe89f4b9d76aca0b2a1356886b3b"
dependencies = [
"ab_glyph",
"ahash 0.8.3",
"ahash 0.8.7",
"bincode",
"crossbeam-channel",
"log",
@ -350,7 +351,7 @@ checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
dependencies = [
"proc-macro2 1.0.66",
"quote 1.0.33",
"syn 2.0.29",
"syn 2.0.32",
]
[[package]]
@ -655,7 +656,7 @@ checksum = "fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192"
dependencies = [
"proc-macro2 1.0.66",
"quote 1.0.33",
"syn 2.0.29",
"syn 2.0.32",
]
[[package]]
@ -872,7 +873,7 @@ dependencies = [
"heck 0.4.1",
"proc-macro2 1.0.66",
"quote 1.0.33",
"syn 2.0.29",
"syn 2.0.32",
]
[[package]]
@ -1572,7 +1573,7 @@ dependencies = [
"ident_case",
"proc-macro2 1.0.66",
"quote 1.0.33",
"syn 2.0.29",
"syn 2.0.32",
]
[[package]]
@ -1594,7 +1595,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
dependencies = [
"darling_core 0.20.3",
"quote 1.0.33",
"syn 2.0.29",
"syn 2.0.32",
]
[[package]]
@ -1755,7 +1756,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
dependencies = [
"proc-macro2 1.0.66",
"quote 1.0.33",
"syn 2.0.29",
"syn 2.0.32",
]
[[package]]
@ -1773,7 +1774,7 @@ version = "5.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd05cab02d6074145c6f92ddf1b57357e4bc1424f87c790c044de62bdc94c13a"
dependencies = [
"ahash 0.8.3",
"ahash 0.8.7",
"lazy_static",
"log",
"nom",
@ -1875,7 +1876,7 @@ checksum = "ccb14d927583dd5c2eac0f2cf264fc4762aefe1ae14c47a8a20fc1939d3a5fc0"
dependencies = [
"proc-macro2 1.0.66",
"quote 1.0.33",
"syn 2.0.29",
"syn 2.0.32",
]
[[package]]
@ -1896,7 +1897,7 @@ dependencies = [
"darling 0.20.3",
"proc-macro2 1.0.66",
"quote 1.0.33",
"syn 2.0.29",
"syn 2.0.32",
]
[[package]]
@ -2238,7 +2239,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
dependencies = [
"proc-macro2 1.0.66",
"quote 1.0.33",
"syn 2.0.29",
"syn 2.0.32",
]
[[package]]
@ -2703,7 +2704,7 @@ version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
dependencies = [
"ahash 0.8.3",
"ahash 0.8.7",
"rayon",
"serde",
]
@ -2714,7 +2715,7 @@ version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
dependencies = [
"ahash 0.8.3",
"ahash 0.8.7",
"allocator-api2",
]
@ -4005,7 +4006,7 @@ checksum = "9e6a0fd4f737c707bd9086cc16c925f294943eb62eb71499e9fd4cf71f8b9f4e"
dependencies = [
"proc-macro2 1.0.66",
"quote 1.0.33",
"syn 2.0.29",
"syn 2.0.32",
]
[[package]]
@ -4112,7 +4113,7 @@ dependencies = [
"proc-macro-crate",
"proc-macro2 1.0.66",
"quote 1.0.33",
"syn 2.0.29",
"syn 2.0.32",
]
[[package]]
@ -4511,7 +4512,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
dependencies = [
"proc-macro2 1.0.66",
"quote 1.0.33",
"syn 2.0.29",
"syn 2.0.32",
]
[[package]]
@ -4667,7 +4668,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "097bf8b99121dfb8c75eed54dfbdbdb1d53e372c53d2353e8a15aad2a479249d"
dependencies = [
"quote 1.0.33",
"syn 2.0.29",
"syn 2.0.32",
]
[[package]]
@ -5047,7 +5048,7 @@ dependencies = [
"quote 1.0.33",
"refinery-core",
"regex",
"syn 2.0.29",
"syn 2.0.32",
]
[[package]]
@ -5486,7 +5487,7 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d"
dependencies = [
"ahash 0.8.3",
"ahash 0.8.7",
"cfg-if 1.0.0",
"hashbrown 0.13.2",
]
@ -5633,7 +5634,7 @@ checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
dependencies = [
"proc-macro2 1.0.66",
"quote 1.0.33",
"syn 2.0.29",
"syn 2.0.32",
]
[[package]]
@ -5665,7 +5666,7 @@ checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00"
dependencies = [
"proc-macro2 1.0.66",
"quote 1.0.33",
"syn 2.0.29",
"syn 2.0.32",
]
[[package]]
@ -5767,10 +5768,9 @@ checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
[[package]]
name = "shred"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc6b2cd1ccb08cf2b25d75c936e0cc9c8cb93c39a83814956da32653236338c0"
source = "git+https://github.com/amethyst/shred.git?rev=5d52c6fc390dd04c12158633e77591f6523d1f85#5d52c6fc390dd04c12158633e77591f6523d1f85"
dependencies = [
"ahash 0.7.6",
"ahash 0.8.7",
"arrayvec 0.7.4",
"atomic_refcell",
"rayon",
@ -5782,8 +5782,7 @@ dependencies = [
[[package]]
name = "shred-derive"
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d5404c36bd155e41a54276ab6aafedad2fb627e5e5849d36ec439c9ddc044a2f"
source = "git+https://github.com/amethyst/shred.git?rev=5d52c6fc390dd04c12158633e77591f6523d1f85#5d52c6fc390dd04c12158633e77591f6523d1f85"
dependencies = [
"proc-macro2 1.0.66",
"quote 1.0.33",
@ -6200,9 +6199,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.29"
version = "2.0.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a"
checksum = "239814284fd6f1a4ffe4ca893952cdd93c224b6a1571c9a9eadd670295c0c9e2"
dependencies = [
"proc-macro2 1.0.66",
"quote 1.0.33",
@ -6277,7 +6276,7 @@ checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b"
dependencies = [
"proc-macro2 1.0.66",
"quote 1.0.33",
"syn 2.0.29",
"syn 2.0.32",
]
[[package]]
@ -6456,7 +6455,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
dependencies = [
"proc-macro2 1.0.66",
"quote 1.0.33",
"syn 2.0.29",
"syn 2.0.32",
]
[[package]]
@ -6597,7 +6596,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
dependencies = [
"proc-macro2 1.0.66",
"quote 1.0.33",
"syn 2.0.29",
"syn 2.0.32",
]
[[package]]
@ -6723,7 +6722,7 @@ version = "1.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
dependencies = [
"cfg-if 1.0.0",
"cfg-if 0.1.10",
"rand 0.8.5",
"static_assertions",
]
@ -7176,7 +7175,7 @@ version = "0.1.0"
dependencies = [
"proc-macro2 1.0.66",
"quote 1.0.33",
"syn 2.0.29",
"syn 2.0.32",
]
[[package]]
@ -7596,7 +7595,7 @@ dependencies = [
"once_cell",
"proc-macro2 1.0.66",
"quote 1.0.33",
"syn 2.0.29",
"syn 2.0.32",
"wasm-bindgen-shared",
]
@ -7653,7 +7652,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
dependencies = [
"proc-macro2 1.0.66",
"quote 1.0.33",
"syn 2.0.29",
"syn 2.0.32",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@ -8499,3 +8498,23 @@ checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd"
dependencies = [
"time 0.3.28",
]
[[package]]
name = "zerocopy"
version = "0.7.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
dependencies = [
"zerocopy-derive",
]
[[package]]
name = "zerocopy-derive"
version = "0.7.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
dependencies = [
"proc-macro2 1.0.66",
"quote 1.0.33",
"syn 2.0.32",
]

View File

@ -165,6 +165,7 @@ winit = { git = "https://github.com/Imberflur/winit.git", tag = "raw-window-hand
wgpu = { git = "https://github.com/pythonesque/wgpu.git", rev = "179ea209374a92837cde252f1d9ee01f628cae08" }
# ntapi 3.7 fails to compile under windows due to the bug https://github.com/MSxDOS/ntapi/pull/12
ntapi = { git = "https://github.com/MSxDOS/ntapi.git", rev = "9f56b149c9e25796739157c0fce3e0007a7de6eb" }
shred = { git = "https://github.com/amethyst/shred.git", rev = "5d52c6fc390dd04c12158633e77591f6523d1f85" }
[patch."https://github.com/gfx-rs/gfx"]
gfx-hal = { git = "https://github.com/Imberflur/gfx.git", tag = "veloren-fixes-v1" }

View File

@ -1,55 +1,57 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 8.0,
damage_increase: 1.0,
base_poise_damage: 15,
poise_damage_increase: 0,
knockback: 8.0,
range: 3.5,
angle: 50.0,
base_buildup_duration: 0.4,
base_swing_duration: 0.08,
melee_constructor: (
kind: Slash(
damage: 8,
poise: 15,
knockback: 8,
energy_regen: 0,
),
range: 3.5,
angle: 50.0,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
),
buildup_duration: 0.4,
swing_duration: 0.08,
hit_timing: 0.5,
base_recover_duration: 0.5,
forward_movement: 2.5,
damage_kind: Slashing,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
recover_duration: 0.5,
movement: (
swing: Some(Forward(2.5)),
),
ori_modifier: 0.7,
),
(
stage: 2,
base_damage: 10.0,
damage_increase: 1.5,
base_poise_damage: 20,
poise_damage_increase: 0,
knockback: 12.0,
range: 3.5,
angle: 30.0,
base_buildup_duration: 0.7,
base_swing_duration: 0.1,
melee_constructor: (
kind: Slash(
damage: 10,
poise: 20,
knockback: 12,
energy_regen: 0,
),
range: 3.5,
angle: 30.0,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
),
buildup_duration: 0.7,
swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.7,
forward_movement: 2.0,
damage_kind: Slashing,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
recover_duration: 0.7,
movement: (
swing: Some(Forward(2.0)),
),
ori_modifier: 0.7,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.7,
)
energy_cost_per_strike: 0,
)

View File

@ -1,33 +1,31 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 74,
damage_increase: 0,
base_poise_damage: 27.5,
poise_damage_increase: 0,
knockback: 9.0,
range: 3.0,
angle: 60.0,
base_buildup_duration: 1.4,
base_swing_duration: 0.1,
melee_constructor: (
kind: Bash(
damage: 74,
poise: 27.5,
knockback: 9,
energy_regen: 0,
),
range: 3.0,
angle: 60.0,
damage_effect: Some(Buff((
kind: Ensnared,
dur_secs: 6.0,
strength: Value(0.5),
chance: 0.6,
))),
),
buildup_duration: 1.4,
swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.8,
forward_movement: 1.0,
damage_kind: Crushing,
damage_effect: Some(Buff((
kind: Ensnared,
dur_secs: 6.0,
strength: DamageFraction(0.1),
chance: 0.6,
))),
recover_duration: 0.8,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.8,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.8,
)
energy_cost_per_strike: 0,
)

View File

@ -1,33 +1,31 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 50,
damage_increase: 0,
base_poise_damage: 16,
poise_damage_increase: 0,
knockback: 2.0,
range: 3.0,
angle: 60.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.1,
melee_constructor: (
kind: Stab(
damage: 50,
poise: 16,
knockback: 2,
energy_regen: 0,
),
range: 3.0,
angle: 60.0,
damage_effect: Some(Buff((
kind: Poisoned,
dur_secs: 7.0,
strength: DamageFraction(0.6),
chance: 0.4,
))),
),
buildup_duration: 0.8,
swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.8,
forward_movement: 1.0,
damage_kind: Piercing,
damage_effect: Some(Buff((
kind: Poisoned,
dur_secs: 7.0,
strength: DamageFraction(0.6),
chance: 0.4,
))),
recover_duration: 0.8,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.8,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.8,
energy_cost_per_strike: 0,
)

View File

@ -1,27 +1,25 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 54,
damage_increase: 0,
base_poise_damage: 20,
poise_damage_increase: 0,
knockback: 5.0,
range: 3.0,
angle: 60.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.1,
melee_constructor: (
kind: Bash(
damage: 54,
poise: 20,
knockback: 5,
energy_regen: 0,
),
range: 3.0,
angle: 60.0,
),
buildup_duration: 0.8,
swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.8,
forward_movement: 1.0,
damage_kind: Crushing,
recover_duration: 0.8,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.5,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.5,
)
energy_cost_per_strike: 0,
)

View File

@ -1,33 +1,31 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 60,
damage_increase: 0,
base_poise_damage: 21,
poise_damage_increase: 0,
knockback: 3.0,
range: 3.0,
angle: 60.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.1,
melee_constructor: (
kind: Stab(
damage: 60,
poise: 21,
knockback: 3,
energy_regen: 0,
),
range: 3.0,
angle: 60.0,
damage_effect: Some(Buff((
kind: Poisoned,
dur_secs: 9.0,
strength: DamageFraction(0.7),
chance: 0.8,
))),
),
buildup_duration: 0.8,
swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.8,
forward_movement: 1.0,
damage_kind: Piercing,
damage_effect: Some(Buff((
kind: Poisoned,
dur_secs: 9.0,
strength: DamageFraction(0.7),
chance: 0.8,
))),
recover_duration: 0.8,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.8,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.8,
energy_cost_per_strike: 0,
)

View File

@ -1,27 +1,25 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 44,
damage_increase: 0,
base_poise_damage: 14,
poise_damage_increase: 0,
knockback: 3.0,
range: 3.0,
angle: 60.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.1,
melee_constructor: (
kind: Bash(
damage: 44,
poise: 14,
knockback: 3,
energy_regen: 0,
),
range: 3.0,
angle: 60.0,
),
buildup_duration: 0.8,
swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.8,
forward_movement: 1.0,
damage_kind: Crushing,
recover_duration: 0.8,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.6,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.6,
energy_cost_per_strike: 0,
)

View File

@ -1,27 +1,25 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 28.0,
damage_increase: 0,
base_poise_damage: 28,
poise_damage_increase: 0,
knockback: 3.0,
range: 3.5,
angle: 60.0,
base_buildup_duration: 1.2,
base_swing_duration: 0.1,
melee_constructor: (
kind: Bash(
damage: 28,
poise: 28,
knockback: 3,
energy_regen: 0,
),
range: 3.5,
angle: 60.0,
),
buildup_duration: 1.2,
swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.4,
forward_movement: 2.0,
damage_kind: Crushing,
recover_duration: 0.4,
movement: (
swing: Some(Forward(2.0)),
),
ori_modifier: 0.65,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.65,
energy_cost_per_strike: 0,
)

View File

@ -1,59 +1,65 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 36.0,
damage_increase: 0,
base_poise_damage: 15,
poise_damage_increase: 0,
knockback: 3.0,
range: 2.8,
angle: 30.0,
base_buildup_duration: 1.4,
base_swing_duration: 0.07,
melee_constructor: (
kind: Bash(
damage: 36,
poise: 15,
knockback: 3,
energy_regen: 0,
),
range: 2.8,
angle: 30.0,
),
buildup_duration: 1.4,
swing_duration: 0.07,
hit_timing: 0.5,
base_recover_duration: 0.3,
forward_movement: 2.0,
damage_kind: Crushing,
recover_duration: 0.3,
movement: (
swing: Some(Forward(2.0)),
),
ori_modifier: 0.65,
),
(
stage: 2,
base_damage: 36.0,
damage_increase: 0,
base_poise_damage: 18,
poise_damage_increase: 0,
knockback: 3.0,
range: 2.8,
angle: 30.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.07,
melee_constructor: (
kind: Bash(
damage: 36,
poise: 18,
knockback: 3,
energy_regen: 0,
),
range: 2.8,
angle: 30.0,
),
buildup_duration: 0.8,
swing_duration: 0.07,
hit_timing: 0.5,
base_recover_duration: 0.3,
forward_movement: 1.5,
damage_kind: Crushing,
recover_duration: 0.3,
movement: (
swing: Some(Forward(1.5)),
),
ori_modifier: 0.65,
),
(
stage: 3,
base_damage: 36.0,
damage_increase: 0,
base_poise_damage: 20,
poise_damage_increase: 0,
knockback: 3.0,
range: 2.8,
angle: 30.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.07,
melee_constructor: (
kind: Bash(
damage: 36,
poise: 20,
knockback: 3,
energy_regen: 0,
),
range: 2.8,
angle: 30.0,
),
buildup_duration: 0.8,
swing_duration: 0.07,
hit_timing: 0.5,
base_recover_duration: 0.3,
forward_movement: 1.5,
damage_kind: Crushing,
recover_duration: 0.3,
movement: (
swing: Some(Forward(1.5)),
),
ori_modifier: 0.65,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.65,
energy_cost_per_strike: 0,
)

View File

@ -1,27 +1,18 @@
ComboMelee(
stage_data: [
(
stage: 1,
base_damage: 1.0,
damage_increase: 0,
base_poise_damage: 0,
poise_damage_increase: 0,
knockback: 0.0,
range: 2.5,
angle: 150.0,
base_buildup_duration: 0.1,
base_swing_duration: 0.07,
hit_timing: 0.5,
base_recover_duration: 0.2,
forward_movement: 0.0,
damage_kind: Piercing,
BasicMelee(
energy_cost: 0,
buildup_duration: 0.1,
swing_duration: 0.07,
hit_timing: 0.5,
recover_duration: 0.2,
melee_constructor: (
kind: Stab(
damage: 1,
poise: 0,
knockback: 0,
energy_regen: 0,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
range: 2.5,
angle: 150.0,
),
ori_modifier: 0.6,
)

View File

@ -1,31 +1,28 @@
ComboMelee(
stage_data: [(
stage: 1,
base_damage: 15.0,
damage_increase: 0.75,
base_poise_damage: 0,
poise_damage_increase: 0,
knockback: 3.5,
range: 4.5,
angle: 50.0,
base_buildup_duration: 0.7,
base_swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.45,
forward_movement: 0.0,
damage_kind: Crushing,
damage_effect: Some(Buff((
kind: Frozen,
dur_secs: 2.0,
strength: Value(0.3),
chance: 0.4,
))),
)],
initial_energy_gain: 5.0,
max_energy_gain: 12.5,
energy_increase: 2.5,
speed_increase: 0.1,
max_speed_increase: 0.4,
scales_from_combo: 2,
ori_modifier: 1.0,
)
ComboMelee2(
strikes: [
(
melee_constructor: (
kind: Bash(
damage: 15,
poise: 0,
knockback: 3.5,
energy_regen: 5,
),
range: 4.5,
angle: 50.0,
damage_effect: Some(Buff((
kind: Frozen,
dur_secs: 2.0,
strength: Value(0.3),
chance: 0.4,
))),
),
buildup_duration: 0.7,
swing_duration: 0.1,
hit_timing: 0.5,
recover_duration: 0.45,
ori_modifier: 1.0,
),
],
energy_cost_per_strike: 0,
)

View File

@ -1,49 +1,51 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 32.0,
damage_increase: 0.0,
base_poise_damage: 20,
poise_damage_increase: 0.0,
knockback: 5.0,
range: 6,
angle: 90.0,
base_buildup_duration: 0.5,
base_swing_duration: 0.4,
melee_constructor: (
kind: Bash(
damage: 32,
poise: 20,
knockback: 5,
energy_regen: 0,
),
range: 6.0,
angle: 90.0,
),
buildup_duration: 0.5,
swing_duration: 0.4,
hit_timing: 0.4,
base_recover_duration: 0.4,
forward_movement: 0.3,
damage_kind: Crushing,
recover_duration: 0.4,
movement: (
swing: Some(Forward(0.3)),
),
ori_modifier: 0.65,
),
(
stage: 2,
base_damage: 36.0,
damage_increase: 0.0,
base_poise_damage: 40.0,
poise_damage_increase: 0.0,
knockback: 10.0,
range: 8,
angle: 45.0,
base_buildup_duration: 0.6,
base_swing_duration: 0.6,
melee_constructor: (
kind: Bash(
damage: 36,
poise: 40,
knockback: 10,
energy_regen: 0,
),
range: 8.0,
angle: 45.0,
damage_effect: Some(Buff((
kind: Crippled,
dur_secs: 3.0,
strength: DamageFraction(0.1),
chance: 1.0,
))),
),
buildup_duration: 0.6,
swing_duration: 0.6,
hit_timing: 0.3,
base_recover_duration: 1.2,
forward_movement: 0.2,
damage_kind: Crushing,
damage_effect: Some(Buff((
kind: Crippled,
dur_secs: 3.0,
strength: DamageFraction(0.1),
chance: 1.0,
))),
recover_duration: 1.2,
movement: (
swing: Some(Forward(0.2)),
),
ori_modifier: 0.65,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.65,
energy_cost_per_strike: 0,
)

View File

@ -1,55 +1,57 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 35.5,
damage_increase: 0.0,
base_poise_damage: 15.0,
poise_damage_increase: 0.0,
knockback: 2.0,
range: 6.0,
angle: 60.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.1,
melee_constructor: (
kind: Slash(
damage: 35,
poise: 15,
knockback: 2,
energy_regen: 0,
),
range: 6.0,
angle: 60.0,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 3.0,
strength: DamageFraction(0.05),
chance: 0.3,
))),
),
buildup_duration: 0.8,
swing_duration: 0.1,
hit_timing: 0.4,
base_recover_duration: 0.3,
forward_movement: 0.8,
damage_kind: Slashing,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 3.0,
strength: DamageFraction(0.05),
chance: 0.3,
))),
recover_duration: 0.3,
movement: (
swing: Some(Forward(0.8)),
),
ori_modifier: 0.6,
),
(
stage: 2,
base_damage: 38.5,
damage_increase: 0.0,
base_poise_damage: 20.0,
poise_damage_increase: 0.0,
knockback: 8.0,
range: 6.0,
angle: 60.0,
base_buildup_duration: 0.7,
base_swing_duration: 0.1,
melee_constructor: (
kind: Slash(
damage: 38.5,
poise: 20,
knockback: 8,
energy_regen: 0,
),
range: 6.0,
angle: 60.0,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 3.0,
strength: DamageFraction(0.1),
chance: 0.15,
))),
),
buildup_duration: 0.7,
swing_duration: 0.1,
hit_timing: 0.4,
base_recover_duration: 1.3,
forward_movement: 0.2,
damage_kind: Slashing,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 3.0,
strength: DamageFraction(0.1),
chance: 0.15,
))),
recover_duration: 1.3,
movement: (
swing: Some(Forward(0.2)),
),
ori_modifier: 0.6,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.6,
energy_cost_per_strike: 0,
)

View File

@ -1,27 +1,18 @@
ComboMelee(
stage_data: [
(
stage: 1,
base_damage: 40.0,
damage_increase: 0,
base_poise_damage: 12,
poise_damage_increase: 0,
knockback: 5.0,
range: 3.5,
angle: 60.0,
base_buildup_duration: 1.0,
base_swing_duration: 0.2,
hit_timing: 0.5,
base_recover_duration: 1.0,
forward_movement: 0.5,
damage_kind: Crushing,
BasicMelee(
energy_cost: 0,
buildup_duration: 1.0,
swing_duration: 0.2,
hit_timing: 0.5,
recover_duration: 1.0,
melee_constructor: (
kind: Bash(
damage: 40,
poise: 12,
knockback: 5,
energy_regen: 0,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
range: 3.5,
angle: 60.0,
),
ori_modifier: 0.6,
)

View File

@ -1,27 +1,25 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 40.0,
damage_increase: 0,
base_poise_damage: 28,
poise_damage_increase: 0,
knockback: 3.0,
range: 3.5,
angle: 60.0,
base_buildup_duration: 1.0,
base_swing_duration: 0.075,
melee_constructor: (
kind: Bash(
damage: 40,
poise: 28,
knockback: 3,
energy_regen: 0,
),
range: 3.5,
angle: 60.0,
),
buildup_duration: 1.0,
swing_duration: 0.075,
hit_timing: 0.5,
base_recover_duration: 0.4,
forward_movement: 2.0,
damage_kind: Crushing,
recover_duration: 0.4,
movement: (
swing: Some(Forward(2.0)),
),
ori_modifier: 0.65,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.65,
energy_cost_per_strike: 0,
)

View File

@ -1,55 +1,57 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 18.0,
damage_increase: 1.0,
base_poise_damage: 0,
poise_damage_increase: 0,
knockback: 4.0,
range: 3.5,
angle: 50.0,
base_buildup_duration: 1.2,
base_swing_duration: 0.12,
melee_constructor: (
kind: Slash(
damage: 18,
poise: 0,
knockback: 4,
energy_regen: 0,
),
range: 3.5,
angle: 50.0,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
),
buildup_duration: 1.2,
swing_duration: 0.12,
hit_timing: 0.5,
base_recover_duration: 1.2,
forward_movement: 3.5,
damage_kind: Slashing,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
recover_duration: 1.2,
movement: (
swing: Some(Forward(3.5)),
),
ori_modifier: 0.6,
),
(
stage: 2,
base_damage: 26.0,
damage_increase: 1.5,
base_poise_damage: 0,
poise_damage_increase: 0,
knockback: 16.0,
range: 5.5,
angle: 15.0,
base_buildup_duration: 1.0,
base_swing_duration: 0.15,
melee_constructor: (
kind: Slash(
damage: 26,
poise: 0,
knockback: 16,
energy_regen: 0,
),
range: 5.5,
angle: 15.0,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
),
buildup_duration: 1.0,
swing_duration: 0.15,
hit_timing: 0.5,
base_recover_duration: 2.4,
forward_movement: 4.5,
damage_kind: Slashing,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
recover_duration: 2.4,
movement: (
swing: Some(Forward(4.5)),
),
ori_modifier: 0.6,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.6,
energy_cost_per_strike: 0,
)

View File

@ -1,27 +1,25 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 40.0,
damage_increase: 0,
base_poise_damage: 28,
poise_damage_increase: 0,
knockback: 3.0,
range: 2.0,
angle: 60.0,
base_buildup_duration: 1.2,
base_swing_duration: 0.07,
melee_constructor: (
kind: Bash(
damage: 40,
poise: 28,
knockback: 3,
energy_regen: 0,
),
range: 2.0,
angle: 60.0,
),
buildup_duration: 1.2,
swing_duration: 0.07,
hit_timing: 0.5,
base_recover_duration: 0.8,
forward_movement: 3.0,
damage_kind: Crushing,
recover_duration: 0.8,
movement: (
swing: Some(Forward(3.0)),
),
ori_modifier: 0.6,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.6,
energy_cost_per_strike: 0,
)

View File

@ -1,59 +1,65 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 28.0,
damage_increase: 0,
base_poise_damage: 15,
poise_damage_increase: 0,
knockback: 3.0,
range: 2.2,
angle: 30.0,
base_buildup_duration: 1.3,
base_swing_duration: 0.07,
melee_constructor: (
kind: Bash(
damage: 28,
poise: 15,
knockback: 3,
energy_regen: 0,
),
range: 2.2,
angle: 30.0,
),
buildup_duration: 1.3,
swing_duration: 0.07,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 2.0,
damage_kind: Crushing,
recover_duration: 0.6,
movement: (
swing: Some(Forward(2.0)),
),
ori_modifier: 0.65,
),
(
stage: 2,
base_damage: 28.0,
damage_increase: 0,
base_poise_damage: 18,
poise_damage_increase: 0,
knockback: 3.0,
range: 2.2,
angle: 30.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.07,
melee_constructor: (
kind: Bash(
damage: 28,
poise: 18,
knockback: 3,
energy_regen: 0,
),
range: 2.2,
angle: 30.0,
),
buildup_duration: 0.8,
swing_duration: 0.07,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 1.5,
damage_kind: Crushing,
recover_duration: 0.6,
movement: (
swing: Some(Forward(1.5)),
),
ori_modifier: 0.65,
),
(
stage: 3,
base_damage: 28.0,
damage_increase: 0,
base_poise_damage: 20,
poise_damage_increase: 0,
knockback: 3.0,
range: 2.2,
angle: 30.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.07,
melee_constructor: (
kind: Bash(
damage: 28,
poise: 20,
knockback: 3,
energy_regen: 0,
),
range: 2.2,
angle: 30.0,
),
buildup_duration: 0.8,
swing_duration: 0.07,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 1.5,
damage_kind: Crushing,
recover_duration: 0.6,
movement: (
swing: Some(Forward(1.5)),
),
ori_modifier: 0.65,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.65,
energy_cost_per_strike: 0,
)

View File

@ -1,59 +1,65 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 44.0,
damage_increase: 0,
base_poise_damage: 20,
poise_damage_increase: 0,
knockback: 3.0,
range: 2.5,
angle: 30.0,
base_buildup_duration: 1.3,
base_swing_duration: 0.1,
melee_constructor: (
kind: Bash(
damage: 44,
poise: 20,
knockback: 3,
energy_regen: 0,
),
range: 2.5,
angle: 30.0,
),
buildup_duration: 1.3,
swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 2.0,
damage_kind: Crushing,
recover_duration: 0.6,
movement: (
swing: Some(Forward(2.0)),
),
ori_modifier: 0.7,
),
(
stage: 2,
base_damage: 44.0,
damage_increase: 0,
base_poise_damage: 20,
poise_damage_increase: 0,
knockback: 3.0,
range: 2.5,
angle: 30.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.1,
melee_constructor: (
kind: Bash(
damage: 44,
poise: 20,
knockback: 3,
energy_regen: 0,
),
range: 2.5,
angle: 30.0,
),
buildup_duration: 0.8,
swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 1.5,
damage_kind: Crushing,
recover_duration: 0.6,
movement: (
swing: Some(Forward(1.5)),
),
ori_modifier: 0.7,
),
(
stage: 3,
base_damage: 44.0,
damage_increase: 0,
base_poise_damage: 20,
poise_damage_increase: 0,
knockback: 3.0,
range: 2.5,
angle: 30.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.1,
melee_constructor: (
kind: Bash(
damage: 44,
poise: 20,
knockback: 3,
energy_regen: 0,
),
range: 2.5,
angle: 30.0,
),
buildup_duration: 0.8,
swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 1.5,
damage_kind: Crushing,
recover_duration: 0.6,
movement: (
swing: Some(Forward(1.5)),
),
ori_modifier: 0.7,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.7,
energy_cost_per_strike: 0,
)

View File

@ -1,75 +1,85 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 12.0,
damage_increase: 0,
base_poise_damage: 15,
poise_damage_increase: 0,
knockback: 1.0,
range: 2.5,
angle: 30.0,
base_buildup_duration: 1.2,
base_swing_duration: 0.1,
melee_constructor: (
kind: Bash(
damage: 12,
poise: 15,
knockback: 1,
energy_regen: 0,
),
range: 2.5,
angle: 30.0,
),
buildup_duration: 1.2,
swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.2,
forward_movement: 1.5,
damage_kind: Crushing,
recover_duration: 0.2,
movement: (
swing: Some(Forward(1.5)),
),
ori_modifier: 0.8,
),
(
stage: 2,
base_damage: 12.0,
damage_increase: 0,
base_poise_damage: 15,
poise_damage_increase: 0,
knockback: 1.0,
range: 2.5,
angle: 30.0,
base_buildup_duration: 0.3,
base_swing_duration: 0.07,
melee_constructor: (
kind: Bash(
damage: 12,
poise: 15,
knockback: 1,
energy_regen: 0,
),
range: 2.5,
angle: 30.0,
),
buildup_duration: 0.3,
swing_duration: 0.07,
hit_timing: 0.5,
base_recover_duration: 0.2,
forward_movement: 0.8,
damage_kind: Crushing,
recover_duration: 0.2,
movement: (
swing: Some(Forward(0.8)),
),
ori_modifier: 0.8,
),
(
stage: 3,
base_damage: 12.0,
damage_increase: 0,
base_poise_damage: 15,
poise_damage_increase: 0,
knockback: 1.0,
range: 2.5,
angle: 30.0,
base_buildup_duration: 0.4,
base_swing_duration: 0.07,
melee_constructor: (
kind: Bash(
damage: 12,
poise: 15,
knockback: 1,
energy_regen: 0,
),
range: 2.5,
angle: 30.0,
),
buildup_duration: 0.4,
swing_duration: 0.07,
hit_timing: 0.5,
base_recover_duration: 0.2,
forward_movement: 0.8,
damage_kind: Crushing,
recover_duration: 0.2,
movement: (
swing: Some(Forward(0.8)),
),
ori_modifier: 0.8,
),
(
stage: 4,
base_damage: 12.0,
damage_increase: 0,
base_poise_damage: 15,
poise_damage_increase: 0,
knockback: 8.0,
range: 2.5,
angle: 30.0,
base_buildup_duration: 0.4,
base_swing_duration: 0.07,
melee_constructor: (
kind: Bash(
damage: 12,
poise: 15,
knockback: 8,
energy_regen: 0,
),
range: 2.5,
angle: 30.0,
),
buildup_duration: 0.4,
swing_duration: 0.07,
hit_timing: 0.5,
base_recover_duration: 0.2,
forward_movement: 0.8,
damage_kind: Crushing,
recover_duration: 0.2,
movement: (
swing: Some(Forward(0.8)),
),
ori_modifier: 0.8,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.8,
energy_cost_per_strike: 0,
)

View File

@ -1,59 +1,65 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 16.0,
damage_increase: 0,
base_poise_damage: 0,
poise_damage_increase: 22,
knockback: 10.0,
range: 2.2,
angle: 30.0,
base_buildup_duration: 1.3,
base_swing_duration: 0.1,
melee_constructor: (
kind: Bash(
damage: 16,
poise: 22,
knockback: 10,
energy_regen: 0,
),
range: 2.2,
angle: 30.0,
),
buildup_duration: 1.3,
swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.4,
forward_movement: 2.0,
damage_kind: Crushing,
recover_duration: 0.4,
movement: (
swing: Some(Forward(2.0)),
),
ori_modifier: 0.7,
),
(
stage: 2,
base_damage: 16.0,
damage_increase: 0,
base_poise_damage: 22,
poise_damage_increase: 0,
knockback: 10.0,
range: 2.2,
angle: 30.0,
base_buildup_duration: 0.4,
base_swing_duration: 0.1,
melee_constructor: (
kind: Bash(
damage: 16,
poise: 22,
knockback: 10,
energy_regen: 0,
),
range: 2.2,
angle: 30.0,
),
buildup_duration: 0.4,
swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.4,
forward_movement: 1.0,
damage_kind: Crushing,
recover_duration: 0.4,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.7,
),
(
stage: 3,
base_damage: 16.0,
damage_increase: 0,
base_poise_damage: 22,
poise_damage_increase: 0,
knockback: 10.0,
range: 2.2,
angle: 30.0,
base_buildup_duration: 0.2,
base_swing_duration: 0.1,
melee_constructor: (
kind: Bash(
damage: 16,
poise: 22,
knockback: 10,
energy_regen: 0,
),
range: 2.2,
angle: 30.0,
),
buildup_duration: 0.2,
swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.4,
forward_movement: 1.0,
damage_kind: Crushing,
recover_duration: 0.4,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.7,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.7,
energy_cost_per_strike: 0,
)

View File

@ -1,27 +1,25 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 20.0,
damage_increase: 0,
base_poise_damage: 28,
poise_damage_increase: 0,
knockback: 3.0,
range: 2.7,
angle: 60.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.1,
melee_constructor: (
kind: Bash(
damage: 20,
poise: 28,
knockback: 3,
energy_regen: 0,
),
range: 2.7,
angle: 60.0,
),
buildup_duration: 0.8,
swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.8,
forward_movement: 1.0,
damage_kind: Crushing,
recover_duration: 0.8,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.7,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.7,
energy_cost_per_strike: 0,
)

View File

@ -1,59 +1,62 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 10.0,
damage_increase: 0,
base_poise_damage: 15,
poise_damage_increase: 0,
knockback: 5.0,
range: 2.5,
angle: 30.0,
base_buildup_duration: 0.9,
base_swing_duration: 0.07,
melee_constructor: (
kind: Bash(
damage: 10,
poise: 15,
knockback: 5,
energy_regen: 0,
),
range: 2.5,
angle: 30.0,
),
buildup_duration: 0.9,
swing_duration: 0.07,
hit_timing: 0.5,
base_recover_duration: 0.4,
forward_movement: 1.0,
damage_kind: Crushing,
recover_duration: 0.4,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.7,
),
(
stage: 2,
base_damage: 10.0,
damage_increase: 0,
base_poise_damage: 18,
poise_damage_increase: 0,
knockback: 5.0,
range: 2.5,
angle: 30.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.07,
melee_constructor: (
kind: Bash(
damage: 10,
poise: 18,
knockback: 5,
energy_regen: 0,
),
range: 2.5,
angle: 30.0,
),
buildup_duration: 0.8,
swing_duration: 0.07,
hit_timing: 0.5,
base_recover_duration: 0.4,
forward_movement: 0.0,
damage_kind: Crushing,
recover_duration: 0.4,
ori_modifier: 0.7,
),
(
stage: 3,
base_damage: 10.0,
damage_increase: 0,
base_poise_damage: 20,
poise_damage_increase: 0,
knockback: 5.0,
range: 2.5,
angle: 30.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.07,
melee_constructor: (
kind: Bash(
damage: 10,
poise: 20,
knockback: 5,
energy_regen: 0,
),
range: 2.5,
angle: 30.0,
),
buildup_duration: 0.8,
swing_duration: 0.07,
hit_timing: 0.5,
base_recover_duration: 0.4,
forward_movement: 1.0,
damage_kind: Crushing,
recover_duration: 0.4,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.7,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.7,
energy_cost_per_strike: 0,
)

View File

@ -1,43 +1,45 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 50.0,
damage_increase: 0,
base_poise_damage: 22,
poise_damage_increase: 0,
knockback: 4.0,
range: 2.5,
angle: 30.0,
base_buildup_duration: 1.3,
base_swing_duration: 0.1,
melee_constructor: (
kind: Bash(
damage: 50,
poise: 22,
knockback: 4,
energy_regen: 0,
),
range: 2.5,
angle: 30.0,
),
buildup_duration: 1.3,
swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 1.0,
damage_kind: Crushing,
recover_duration: 0.6,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.7,
),
(
stage: 2,
base_damage: 74.0,
damage_increase: 0,
base_poise_damage: 0,
poise_damage_increase: 22,
knockback: 4.0,
range: 2.5,
angle: 30.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.1,
melee_constructor: (
kind: Bash(
damage: 74,
poise: 22,
knockback: 4,
energy_regen: 0,
),
range: 2.5,
angle: 30.0,
),
buildup_duration: 0.8,
swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 0.5,
damage_kind: Crushing,
recover_duration: 0.6,
movement: (
swing: Some(Forward(0.5)),
),
ori_modifier: 0.7,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.7,
energy_cost_per_strike: 0,
)

View File

@ -1,43 +1,45 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 16.0,
damage_increase: 0,
base_poise_damage: 30,
poise_damage_increase: 0,
knockback: 4.0,
range: 2.2,
angle: 30.0,
base_buildup_duration: 1.3,
base_swing_duration: 0.1,
melee_constructor: (
kind: Bash(
damage: 16,
poise: 30,
knockback: 4,
energy_regen: 0,
),
range: 2.2,
angle: 30.0,
),
buildup_duration: 1.3,
swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 1.0,
damage_kind: Crushing,
recover_duration: 0.6,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.8,
),
(
stage: 2,
base_damage: 16.0,
damage_increase: 0,
base_poise_damage: 30,
poise_damage_increase: 0,
knockback: 4.0,
range: 2.2,
angle: 30.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.1,
melee_constructor: (
kind: Bash(
damage: 16,
poise: 30,
knockback: 4,
energy_regen: 0,
),
range: 2.2,
angle: 30.0,
),
buildup_duration: 0.8,
swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 1.5,
damage_kind: Crushing,
recover_duration: 0.6,
movement: (
swing: Some(Forward(1.5)),
),
ori_modifier: 0.8,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.8,
energy_cost_per_strike: 0,
)

View File

@ -1,59 +1,65 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 20.0,
damage_increase: 0,
base_poise_damage: 15,
poise_damage_increase: 0,
knockback: 5.0,
range: 2.2,
angle: 40.0,
base_buildup_duration: 1.2,
base_swing_duration: 0.15,
melee_constructor: (
kind: Bash(
damage: 20,
poise: 15,
knockback: 5,
energy_regen: 0,
),
range: 2.2,
angle: 40.0,
),
buildup_duration: 1.2,
swing_duration: 0.15,
hit_timing: 0.5,
base_recover_duration: 0.8,
forward_movement: 0.3,
damage_kind: Crushing,
recover_duration: 0.8,
movement: (
swing: Some(Forward(0.3)),
),
ori_modifier: 0.8,
),
(
stage: 2,
base_damage: 20.0,
damage_increase: 0,
base_poise_damage: 17,
poise_damage_increase: 0,
knockback: 5.0,
range: 2.2,
angle: 40.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.15,
melee_constructor: (
kind: Bash(
damage: 20,
poise: 17,
knockback: 5,
energy_regen: 0,
),
range: 2.2,
angle: 40.0,
),
buildup_duration: 0.8,
swing_duration: 0.15,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 0.5,
damage_kind: Crushing,
recover_duration: 0.6,
movement: (
swing: Some(Forward(0.5)),
),
ori_modifier: 0.8,
),
(
stage: 3,
base_damage: 20.0,
damage_increase: 0,
base_poise_damage: 20,
poise_damage_increase: 0,
knockback: 5.0,
range: 2.2,
angle: 40.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.15,
melee_constructor: (
kind: Bash(
damage: 20,
poise: 20,
knockback: 5,
energy_regen: 0,
),
range: 2.2,
angle: 40.0,
),
buildup_duration: 0.8,
swing_duration: 0.15,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 0.5,
damage_kind: Crushing,
recover_duration: 0.6,
movement: (
swing: Some(Forward(0.5)),
),
ori_modifier: 0.8,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.8,
energy_cost_per_strike: 0,
)

View File

@ -1,27 +1,18 @@
ComboMelee(
stage_data: [
(
stage: 1,
base_damage: 6.0,
damage_increase: 0,
base_poise_damage: 10,
poise_damage_increase: 0,
knockback: 1.0,
range: 1.5,
angle: 50.0,
base_buildup_duration: 0.6,
base_swing_duration: 0.15,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 1.0,
damage_kind: Crushing,
BasicMelee(
energy_cost: 0,
buildup_duration: 0.6,
swing_duration: 0.15,
hit_timing: 0.5,
recover_duration: 0.6,
melee_constructor: (
kind: Bash(
damage: 6,
poise: 10,
knockback: 1,
energy_regen: 0,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
range: 1.5,
angle: 50.0,
),
ori_modifier: 0.7,
)

View File

@ -1,43 +1,45 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 28.0,
damage_increase: 0,
base_poise_damage: 7.5,
poise_damage_increase: 0,
knockback: 3.0,
range: 3,
angle: 75.0,
base_buildup_duration: 1.2,
base_swing_duration: 0.07,
melee_constructor: (
kind: Stab(
damage: 28,
poise: 7.5,
knockback: 3,
energy_regen: 5,
),
range: 3.0,
angle: 75.0,
),
buildup_duration: 1.2,
swing_duration: 0.07,
hit_timing: 0.5,
base_recover_duration: 0.3,
forward_movement: 0.25,
damage_kind: Piercing,
recover_duration: 0.3,
movement: (
swing: Some(Forward(0.25)),
),
ori_modifier: 0.5,
),
(
stage: 2,
base_damage: 28.0,
damage_increase: 0,
base_poise_damage: 7.5,
poise_damage_increase: 0,
knockback: 3.0,
range: 3,
angle: 75.0,
base_buildup_duration: 0.2,
base_swing_duration: 0.07,
melee_constructor: (
kind: Stab(
damage: 28,
poise: 7.5,
knockback: 3,
energy_regen: 5,
),
range: 3.0,
angle: 75.0,
),
buildup_duration: 0.2,
swing_duration: 0.07,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 0.25,
damage_kind: Piercing,
recover_duration: 0.6,
movement: (
swing: Some(Forward(0.25)),
),
ori_modifier: 0.5,
),
],
initial_energy_gain: 5,
max_energy_gain: 5,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.65,
)
energy_cost_per_strike: 0,
)

View File

@ -1,27 +1,18 @@
ComboMelee(
stage_data: [
(
stage: 1,
base_damage: 1.0,
damage_increase: 0,
base_poise_damage: 0,
poise_damage_increase: 0,
knockback: 0.0,
range: 2.5,
angle: 150.0,
base_buildup_duration: 0.1,
base_swing_duration: 0.07,
hit_timing: 0.5,
base_recover_duration: 0.2,
forward_movement: 0.0,
damage_kind: Piercing,
BasicMelee(
energy_cost: 0,
buildup_duration: 0.1,
swing_duration: 0.07,
hit_timing: 0.5,
recover_duration: 0.2,
melee_constructor: (
kind: Stab(
damage: 1,
poise: 0,
knockback: 0,
energy_regen: 0,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
range: 2.5,
angle: 150.0,
),
ori_modifier: 0.6,
)

View File

@ -1,27 +1,18 @@
ComboMelee(
stage_data: [
(
stage: 1,
base_damage: 60.0,
damage_increase: 0,
base_poise_damage: 40,
poise_damage_increase: 0,
knockback: 3.0,
range: 3.5,
angle: 60.0,
base_buildup_duration: 1.8,
base_swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 1.8,
forward_movement: 3.0,
damage_kind: Crushing,
BasicMelee(
energy_cost: 0,
buildup_duration: 1.8,
swing_duration: 0.1,
hit_timing: 0.5,
recover_duration: 1.8,
melee_constructor: (
kind: Bash(
damage: 60,
poise: 40,
knockback: 3,
energy_regen: 0,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
range: 3.5,
angle: 60.0,
),
ori_modifier: 0.7,
)

View File

@ -1,27 +1,25 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 54.0,
damage_increase: 0,
base_poise_damage: 40,
poise_damage_increase: 0,
knockback: 4.0,
range: 7.5,
angle: 60.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.15,
melee_constructor: (
kind: Bash(
damage: 54,
poise: 40,
knockback: 4,
energy_regen: 0,
),
range: 7.5,
angle: 60.0,
),
buildup_duration: 0.8,
swing_duration: 0.15,
hit_timing: 0.5,
base_recover_duration: 0.8,
forward_movement: 3.0,
damage_kind: Crushing,
recover_duration: 0.8,
movement: (
swing: Some(Forward(3.0)),
),
ori_modifier: 0.7,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.7,
energy_cost_per_strike: 0,
)

View File

@ -1,59 +1,65 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 40.0,
damage_increase: 0,
base_poise_damage: 32.5,
poise_damage_increase: 0,
knockback: 3.0,
range: 7.5,
angle: 30.0,
base_buildup_duration: 1.3,
base_swing_duration: 0.15,
melee_constructor: (
kind: Bash(
damage: 40,
poise: 32.5,
knockback: 3,
energy_regen: 0,
),
range: 7.5,
angle: 30.0,
),
buildup_duration: 1.3,
swing_duration: 0.15,
hit_timing: 0.5,
base_recover_duration: 0.5,
forward_movement: 1.0,
damage_kind: Crushing,
recover_duration: 0.5,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.7,
),
(
stage: 2,
base_damage: 50.0,
damage_increase: 0,
base_poise_damage: 32.5,
poise_damage_increase: 0,
knockback: 3.0,
range: 5.5,
angle: 30.0,
base_buildup_duration: 0.2,
base_swing_duration: 0.15,
melee_constructor: (
kind: Bash(
damage: 50,
poise: 32.5,
knockback: 3,
energy_regen: 0,
),
range: 5.5,
angle: 30.0,
),
buildup_duration: 0.2,
swing_duration: 0.15,
hit_timing: 0.5,
base_recover_duration: 0.3,
forward_movement: 1.0,
damage_kind: Crushing,
recover_duration: 0.3,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.7,
),
(
stage: 3,
base_damage: 60.0,
damage_increase: 0,
base_poise_damage: 32.5,
poise_damage_increase: 0,
knockback: 25.0,
range: 5.5,
angle: 30.0,
base_buildup_duration: 0.4,
base_swing_duration: 0.125,
melee_constructor: (
kind: Bash(
damage: 60,
poise: 32.5,
knockback: 25,
energy_regen: 0,
),
range: 5.5,
angle: 30.0,
),
buildup_duration: 0.4,
swing_duration: 0.125,
hit_timing: 0.5,
base_recover_duration: 1.6,
forward_movement: 1.0,
damage_kind: Crushing,
recover_duration: 1.6,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.7,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.7,
energy_cost_per_strike: 0,
)

View File

@ -1,27 +1,25 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 22.0,
damage_increase: 0,
base_poise_damage: 28,
poise_damage_increase: 0,
knockback: 2.0,
range: 3.0,
angle: 15.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.15,
melee_constructor: (
kind: Bash(
damage: 22,
poise: 28,
knockback: 2,
energy_regen: 0,
),
range: 3.0,
angle: 15.0,
),
buildup_duration: 0.8,
swing_duration: 0.15,
hit_timing: 0.5,
base_recover_duration: 0.8,
forward_movement: 3.0,
damage_kind: Crushing,
recover_duration: 0.8,
movement: (
swing: Some(Forward(3.0)),
),
ori_modifier: 0.7,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.7,
energy_cost_per_strike: 0,
)

View File

@ -1,59 +1,65 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 16.5,
damage_increase: 0,
base_poise_damage: 20,
poise_damage_increase: 0,
knockback: 3.0,
range: 3.0,
angle: 15.0,
base_buildup_duration: 0.95,
base_swing_duration: 0.15,
melee_constructor: (
kind: Bash(
damage: 16.5,
poise: 20,
knockback: 3,
energy_regen: 0,
),
range: 3.0,
angle: 15.0,
),
buildup_duration: 0.95,
swing_duration: 0.15,
hit_timing: 0.5,
base_recover_duration: 0.50,
forward_movement: 1.0,
damage_kind: Crushing,
recover_duration: 0.5,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.6,
),
(
stage: 2,
base_damage: 30.0,
damage_increase: 0,
base_poise_damage: 20,
poise_damage_increase: 0,
knockback: 3.0,
range: 3.0,
angle: 15.0,
base_buildup_duration: 0.65,
base_swing_duration: 0.15,
melee_constructor: (
kind: Bash(
damage: 30,
poise: 20,
knockback: 3,
energy_regen: 0,
),
range: 3.0,
angle: 15.0,
),
buildup_duration: 0.65,
swing_duration: 0.15,
hit_timing: 0.5,
base_recover_duration: 0.50,
forward_movement: 1.0,
damage_kind: Crushing,
recover_duration: 0.5,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.6,
),
(
stage: 3,
base_damage: 36.0,
damage_increase: 0,
base_poise_damage: 20,
poise_damage_increase: 0,
knockback: 3.0,
range: 3.0,
angle: 15.0,
base_buildup_duration: 0.525,
base_swing_duration: 0.125,
melee_constructor: (
kind: Bash(
damage: 36,
poise: 20,
knockback: 3,
energy_regen: 0,
),
range: 3.0,
angle: 15.0,
),
buildup_duration: 0.525,
swing_duration: 0.125,
hit_timing: 0.5,
base_recover_duration: 1.25,
forward_movement: 1.0,
damage_kind: Crushing,
recover_duration: 1.25,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.6,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.6,
energy_cost_per_strike: 0,
)

View File

@ -1,59 +1,65 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 30.0,
damage_increase: 0,
base_poise_damage: 17.5,
poise_damage_increase: 0,
knockback: 3.0,
range: 4.5,
angle: 30.0,
base_buildup_duration: 1.3,
base_swing_duration: 0.15,
melee_constructor: (
kind: Bash(
damage: 30,
poise: 17.5,
knockback: 3,
energy_regen: 0,
),
range: 4.5,
angle: 30.0,
),
buildup_duration: 1.3,
swing_duration: 0.15,
hit_timing: 0.5,
base_recover_duration: 0.5,
forward_movement: 1.0,
damage_kind: Crushing,
recover_duration: 0.5,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.7,
),
(
stage: 2,
base_damage: 30.0,
damage_increase: 0,
base_poise_damage: 20.5,
poise_damage_increase: 0,
knockback: 3.0,
range: 4.5,
angle: 30.0,
base_buildup_duration: 0.2,
base_swing_duration: 0.15,
melee_constructor: (
kind: Bash(
damage: 30,
poise: 20.5,
knockback: 3,
energy_regen: 0,
),
range: 4.5,
angle: 30.0,
),
buildup_duration: 0.2,
swing_duration: 0.15,
hit_timing: 0.5,
base_recover_duration: 0.3,
forward_movement: 1.0,
damage_kind: Crushing,
recover_duration: 0.3,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.7,
),
(
stage: 3,
base_damage: 30.0,
damage_increase: 0,
base_poise_damage: 22.5,
poise_damage_increase: 0,
knockback: 25.0,
range: 5.5,
angle: 30.0,
base_buildup_duration: 0.4,
base_swing_duration: 0.125,
melee_constructor: (
kind: Bash(
damage: 30,
poise: 22.5,
knockback: 25,
energy_regen: 0,
),
range: 5.5,
angle: 30.0,
),
buildup_duration: 0.4,
swing_duration: 0.125,
hit_timing: 0.5,
base_recover_duration: 1.6,
forward_movement: 1.0,
damage_kind: Crushing,
recover_duration: 1.6,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.7,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.7,
)
energy_cost_per_strike: 0,
)

View File

@ -1,27 +1,18 @@
ComboMelee(
stage_data: [
(
stage: 1,
base_damage: 36.0,
damage_increase: 0,
base_poise_damage: 40,
poise_damage_increase: 0,
knockback: 3.0,
range: 2.5,
angle: 30.0,
base_buildup_duration: 1.2,
base_swing_duration: 0.4,
hit_timing: 0.5,
base_recover_duration: 0.8,
forward_movement: 5.0,
damage_kind: Crushing,
BasicMelee(
energy_cost: 0,
buildup_duration: 1.2,
swing_duration: 0.4,
hit_timing: 0.5,
recover_duration: 0.8,
melee_constructor: (
kind: Bash(
damage: 36,
poise: 40,
knockback: 3,
energy_regen: 0,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
range: 2.5,
angle: 30.0,
),
ori_modifier: 0.7,
)

View File

@ -1,33 +1,25 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 2.0,
damage_increase: 1.0,
base_poise_damage: 8,
poise_damage_increase: 0,
knockback: 8.0,
range: 3.5,
angle: 50.0,
base_buildup_duration: 0.1,
base_swing_duration: 0.05,
melee_constructor: (
kind: Slash(
damage: 2,
poise: 8,
knockback: 8,
energy_regen: 0,
),
range: 3.5,
angle: 50.0,
),
buildup_duration: 0.1,
swing_duration: 0.05,
hit_timing: 0.5,
base_recover_duration: 0.05,
forward_movement: 1.0,
damage_kind: Slashing,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
recover_duration: 0.05,
movement: (
swing: Some(Forward(1.0)),
),
ori_modifier: 0.7,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.7,
)
energy_cost_per_strike: 0,
)

View File

@ -1,4 +1,4 @@
ComboMelee(
ComboMeleeDeprecated(
stage_data: [(
stage: 1,
base_damage: 15.0,

View File

@ -1,43 +1,45 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 24.0,
damage_increase: 1.0,
base_poise_damage: 40,
poise_damage_increase: 0,
knockback: 4.0,
range: 4.5,
angle: 50.0,
base_buildup_duration: 0.6,
base_swing_duration: 0.08,
melee_constructor: (
kind: Bash(
damage: 24,
poise: 40,
knockback: 4,
energy_regen: 0,
),
range: 4.5,
angle: 50.0,
),
buildup_duration: 0.6,
swing_duration: 0.08,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 3.5,
damage_kind: Crushing,
recover_duration: 0.6,
movement: (
swing: Some(Forward(3.5)),
),
ori_modifier: 0.65,
),
(
stage: 2,
base_damage: 32.0,
damage_increase: 1.5,
base_poise_damage: 40,
poise_damage_increase: 0,
knockback: 16.0,
range: 2.5,
angle: 30.0,
base_buildup_duration: 0.6,
base_swing_duration: 0.25,
melee_constructor: (
kind: Bash(
damage: 32,
poise: 40,
knockback: 16,
energy_regen: 0,
),
range: 2.5,
angle: 30.0,
),
buildup_duration: 0.6,
swing_duration: 0.25,
hit_timing: 0.5,
base_recover_duration: 1.2,
forward_movement: 2.0,
damage_kind: Crushing,
recover_duration: 1.2,
movement: (
swing: Some(Forward(2.0)),
),
ori_modifier: 0.65,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.65,
energy_cost_per_strike: 0,
)

View File

@ -1,55 +1,57 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 6.5,
damage_increase: 0,
base_poise_damage: 18,
poise_damage_increase: 0,
knockback: 4.0,
range: 2.5,
angle: 15.0,
base_buildup_duration: 0.35,
base_swing_duration: 0.075,
melee_constructor: (
kind: Stab(
damage: 6.5,
poise: 18,
knockback: 4,
energy_regen: 0,
),
range: 2.5,
angle: 15.0,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
),
buildup_duration: 0.35,
swing_duration: 0.075,
hit_timing: 0.5,
base_recover_duration: 0.4,
forward_movement: 0.7,
damage_kind: Piercing,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
recover_duration: 0.4,
movement: (
swing: Some(Forward(0.7)),
),
ori_modifier: 0.75,
),
(
stage: 2,
base_damage: 8.0,
damage_increase: 0,
base_poise_damage: 18,
poise_damage_increase: 0,
knockback: 7.0,
range: 2.5,
angle: 15.0,
base_buildup_duration: 0.5,
base_swing_duration: 0.1,
melee_constructor: (
kind: Stab(
damage: 8,
poise: 18,
knockback: 7,
energy_regen: 0,
),
range: 2.5,
angle: 15.0,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
),
buildup_duration: 0.5,
swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.5,
forward_movement: 0.7,
damage_kind: Piercing,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
recover_duration: 0.5,
movement: (
swing: Some(Forward(0.7)),
),
ori_modifier: 0.75,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 3.0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 2,
ori_modifier: 0.75,
energy_cost_per_strike: 0,
)

View File

@ -1,55 +1,57 @@
ComboMelee(
stage_data: [
ComboMelee2(
strikes: [
(
stage: 1,
base_damage: 8.0,
damage_increase: 1.0,
base_poise_damage: 15,
poise_damage_increase: 0,
knockback: 8.0,
range: 3.5,
angle: 50.0,
base_buildup_duration: 0.4,
base_swing_duration: 0.08,
melee_constructor: (
kind: Slash(
damage: 8,
poise: 15,
knockback: 8,
energy_regen: 0,
),
range: 3.5,
angle: 50.0,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
),
buildup_duration: 0.4,
swing_duration: 0.08,
hit_timing: 0.5,
base_recover_duration: 0.5,
forward_movement: 2.5,
damage_kind: Slashing,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
recover_duration: 0.5,
movement: (
swing: Some(Forward(2.5)),
),
ori_modifier: 0.7,
),
(
stage: 2,
base_damage: 10.0,
damage_increase: 1.5,
base_poise_damage: 20,
poise_damage_increase: 0,
knockback: 12.0,
range: 3.5,
angle: 30.0,
base_buildup_duration: 0.7,
base_swing_duration: 0.1,
melee_constructor: (
kind: Slash(
damage: 10,
poise: 20,
knockback: 12,
energy_regen: 0,
),
range: 3.5,
angle: 30.0,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
),
buildup_duration: 0.7,
swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.7,
forward_movement: 2.0,
damage_kind: Slashing,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
recover_duration: 0.7,
movement: (
swing: Some(Forward(2.0)),
),
ori_modifier: 0.7,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
ori_modifier: 0.7,
energy_cost_per_strike: 0,
)

View File

@ -1,11 +1,11 @@
ItemDef(
name: "Twiggy Shoulders",
name: "Twig Shoulders",
description: "Spaulders made from tightly tied twigs.",
kind: Armor((
kind: Shoulder,
stats: FromSet("Twigs"),
)),
quality: Common,
quality: Moderate,
tags: [
SalvageInto(Twig, 1),
],

View File

@ -0,0 +1,27 @@
ItemDef(
name: "Potion of Agility",
description: "Fly, you fools!",
kind: Consumable(
kind: Drink,
effects: All([
Buff((
kind: Agility,
data: (
strength: 0.55,
duration: Some(25),
),
cat_ids: [Natural],
)),
Buff((
kind: PotionSickness,
data: (
strength: 0.5,
duration: Some(60),
),
cat_ids: [Natural],
)),
])
),
quality: Moderate,
tags: [Potion],
)

View File

@ -1,5 +1,5 @@
ItemDef(
name: "Burning Potion",
name: "Potion of Combustion",
description: "Sets the user ablaze",
kind: Consumable(
kind: Drink,

View File

@ -31,8 +31,8 @@
],
craft_sprite: Some(Anvil),
),
"potion_burning": (
output: ("common.items.consumable.potion_burning", 1),
"potion_combustion": (
output: ("common.items.consumable.potion_combustion", 1),
inputs: [
(Item("common.items.crafting_ing.empty_vial"), 1, false),
(Item("common.items.crafting_ing.living_embers"), 3, false),
@ -40,6 +40,16 @@
],
craft_sprite: Some(Cauldron),
),
"potion_agility": (
output: ("common.items.consumable.potion_agility", 1),
inputs: [
(Item("common.items.crafting_ing.empty_vial"), 1, false),
(Item("common.items.mineral.ore.veloritefrag"), 2, false),
(Item("common.items.crafting_ing.animal_misc.raptor_feather"), 2, false),
(Item("common.items.crafting_ing.animal_misc.viscous_ooze"), 3, false),
],
craft_sprite: Some(Cauldron),
),
"potion_s": (
output: ("common.items.consumable.potion_minor", 1),
inputs: [

View File

@ -307,6 +307,19 @@
// Dungeon music
Individual((
title: "A Heart's Ice-Cold Protection",
path: "voxygen.audio.soundtrack.dungeon.a_hearts_ice-cold_protection",
length: 205.0,
timing: None,
weather: None,
biomes:[],
sites: [
Dungeon(Adlet),
],
music_state: Activity(Explore),
artist: ("GeekyGami", "https://geekygami.newgrounds.com/audio/"),
)),
Individual((
title: "Mysty Temple",
path: "voxygen.audio.soundtrack.dungeon.mysty_temple",
@ -316,6 +329,7 @@
biomes:[],
sites: [
Dungeon(Old),
Dungeon(Adlet),
],
music_state: Activity(Explore),
artist: ("Tiny", None),
@ -342,6 +356,7 @@
biomes: [],
sites: [
Dungeon(Old),
Dungeon(Adlet),
],
music_state: Activity(Explore),
artist: ("Aeronic", "https://soundcloud.com/aeronic"),
@ -355,6 +370,7 @@
biomes: [],
sites: [
Dungeon(Old),
Dungeon(Adlet),
],
music_state: Activity(Explore),
artist: ("Aeronic", "https://soundcloud.com/aeronic"),
@ -436,8 +452,8 @@
Dungeon(Old),
],
segments: [
("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-start", 56.0, Transition(Explore, Combat(High)), Some(Combat(High))),
("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-loop", 54.0, Activity(Combat(High)), None),
("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-start", 61.818, Transition(Explore, Combat(High)), Some(Combat(High))),
("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-loop", 54.545, Activity(Combat(High)), None),
("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-end", 6.0, Transition(Combat(High), Explore), None),
],
artist: ("DaforLynx", "https://daforlynx.neocities.org/"),
@ -451,14 +467,14 @@
Dungeon(Old),
],
segments: [
("voxygen.audio.soundtrack.combat.reversal.reversal-start", 60.0, Transition(Explore, Combat(High)), Some(Combat(High))),
("voxygen.audio.soundtrack.combat.reversal.reversal-start", 61.666, Transition(Explore, Combat(High)), Some(Combat(High))),
("voxygen.audio.soundtrack.combat.reversal.reversal-loop", 60.0, Activity(Combat(High)), None),
("voxygen.audio.soundtrack.combat.reversal.reversal-end", 4.0, Transition(Combat(High), Explore), None),
("voxygen.audio.soundtrack.combat.reversal.reversal-end", 3.666, Transition(Combat(High), Explore), None),
],
artist: ("DaforLynx", "https://daforlynx.neocities.org/"),
),
Segmented(
title: "Valiant Voxels",
title: "Clash",
timing: None,
weather: None,
biomes: [],
@ -466,11 +482,11 @@
Dungeon(Old),
],
segments: [
("voxygen.audio.soundtrack.combat.valiant_voxels.valiant_voxels-start", 7.846, Transition(Explore, Combat(High)), Some(Combat(High))),
("voxygen.audio.soundtrack.combat.valiant_voxels.valiant_voxels-loop", 59.126, Activity(Combat(High)), None),
("voxygen.audio.soundtrack.combat.valiant_voxels.valiant_voxels-end", 5.49, Transition(Combat(High), Explore), None),
("voxygen.audio.soundtrack.combat.clash.clash-start", 121.5, Transition(Explore, Combat(High)), Some(Combat(High))),
("voxygen.audio.soundtrack.combat.clash.clash-loop", 81.0, Activity(Combat(High)), None),
("voxygen.audio.soundtrack.combat.clash.clash-end", 1.5, Transition(Combat(High), Explore), None),
],
artist: ("Seventh Sam", "https://seventhsam.com/"),
artist: ("Alfredo Pompa D & Rodriogo Plata", None),
),
]
)

View File

@ -165,6 +165,19 @@
// Dungeon music
Individual((
title: "A Heart's Ice-Cold Protection",
path: "voxygen.audio.soundtrack.dungeon.a_hearts_ice-cold_protection",
length: 205.0,
timing: None,
weather: None,
biomes:[],
sites: [
Dungeon(Adlet),
],
music_state: Activity(Explore),
artist: ("GeekyGami", "https://geekygami.newgrounds.com/audio/"),
)),
Individual((
title: "Mysty Temple",
path: "voxygen.audio.soundtrack.dungeon.mysty_temple",
@ -174,6 +187,7 @@
biomes:[],
sites: [
Dungeon(Old),
Dungeon(Adlet),
],
music_state: Activity(Explore),
artist: ("Tiny", None),
@ -200,6 +214,7 @@
biomes: [],
sites: [
Dungeon(Old),
Dungeon(Adlet),
],
music_state: Activity(Explore),
artist: ("Aeronic", "https://soundcloud.com/aeronic"),
@ -213,6 +228,7 @@
biomes: [],
sites: [
Dungeon(Old),
Dungeon(Adlet),
],
music_state: Activity(Explore),
artist: ("Aeronic", "https://soundcloud.com/aeronic"),
@ -294,8 +310,8 @@
Dungeon(Old),
],
segments: [
("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-start", 56.0, Transition(Explore, Combat(High)), Some(Combat(High))),
("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-loop", 54.0, Activity(Combat(High)), None),
("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-start", 61.818, Transition(Explore, Combat(High)), Some(Combat(High))),
("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-loop", 54.545, Activity(Combat(High)), None),
("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-end", 6.0, Transition(Combat(High), Explore), None),
],
artist: ("DaforLynx", "https://daforlynx.neocities.org/"),
@ -309,11 +325,26 @@
Dungeon(Old),
],
segments: [
("voxygen.audio.soundtrack.combat.reversal.reversal-start", 60.0, Transition(Explore, Combat(High)), Some(Combat(High))),
("voxygen.audio.soundtrack.combat.reversal.reversal-start", 61.666, Transition(Explore, Combat(High)), Some(Combat(High))),
("voxygen.audio.soundtrack.combat.reversal.reversal-loop", 60.0, Activity(Combat(High)), None),
("voxygen.audio.soundtrack.combat.reversal.reversal-end", 4.0, Transition(Combat(High), Explore), None),
("voxygen.audio.soundtrack.combat.reversal.reversal-end", 3.666, Transition(Combat(High), Explore), None),
],
artist: ("DaforLynx", "https://daforlynx.neocities.org/"),
),
Segmented(
title: "Clash",
timing: None,
weather: None,
biomes: [],
sites: [
Dungeon(Old),
],
segments: [
("voxygen.audio.soundtrack.combat.clash.clash-start", 121.5, Transition(Explore, Combat(High)), Some(Combat(High))),
("voxygen.audio.soundtrack.combat.clash.clash-loop", 81.0, Activity(Combat(High)), None),
("voxygen.audio.soundtrack.combat.clash.clash-end", 1.5, Transition(Combat(High), Explore), None),
],
artist: ("Alfredo Pompa D & Rodriogo Plata", None),
),
]
)

View File

@ -397,27 +397,6 @@
threshold: 0.7,
subtitle: "subtitle-hammer-attack",
),
Attack(ComboMelee(Action, 1), Sword): (
files: [
"voxygen.audio.sfx.abilities.swing_sword",
],
threshold: 0.7,
subtitle: "subtitle-sword_attack",
),
Attack(ComboMelee(Action, 2), Sword): (
files: [
"voxygen.audio.sfx.abilities.separated_second_swing",
],
threshold: 0.7,
subtitle: "subtitle-sword_attack",
),
Attack(ComboMelee(Action, 3), Sword): (
files: [
"voxygen.audio.sfx.abilities.separated_third_swing",
],
threshold: 0.7,
subtitle: "subtitle-sword_attack",
),
Inventory(CollectedTool(Sword)): (
files: [
"voxygen.audio.sfx.inventory.pickup_sword",
@ -443,7 +422,7 @@
threshold: 0.5,
subtitle: "subtitle-unwield_hammer",
),
Attack(ComboMelee(Action, 1), Hammer): (
Attack(ComboMeleeDeprecated(Action, 1), Hammer): (
files: [
"voxygen.audio.sfx.abilities.swing",
],
@ -489,20 +468,6 @@
threshold: 0.5,
subtitle: "subtitle-unwield_axe",
),
Attack(ComboMelee(Action, 1), Axe): (
files: [
"voxygen.audio.sfx.abilities.swing",
],
threshold: 0.7,
subtitle: "subtitle-axe_attack",
),
Attack(ComboMelee(Action, 2), Axe): (
files: [
"voxygen.audio.sfx.abilities.swing",
],
threshold: 0.7,
subtitle: "subtitle-axe_attack",
),
Attack(RapidMelee(Action), Axe): (
files: [
"voxygen.audio.sfx.abilities.swing",
@ -549,13 +514,6 @@
threshold: 0.5,
subtitle: "subtitle-unwield_staff",
),
Attack(BasicBeam, Staff): (
files: [
"voxygen.audio.sfx.abilities.flame_thrower",
],
threshold: 0.2,
subtitle: "subtitle-staff_attack",
),
//Attack(BasicRanged, Staff): (
// files: [
// "voxygen.audio.sfx.abilities.staff_channeling",

View File

@ -16,6 +16,20 @@
// Overworld exploration tracks
Individual((
title: "Graceful Journey",
path: "voxygen.audio.soundtrack.overworld.graceful_journey",
length: 240.0,
timing: Day,
weather: None,
biomes: [
(Lake, 1),
(Grassland, 1),
],
sites: [Void],
music_state: Activity(Explore),
artist: ("Tobias Thy - (Thy SFX)", "https://soundcloud.com/thyofficial"),
)),
Individual((
title: "A Cold Breeze Blows",
path: "voxygen.audio.soundtrack.overworld.a_cold_breeze_blows",
@ -744,6 +758,19 @@
// Dungeon music
Individual((
title: "A Heart's Ice-Cold Protection",
path: "voxygen.audio.soundtrack.dungeon.a_hearts_ice-cold_protection",
length: 205.0,
timing: None,
weather: None,
biomes:[],
sites: [
Dungeon(Adlet),
],
music_state: Activity(Explore),
artist: ("GeekyGami", "https://geekygami.newgrounds.com/audio/"),
)),
Individual((
title: "Mysty Temple",
path: "voxygen.audio.soundtrack.dungeon.mysty_temple",
@ -753,6 +780,7 @@
biomes:[],
sites: [
Dungeon(Old),
Dungeon(Adlet),
],
music_state: Activity(Explore),
artist: ("Tiny", None),
@ -779,6 +807,7 @@
biomes: [],
sites: [
Dungeon(Old),
Dungeon(Adlet),
],
music_state: Activity(Explore),
artist: ("Aeronic", "https://soundcloud.com/aeronic"),
@ -792,6 +821,7 @@
biomes: [],
sites: [
Dungeon(Old),
Dungeon(Adlet),
],
music_state: Activity(Explore),
artist: ("Aeronic", "https://soundcloud.com/aeronic"),
@ -873,8 +903,8 @@
Dungeon(Old),
],
segments: [
("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-start", 56.0, Transition(Explore, Combat(High)), Some(Combat(High))),
("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-loop", 54.0, Activity(Combat(High)), None),
("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-start", 61.818, Transition(Explore, Combat(High)), Some(Combat(High))),
("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-loop", 54.545, Activity(Combat(High)), None),
("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-end", 6.0, Transition(Combat(High), Explore), None),
],
artist: ("DaforLynx", "https://daforlynx.neocities.org/"),
@ -888,11 +918,26 @@
Dungeon(Old),
],
segments: [
("voxygen.audio.soundtrack.combat.reversal.reversal-start", 60.0, Transition(Explore, Combat(High)), Some(Combat(High))),
("voxygen.audio.soundtrack.combat.reversal.reversal-start", 61.666, Transition(Explore, Combat(High)), Some(Combat(High))),
("voxygen.audio.soundtrack.combat.reversal.reversal-loop", 60.0, Activity(Combat(High)), None),
("voxygen.audio.soundtrack.combat.reversal.reversal-end", 4.0, Transition(Combat(High), Explore), None),
("voxygen.audio.soundtrack.combat.reversal.reversal-end", 3.666, Transition(Combat(High), Explore), None),
],
artist: ("DaforLynx", "https://daforlynx.neocities.org/"),
),
Segmented(
title: "Clash",
timing: None,
weather: None,
biomes: [],
sites: [
Dungeon(Old),
],
segments: [
("voxygen.audio.soundtrack.combat.clash.clash-start", 121.5, Transition(Explore, Combat(High)), Some(Combat(High))),
("voxygen.audio.soundtrack.combat.clash.clash-loop", 81.0, Activity(Combat(High)), None),
("voxygen.audio.soundtrack.combat.clash.clash-end", 1.5, Transition(Combat(High), Explore), None),
],
artist: ("Alfredo Pompa D & Rodriogo Plata", None),
),
]
)

BIN
assets/voxygen/audio/soundtrack/combat/clash/clash-end.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/audio/soundtrack/combat/clash/clash-loop.ogg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/audio/soundtrack/combat/clash/clash-start.ogg (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.

Binary file not shown.

View File

@ -5,6 +5,14 @@ buff-stat-health = Restores { $str_total } Health
## Potion
buff-title-potion = Potion
buff-desc-potion = Drinking...
## Agility
buff-title-agility = Agility
buff-desc-agility = Your movement is faster, but you deal less damage, and take more damage.
buff-stat-agility =
Increases movement speed by { $strength }%.
but decreases your damage by 100%,
and increases your damage vulnerability
by 100%.
## Saturation
buff-title-saturation = Saturation
buff-desc-saturation = Gain health over time from consumables.
@ -69,9 +77,9 @@ buff-title-parried = Parried
buff-desc-parried = You were parried and now are slow to recover.
## Potion sickness
buff-title-potionsickness = Potion sickness
buff-desc-potionsickness = Potions heal you less after recently consuming a potion.
buff-desc-potionsickness = Potions have less positive effect on you after recently consuming a potion.
buff-stat-potionsickness =
Decreases the amount you heal from
Decreases the positive effects of
subsequent potions by { $strength }%.
## Reckless
buff-title-reckless = Reckless

View File

@ -7,30 +7,30 @@ main-tip = Tip:
main-unbound_key_tip = unbound
main-notice =
Welcome to the alpha version of Veloren!
Before you dive into the fun, please keep a few things in mind:
- This is a very early alpha. Expect bugs, extremely unfinished gameplay, unpolished mechanics, and missing features.
- If you have constructive feedback or bug reports, you can contact us via Reddit, GitLab, or our community Discord server.
- Veloren is licensed under the GPL 3 open-source licence. That means you're free to play, modify, and redistribute the game however
you wish (provided derived work is also under GPL 3).
- Veloren is a non-profit community project, and everybody working on it is a volunteer.
If you like what you see, you're welcome to join the development or art teams!
Thanks for taking the time to read this notice, we hope you enjoy the game!
~ The Veloren Devs
main-login_process =
Information on the Login Process:
Please note that you need an account
to play on auth-enabled servers.
You can create an account over at
https://veloren.net/account/.
main-singleplayer-new = New
main-singleplayer-delete = Delete
@ -38,6 +38,7 @@ main-singleplayer-regenerate = Regenerate
main-singleplayer-create_custom = Create Custom
main-singleplayer-invalid_name = Error: Invalid name
main-singleplayer-seed = Seed
main-singleplayer-day_length = Day duration
main-singleplayer-random_seed = Random
main-singleplayer-size_lg = Logarithmic size
main-singleplayer-map_large_warning = Warning: Large worlds will take a long time to start for the first time

View File

@ -94,6 +94,10 @@ buff-desc-wet = Земля плутає ваші ноги ускладнючи
buff-title-ensnared = Пастка
buff-desc-ensnared = Ліани опутують ваші ноги, перешкоджаючи ходьбі.
## Fortitude
buff-title-fortitude = Стійкість
buff-desc-fortitude = Ви протистоїте дезорієнтації. Коли отримуєте ушкодження вам легше дезорієнтувати інших.
## Util
buff-text-for_seconds = протягом { $dur_secs } сек.
@ -143,6 +147,9 @@ buff-desc-bloodfeast = Атаки по ворогам, які кровоточа
## Berserk
buff-title-berserk = Берсерк
buff-desc-berserk = Ви перебуваєте в шаленій люті, через що ваші атаки стають сильнішими та стрімкішими, а ваша швидкість збільшується. Однак у результаті ваші захисні можливості зменшуються
## Heatstroke
buff-title-heatstroke = Тепловий Удар
buff-desc-heatstroke = Вам було спекотно і тепер ви страждаєте від теплового удару. Ваші енергетичні винагороди і швидкість руху зменшені. Охолоньте.
## Util
buff-mysterious = Таємничий ефект
buff-remove = Натисніть, щоб видалити

View File

@ -0,0 +1,96 @@
command-no-permission = Ви не маєте прав використовувати '/{ $command_name }'
command-position-unavailable = Неможливо отримати позицію для { $target }
command-player-role-unavailable = Неможливо отримати ролі адміністратора для { $target }
command-uid-unavailable = Неможливо отримати uid для { $target }
command-area-not-found = Неможливо знайти область '{ $area }'
command-player-not-found = Гравець '{ $player }' не знайдений!
command-player-uuid-not-found = Гравець з UUID '{ $uuid }' не знайдений!
command-username-uuid-unavailable = Неможливо визначити UUID для логіну { $username }
command-uuid-username-unavailable = Неможливо визначити логін для UUID { $uuid }
command-no-sudo = Вдавати інших гравців неввічливо
command-entity-dead = Сутність '{ $entity }' мертва!
command-error-while-evaluating-request = При валідації запиту сталася помилка: { $error }
command-give-inventory-full = Інвентар гравця повний. Видано { $given ->
[1] лише один
*[other] { $given }
} з { $total } предметів.
command-invalid-item = Неправильний предмет: { $item }
command-invalid-block-kind = Неправильний тип блока: { $kind }
command-nof-entities-at-least = Сутностей має бути щонайменше 1
command-nof-entities-less-than = Сутностей має бути менше 50
command-entity-load-failed = Не вдалося завантажити конфігурацію сутності: { $config }
command-spawned-entities-config = Створено { $n } сутностей з конфігурації: { $config }
command-invalid-sprite = Неправильний тип спрайта: { $kind }
command-time-parse-too-large = { $n } невалідний, не може мати більше 16 цифр.
command-time-parse-negative = { $n } невалідний, не може бути від'ємний.
command-time-backwards = { $t } в минулому, час не може йти навпаки.
command-time-invalid = { $t } невалідний час.
command-rtsim-purge-perms = Ви маєте бути адміністратором (не тимчасовим) щоб видаляти дані rtsim.
command-chunk-not-loaded = Чанк { $x }, { $y } не завантажений
command-chunk-out-of-bounds = Чанк { $x }, { $y } за межами карти
command-spawned-entity = Створено сутність з ID: { $id }
command-spawned-dummy = Створено тренувальний манекен
command-spawned-airship = Створено повітряний корабель
command-spawned-campfire = Створено багаття
command-spawned-safezone = Створено безпечну зону
command-volume-size-incorrect = Розмір повинен бути від 1 до 127.
command-volume-created = Створено об'єм
command-permit-build-given = Ви не можете будувати в '{ $area }'
command-permit-build-granted = Надано дозвіл на будування в '{ $area }'
command-revoke-build-recv = Дозвіл на будування в '{ $area }' відкликано
command-revoke-build = Дозвіл будувати в '{ $area }' відкликано
command-revoke-build-all = Ваші дозволи на будування відкликано
command-revoked-all-build = Всі дозволи на будування відкликано
command-no-buid-perms = Ви не маєте дозволу будувати.
command-set-build-mode-off = Режим будівництва вимкнено.
command-set-build-mode-on-persistent = Режим будівництва увімкнуто. Ввімкнено експериментальне збереження змін ландшафту. Сервер намагатиметься зберегти зміни, але збереження не гарантується.
command-set-build-mode-on-unpersistent = Режим будівництва увімкнуто. Зміни пропадуть після перезавантаження чанка.
command-invalid-alignment = Неправильне вирівнювання: { $alignment }
command-kit-not-enough-slots = Недостатньо слотів в інвентарі
command-lantern-unequiped = Будь ласка, спочатку візьміть ліхтар
command-lantern-adjusted-strength = Ви змінили силу полум'я.
command-lantern-adjusted-strength-color = Ви змінили силу та колір полум'я..
command-explosion-power-too-high = Сила вибуху не може перевищувати { $power }
command-explosion-power-too-low = Сила вибуху повинна бути більше за { $power }
# Note: Do not translate "confirm" here
command-disconnectall-confirm = Виконайте, будь ласка, команду ще раз вказавши "confirm" як другий аргумент, щоб відключити всіх гравців.
command-invalid-skill-group = { $group } не група вмінь!
command-unknown = Невідома команда
command-disabled-by-settings = Команда вимкнена в налаштуваннях
command-battlemode-intown = Ви повинні бути в місті, щоб змінити бойовий режим!
command-battlemode-cooldown = Період очікування активний. Спробуйте ще раз через { $cooldown } секунд.
command-battlemode-available-modes = Доступні режими: pvp, pve
command-battlemode-same = Спроба встановити той самий бойовий режим.
command-battlemode-updated = Новий бойовий режим: { $battlemode }
command-buff-unknown = Невідомий баф: { $buff }
command-skillpreset-load-error = Помилка при завантаженні пресетів
command-skillpreset-broken = Пресет вмінь пошкоджений
command-skillpreset-missing = Пресет не існує: { $preset }
command-location-invalid = Назва локації '{ $location }' невалідна. Назви можуть містити тільки малі літери ASCII та підкреслення.
command-location-duplicate = Локація '{ $location }' вже існує.
command-location-not-found = Локація '{ $location }' не існує
command-location-created = Свторено локацію '{ $location }'
command-location-deleted = Видалено локацію '{ $location }'
command-locations-empty = Зараз не має локацій
command-locations-list = Доступні локації: { $locations }
# Note: Do not translate these weather names
command-weather-valid-values = Допустимі значення: 'clear', 'rain', 'wind', 'storm'
command-scale-set = Встановити масштаб в { $scale }
command-repaired-items = Всі одягнути речі відремонтовано
command-message-group-missing = Ви використовуєте чат групи, до якої не належите. Використовуйте /world чи
/region щоб змінити чат.
command-tell-request = { $sender } хоче говорити з вами.
# Unreachable/untestable but added for consistency
command-player-info-unavailable = Неможливо отримати інформацію про гравця для { $target }
command-unimplemented-waypoint-spawn = Створення точки шляху не реалізовано
command-unimplemented-teleporter-spawn = Створення телепорта не реалізовано
command-kit-inventory-unavailable = Неможливо отримати інвентар
command-inventory-cant-fit-item = Предмет не вміщується в інвентар
# Emitted by /disconnect_all when you dont exist (?)
command-you-dont-exist = Ви не існуєте, отже не можете використовувати цю команду
command-destroyed-tethers = Всі пута знищено! Тепер ви вільні
command-destroyed-no-tethers = Ви не підключені до пут
command-dismounted = Ви спішилися
command-no-dismount = Ви не їдете верхи і ніхто не їде верхи на вас

View File

@ -115,3 +115,4 @@ common-sprite-chest = Скриня
common-sprite-chair = Стілець
common-sprite-mud = Грязь
common-sprite-grave = Могила
common-sprite-crate = Ящик

View File

@ -74,4 +74,5 @@ gameinput-mutemaster = Вимкнути всі звуки
gameinput-muteinactivemaster = Вимкнути всі звуки (В неактивному вікні)
gameinput-mutemusic = Вимкнути музику
gameinput-mutesfx = Вимкнути звуки спец. ефектів
gameinput-muteambience = Вимкнути довколишню музику
gameinput-muteambience = Вимкнути довколишню музику
gameinput-togglewalk = Перемкнути режим ходьби

View File

@ -14,6 +14,7 @@ hud-bag-glider = Дельтаплан
hud-bag-belt = Пояс
hud-bag-ring = Кільце
hud-bag-back = Спина
hud-bag-backpack = Наплічник
hud-bag-legs = Ноги
hud-bag-feet = Ступні
hud-bag-mainhand = Основна рука

View File

@ -38,6 +38,7 @@ hud-auto_walk_indicator = Авто Рух
hud-zoom_lock_indicator-remind = Зум зафіксовано
hud-zoom_lock_indicator-enable = Зум камери зафіксовано
hud-zoom_lock_indicator-disable = Фіксацію зума скасовано
hud-activate = Активувати
hud-collect = Зібрати
hud-pick_up = Підібрати
hud-open = Відкрити
@ -56,4 +57,25 @@ hud-mount = Осідлати
hud-follow = Слідувати
hud-stay = Чекати
hud-sit = Сидіти
hud-steer = Керувати
hud-steer = Керувати
hud-lay = Лежати
hud-portal = Портал
-server = Server
-client = Client
hud-init-stage-singleplayer = Старт сервера одиночної гри...
hud-init-stage-server-db-migrations = [{ -server }]: Міграція бази даних...
hud-init-stage-server-db-vacuum = [{ -server }]: Очистка бази даних...
hud-init-stage-server-worldsim-erosion = [{ -server }]: Ерозія { $percentage }%
hud-init-stage-server-worldciv-civcreate = [{ -server }]: Згенеровано { $generated } з { $total } цивілізацій
hud-init-stage-server-worldciv-site = [{ -server }]: Генерую місця...
hud-init-stage-server-economysim = [{ -server }]: Симулюю економіку...
hud-init-stage-server-spotgen = [{ -server }]: Генерація точок...
hud-init-stage-server-starting = [{ -server }]: Запуск сервера...
hud-init-stage-multiplayer = Запуск мультиплеєра
hud-init-stage-client-connection-establish = [{ -client }]: Підключення до сервера...
hud-init-stage-client-request-server-version = [{ -client }]: Очікування версії сервера...
hud-init-stage-client-authentication = [{ -client }]: Автентифікація...
hud-init-stage-client-load-init-data = [{ -client }]: Завантаження ініціалізаційних даних...
hud-init-stage-client-starting-client = [{ -client }]: Підготовка клієнта...
hud-init-stage-render-pipeline = Створення render pipeline ({ $done }/{ $total })

View File

@ -16,9 +16,12 @@ hud-settings-custom_scaling = Ручне
hud-settings-crosshair = Приціл
hud-settings-opacity = Прозорість
hud-settings-hotbar = Панель швидкого доступу
hud-settings-slots = Слоти
hud-settings-toggle_shortcuts = Гарячі клавіші
hud-settings-buffs_skillbar = Бафи біля Панелі Швидкого Доступу
hud-settings-buffs_mmap = Бафи біля Мінімапи
hud-settings-use_prefixes = Показувати позначки SI для кількостей
hud-settings-prefix_switch_point = Максимальна кількість цифр для переключення позначок SI
hud-settings-toggle_bar_experience = Панель досвіду
hud-settings-scrolling_combat_text = Відображення Пошкоджень/Зцілень
hud-settings-damage_accumulation_duration = Тривалість Аккумулювання Шкоди
@ -54,6 +57,8 @@ hud-settings-enable_mouse_smoothing =
камери
hud-settings-free_look_behavior = Вмикання вільного перегляду
hud-settings-auto_walk_behavior = Вмикання авто-ходи
hud-settings-walking_speed_behavior = Налаштування швидкості ходи
hud-settings-walking_speed = Швидкість ходи
hud-settings-camera_clamp_behavior = Поведінка закріпленої камери
hud-settings-zoom_lock_behavior = Функція фіксації віддаленості камери
hud-settings-player_physics_behavior = Фізика гравця (експериментальнe)

View File

@ -4,6 +4,8 @@ subtitle-bees = Дзижчання бджіл
subtitle-owl = Укання сови
subtitle-running_water = Булькання води
subtitle-lightning = Грім
subtitle-portal-activated = Портал активовано
subtitle-portal-teleported = Телепортовано
subtitle-footsteps_grass = Ходьба по траві
subtitle-footsteps_earth = Ходьба по землі
@ -107,8 +109,9 @@ subtitle-deep_laugh = Глибокий сміх
subtitle-attack-flash_freeze = Миттєве заморожування
subtitle-attack-icy_spikes = Крижані шипи
subtitle-attack-ice_crack = Крижана тріщина
subtitle-attack-steam = Пар
subtitle-attack-steam = Пара
subtitle-attack-shovel = Копання Лопатою
subtitle-attack-from-the-ashes = Звук зцілення
subtitle-consume_potion = Пиття зілля
subtitle-consume_apple = Споживання яблука
@ -152,3 +155,5 @@ subtitle-utterance-wolf-angry = Вовк гарчить
subtitle-utterance-wolf-hurt = Вовк скиглить
subtitle-utterance-wyvern-angry = Рев Виверни
subtitle-utterance-wyvern-hurt = Виверні боляче
subtitle-utterance-phoenix-angry = Крик Фенікса
subtitle-utterance-phoenix-hurt = Феніксу боляче

View File

@ -1,4 +1,4 @@
main-username = Ім'я користовуча
main-username = Ім'я користувача
main-server = Сервер
main-password = Пароль
main-connecting = З'єднання
@ -32,9 +32,26 @@ main-login_process =
Створити обліковий запис можна тут:
https://veloren.net/account/.
main-singleplayer-new = Нова
main-singleplayer-delete = Видалити
main-singleplayer-regenerate = Перегенерувати
main-singleplayer-create_custom = Налаштувати
main-singleplayer-invalid_name = Помилка: неприпустиме ім'я
main-singleplayer-seed = Зерно
main-singleplayer-random_seed = Випадкова
main-singleplayer-size_lg = Логарифмічний розмір
main-singleplayer-map_large_warning = Увага: Перший запуск великих світів може зайняти багато часу
main-singleplayer-world_name = Назва світу
main-singleplayer-map_scale = Вертикальне масштабування
main-singleplayer-map_erosion_quality = Якість ерозії
main-singleplayer-map_shape = Форма
main-singleplayer-play = Грати
main-singleplayer-generate_and_play = Згенерувати і Грати
menu-singleplayer-confirm_delete = Ви дійсно хочте видалити "{ $world_name }"
menu-singleplayer-confirm_regenerate = Ви дійсно хочете перегенерувати "{ $world_name }"
main-login-server_not_found = Сервер не знайдено
main-login-authentication_error = Помилка авторизації на сервері
main-login-internal_error = Внутріння помилка у кліента (скоріше за все, персонаж був видалений)
main-login-internal_error = Внутрішня помилка у кліента (скоріше за все, персонаж був видалений)
main-login-failed_auth_server_url_invalid = Не вдалося з'єднатися з сервером аутентифікації
main-login-insecure_auth_scheme = HTTP схема аутентифікації НЕ підтримується. Це небезпечно! Для розробки це дозволено для 'localhost' або дебажних збірок
main-login-server_full = Сервер переповнено
@ -58,11 +75,11 @@ main-login-username_bad_characters = Ім'я персонажа містить
main-login-username_too_long = Ім'я персонажа занадто довге! Максимальна довжина: { $max_len }
main-servers-select_server = Виберіть сервер
main-servers-singleplayer_error = Помилка підключення до внутрішьного серверу: { $sp_error }
main-servers-network_error = Помилка сокету/мережі серверов: { $raw_error }
main-servers-network_error = Помилка сокету/мережі серверів: { $raw_error }
main-servers-participant_error = Від'єднання учасника/помилка протоколу: { $raw_error }
main-servers-stream_error = Помилка данних клієнто під час підключення: { $raw_error }
main-servers-database_error = Помилка данних серверу: { $raw_error }
main-servers-persistence_error = Помилка постійності сервера (Можливо, пов'язано з ресурсами гри або данними про персонажа): { $raw_error }
main-servers-persistence_error = Помилка зберігання (Можливо, пов'язано з ресурсами гри або данними про персонажа): { $raw_error }
main-servers-other_error = Помилка сервера: { $raw_error }
main-credits = Подяки
main-credits-created_by = зроблено

View File

@ -286,4 +286,5 @@ npc-speech-dist_very_far = дуже далеко
npc-speech-dist_far = далеко
npc-speech-dist_ahead = трохи подалі
npc-speech-dist_near = поблизу
npc-speech-dist_near_to = дуже близько
npc-speech-dist_near_to = дуже близько
npc-speech-arena = Давайте присядемо тут!

View File

@ -3199,8 +3199,12 @@
"voxel.object.curious_potion",
(0.0, 0.0, 0.0), (-50.0, 30.0, 20.0), 0.7,
),
Simple("common.items.consumable.potion_burning"): VoxTrans(
"voxel.object.potion_burning",
Simple("common.items.consumable.potion_combustion"): VoxTrans(
"voxel.object.potion_combustion",
(0.0, 0.0, 0.0), (-50.0, 30.0, 20.0), 0.7,
),
Simple("common.items.consumable.potion_agility"): VoxTrans(
"voxel.object.potion_agility",
(0.0, 0.0, 0.0), (-50.0, 30.0, 20.0), 0.7,
),
Simple("common.items.charms.burning_charm"): VoxTrans(

View File

@ -13,17 +13,14 @@ layout(push_constant) uniform Params {
layout(location = 0) out vec2 source_coords;
uvec2 unpack(uint xy) {
return uvec2(
bitfieldExtract(xy, 0, 16),
bitfieldExtract(xy, 16, 16)
);
vec2 unpack(uint xy) {
return vec2(xy & 0xFFFF, (xy >> 16) & 0xFFFF);
}
void main() {
vec2 source_size = vec2(unpack(source_size_xy));
vec2 target_offset = vec2(unpack(target_offset_xy));
vec2 target_size = vec2(unpack(target_size_xy));
vec2 source_size = unpack(source_size_xy);
vec2 target_offset = unpack(target_offset_xy);
vec2 target_size = unpack(target_size_xy);
// Generate rectangle (counter clockwise triangles)
//

View File

@ -809,7 +809,8 @@
Simple("common.items.consumable.potion_minor"): "voxel.object.potion_red",
Simple("common.items.consumable.potion_big"): "voxel.object.potion_red",
Simple("common.items.consumable.curious_potion"): "voxel.object.curious_potion",
Simple("common.items.consumable.potion_burning"): "voxel.object.potion_burning",
Simple("common.items.consumable.potion_combustion"): "voxel.object.potion_combustion",
Simple("common.items.consumable.potion_agility"): "voxel.object.potion_agility",
Simple("common.items.charms.burning_charm"): "voxel.object.burning_charm",
Simple("common.items.charms.frozen_charm"): "voxel.object.frozen_charm",
Simple("common.items.charms.lifesteal_charm"): "voxel.object.lifesteal_charm",

BIN
assets/voxygen/voxel/object/potion_agility.vox (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -65,6 +65,7 @@ fn main() {
&password,
|provider| provider == "https://auth.veloren.net",
&|_| {},
|_| {},
))
.expect("Failed to create client instance");
@ -85,7 +86,7 @@ fn main() {
client.send_chat(msg)
}
let events = match client.tick(comp::ControllerInputs::default(), clock.dt(), |_| {}) {
let events = match client.tick(comp::ControllerInputs::default(), clock.dt()) {
Ok(events) => events,
Err(err) => {
error!("Error: {:?}", err);

View File

@ -73,6 +73,7 @@ pub fn make_client(
password,
|_| true,
&|_| {},
|_| {},
))
.ok()
}
@ -99,7 +100,7 @@ impl BotClient {
for (username, client) in self.bot_clients.iter_mut() {
trace!(?username, "tick");
let _msgs: Result<Vec<veloren_client::Event>, veloren_client::Error> =
client.tick(comp::ControllerInputs::default(), self.clock.dt(), |_| {});
client.tick(comp::ControllerInputs::default(), self.clock.dt());
}
}

View File

@ -123,6 +123,7 @@ fn run_client(
&username,
"",
|_| false,
|_| {},
)) {
Err(e) => tracing::warn!(?e, "Client {} disconnected", index),
Ok(client) => break client,

View File

@ -307,6 +307,7 @@ impl Client {
password: &str,
auth_trusted: impl FnMut(&str) -> bool,
init_stage_update: &(dyn Fn(ClientInitStage) + Send + Sync),
add_foreign_systems: impl Fn(&mut DispatcherBuilder) + Send + 'static,
) -> Result<Self, Error> {
let network = Network::new(Pid::new(), &runtime);
@ -409,7 +410,16 @@ impl Client {
// Initialize `State`
let pools = State::pools(GameMode::Client);
let mut state = State::client(pools, map_size_lg, world_map.default_chunk);
let mut state = State::client(
pools,
map_size_lg,
world_map.default_chunk,
// TODO: Add frontend systems
|dispatch_builder| {
add_local_systems(dispatch_builder);
add_foreign_systems(dispatch_builder);
},
);
// Client-only components
state.ecs_mut().register::<comp::Last<CharacterState>>();
let entity = state.ecs_mut().apply_entity_package(entity_package);
@ -1796,12 +1806,7 @@ impl Client {
/// Execute a single client tick, handle input and update the game state by
/// the given duration.
pub fn tick(
&mut self,
inputs: ControllerInputs,
dt: Duration,
add_foreign_systems: impl Fn(&mut DispatcherBuilder),
) -> Result<Vec<Event>, Error> {
pub fn tick(&mut self, inputs: ControllerInputs, dt: Duration) -> Result<Vec<Event>, Error> {
span!(_guard, "tick", "Client::tick");
// This tick function is the centre of the Veloren universe. Most client-side
// things are managed from here, and as such it's important that it
@ -1902,10 +1907,6 @@ impl Client {
// 4) Tick the client's LocalState
self.state.tick(
Duration::from_secs_f64(dt.as_secs_f64() * self.dt_adjustment),
|dispatch_builder| {
add_local_systems(dispatch_builder);
add_foreign_systems(dispatch_builder);
},
true,
None,
&self.connected_server_constants,
@ -3011,6 +3012,7 @@ mod tests {
password,
|suggestion: &str| suggestion == auth_server,
&|_| {},
|_| {},
));
let localisation = LocalizationHandle::load_expect("en");
@ -3020,7 +3022,7 @@ mod tests {
//tick
let events_result: Result<Vec<Event>, Error> =
client.tick(ControllerInputs::default(), clock.dt(), |_| {});
client.tick(ControllerInputs::default(), clock.dt());
//chat functionality
client.send_chat("foobar".to_string());

View File

@ -155,6 +155,7 @@ lazy_static! {
BuffKind::Bleeding => "bleeding",
BuffKind::Cursed => "cursed",
BuffKind::Potion => "potion",
BuffKind::Agility => "agility",
BuffKind::CampfireHeal => "campfire_heal",
BuffKind::EnergyRegen => "energy_regen",
BuffKind::IncreaseMaxEnergy => "increase_max_energy",

View File

@ -615,7 +615,7 @@ pub enum CharacterAbilityType {
ChargedRanged,
DashMelee(StageSection),
BasicBlock,
ComboMelee(StageSection, u32),
ComboMeleeDeprecated(StageSection, u32),
ComboMelee2(StageSection),
FinisherMelee(StageSection),
DiveMelee(StageSection),
@ -642,7 +642,9 @@ impl From<&CharacterState> for CharacterAbilityType {
CharacterState::BasicBlock(_) => Self::BasicBlock,
CharacterState::LeapMelee(data) => Self::LeapMelee(data.stage_section),
CharacterState::LeapShockwave(data) => Self::LeapShockwave(data.stage_section),
CharacterState::ComboMelee(data) => Self::ComboMelee(data.stage_section, data.stage),
CharacterState::ComboMeleeDeprecated(data) => {
Self::ComboMeleeDeprecated(data.stage_section, data.stage)
},
CharacterState::ComboMelee2(data) => Self::ComboMelee2(data.stage_section),
CharacterState::FinisherMelee(data) => Self::FinisherMelee(data.stage_section),
CharacterState::DiveMelee(data) => Self::DiveMelee(data.stage_section),
@ -771,7 +773,7 @@ pub enum CharacterAbility {
#[serde(default)]
meta: AbilityMeta,
},
ComboMelee {
ComboMeleeDeprecated {
stage_data: Vec<combo_melee::Stage<f32>>,
initial_energy_gain: f32,
max_energy_gain: f32,
@ -1134,7 +1136,7 @@ impl CharacterAbility {
(data.physics.on_ground.is_none() || buildup_duration.is_some())
&& update.energy.try_change_by(-*energy_cost).is_ok()
},
CharacterAbility::ComboMelee { .. }
CharacterAbility::ComboMeleeDeprecated { .. }
| CharacterAbility::Boost { .. }
| CharacterAbility::BasicBeam { .. }
| CharacterAbility::Blink { .. }
@ -1303,7 +1305,7 @@ impl CharacterAbility {
*recover_duration /= stats.speed;
*energy_cost /= stats.energy_efficiency;
},
ComboMelee {
ComboMeleeDeprecated {
ref mut stage_data,
initial_energy_gain: _,
max_energy_gain: _,
@ -1720,7 +1722,7 @@ impl CharacterAbility {
}
},
Boost { .. }
| ComboMelee { .. }
| ComboMeleeDeprecated { .. }
| Blink { .. }
| Music { .. }
| BasicSummon { .. }
@ -1768,7 +1770,7 @@ impl CharacterAbility {
| RiposteMelee { .. }
| BasicBeam { .. }
| Boost { .. }
| ComboMelee { .. }
| ComboMeleeDeprecated { .. }
| Blink { .. }
| Music { .. }
| BasicSummon { .. }
@ -1795,7 +1797,7 @@ impl CharacterAbility {
| SelfBuff { meta, .. }
| BasicBeam { meta, .. }
| Boost { meta, .. }
| ComboMelee { meta, .. }
| ComboMeleeDeprecated { meta, .. }
| ComboMelee2 { meta, .. }
| Blink { meta, .. }
| BasicSummon { meta, .. }
@ -1872,7 +1874,7 @@ impl CharacterAbility {
use skills::{HammerSkill::*, Skill::Hammer};
match self {
CharacterAbility::ComboMelee {
CharacterAbility::ComboMeleeDeprecated {
ref mut speed_increase,
ref mut max_speed_increase,
ref mut stage_data,
@ -2385,9 +2387,8 @@ impl From<(&CharacterAbility, AbilityInfo, &JoinData<'_>)> for CharacterState {
was_wielded: false, // false by default. utils might set it to true
prev_aimed_dir: None,
is_sneaking: false,
was_combo: None,
}),
CharacterAbility::ComboMelee {
CharacterAbility::ComboMeleeDeprecated {
stage_data,
initial_energy_gain,
max_energy_gain,
@ -2397,7 +2398,7 @@ impl From<(&CharacterAbility, AbilityInfo, &JoinData<'_>)> for CharacterState {
scales_from_combo,
ori_modifier,
meta: _,
} => CharacterState::ComboMelee(combo_melee::Data {
} => CharacterState::ComboMeleeDeprecated(combo_melee::Data {
static_data: combo_melee::StaticData {
num_stages: stage_data.len() as u32,
stage_data: stage_data.iter().map(|stage| stage.to_duration()).collect(),

View File

@ -37,6 +37,11 @@ pub enum BuffKind {
/// Applied when drinking a potion.
/// Strength should be the healing per second.
Potion,
/// Increases movement speed and vulnerability to damage as well as
/// decreases the amount of damage dealt.
/// Movement speed increases linearly with strength 1.0 is an 100% increase
/// Damage vulnerability and damage reduction are both hard set to 100%
Agility,
/// Applied when sitting at a campfire.
/// Strength is fraction of health restored per second.
CampfireHeal,
@ -177,6 +182,7 @@ impl BuffKind {
BuffKind::Regeneration
| BuffKind::Saturation
| BuffKind::Potion
| BuffKind::Agility
| BuffKind::CampfireHeal
| BuffKind::Frenzied
| BuffKind::EnergyRegen
@ -264,6 +270,13 @@ impl BuffKind {
tick_dur: Secs(0.1),
}]
},
BuffKind::Agility => vec![
BuffEffect::MovementSpeed(
1.0 + data.strength * stats.map_or(1.0, |s| s.move_speed_multiplier),
),
BuffEffect::DamageReduction(-1.0),
BuffEffect::AttackDamage(0.0),
],
BuffKind::CampfireHeal => vec![BuffEffect::HealthChangeOverTime {
rate: data.strength,
kind: ModifierKind::Multiplicative,
@ -351,7 +364,11 @@ impl BuffKind {
},
],
BuffKind::Parried => vec![BuffEffect::AttackSpeed(0.5)],
BuffKind::PotionSickness => vec![BuffEffect::HealReduction(data.strength)],
//TODO: Handle potion sickness in a more general way.
BuffKind::PotionSickness => vec![
BuffEffect::HealReduction(data.strength),
BuffEffect::MoveSpeedReduction(data.strength),
],
BuffKind::Reckless => vec![
BuffEffect::DamageReduction(-data.strength),
BuffEffect::AttackDamage(1.0 + data.strength),
@ -557,6 +574,8 @@ pub enum BuffEffect {
PoiseReduction(f32),
/// Reduces amount healed by consumables
HealReduction(f32),
/// Reduces amount of speed increase by consumables
MoveSpeedReduction(f32),
/// Increases poise damage dealt when health is lost
PoiseDamageFromLostHealth {
initial_health: f32,

View File

@ -95,7 +95,7 @@ pub enum CharacterState {
DashMelee(dash_melee::Data),
/// A three-stage attack where each attack pushes player forward
/// and successive attacks increase in damage, while player holds button.
ComboMelee(combo_melee::Data),
ComboMeleeDeprecated(combo_melee::Data),
/// A state where you progress through multiple melee attacks
ComboMelee2(combo_melee2::Data),
/// A leap followed by a small aoe ground attack
@ -154,7 +154,7 @@ impl CharacterState {
| CharacterState::BasicMelee(_)
| CharacterState::BasicRanged(_)
| CharacterState::DashMelee(_)
| CharacterState::ComboMelee(_)
| CharacterState::ComboMeleeDeprecated(_)
| CharacterState::ComboMelee2(_)
| CharacterState::BasicBlock(_)
| CharacterState::LeapMelee(_)
@ -220,7 +220,7 @@ impl CharacterState {
CharacterState::BasicMelee(_)
| CharacterState::BasicRanged(_)
| CharacterState::DashMelee(_)
| CharacterState::ComboMelee(_)
| CharacterState::ComboMeleeDeprecated(_)
| CharacterState::ComboMelee2(_)
| CharacterState::LeapMelee(_)
| CharacterState::LeapShockwave(_)
@ -247,7 +247,7 @@ impl CharacterState {
CharacterState::BasicMelee(_)
| CharacterState::BasicRanged(_)
| CharacterState::DashMelee(_)
| CharacterState::ComboMelee(_)
| CharacterState::ComboMeleeDeprecated(_)
| CharacterState::ComboMelee2(_)
| CharacterState::BasicBlock(_)
| CharacterState::LeapMelee(_)
@ -377,7 +377,7 @@ impl CharacterState {
pub fn is_forced_movement(&self) -> bool {
matches!(self,
CharacterState::ComboMelee(s) if s.stage_section == StageSection::Action)
CharacterState::ComboMeleeDeprecated(s) if s.stage_section == StageSection::Action)
|| matches!(self, CharacterState::ComboMelee2(s) if s.stage_section == StageSection::Action)
|| matches!(self, CharacterState::DashMelee(s) if s.stage_section == StageSection::Charge)
|| matches!(self, CharacterState::LeapMelee(s) if s.stage_section == StageSection::Movement)
@ -403,7 +403,7 @@ impl CharacterState {
| CharacterState::Wielding(_)
| CharacterState::BasicMelee(_)
| CharacterState::BasicRanged(_)
| CharacterState::ComboMelee(_)
| CharacterState::ComboMeleeDeprecated(_)
| CharacterState::ComboMelee2(_)
| CharacterState::ChargedRanged(_)
| CharacterState::RepeaterRanged(_)
@ -458,7 +458,7 @@ impl CharacterState {
CharacterState::Roll(data) => data.behavior(j, output_events),
CharacterState::Wielding(data) => data.behavior(j, output_events),
CharacterState::Equipping(data) => data.behavior(j, output_events),
CharacterState::ComboMelee(data) => data.behavior(j, output_events),
CharacterState::ComboMeleeDeprecated(data) => data.behavior(j, output_events),
CharacterState::ComboMelee2(data) => data.behavior(j, output_events),
CharacterState::BasicMelee(data) => data.behavior(j, output_events),
CharacterState::BasicRanged(data) => data.behavior(j, output_events),
@ -511,7 +511,9 @@ impl CharacterState {
CharacterState::Roll(data) => data.handle_event(j, output_events, action),
CharacterState::Wielding(data) => data.handle_event(j, output_events, action),
CharacterState::Equipping(data) => data.handle_event(j, output_events, action),
CharacterState::ComboMelee(data) => data.handle_event(j, output_events, action),
CharacterState::ComboMeleeDeprecated(data) => {
data.handle_event(j, output_events, action)
},
CharacterState::ComboMelee2(data) => data.handle_event(j, output_events, action),
CharacterState::BasicMelee(data) => data.handle_event(j, output_events, action),
CharacterState::BasicRanged(data) => data.handle_event(j, output_events, action),
@ -564,7 +566,7 @@ impl CharacterState {
CharacterState::Roll(data) => Some(data.static_data.ability_info),
CharacterState::Wielding(_) => None,
CharacterState::Equipping(_) => None,
CharacterState::ComboMelee(data) => Some(data.static_data.ability_info),
CharacterState::ComboMeleeDeprecated(data) => Some(data.static_data.ability_info),
CharacterState::ComboMelee2(data) => Some(data.static_data.ability_info),
CharacterState::BasicMelee(data) => Some(data.static_data.ability_info),
CharacterState::BasicRanged(data) => Some(data.static_data.ability_info),
@ -608,7 +610,7 @@ impl CharacterState {
CharacterState::Roll(data) => Some(data.stage_section),
CharacterState::Equipping(_) => Some(StageSection::Buildup),
CharacterState::Wielding(_) => None,
CharacterState::ComboMelee(data) => Some(data.stage_section),
CharacterState::ComboMeleeDeprecated(data) => Some(data.stage_section),
CharacterState::ComboMelee2(data) => Some(data.stage_section),
CharacterState::BasicMelee(data) => Some(data.stage_section),
CharacterState::BasicRanged(data) => Some(data.stage_section),
@ -668,7 +670,7 @@ impl CharacterState {
buildup: Some(data.static_data.buildup_duration),
..Default::default()
}),
CharacterState::ComboMelee(data) => {
CharacterState::ComboMeleeDeprecated(data) => {
let stage_index = data.stage_index();
let stage = data.static_data.stage_data[stage_index];
Some(DurationsInfo {
@ -840,7 +842,7 @@ impl CharacterState {
CharacterState::Roll(data) => Some(data.timer),
CharacterState::Wielding(_) => None,
CharacterState::Equipping(data) => Some(data.timer),
CharacterState::ComboMelee(data) => Some(data.timer),
CharacterState::ComboMeleeDeprecated(data) => Some(data.timer),
CharacterState::ComboMelee2(data) => Some(data.timer),
CharacterState::BasicMelee(data) => Some(data.timer),
CharacterState::BasicRanged(data) => Some(data.timer),
@ -884,7 +886,7 @@ impl CharacterState {
CharacterState::Roll(_) => None,
CharacterState::Wielding(_) => None,
CharacterState::Equipping(_) => None,
CharacterState::ComboMelee(_) => Some(AttackSource::Melee),
CharacterState::ComboMeleeDeprecated(_) => Some(AttackSource::Melee),
CharacterState::ComboMelee2(_) => Some(AttackSource::Melee),
CharacterState::BasicMelee(_) => Some(AttackSource::Melee),
CharacterState::BasicRanged(data) => {

View File

@ -705,7 +705,7 @@ fn default_main_tool(body: &Body) -> Item {
arthropod::Species::Dagonite => Some(Item::new_from_asset_expect(
"common.items.npc_weapons.unique.arthropods.dagonite",
)),
_ => Some(Item::new_from_asset_expect(
arthropod::Species::Leafbeetle => Some(Item::new_from_asset_expect(
"common.items.npc_weapons.unique.arthropods.leafbeetle",
)),
},

View File

@ -56,8 +56,10 @@ pub struct Stats {
pub damage_reduction: f32,
pub poise_reduction: f32,
pub heal_multiplier: f32,
pub move_speed_multiplier: f32,
pub max_health_modifiers: StatsModifier,
pub move_speed_modifier: f32,
pub jump_modifier: f32,
pub attack_speed_modifier: f32,
pub friction_modifier: f32,
pub max_energy_modifiers: StatsModifier,
@ -83,8 +85,10 @@ impl Stats {
damage_reduction: 0.0,
poise_reduction: 0.0,
heal_multiplier: 1.0,
move_speed_multiplier: 1.0,
max_health_modifiers: StatsModifier::default(),
move_speed_modifier: 1.0,
jump_modifier: 1.0,
attack_speed_modifier: 1.0,
friction_modifier: 1.0,
max_energy_modifiers: StatsModifier::default(),

View File

@ -35,3 +35,6 @@ pub const ENERGY_PER_LEVEL: u16 = 5;
pub const HP_PER_LEVEL: u16 = 5;
pub const TELEPORTER_RADIUS: f32 = 3.;
// Map settings
pub const DAY_LENGTH_DEFAULT: f64 = 30.0;

View File

@ -170,14 +170,14 @@ impl CharacterBehavior for Data {
);
// Build up
update.character = CharacterState::ComboMelee(Data {
update.character = CharacterState::ComboMeleeDeprecated(Data {
static_data: self.static_data.clone(),
timer: tick_attack_or_default(data, self.timer, Some(speed_modifier)),
..*self
});
} else {
// Transitions to swing section of stage
update.character = CharacterState::ComboMelee(Data {
update.character = CharacterState::ComboMeleeDeprecated(Data {
static_data: self.static_data.clone(),
timer: Duration::default(),
stage_section: StageSection::Action,
@ -194,7 +194,7 @@ impl CharacterBehavior for Data {
&& !self.exhausted
{
// Swing
update.character = CharacterState::ComboMelee(Data {
update.character = CharacterState::ComboMeleeDeprecated(Data {
static_data: self.static_data.clone(),
timer: tick_attack_or_default(data, self.timer, None),
exhausted: true,
@ -304,14 +304,14 @@ impl CharacterBehavior for Data {
);
// Swings
update.character = CharacterState::ComboMelee(Data {
update.character = CharacterState::ComboMeleeDeprecated(Data {
static_data: self.static_data.clone(),
timer: tick_attack_or_default(data, self.timer, Some(speed_modifier)),
..*self
});
} else {
// Transitions to recover section of stage
update.character = CharacterState::ComboMelee(Data {
update.character = CharacterState::ComboMeleeDeprecated(Data {
static_data: self.static_data.clone(),
timer: Duration::default(),
stage_section: StageSection::Recover,
@ -328,7 +328,7 @@ impl CharacterBehavior for Data {
None,
);
// Recovers
update.character = CharacterState::ComboMelee(Data {
update.character = CharacterState::ComboMeleeDeprecated(Data {
static_data: self.static_data.clone(),
timer: tick_attack_or_default(data, self.timer, Some(speed_modifier)),
..*self
@ -380,7 +380,7 @@ fn reset_state(
data.static_data.ability_info.input,
);
if let CharacterState::ComboMelee(c) = &mut update.character {
if let CharacterState::ComboMeleeDeprecated(c) = &mut update.character {
c.stage = (data.stage % data.static_data.num_stages) + 1;
}
}

View File

@ -2,7 +2,7 @@ use crate::{
comp::{
buff::{BuffChange, BuffKind},
character_state::{AttackFilters, OutputEvents},
CharacterState, InputKind, StateUpdate,
CharacterState, StateUpdate,
},
event::ServerEvent,
states::{
@ -46,8 +46,6 @@ pub struct Data {
pub prev_aimed_dir: Option<Dir>,
/// Is sneaking, true if previous state was also considered sneaking
pub is_sneaking: bool,
/// Was in state with combo
pub was_combo: Option<(InputKind, u32)>,
}
impl CharacterBehavior for Data {
@ -126,20 +124,7 @@ impl CharacterBehavior for Data {
});
} else {
// Done
if let Some((input, stage)) = self.was_combo {
if input_is_pressed(data, input) {
handle_input(data, output_events, &mut update, input);
// If other states are introduced that progress through stages, add them
// here
if let CharacterState::ComboMelee(c) = &mut update.character {
c.stage = stage;
}
} else {
end_ability(data, &mut update);
}
} else {
end_ability(data, &mut update);
}
end_ability(data, &mut update);
}
},
_ => {

View File

@ -1193,7 +1193,7 @@ pub fn handle_jump(
data.entity,
strength * impulse / data.mass.0
* data.scale.map_or(1.0, |s| s.0.powf(13.0).powf(0.25))
* data.stats.move_speed_modifier,
* data.stats.jump_modifier,
));
})
.is_some()
@ -1243,16 +1243,11 @@ fn handle_ability(
}
}
if let CharacterState::Roll(roll) = &mut update.character {
if let CharacterState::ComboMelee(c) = data.character {
roll.was_combo = Some((c.static_data.ability_info.input, c.stage));
if data.character.is_wield() || data.character.was_wielded() {
roll.was_wielded = true;
} else {
if data.character.is_wield() || data.character.was_wielded() {
roll.was_wielded = true;
}
if data.character.is_stealthy() {
roll.is_sneaking = true;
}
}
if data.character.is_stealthy() {
roll.is_sneaking = true;
}
if data.character.is_aimed() {
roll.prev_aimed_dir = Some(data.controller.inputs.look_dir);

View File

@ -14,6 +14,7 @@ pub enum SiteKindMeta {
pub enum DungeonKindMeta {
Old,
Gnarling,
Adlet,
}
#[derive(Debug, Copy, Clone, Serialize, Deserialize, PartialEq, Eq)]

View File

@ -33,7 +33,7 @@ use hashbrown::{HashMap, HashSet};
use rayon::{ThreadPool, ThreadPoolBuilder};
use specs::{
prelude::Resource,
shred::{Fetch, FetchMut},
shred::{Fetch, FetchMut, SendDispatcher},
storage::{MaskedStorage as EcsMaskedStorage, Storage as EcsStorage},
Component, DispatcherBuilder, Entity as EcsEntity, WorldExt,
};
@ -128,6 +128,7 @@ pub struct State {
ecs: specs::World,
// Avoid lifetime annotation by storing a thread pool instead of the whole dispatcher
thread_pool: Arc<ThreadPool>,
dispatcher: SendDispatcher<'static>,
}
pub type Pools = Arc<ThreadPool>;
@ -150,13 +151,35 @@ impl State {
}
/// Create a new `State` in client mode.
pub fn client(pools: Pools, map_size_lg: MapSizeLg, default_chunk: Arc<TerrainChunk>) -> Self {
Self::new(GameMode::Client, pools, map_size_lg, default_chunk)
pub fn client(
pools: Pools,
map_size_lg: MapSizeLg,
default_chunk: Arc<TerrainChunk>,
add_systems: impl Fn(&mut DispatcherBuilder),
) -> Self {
Self::new(
GameMode::Client,
pools,
map_size_lg,
default_chunk,
add_systems,
)
}
/// Create a new `State` in server mode.
pub fn server(pools: Pools, map_size_lg: MapSizeLg, default_chunk: Arc<TerrainChunk>) -> Self {
Self::new(GameMode::Server, pools, map_size_lg, default_chunk)
pub fn server(
pools: Pools,
map_size_lg: MapSizeLg,
default_chunk: Arc<TerrainChunk>,
add_systems: impl Fn(&mut DispatcherBuilder),
) -> Self {
Self::new(
GameMode::Server,
pools,
map_size_lg,
default_chunk,
add_systems,
)
}
pub fn new(
@ -164,10 +187,23 @@ impl State {
pools: Pools,
map_size_lg: MapSizeLg,
default_chunk: Arc<TerrainChunk>,
add_systems: impl Fn(&mut DispatcherBuilder),
) -> Self {
prof_span!(guard, "create dispatcher");
let mut dispatch_builder =
DispatcherBuilder::<'static, 'static>::new().with_pool(Arc::clone(&pools));
// TODO: Consider alternative ways to do this
add_systems(&mut dispatch_builder);
let dispatcher = dispatch_builder
.build()
.try_into_sendable()
.unwrap_or_else(|_| panic!("Thread local systems not allowed"));
drop(guard);
Self {
ecs: Self::setup_ecs_world(game_mode, Arc::clone(&pools), map_size_lg, default_chunk),
thread_pool: pools,
dispatcher,
}
}
@ -615,7 +651,6 @@ impl State {
pub fn tick(
&mut self,
dt: Duration,
add_systems: impl Fn(&mut DispatcherBuilder),
update_terrain: bool,
mut metrics: Option<&mut StateTickMetrics>,
server_constants: &ServerConstants,
@ -645,19 +680,9 @@ impl State {
self.ecs.write_resource::<DeltaTime>().0 =
(dt.as_secs_f32() * time_scale as f32).min(MAX_DELTA_TIME);
section_span!(guard, "create dispatcher");
// Run systems to update the world.
// Create and run a dispatcher for ecs systems.
let mut dispatch_builder =
DispatcherBuilder::new().with_pool(Arc::clone(&self.thread_pool));
// TODO: Consider alternative ways to do this
add_systems(&mut dispatch_builder);
// This dispatches all the systems in parallel.
let mut dispatcher = dispatch_builder.build();
drop(guard);
section_span!(guard, "run systems");
dispatcher.dispatch(&self.ecs);
// This dispatches all the systems in parallel.
self.dispatcher.dispatch(&self.ecs);
drop(guard);
section_span!(guard, "maintain ecs");

View File

@ -11,9 +11,7 @@ use common::{
uid::{IdMaps, Uid},
};
use common_ecs::{Job, Origin, Phase, System};
use specs::{
shred::ResourceId, Entities, Entity as EcsEntity, Join, Read, ReadStorage, SystemData, World,
};
use specs::{shred, Entities, Entity as EcsEntity, Join, Read, ReadStorage, SystemData};
#[derive(SystemData)]
pub struct ReadData<'a> {

View File

@ -17,8 +17,7 @@ use common_ecs::{Job, Origin, ParMode, Phase, System};
use rand::Rng;
use rayon::iter::ParallelIterator;
use specs::{
shred::ResourceId, Entities, LendJoin, ParJoin, Read, ReadExpect, ReadStorage, SystemData,
World, WriteStorage,
shred, Entities, LendJoin, ParJoin, Read, ReadExpect, ReadStorage, SystemData, WriteStorage,
};
use vek::*;
@ -121,6 +120,10 @@ impl<'a> System<'a> for Sys {
sound: Sound::new(SoundKind::Beam, pos.0, 13.0, read_data.time.0),
});
}
outcomes.push(Outcome::Beam {
pos: pos.0,
specifier: beam.specifier,
});
// Group to ignore collisions with
// Might make this more nuanced if beams are used for non damage effects

View File

@ -22,8 +22,8 @@ use common_base::prof_span;
use common_ecs::{Job, Origin, ParMode, Phase, System};
use rayon::iter::ParallelIterator;
use specs::{
shred::ResourceId, Entities, Entity, LendJoin, ParJoin, Read, ReadExpect, ReadStorage,
SystemData, World, WriteStorage,
shred, Entities, Entity, LendJoin, ParJoin, Read, ReadExpect, ReadStorage, SystemData,
WriteStorage,
};
#[derive(SystemData)]
@ -664,6 +664,9 @@ fn execute_effect(
BuffEffect::HealReduction(red) => {
stat.heal_multiplier *= 1.0 - *red;
},
BuffEffect::MoveSpeedReduction(red) => {
stat.move_speed_multiplier *= 1.0 - *red;
},
BuffEffect::PoiseDamageFromLostHealth {
initial_health,
strength,

View File

@ -1,6 +1,5 @@
use specs::{
shred::ResourceId, Entities, LazyUpdate, LendJoin, Read, ReadExpect, ReadStorage, SystemData,
World, WriteStorage,
shred, Entities, LazyUpdate, LendJoin, Read, ReadExpect, ReadStorage, SystemData, WriteStorage,
};
use common::{

View File

@ -9,10 +9,7 @@ use common::{
uid::IdMaps,
};
use common_ecs::{Job, Origin, Phase, System};
use specs::{
shred::ResourceId, Entities, Join, Read, ReadExpect, ReadStorage, SystemData, World,
WriteStorage,
};
use specs::{shred, Entities, Join, Read, ReadExpect, ReadStorage, SystemData, WriteStorage};
use vek::*;
#[derive(SystemData)]

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