Attack system revamp (#82)
CI / build-and-test (push) Successful in 1m35s
CI / production-build (push) Successful in 11m29s

- Add crouch cancelling
- Add IASA for aerial attacks
- Add scaffolding for autocancel
- Add hitbox group system
- Add new ergonomic features for attack scripting
- Add more information to the hitbox viewer
- Improve the looks of debug capsules

Reviewed-on: #82
Co-authored-by: Álex Román Núñez <eirexe@eirteam.moe>
This commit was merged in pull request #82.
This commit is contained in:
2026-10-04 18:57:29 +00:00
committed by EIREXE
parent 04aceb05a9
commit d2d649b059
15 changed files with 1046 additions and 449 deletions
Generated
+114 -210
View File
@@ -531,7 +531,7 @@ dependencies = [
"bevy_color",
"bevy_core_pipeline",
"bevy_ecs",
"bevy_egui 0.40.1",
"bevy_egui",
"bevy_gizmos",
"bevy_image",
"bevy_light",
@@ -549,7 +549,7 @@ dependencies = [
"bevy_window",
"bytemuck",
"disqualified",
"egui 0.34.3",
"egui",
"fuzzy-matcher",
"image",
"opener",
@@ -1061,55 +1061,7 @@ dependencies = [
"bevy_winit",
"bytemuck",
"crossbeam-channel",
"egui 0.34.3",
"encase",
"getrandom 0.4.3",
"image",
"itertools 0.14.0",
"js-sys",
"smithay-clipboard",
"thread_local",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
"webbrowser",
"wgpu-types",
"winit",
]
[[package]]
name = "bevy_egui"
version = "0.42.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e99e2d018c7e567a268638d3058e57895e914e5650dcf7bd80a5fead9e6413a9"
dependencies = [
"arboard",
"bevy_app",
"bevy_asset",
"bevy_camera",
"bevy_color",
"bevy_core_pipeline",
"bevy_derive",
"bevy_ecs",
"bevy_image",
"bevy_input",
"bevy_log",
"bevy_math",
"bevy_mesh",
"bevy_picking",
"bevy_platform",
"bevy_reflect",
"bevy_render",
"bevy_shader",
"bevy_time",
"bevy_transform",
"bevy_ui_render",
"bevy_utils",
"bevy_window",
"bevy_winit",
"bytemuck",
"crossbeam-channel",
"egui 0.36.2",
"egui",
"encase",
"getrandom 0.4.3",
"image",
@@ -1324,7 +1276,7 @@ dependencies = [
"bitflags 2.13.1",
"bytemuck",
"futures-lite",
"guillotiere 0.6.2",
"guillotiere",
"half",
"image",
"ktx2",
@@ -2214,17 +2166,6 @@ dependencies = [
"uuid",
]
[[package]]
name = "bevygraph"
version = "0.1.0"
source = "git+https://github.com/tbillington/bevy_debug_view#0d520f5f4e8693166408f082e8d25dd377dabc3e"
dependencies = [
"bevy",
"bevy_egui 0.42.0",
"indexmap",
"log",
]
[[package]]
name = "bincode"
version = "1.3.3"
@@ -3041,17 +2982,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a05fbfa222ffb51989d5ccf33e5f7aebfcf96c5023413856b0c3618a7f79896e"
dependencies = [
"bytemuck",
"emath 0.34.3",
]
[[package]]
name = "ecolor"
version = "0.36.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0656a7530b9e2841ee7a5f983965bdd9840c32f4012f759cfd44b912cced6b34"
dependencies = [
"bytemuck",
"emath 0.36.2",
"emath",
]
[[package]]
@@ -3063,8 +2994,8 @@ dependencies = [
"accesskit",
"ahash",
"bitflags 2.13.1",
"emath 0.34.3",
"epaint 0.34.3",
"emath",
"epaint",
"log",
"nohash-hasher",
"profiling",
@@ -3073,23 +3004,17 @@ dependencies = [
]
[[package]]
name = "egui"
version = "0.36.2"
name = "egui_extras"
version = "0.34.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc938cc27cd911415e1e4d151bc56ff9df063d8db081374e87aeb805ea74b2ba"
checksum = "598d8675f6fd9088db8a93d8c7aacda936b2f3d0c2b0660ad1744a45b5caf922"
dependencies = [
"accesskit",
"ahash",
"bitflags 2.13.1",
"emath 0.36.2",
"epaint 0.36.2",
"itertools 0.15.0",
"egui",
"enum-map",
"log",
"nohash-hasher",
"mime_guess2",
"profiling",
"smallvec",
"unicode-segmentation",
"web-sys",
]
[[package]]
@@ -3107,15 +3032,6 @@ dependencies = [
"bytemuck",
]
[[package]]
name = "emath"
version = "0.36.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52c8d4141cf0f60fb2f7aefaf352d3ffa5171ef0ab09731c64391801e95e48f1"
dependencies = [
"bytemuck",
]
[[package]]
name = "ena"
version = "0.14.4"
@@ -3156,6 +3072,26 @@ dependencies = [
"syn 2.0.119",
]
[[package]]
name = "enum-map"
version = "2.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9"
dependencies = [
"enum-map-derive",
]
[[package]]
name = "enum-map-derive"
version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.119",
]
[[package]]
name = "enum_cycling"
version = "0.2.1"
@@ -3181,9 +3117,9 @@ checksum = "6675898a291ec212fc3df04f537d177fce8496120244590e6359dcaa4c25da79"
dependencies = [
"ahash",
"bytemuck",
"ecolor 0.34.3",
"emath 0.34.3",
"epaint_default_fonts 0.34.3",
"ecolor",
"emath",
"epaint_default_fonts",
"font-types 0.11.3",
"log",
"nohash-hasher",
@@ -3192,32 +3128,7 @@ dependencies = [
"self_cell",
"skrifa 0.40.0",
"smallvec",
"vello_cpu 0.0.6",
]
[[package]]
name = "epaint"
version = "0.36.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0ec0308dc23130fc1a7d4623a8534c2ed069c6dc84e258ee4f3de99615aa1a3"
dependencies = [
"ahash",
"bytemuck",
"ecolor 0.36.2",
"emath 0.36.2",
"epaint_default_fonts 0.36.2",
"font-types 0.12.2",
"harfrust 0.12.0",
"log",
"nohash-hasher",
"parking_lot",
"profiling",
"self_cell",
"skrifa 0.44.0",
"smallvec",
"unicode-general-category",
"unicode-segmentation",
"vello_cpu 0.1.0",
"vello_cpu",
]
[[package]]
@@ -3226,12 +3137,6 @@ version = "0.34.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8970033a4282a7bcf899b38b5ed3a58b732fe093d03785d58648515d8d309da"
[[package]]
name = "epaint_default_fonts"
version = "0.36.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "773fa9c96dd0dbef887e39d0ed6177f141cce4d68e6041df77570aa3702dfa13"
[[package]]
name = "equivalent"
version = "1.0.2"
@@ -3324,12 +3229,6 @@ dependencies = [
"bytemuck",
]
[[package]]
name = "fearless_simd"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b97b65636e5b9ef369943878ac74335ba1c55c1cb6adbf1e2c293c624248d693"
[[package]]
name = "file-id"
version = "0.2.3"
@@ -3715,22 +3614,6 @@ dependencies = [
"simba",
]
[[package]]
name = "glifo"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed4a1bb24121291d27230c1b1b44e07d6a9b28cefdb32fe1581dfb84e14f940a"
dependencies = [
"bytemuck",
"foldhash 0.2.0",
"hashbrown 0.17.1",
"log",
"peniko",
"skrifa 0.44.0",
"smallvec",
"vello_common 0.1.0",
]
[[package]]
name = "glow"
version = "0.17.0"
@@ -3841,15 +3724,6 @@ dependencies = [
"svg_fmt",
]
[[package]]
name = "guillotiere"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b17e70c989c36bad147b27a58d148c0741c51448aa5653436547323e524d0ab"
dependencies = [
"euclid",
]
[[package]]
name = "half"
version = "2.7.1"
@@ -3876,18 +3750,6 @@ dependencies = [
"smallvec",
]
[[package]]
name = "harfrust"
version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c03d949a14aa089bbb282f7dd76a498a7f684428e4257202efc119ec010376f9"
dependencies = [
"bitflags 2.13.1",
"bytemuck",
"read-fonts 0.41.0",
"smallvec",
]
[[package]]
name = "hash32"
version = "0.3.1"
@@ -4552,6 +4414,24 @@ dependencies = [
"libc",
]
[[package]]
name = "mime"
version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
[[package]]
name = "mime_guess2"
version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1706dc14a2e140dec0a7a07109d9a3d5890b81e85bd6c60b906b249a77adf0ca"
dependencies = [
"mime",
"phf",
"phf_shared",
"unicase",
]
[[package]]
name = "miniz_oxide"
version = "0.8.9"
@@ -5370,7 +5250,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8fad031076f48f0d4d85ce1aea9b94b4e715a4d636a030a123038f8f5b5e4343"
dependencies = [
"fontique",
"harfrust 0.6.2",
"harfrust",
"hashbrown 0.17.1",
"icu_normalizer",
"icu_properties",
@@ -5497,6 +5377,50 @@ dependencies = [
"serde_derive",
]
[[package]]
name = "phf"
version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078"
dependencies = [
"phf_macros",
"phf_shared",
]
[[package]]
name = "phf_generator"
version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d"
dependencies = [
"phf_shared",
"rand 0.8.7",
]
[[package]]
name = "phf_macros"
version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216"
dependencies = [
"phf_generator",
"phf_shared",
"proc-macro2",
"quote",
"syn 2.0.119",
"unicase",
]
[[package]]
name = "phf_shared"
version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5"
dependencies = [
"siphasher",
"unicase",
]
[[package]]
name = "pin-project"
version = "1.1.13"
@@ -6272,18 +6196,19 @@ dependencies = [
"bevy",
"bevy-inspector-egui",
"bevy_asset_loader",
"bevy_egui 0.40.1",
"bevy_egui",
"bevy_ggrs",
"bevygraph",
"bincode",
"blake3",
"clap",
"egui_extras",
"enum_cycling",
"enum_cycling_derive",
"fixed",
"fixed_math",
"gc-adapter-neo",
"gltf",
"itertools 0.15.0",
"rhai",
"ron",
"ron_asset_manager",
@@ -6335,6 +6260,12 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e"
[[package]]
name = "siphasher"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33f4fe9184a62d842c9ef383018f3306d8ba224fd9d836f56d7288308847c256"
[[package]]
name = "skrifa"
version = "0.40.0"
@@ -6992,10 +6923,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "214ca0b2191785cbc06209b9ca1861e048e39b5ba33574b3cedd58363d5bb5f6"
[[package]]
name = "unicode-general-category"
version = "1.1.0"
name = "unicase"
version = "2.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b993bddc193ae5bd0d623b49ec06ac3e9312875fdae725a975c51db1cc1677f"
checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142"
[[package]]
name = "unicode-ident"
@@ -7105,7 +7036,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1bd1a4c633ce09e7d713df1a6e036644a125e15e0c169cfb5180ddf5836ca04b"
dependencies = [
"bytemuck",
"fearless_simd 0.3.0",
"fearless_simd",
"hashbrown 0.16.1",
"log",
"peniko",
@@ -7113,21 +7044,6 @@ dependencies = [
"smallvec",
]
[[package]]
name = "vello_common"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2e9aed918117e8152c9eddfd8362d73c465c23f26c44786aa331707b8a64fa2"
dependencies = [
"bytemuck",
"fearless_simd 0.4.1",
"guillotiere 0.7.0",
"log",
"peniko",
"smallvec",
"thiserror 2.0.19",
]
[[package]]
name = "vello_cpu"
version = "0.0.6"
@@ -7136,19 +7052,7 @@ checksum = "0162bfe48aabf6a9fdcd401b628c7d9f260c2cbabb343c70a65feba6f7849edc"
dependencies = [
"bytemuck",
"hashbrown 0.16.1",
"vello_common 0.0.6",
]
[[package]]
name = "vello_cpu"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac7349e1f55f6b801c7c277958df4ea53e7f20f21e8014910ad888b2ecda93ea"
dependencies = [
"bytemuck",
"glifo",
"hashbrown 0.17.1",
"vello_common 0.1.0",
"vello_common",
]
[[package]]