Merge remote-tracking branch 'origin/master' into sharp/zoomy-worldgen

This commit is contained in:
Joshua Yanovski 2023-03-29 01:21:58 -07:00
commit 6d4113993c
3200 changed files with 102248 additions and 56325 deletions

View File

@ -14,6 +14,9 @@ rustflags = [
cmd-doc-gen = "run --features=bin_cmd_doc_gen --bin cmd_doc_gen" cmd-doc-gen = "run --features=bin_cmd_doc_gen --bin cmd_doc_gen"
csv-export = "run --manifest-path common/Cargo.toml --features=bin_csv --bin csv_export" csv-export = "run --manifest-path common/Cargo.toml --features=bin_csv --bin csv_export"
csv-import = "run --manifest-path common/Cargo.toml --features=bin_csv --bin csv_import" csv-import = "run --manifest-path common/Cargo.toml --features=bin_csv --bin csv_import"
dot-recipes = "run --manifest-path common/Cargo.toml --features=bin_graphviz --bin recipe_graphviz"
dot-skills = "run --manifest-path common/Cargo.toml --features=bin_graphviz --bin skill_graphviz"
img-export = "run --manifest-path voxygen/Cargo.toml --features=bin_img-export --bin img-export"
# server-cli # server-cli
server = "run --bin veloren-server-cli" server = "run --bin veloren-server-cli"
test-server = "run --bin veloren-server-cli --no-default-features --features simd" test-server = "run --bin veloren-server-cli --no-default-features --features simd"
@ -28,4 +31,5 @@ tracy-voxygen-releasedebuginfo = "run --bin veloren-voxygen --no-default-feature
dbg-voxygen = "run --bin veloren-voxygen --profile debuginfo" dbg-voxygen = "run --bin veloren-voxygen --profile debuginfo"
# misc # misc
swarm = "run --bin swarm --features client/bin_bot,client/tick_network --" swarm = "run --bin swarm --features client/bin_bot,client/tick_network --"
ci-clippy = "clippy --all-targets --locked --features=bin_cmd_doc_gen,bin_compression,bin_csv,bin_graphviz,bin_bot,bin_asset_migrate,asset_tweak" ci-clippy = "clippy --all-targets --locked --features=bin_cmd_doc_gen,bin_compression,bin_csv,bin_graphviz,bin_bot,bin_asset_migrate,asset_tweak,bin,stat"
ci-clippy2 = "clippy -p veloren-voxygen --locked --no-default-features --features=default-publish"

1
.gitattributes vendored
View File

@ -9,6 +9,7 @@
*.tar filter=lfs diff=lfs merge=lfs -text *.tar filter=lfs diff=lfs merge=lfs -text
*.obj filter=lfs diff=lfs merge=lfs -text *.obj filter=lfs diff=lfs merge=lfs -text
*.blend filter=lfs diff=lfs merge=lfs -text *.blend filter=lfs diff=lfs merge=lfs -text
*.canary filter=lfs diff=lfs merge=lfs -text
assets/world/map/*.bin filter=lfs diff=lfs merge=lfs -text assets/world/map/*.bin filter=lfs diff=lfs merge=lfs -text
*.ron gitlab-language=rust *.ron gitlab-language=rust

1
.gitignore vendored
View File

@ -52,6 +52,7 @@ wgpu-trace/
# Export data # Export data
*.csv *.csv
img-export/**/*.png
# Game data # Game data
*.sqlite *.sqlite

View File

@ -13,7 +13,7 @@ variables:
# https://docs.gitlab.com/ee/ci/yaml/#shallow-cloning # https://docs.gitlab.com/ee/ci/yaml/#shallow-cloning
GIT_DEPTH: 3 GIT_DEPTH: 3
GIT_CLEAN_FLAGS: -f GIT_CLEAN_FLAGS: -f
CACHE_IMAGE_TAG: c96aef21 CACHE_IMAGE_TAG: 8e8fe241
TAG_REGEX: '/^v[0-9]+\.[0-9]+\.[0-9]+$/' TAG_REGEX: '/^v[0-9]+\.[0-9]+\.[0-9]+$/'
default: default:

View File

@ -55,6 +55,7 @@ benchmarks:
# Coverage is needed on master for the README.md badge to work # Coverage is needed on master for the README.md badge to work
# tmp remove simd as it doesnt work with tarpaulin: https://github.com/rust-lang/rust/issues/77529 # tmp remove simd as it doesnt work with tarpaulin: https://github.com/rust-lang/rust/issues/77529
coverage: coverage:
extends: .release extends: .release
stage: build stage: build

View File

@ -4,7 +4,7 @@
- if: $CI_PIPELINE_SOURCE == "merge_request_event" - if: $CI_PIPELINE_SOURCE == "merge_request_event"
# No '-' here is *very* important: https://docs.gitlab.com/ee/ci/yaml/#complex-rule-clauses # No '-' here is *very* important: https://docs.gitlab.com/ee/ci/yaml/#complex-rule-clauses
changes: changes:
- "**/*.{glsl,png,rs,ron,toml,vox,yml,wav,sh}" - "**/*.{glsl,png,rs,ron,ftl,toml,vox,yml,wav,sh}"
- "rust-toolchain" - "rust-toolchain"
- "Cargo.lock" - "Cargo.lock"
- ".gitlab-ci.yml" - ".gitlab-ci.yml"
@ -14,7 +14,7 @@
.recompile: .recompile:
rules: rules:
- changes: - changes:
- "**/*.{glsl,png,rs,ron,toml,vox,yml,wav,sh}" - "**/*.{glsl,png,rs,ron,ftl,toml,vox,yml,wav,sh}"
- "rust-toolchain" - "rust-toolchain"
- "Cargo.lock" - "Cargo.lock"
- ".gitlab-ci.yml" - ".gitlab-ci.yml"

View File

@ -1,6 +1,16 @@
#!/bin/bash #!/bin/bash
# cargo clippy is a superset of cargo check, so we don't check manually # cargo clippy is a superset of cargo check, so we don't check manually
time cargo clippy --all-targets --locked --features="bin_cmd_doc_gen,bin_compression,bin_csv,bin_graphviz,bin_bot,bin_asset_migrate,asset_tweak" -- -D warnings &&
time cargo clippy \
--all-targets \
--locked \
--features="bin_cmd_doc_gen,bin_compression,bin_csv,bin_graphviz,bin_bot,bin_asset_migrate,asset_tweak,bin,stat" \
-- -D warnings &&
# Ensure that the veloren-voxygen default-publish feature builds as it excludes some default features # Ensure that the veloren-voxygen default-publish feature builds as it excludes some default features
time cargo clippy -p veloren-voxygen --locked --no-default-features --features="default-publish" -- -D warnings && time cargo clippy -p \
veloren-voxygen --locked \
--no-default-features \
--features="default-publish" \
-- -D warnings &&
time cargo fmt --all -- --check time cargo fmt --all -- --check

View File

@ -1,6 +1,5 @@
#!/bin/bash #!/bin/bash
echo "modifying files in 5s, ctrl+c to abort" && sleep 5 echo "modifying files in 5s, ctrl+c to abort" && sleep 5
find ./* -name "Cargo.toml" -exec sed -i 's/, "simd"]/]/g' {} \; find ./* -name "Cargo.toml" -exec sed -i -E 's/, *"simd"|"simd" *,|"simd"//g' {} \;
find ./* -name "Cargo.toml" -exec sed -i 's/"simd"]/]/g' {} \;
export VELOREN_ASSETS="$(pwd)/assets"; export VELOREN_ASSETS="$(pwd)/assets";
time cargo tarpaulin --skip-clean -v -- --test-threads=2; time cargo tarpaulin --skip-clean -v -- --test-threads=2;

View File

@ -1,3 +1,5 @@
#!/bin/bash #!/bin/bash
export VELOREN_ASSETS="$(pwd)/assets" VELOREN_ASSETS="$(pwd)/assets"
time cargo test --package veloren-voxygen-i18n --lib test_all_localizations -- --nocapture --ignored export VELOREN_ASSETS
time cargo run --bin i18n-csv --features="stat"

View File

@ -1,4 +1,8 @@
#!/bin/bash #!/bin/bash
export VELOREN_ASSETS="$(pwd)/assets" VELOREN_ASSETS="$(pwd)/assets"
time cargo test --package veloren-common-assets asset_tweak::tests --features asset_tweak --lib && export VELOREN_ASSETS
time cargo test \
--package veloren-common-assets asset_tweak::tests \
--features asset_tweak --lib &&
time cargo test time cargo test

View File

@ -1 +1 @@
Mckol <mckol363@gmail.com> LunarEclipse <luna@lunareclipse.zone> <mckol363@gmail.com>

View File

@ -8,16 +8,125 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
### Added ### Added
- Command to toggle experimental shaders.
- Faster Energy Regeneration while sitting.
- Lantern glow for dropped lanterns.
- Suggests commands when an invalid one is entered in chat and added Client-side commands to /help.
- Moderator badge in the chat.
- More aggressive scene culling based on camera position to improve performance.
- Some chests requiring lockpicks or keys.
- Unlockable door blocks.
- Sprite rotation for Spots.
- Better entity placement options for spots.
- Camera zoom can now be locked, to prevent accidental zooming while rolling in combat. It comes
with a keybind to enable/disable the setting, and an Auto/Toggle behavior setting. Auto behavior
will only lock the camera zoom while movement and combat inputs are also being pressed.
- Custom spots can be added without recompilation (only ron and vox files)
- Setting in userdata/server/server_config/settings.ron that controls the length of each day/night cycle.
### Changed ### Changed
- Bats move slower and use a simple proportional controller to maintain altitude
- Bats now have less health
- Climbing no longer requires having 10 energy
- Castles will now be placed close to towns
- Sword
### Removed
### Fixed
- Doors
- Debug hitboxes now scale with the `Scale` component
- Potion quaffing no longer makes characters practically immortal.
- Stat diff now displays correctly for armor
- Lamps, embers and campfires use glowing indices
- Non-potion drinks no longer heal as much as potions.
- Added SFX to the new sword abilities
- Fixed various issues with showing the correct text hint for interactable blocks.
- Intert entities like arrows no longer obstruct interacting with nearby entities/blocks.
## [0.14.0] - 2023-01-07
### Added
- Setting for disabling flashing lights
- Spectate mode for moderators.
- Currently playing music track and artist now shows in the debug menu.
- Added a setting to influence the gap between music track plays.
- Added a Craft All button.
- Server: Vacuum database on startup
- SeaChapel, greek/latin inspired dungeon for ocean biome coasts
- Entity view distance setting added (shown in graphics and network tabs). This setting controls
the distance at which entities are synced to the client and which entities are displayed in.
This is clamped to be no more than the current overall view distance setting.
- View distance settings that are lowered by the server limit (or other factors) now display an
extra ghost slider cursor when set above the limit (instead of snapping back to the limit).
Limits on the view distance by the server no longer affect the settings saved on the client.
- HQX upscaling shader for people playing on low internal resolutions
- Pets can now be traded with.
- Crafting recipe for black lantern
- Added redwood and dead trees
- Water will now move according to its apparent flow direction
- Added screen-space reflection and refraction shaders
- Added reflection quality setting
- UI: Added a poise indicator to the player's status bars
- FxUpscale AA mode for higher quality graphics at reduced internal resolutions
- Graphics presets
- Sword
- Doors now animate opening when entities are near them.
- Musical instruments can now be crafted, looted and played
- NPCs now move to their target's last known position.
- Experience bar below the hotbar
- Bridges.
- Tool for exporting PNG images of all in-game models (`cargo img-export`)
- Calendar event soundtracks.
### Changed
- Use fluent for translations
- First tab on Login screen triggers username focus
- Certain NPCs will now attack when alone with victim
- /kill_npcs no longer leaves drops behind and also has bug causing it to not destroy entities
fixed.
- Default present mode changed to Fifo (aka 'Vsync capped').
- Old "Entity View Distance" setting renamed to "Entity Detail Distance" (since this controls the
distance at which lower detail models are used for entities).
- Present mode options renamed for clarity: Fifo -> 'Vsync capped', Mailbox -> 'Vsync uncapped',
Immediate -> 'Vsync off'.
- Item pickup UI now displays items that members of your group pick up.
- Improved shiny water shaders
- Tweaked armor stats
- Move bag icon to skillbar
- Improved inventory sorting by Category
### Removed ### Removed
### Fixed ### Fixed
- Fixed npc not handling interactions while fighting (especially merchants in trade)
- Fixed bug where you would still be burning after dying in lava.
- Workaround for rayon bug that caused lag spikes in slowjobs
- Fixed crash due to zooming out very far
- Client properly knows trade was cancelled when exiting to the character screen (and no longer
tries to display the trade window when rejoining)
- Cancel trades for an entity when it is deleted (note this doesn't effect trades between players
since their entities are not removed).
- Fixed bug where the view distance selection was not immediately applied to entity syncing when
first joining a server and when changing the view distance (previously this required moving to a
new chunk for the initial setting or subsequent change to apply).
- Moderators and admins are no longer blocked from logging in when there are too many players.
- FXAA now behaves correctly at non-1.0x internal resolutions
- Pets no longer aggro on pet owners after being healed
- Pets no longer lose their intrinsic weapons/armour when loaded on login.
- Fixed npcs using `/say` instead of `/tell`
- Camera jittering in third person has been significantly reduced
- Many water shader issues have been fixed
- Flee if attacked even if attacker is not close.
- `/time` command will never rewind time, only advance it to not break rtsim
## [0.13.0] - 2022-07-23 ## [0.13.0] - 2022-07-23
### Added ### Added
- Chat commands to mute and unmute players - Chat commands to mute and unmute players
- Waypoints saved between sessions and shared with group members. - Waypoints saved between sessions and shared with group members.
- New rocks - New rocks
@ -73,9 +182,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Overhauled caves: they're now a multi-layer network spanning the entire world - Overhauled caves: they're now a multi-layer network spanning the entire world
### Removed ### Removed
- Removed the options for single and cumulated damage. - Removed the options for single and cumulated damage.
### Fixed ### Fixed
- Fixed bug that would sometimes cause taking a screenshot to panic because a buffer was mapped at the wrong time. - Fixed bug that would sometimes cause taking a screenshot to panic because a buffer was mapped at the wrong time.
- Players can no longer push waypoints around - Players can no longer push waypoints around
- Sites will now also be placed near the edge of the map - Sites will now also be placed near the edge of the map
@ -765,7 +876,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- New attack animation - New attack animation
- Weapon control system - Weapon control system
- Game pauses when in single player and pause menu - Game pauses when in single player and pause menu
- Added authentication system (to play on the official server register on https://account.veloren.net) - Added authentication system (to play on the official server register on <https://account.veloren.net>)
- Added gamepad/controller support - Added gamepad/controller support
- Added player feedback when attempting to pickup an item with a full inventory - Added player feedback when attempting to pickup an item with a full inventory
- Added free look - Added free look
@ -1002,7 +1113,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
_0.1.0 was part of the legacy engine_ _0.1.0 was part of the legacy engine_
[unreleased]: https://gitlab.com/veloren/veloren/compare?from=v0.13.0&to=master [unreleased]: https://gitlab.com/veloren/veloren/compare?from=v0.14.0&to=master
[0.14.0]: https://gitlab.com/veloren/veloren/compare?from=v0.13.0&to=v0.14.0
[0.13.0]: https://gitlab.com/veloren/veloren/compare?from=v0.12.0&to=v0.13.0 [0.13.0]: https://gitlab.com/veloren/veloren/compare?from=v0.12.0&to=v0.13.0
[0.12.0]: https://gitlab.com/veloren/veloren/compare?from=v0.11.0&to=v0.12.0 [0.12.0]: https://gitlab.com/veloren/veloren/compare?from=v0.11.0&to=v0.12.0
[0.11.0]: https://gitlab.com/veloren/veloren/compare?from=v0.10.0&to=v0.11.0 [0.11.0]: https://gitlab.com/veloren/veloren/compare?from=v0.10.0&to=v0.11.0

2593
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -5,24 +5,24 @@ members = [
"common", "common",
"common/assets", "common/assets",
"common/base", "common/base",
"common/dynlib",
"common/ecs", "common/ecs",
"common/net", "common/net",
"common/state", "common/state",
"common/systems", "common/systems",
"common/frontend", "common/frontend",
"client", "client",
"client/i18n",
"plugin/api", "plugin/api",
"plugin/derive", "plugin/derive",
"plugin/rt", "plugin/rt",
"server", "server",
"server/agent",
"server-cli", "server-cli",
"voxygen", "voxygen",
"voxygen/anim", "voxygen/anim",
"voxygen/anim/dyn", "voxygen/i18n-helpers",
"voxygen/i18n",
"voxygen/dynlib",
"voxygen/egui", "voxygen/egui",
"voxygen/egui/dyn",
"world", "world",
"network", "network",
"network/protocol", "network/protocol",
@ -115,10 +115,6 @@ systems = ["x86_64-linux"]
name = "veloren-nix" name = "veloren-nix"
key = "veloren-nix.cachix.org-1:zokfKJqVsNV6kI/oJdLF6TYBdNPYGSb+diMVQPn/5Rc=" key = "veloren-nix.cachix.org-1:zokfKJqVsNV6kI/oJdLF6TYBdNPYGSb+diMVQPn/5Rc="
[workspace.metadata.nix.crateOverride.veloren-network]
buildInputs = ["openssl"]
nativeBuildInputs = ["pkg-config"]
[patch.crates-io] [patch.crates-io]
vek = { git = "https://github.com/yoanlcq/vek.git", rev = "84d5cb65841d46599a986c5477341bea4456be26" } vek = { git = "https://github.com/yoanlcq/vek.git", rev = "84d5cb65841d46599a986c5477341bea4456be26" }
# patch wgpu so we can use wgpu-profiler crate # patch wgpu so we can use wgpu-profiler crate

12
LICENSE
View File

@ -1,7 +1,7 @@
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007 Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed. of this license document, but changing it is not allowed.
@ -632,7 +632,7 @@ state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found. the "copyright" line and a pointer to where the full notice is found.
Veloren Veloren
Copyright (C) 2020 Project Veloren Copyright (C) 2018-2023 Project Veloren
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -645,14 +645,14 @@ the "copyright" line and a pointer to where the full notice is found.
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail. Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode: notice like this when it starts in an interactive mode:
Veloren Copyright (C) 2020 Project Veloren Veloren Copyright (C) 2018-2023 Project Veloren
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details. under certain conditions; type `show c' for details.
@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school, You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary. if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>. <https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>. <https://www.gnu.org/licenses/why-not-lgpl.html>.

View File

@ -1,428 +1,709 @@
#![enable(implicit_some)]
// Maps a tool kind to a set of abilities // Maps a tool kind to a set of abilities
// A set of abilities is a primary, a secondary, and a vec of all extra abilities // A set of abilities is a primary, a secondary, and a vec of all extra abilities
({ ({
Tool(Sword): ( Tool(Sword): (
primary: "common.abilities.sword.triplestrike", primary: Contextualized(
secondary: "common.abilities.sword.dash", pseudo_id: "veloren.core.pseudo_abilities.sword.double_slash",
abilities: {
None: (None, "common.abilities.sword.basic_double_slash"),
Stance(Sword(Heavy)): (None, "common.abilities.sword.heavy_double_slash"),
Stance(Sword(Agile)): (None, "common.abilities.sword.agile_double_slash"),
Stance(Sword(Defensive)): (None, "common.abilities.sword.defensive_double_slash"),
Stance(Sword(Crippling)): (None, "common.abilities.sword.crippling_double_slash"),
Stance(Sword(Cleaving)): (None, "common.abilities.sword.cleaving_double_slash"),
},
),
secondary: Contextualized(
pseudo_id: "veloren.core.pseudo_abilities.sword.secondary_ability",
abilities: {
None: (None, "common.abilities.sword.basic_thrust"),
Stance(Sword(Heavy)): (None, "common.abilities.sword.heavy_slam"),
Stance(Sword(Agile)): (None, "common.abilities.sword.agile_perforate"),
Stance(Sword(Defensive)): (None, "common.abilities.sword.defensive_parry"),
Stance(Sword(Crippling)): (None, "common.abilities.sword.crippling_deep_rend"),
Stance(Sword(Cleaving)): (None, "common.abilities.sword.cleaving_spiral_slash"),
},
),
abilities: [ abilities: [
(Some(Sword(UnlockSpin)), "common.abilities.sword.spin"), Contextualized(
pseudo_id: "veloren.core.pseudo_abilities.sword.crescent_slash",
abilities: {
None: (Sword(CrescentSlash), "common.abilities.sword.basic_crescent_slash"),
Stance(Sword(Heavy)): (Sword(CrescentSlash), "common.abilities.sword.heavy_crescent_slash"),
Stance(Sword(Agile)): (Sword(CrescentSlash), "common.abilities.sword.agile_crescent_slash"),
Stance(Sword(Defensive)): (Sword(CrescentSlash), "common.abilities.sword.defensive_crescent_slash"),
Stance(Sword(Crippling)): (Sword(CrescentSlash), "common.abilities.sword.crippling_crescent_slash"),
Stance(Sword(Cleaving)): (Sword(CrescentSlash), "common.abilities.sword.cleaving_crescent_slash"),
},
),
Contextualized(
pseudo_id: "veloren.core.pseudo_abilities.sword.fell_strike",
abilities: {
None: (Sword(FellStrike), "common.abilities.sword.basic_fell_strike"),
Stance(Sword(Heavy)): (Sword(FellStrike), "common.abilities.sword.heavy_fell_strike"),
Stance(Sword(Agile)): (Sword(FellStrike), "common.abilities.sword.agile_fell_strike"),
Stance(Sword(Defensive)): (Sword(FellStrike), "common.abilities.sword.defensive_fell_strike"),
Stance(Sword(Crippling)): (Sword(FellStrike), "common.abilities.sword.crippling_fell_strike"),
Stance(Sword(Cleaving)): (Sword(FellStrike), "common.abilities.sword.cleaving_fell_strike"),
},
),
Contextualized(
pseudo_id: "veloren.core.pseudo_abilities.sword.skewer",
abilities: {
None: (Sword(Skewer), "common.abilities.sword.basic_skewer"),
Stance(Sword(Heavy)): (Sword(Skewer), "common.abilities.sword.heavy_skewer"),
Stance(Sword(Agile)): (Sword(Skewer), "common.abilities.sword.agile_skewer"),
Stance(Sword(Defensive)): (Sword(Skewer), "common.abilities.sword.defensive_skewer"),
Stance(Sword(Crippling)): (Sword(Skewer), "common.abilities.sword.crippling_skewer"),
Stance(Sword(Cleaving)): (Sword(Skewer), "common.abilities.sword.cleaving_skewer"),
},
),
Contextualized(
pseudo_id: "veloren.core.pseudo_abilities.sword.cascade",
abilities: {
None: (Sword(Cascade), "common.abilities.sword.basic_cascade"),
Stance(Sword(Heavy)): (Sword(Cascade), "common.abilities.sword.heavy_cascade"),
Stance(Sword(Agile)): (Sword(Cascade), "common.abilities.sword.agile_cascade"),
Stance(Sword(Defensive)): (Sword(Cascade), "common.abilities.sword.defensive_cascade"),
Stance(Sword(Crippling)): (Sword(Cascade), "common.abilities.sword.crippling_cascade"),
Stance(Sword(Cleaving)): (Sword(Cascade), "common.abilities.sword.cleaving_cascade"),
},
),
Contextualized(
pseudo_id: "veloren.core.pseudo_abilities.sword.cross_cut",
abilities: {
None: (Sword(CrossCut), "common.abilities.sword.basic_cross_cut"),
Stance(Sword(Heavy)): (Sword(CrossCut), "common.abilities.sword.heavy_cross_cut"),
Stance(Sword(Agile)): (Sword(CrossCut), "common.abilities.sword.agile_cross_cut"),
Stance(Sword(Defensive)): (Sword(CrossCut), "common.abilities.sword.defensive_cross_cut"),
Stance(Sword(Crippling)): (Sword(CrossCut), "common.abilities.sword.crippling_cross_cut"),
Stance(Sword(Cleaving)): (Sword(CrossCut), "common.abilities.sword.cleaving_cross_cut"),
},
),
Contextualized(
pseudo_id: "veloren.core.pseudo_abilities.sword.finisher",
abilities: {
None: (Sword(Finisher), "common.abilities.sword.basic_mighty_strike"),
Stance(Sword(Heavy)): (Sword(Finisher), "common.abilities.sword.heavy_guillotine"),
Stance(Sword(Agile)): (Sword(Finisher), "common.abilities.sword.agile_hundred_cuts"),
Stance(Sword(Defensive)): (Sword(Finisher), "common.abilities.sword.defensive_counter"),
Stance(Sword(Crippling)): (Sword(Finisher), "common.abilities.sword.crippling_mutilate"),
Stance(Sword(Cleaving)): (Sword(Finisher), "common.abilities.sword.cleaving_bladestorm"),
},
),
Simple(Sword(HeavyWindmillSlash), "common.abilities.sword.heavy_windmill_slash"),
Simple(Sword(HeavyPommelStrike), "common.abilities.sword.heavy_pommel_strike"),
Simple(Sword(AgileQuickDraw), "common.abilities.sword.agile_quick_draw"),
Simple(Sword(AgileFeint), "common.abilities.sword.agile_feint"),
Simple(Sword(DefensiveRiposte), "common.abilities.sword.defensive_riposte"),
Simple(Sword(DefensiveDisengage), "common.abilities.sword.defensive_disengage"),
Simple(Sword(CripplingGouge), "common.abilities.sword.crippling_gouge"),
Simple(Sword(CripplingHamstring), "common.abilities.sword.crippling_hamstring"),
Simple(Sword(CleavingWhirlwindSlice), "common.abilities.sword.cleaving_whirlwind_slice"),
Simple(Sword(CleavingEarthSplitter), "common.abilities.sword.cleaving_earth_splitter"),
Simple(Sword(HeavyFortitude), "common.abilities.sword.heavy_fortitude"),
Simple(Sword(HeavyPillarThrust), "common.abilities.sword.heavy_pillar_thrust"),
Simple(Sword(AgileDancingEdge), "common.abilities.sword.agile_dancing_edge"),
Simple(Sword(AgileFlurry), "common.abilities.sword.agile_flurry"),
Simple(Sword(DefensiveStalwartSword), "common.abilities.sword.defensive_stalwart_sword"),
Simple(Sword(DefensiveDeflect), "common.abilities.sword.defensive_deflect"),
Simple(Sword(CripplingEviscerate), "common.abilities.sword.crippling_eviscerate"),
Simple(Sword(CripplingBloodyGash), "common.abilities.sword.crippling_bloody_gash"),
Simple(Sword(CleavingBladeFever), "common.abilities.sword.cleaving_blade_fever"),
Simple(Sword(CleavingSkySplitter), "common.abilities.sword.cleaving_sky_splitter"),
], ],
), ),
Tool(Axe): ( Tool(Axe): (
primary: "common.abilities.axe.doublestrike", primary: Simple(None, "common.abilities.axe.doublestrike"),
secondary: "common.abilities.axe.spin", secondary: Simple(None, "common.abilities.axe.spin"),
abilities: [ abilities: [
(Some(Axe(UnlockLeap)), "common.abilities.axe.leap"), Simple(Some(Axe(UnlockLeap)), "common.abilities.axe.leap"),
], ],
), ),
Tool(Hammer): ( Tool(Hammer): (
primary: "common.abilities.hammer.singlestrike", primary: Simple(None, "common.abilities.hammer.singlestrike"),
secondary: "common.abilities.hammer.charged", secondary: Simple(None, "common.abilities.hammer.charged"),
abilities: [ abilities: [
(Some(Hammer(UnlockLeap)), "common.abilities.hammer.leap"), Simple(Some(Hammer(UnlockLeap)), "common.abilities.hammer.leap"),
], ],
), ),
Tool(Bow): ( Tool(Bow): (
primary: "common.abilities.bow.charged", primary: Simple(None, "common.abilities.bow.charged"),
secondary: "common.abilities.bow.repeater", secondary: Simple(None, "common.abilities.bow.repeater"),
abilities: [ abilities: [
(Some(Bow(UnlockShotgun)), "common.abilities.bow.shotgun"), Simple(Some(Bow(UnlockShotgun)), "common.abilities.bow.shotgun"),
], ],
), ),
Tool(Staff): ( Tool(Staff): (
primary: "common.abilities.staff.firebomb", primary: Simple(None, "common.abilities.staff.firebomb"),
secondary: "common.abilities.staff.flamethrower", secondary: Simple(None, "common.abilities.staff.flamethrower"),
abilities: [ abilities: [
(Some(Staff(UnlockShockwave)), "common.abilities.staff.fireshockwave"), Simple(Some(Staff(UnlockShockwave)), "common.abilities.staff.fireshockwave"),
], ],
), ),
Tool(Sceptre): ( Tool(Sceptre): (
primary: "common.abilities.sceptre.lifestealbeam", primary: Simple(None, "common.abilities.sceptre.lifestealbeam"),
secondary: "common.abilities.sceptre.healingaura", secondary: Simple(None, "common.abilities.sceptre.healingaura"),
abilities: [ abilities: [
(Some(Sceptre(UnlockAura)), "common.abilities.sceptre.wardingaura"), Simple(Some(Sceptre(UnlockAura)), "common.abilities.sceptre.wardingaura"),
], ],
), ),
Custom("Husk"): ( Custom("Husk"): (
primary: "common.abilities.custom.husk.singlestrike", primary: Simple(None, "common.abilities.custom.husk.singlestrike"),
secondary: "common.abilities.custom.husk.triplestrike", secondary: Simple(None, "common.abilities.custom.husk.triplestrike"),
abilities: [], abilities: [],
), ),
Custom("Husk Brute"): ( Custom("Husk Brute"): (
primary: "common.abilities.custom.husk_brute.singlestrike", primary: Simple(None, "common.abilities.custom.husk_brute.singlestrike"),
secondary: "common.abilities.custom.husk_brute.chargedmelee", secondary: Simple(None, "common.abilities.custom.husk_brute.chargedmelee"),
abilities: [], abilities: [],
), ),
Tool(Spear): ( Tool(Spear): (
primary: "common.abilities.spear.doublestrike", primary: Simple(None, "common.abilities.spear.doublestrike"),
secondary: "common.abilities.spear.dash", secondary: Simple(None, "common.abilities.spear.dash"),
abilities: [], abilities: [],
), ),
Custom("Hammer Simple"): ( Custom("Hammer Simple"): (
primary: "common.abilities.hammersimple.doublestrike", primary: Simple(None, "common.abilities.hammersimple.doublestrike"),
secondary: "common.abilities.hammersimple.doublestrike", secondary: Simple(None, "common.abilities.hammersimple.doublestrike"),
abilities: [], abilities: [],
), ),
// TODO: Later investigate if we want to make this back to a simple axe when more things need a simpler axe ability set // TODO: Later investigate if we want to make this back to a simple axe when more things need a simpler axe ability set
Custom("Gnarling Axe"): ( Custom("Gnarling Axe"): (
primary: "common.abilities.gnarling.axe.chop", primary: Simple(None, "common.abilities.gnarling.axe.chop"),
secondary: "common.abilities.gnarling.axe.chop", secondary: Simple(None, "common.abilities.gnarling.axe.chop"),
abilities: [], abilities: [],
), ),
Custom("Gnarling Dagger"): ( Custom("Gnarling Dagger"): (
primary: "common.abilities.gnarling.dagger.stab", primary: Simple(None, "common.abilities.gnarling.dagger.stab"),
secondary: "common.abilities.gnarling.dagger.stab", secondary: Simple(None, "common.abilities.gnarling.dagger.stab"),
abilities: [], abilities: [],
), ),
Custom("Gnarling Blowgun"): ( Custom("Gnarling Blowgun"): (
primary: "common.abilities.gnarling.blowgun.dart", primary: Simple(None, "common.abilities.gnarling.blowgun.dart"),
secondary: "common.abilities.gnarling.blowgun.dart", secondary: Simple(None, "common.abilities.gnarling.blowgun.dart"),
abilities: [], abilities: [],
), ),
Custom("Gnarling Chieftain"): ( Custom("Gnarling Chieftain"): (
primary: "common.abilities.gnarling.chieftain.flamestrike", primary: Simple(None, "common.abilities.gnarling.chieftain.flamestrike"),
secondary: "common.abilities.gnarling.chieftain.firebarrage", secondary: Simple(None, "common.abilities.gnarling.chieftain.firebarrage"),
abilities: [ abilities: [
(None, "common.abilities.gnarling.chieftain.fireshockwave"), Simple(None, "common.abilities.gnarling.chieftain.fireshockwave"),
(None, "common.abilities.gnarling.chieftain.redtotem"), Simple(None, "common.abilities.gnarling.chieftain.redtotem"),
(None, "common.abilities.gnarling.chieftain.greentotem"), Simple(None, "common.abilities.gnarling.chieftain.greentotem"),
(None, "common.abilities.gnarling.chieftain.whitetotem"), Simple(None, "common.abilities.gnarling.chieftain.whitetotem"),
], ],
), ),
Custom("Gnarling Totem Red"): ( Custom("Gnarling Totem Red"): (
primary: "common.abilities.gnarling.totem.red", primary: Simple(None, "common.abilities.gnarling.totem.red"),
secondary: "common.abilities.gnarling.totem.red", secondary: Simple(None, "common.abilities.gnarling.totem.red"),
abilities: [], abilities: [],
), ),
Custom("Gnarling Totem Green"): ( Custom("Gnarling Totem Green"): (
primary: "common.abilities.gnarling.totem.green", primary: Simple(None, "common.abilities.gnarling.totem.green"),
secondary: "common.abilities.gnarling.totem.green", secondary: Simple(None, "common.abilities.gnarling.totem.green"),
abilities: [], abilities: [],
), ),
Custom("Gnarling Totem White"): ( Custom("Gnarling Totem White"): (
primary: "common.abilities.gnarling.totem.white", primary: Simple(None, "common.abilities.gnarling.totem.white"),
secondary: "common.abilities.gnarling.totem.white", secondary: Simple(None, "common.abilities.gnarling.totem.white"),
abilities: [], abilities: [],
), ),
Custom("Deadwood"): ( Custom("Deadwood"): (
primary: "common.abilities.custom.deadwood.lifestealbeam", primary: Simple(None, "common.abilities.custom.deadwood.lifestealbeam"),
secondary: "common.abilities.custom.deadwood.dash", secondary: Simple(None, "common.abilities.custom.deadwood.dash"),
abilities: [], abilities: [],
), ),
Custom("Mandragora"): ( Custom("Mandragora"): (
primary: "common.abilities.custom.mandragora.basic", primary: Simple(None, "common.abilities.custom.mandragora.basic"),
secondary: "common.abilities.custom.mandragora.scream", secondary: Simple(None, "common.abilities.custom.mandragora.scream"),
abilities: [], abilities: [],
), ),
Custom("Wood Golem"): ( Custom("Wood Golem"): (
primary: "common.abilities.custom.woodgolem.strike", primary: Simple(None, "common.abilities.custom.woodgolem.strike"),
secondary: "common.abilities.custom.woodgolem.spin", secondary: Simple(None, "common.abilities.custom.woodgolem.spin"),
abilities: [ abilities: [
(None, "common.abilities.custom.woodgolem.shockwave") Simple(None, "common.abilities.custom.woodgolem.shockwave")
], ],
), ),
Custom("Simple Flying Melee"): (
primary: Simple(None, "common.abilities.custom.simpleflyingmelee.singlestrike"),
secondary: Simple(None, "common.abilities.custom.simpleflyingmelee.singlestrike"),
abilities: [],
),
Custom("Sword Simple"): ( Custom("Sword Simple"): (
primary: "common.abilities.swordsimple.doublestrike", primary: Simple(None, "common.abilities.swordsimple.doublestrike"),
secondary: "common.abilities.swordsimple.dash", secondary: Simple(None, "common.abilities.swordsimple.dash"),
abilities: [], abilities: [],
), ),
Custom("Staff Simple"): ( Custom("Staff Simple"): (
primary: "common.abilities.staffsimple.firebomb", primary: Simple(None, "common.abilities.staffsimple.firebomb"),
secondary: "common.abilities.staffsimple.flamethrower", secondary: Simple(None, "common.abilities.staffsimple.flamethrower"),
abilities: [], abilities: [],
), ),
Custom("Bow Simple"): ( Custom("Bow Simple"): (
primary: "common.abilities.bowsimple.basic", primary: Simple(None, "common.abilities.bowsimple.basic"),
secondary: "common.abilities.bowsimple.basic", secondary: Simple(None, "common.abilities.bowsimple.basic"),
abilities: [], abilities: [],
), ),
Custom("Axe Simple"): ( Custom("Axe Simple"): (
primary: "common.abilities.axesimple.doublestrike", primary: Simple(None, "common.abilities.axesimple.doublestrike"),
secondary: "common.abilities.axesimple.doublestrike", secondary: Simple(None, "common.abilities.axesimple.doublestrike"),
abilities: [], abilities: [],
), ),
Custom("Dagger Simple"): ( Custom("Dagger Simple"): (
primary: "common.abilities.daggersimple.singlestrike", primary: Simple(None, "common.abilities.daggersimple.singlestrike"),
secondary: "common.abilities.daggersimple.singlestrike", secondary: Simple(None, "common.abilities.daggersimple.singlestrike"),
abilities: [], abilities: [],
), ),
Tool(Dagger): ( Tool(Dagger): (
primary: "common.abilities.dagger.tempbasic", primary: Simple(None, "common.abilities.dagger.tempbasic"),
secondary: "common.abilities.dagger.tempbasic", secondary: Simple(None, "common.abilities.dagger.tempbasic"),
abilities: [], abilities: [],
), ),
Tool(Shield): ( Tool(Shield): (
primary: "common.abilities.shield.tempbasic", primary: Simple(None, "common.abilities.shield.tempbasic"),
secondary: "common.abilities.shield.block", secondary: Simple(None, "common.abilities.shield.block"),
abilities: [], abilities: [],
), ),
Custom("Stone Golem"): ( Custom("Stone Golem"): (
primary: "common.abilities.custom.stonegolemfist.singlestrike", primary: Simple(None, "common.abilities.custom.stonegolemfist.singlestrike"),
secondary: "common.abilities.custom.stonegolemfist.shockwave", secondary: Simple(None, "common.abilities.custom.stonegolemfist.shockwave"),
abilities: [ abilities: [
(None, "common.abilities.custom.stonegolemfist.spin"), Simple(None, "common.abilities.custom.stonegolemfist.spin"),
], ],
), ),
Custom("Beast Claws"): ( Custom("Beast Claws"): (
primary: "common.abilities.custom.beastclaws.basic", primary: Simple(None, "common.abilities.custom.beastclaws.basic"),
secondary: "common.abilities.custom.beastclaws.basic", secondary: Simple(None, "common.abilities.custom.beastclaws.basic"),
abilities: [],
),
Custom("Tursus Claws"): (
primary: Simple(None, "common.abilities.custom.tursus_claws.basic"),
secondary: Simple(None, "common.abilities.custom.tursus_claws.basic"),
abilities: [], abilities: [],
), ),
Custom("Wendigo Magic"): ( Custom("Wendigo Magic"): (
primary: "common.abilities.custom.wendigomagic.frostbomb", primary: Simple(None, "common.abilities.custom.wendigomagic.frostbomb"),
secondary: "common.abilities.custom.wendigomagic.singlestrike", secondary: Simple(None, "common.abilities.custom.wendigomagic.singlestrike"),
abilities: [], abilities: [],
), ),
Custom("Tidal Warrior"): ( Custom("Tidal Warrior"): (
primary: "common.abilities.custom.tidalwarrior.pincer", primary: Simple(None, "common.abilities.custom.tidalwarrior.pincer"),
secondary: "common.abilities.custom.tidalwarrior.scuttle", secondary: Simple(None, "common.abilities.custom.tidalwarrior.scuttle"),
abilities: [ abilities: [
(None, "common.abilities.custom.tidalwarrior.bubbles"), Simple(None, "common.abilities.custom.tidalwarrior.bubbles"),
(None, "common.abilities.custom.tidalwarrior.totem"), Simple(None, "common.abilities.custom.tidalwarrior.totem"),
], ],
), ),
Custom("Tidal Totem"): ( Custom("Tidal Totem"): (
primary: "common.abilities.custom.tidalwarrior.totem_wave", primary: Simple(None, "common.abilities.custom.tidalwarrior.totem_wave"),
secondary: "common.abilities.custom.tidalwarrior.totem_wave", secondary: Simple(None, "common.abilities.custom.tidalwarrior.totem_wave"),
abilities: [], abilities: [],
), ),
// Note: Consider making a ranking system once we get more entities // Note: Consider making a ranking system once we get more entities
// TODO: Make all purple item droppers have purple CR and a unique skillset // TODO: Make all purple item droppers have purple CR and a unique skillset
Custom("Quad Med Quick"): ( Custom("Quad Med Quick"): (
primary: "common.abilities.custom.quadmedquick.triplestrike", primary: Simple(None, "common.abilities.custom.quadmedquick.triplestrike"),
secondary: "common.abilities.custom.quadmedquick.dash", secondary: Simple(None, "common.abilities.custom.quadmedquick.dash"),
abilities: [], abilities: [],
), ),
Custom("Quad Med Jump"): ( Custom("Quad Med Jump"): (
primary: "common.abilities.custom.quadmedjump.leap", primary: Simple(None, "common.abilities.custom.quadmedjump.leap"),
secondary: "common.abilities.custom.quadmedjump.doublestrike", secondary: Simple(None, "common.abilities.custom.quadmedjump.doublestrike"),
abilities: [ abilities: [
(None, "common.abilities.custom.quadmedjump.quickleap"), Simple(None, "common.abilities.custom.quadmedjump.quickleap"),
], ],
), ),
Custom("Quad Med Charge"): ( Custom("Quad Med Charge"): (
primary: "common.abilities.custom.quadmedcharge.doublestrike", primary: Simple(None, "common.abilities.custom.quadmedcharge.doublestrike"),
secondary: "common.abilities.custom.quadmedcharge.dash", secondary: Simple(None, "common.abilities.custom.quadmedcharge.dash"),
abilities: [], abilities: [],
), ),
Custom("Quad Med Hoof"): ( Custom("Quad Med Hoof"): (
primary: "common.abilities.custom.quadmedhoof.basic", primary: Simple(None, "common.abilities.custom.quadmedhoof.basic"),
secondary: "common.abilities.custom.quadmedhoof.basic", secondary: Simple(None, "common.abilities.custom.quadmedhoof.basic"),
abilities: [], abilities: [],
), ),
Custom("Quad Med Basic"): ( Custom("Quad Med Basic"): (
primary: "common.abilities.custom.quadmedbasic.singlestrike", primary: Simple(None, "common.abilities.custom.quadmedbasic.singlestrike"),
secondary: "common.abilities.custom.quadmedbasic.triplestrike", secondary: Simple(None, "common.abilities.custom.quadmedbasic.triplestrike"),
abilities: [], abilities: [],
), ),
Custom("Basilisk"): ( Custom("Roshwalr"): (
primary: "common.abilities.custom.basilisk.petrify", primary: Simple(None, "common.abilities.custom.roshwalr.doublehusk"),
secondary: "common.abilities.custom.basilisk.triplestrike", secondary: Simple(None, "common.abilities.custom.roshwalr.slowcharge"),
abilities: [ abilities: [
(None, "common.abilities.custom.basilisk.dash"), Simple(None, "common.abilities.custom.roshwalr.freezeshockwave"),
],
),
Custom("Basilisk"): (
primary: Simple(None, "common.abilities.custom.basilisk.petrify"),
secondary: Simple(None, "common.abilities.custom.basilisk.triplestrike"),
abilities: [
Simple(None, "common.abilities.custom.basilisk.dash"),
], ],
), ),
Custom("Asp"): ( Custom("Asp"): (
primary: "common.abilities.custom.asp.singlestrike", primary: Simple(None, "common.abilities.custom.asp.singlestrike"),
secondary: "common.abilities.custom.asp.firebomb", secondary: Simple(None, "common.abilities.custom.asp.firebomb"),
abilities: [], abilities: [],
), ),
Custom("Maneater"): ( Custom("Maneater"): (
primary: "common.abilities.custom.maneater.singlestrike", primary: Simple(None, "common.abilities.custom.maneater.singlestrike"),
secondary: "common.abilities.custom.maneater.poisonball", secondary: Simple(None, "common.abilities.custom.maneater.poisonball"),
abilities: [], abilities: [],
), ),
Custom("Quad Low Breathe"): ( Custom("Quad Low Breathe"): (
primary: "common.abilities.custom.quadlowbreathe.flamethrower", primary: Simple(None, "common.abilities.custom.quadlowbreathe.flamethrower"),
secondary: "common.abilities.custom.quadlowbreathe.triplestrike", secondary: Simple(None, "common.abilities.custom.quadlowbreathe.triplestrike"),
abilities: [ abilities: [
(None, "common.abilities.custom.quadlowbreathe.dash"), Simple(None, "common.abilities.custom.quadlowbreathe.dash"),
], ],
), ),
Custom("Quad Low Tail"): ( Custom("Quad Low Tail"): (
primary: "common.abilities.custom.quadlowtail.charged", primary: Simple(None, "common.abilities.custom.quadlowtail.charged"),
secondary: "common.abilities.custom.quadlowtail.triplestrike", secondary: Simple(None, "common.abilities.custom.quadlowtail.triplestrike"),
abilities: [], abilities: [],
), ),
Custom("Quad Low Quick"): ( Custom("Quad Low Quick"): (
primary: "common.abilities.custom.quadlowquick.dash", primary: Simple(None, "common.abilities.custom.quadlowquick.dash"),
secondary: "common.abilities.custom.quadlowquick.quadstrike", secondary: Simple(None, "common.abilities.custom.quadlowquick.quadstrike"),
abilities: [], abilities: [],
), ),
Custom("Quad Low Basic"): ( Custom("Quad Low Basic"): (
primary: "common.abilities.custom.quadlowbasic.triplestrike", primary: Simple(None, "common.abilities.custom.quadlowbasic.triplestrike"),
secondary: "common.abilities.custom.quadlowbasic.singlestrike", secondary: Simple(None, "common.abilities.custom.quadlowbasic.singlestrike"),
abilities: [], abilities: [],
), ),
Custom("Quad Low Beam"): ( Custom("Quad Low Beam"): (
primary: "common.abilities.custom.quadlowbeam.lifestealbeam", primary: Simple(None, "common.abilities.custom.quadlowbeam.lifestealbeam"),
secondary: "common.abilities.custom.quadlowbreathe.triplestrike", secondary: Simple(None, "common.abilities.custom.quadlowbreathe.triplestrike"),
abilities: [ abilities: [
(None, "common.abilities.custom.quadlowbreathe.dash"), Simple(None, "common.abilities.custom.quadlowbreathe.dash"),
], ],
), ),
Custom("Quad Small Basic"): ( Custom("Quad Small Basic"): (
primary: "common.abilities.custom.quadsmallbasic.singlestrike", primary: Simple(None, "common.abilities.custom.quadsmallbasic.singlestrike"),
secondary: "common.abilities.custom.quadsmallbasic.singlestrike", secondary: Simple(None, "common.abilities.custom.quadsmallbasic.singlestrike"),
abilities: [], abilities: [],
), ),
Custom("Theropod Basic"): ( Custom("Theropod Basic"): (
primary: "common.abilities.custom.theropodbasic.triplestrike", primary: Simple(None, "common.abilities.custom.theropodbasic.triplestrike"),
secondary: "common.abilities.custom.theropodbasic.triplestrike", secondary: Simple(None, "common.abilities.custom.theropodbasic.triplestrike"),
abilities: [],
),
Custom("Theropod Small"): (
primary: Simple(None, "common.abilities.custom.theropodsmall.triplestrike"),
secondary: Simple(None, "common.abilities.custom.theropodsmall.triplestrike"),
abilities: [], abilities: [],
), ),
Custom("Theropod Bird"): ( Custom("Theropod Bird"): (
primary: "common.abilities.custom.theropodbird.triplestrike", primary: Simple(None, "common.abilities.custom.theropodbird.triplestrike"),
secondary: "common.abilities.custom.theropodbird.triplestrike", secondary: Simple(None, "common.abilities.custom.theropodbird.triplestrike"),
abilities: [], abilities: [],
), ),
Custom("Theropod Charge"): ( Custom("Theropod Charge"): (
primary: "common.abilities.custom.theropodbasic.triplestrike", primary: Simple(None, "common.abilities.custom.theropodbasic.triplestrike"),
secondary: "common.abilities.custom.theropodbasic.dash", secondary: Simple(None, "common.abilities.custom.theropodbasic.dash"),
abilities: [], abilities: [],
), ),
// Arthropods // Arthropods
Custom("Antlion"): ( Custom("Antlion"): (
primary: "common.abilities.custom.arthropods.antlion.singlestrike", primary: Simple(None, "common.abilities.custom.arthropods.antlion.singlestrike"),
secondary: "common.abilities.custom.arthropods.antlion.charge", secondary: Simple(None, "common.abilities.custom.arthropods.antlion.charge"),
abilities: [], abilities: [],
), ),
Custom("Black Widow"): ( Custom("Black Widow"): (
primary: "common.abilities.custom.arthropods.blackwidow.singlestrike", primary: Simple(None, "common.abilities.custom.arthropods.blackwidow.singlestrike"),
secondary: "common.abilities.custom.arthropods.blackwidow.ensnaringwebs", secondary: Simple(None, "common.abilities.custom.arthropods.blackwidow.ensnaringwebs"),
abilities: [ abilities: [
(None, "common.abilities.custom.arthropods.blackwidow.poisonball"), Simple(None, "common.abilities.custom.arthropods.blackwidow.poisonball"),
], ],
), ),
Custom("Horn Beetle"): ( Custom("Horn Beetle"): (
primary: "common.abilities.custom.arthropods.hornbeetle.singlestrike", primary: Simple(None, "common.abilities.custom.arthropods.hornbeetle.singlestrike"),
secondary: "common.abilities.custom.arthropods.hornbeetle.harden", secondary: Simple(None, "common.abilities.custom.arthropods.hornbeetle.harden"),
abilities: [ abilities: [
(None, "common.abilities.custom.arthropods.hornbeetle.leap"), Simple(None, "common.abilities.custom.arthropods.hornbeetle.leap"),
], ],
), ),
Custom("Tarantula"): ( Custom("Tarantula"): (
primary: "common.abilities.custom.arthropods.tarantula.singlestrike", primary: Simple(None, "common.abilities.custom.arthropods.tarantula.singlestrike"),
secondary: "common.abilities.custom.arthropods.tarantula.ensnaringwebs", secondary: Simple(None, "common.abilities.custom.arthropods.tarantula.ensnaringwebs"),
abilities: [ abilities: [
(None, "common.abilities.custom.arthropods.tarantula.leap"), Simple(None, "common.abilities.custom.arthropods.tarantula.leap"),
], ],
), ),
Custom("Weevil"): ( Custom("Weevil"): (
primary: "common.abilities.custom.arthropods.weevil.singlestrike", primary: Simple(None, "common.abilities.custom.arthropods.weevil.singlestrike"),
secondary: "common.abilities.custom.arthropods.weevil.harden", secondary: Simple(None, "common.abilities.custom.arthropods.weevil.harden"),
abilities: [ abilities: [
(None, "common.abilities.custom.arthropods.weevil.threadshot"), Simple(None, "common.abilities.custom.arthropods.weevil.threadshot"),
], ],
), ),
/// TODO: Organize the rest into further catagories and give purple tier droppers+ custom skillsets /// TODO: Organize the rest into further catagories and give purple tier droppers+ custom skillsets
Custom("Turret"): ( Custom("Turret"): (
primary: "common.abilities.custom.turret.arrows", primary: Simple(None, "common.abilities.custom.turret.arrows"),
secondary: "common.abilities.custom.turret.arrows", secondary: Simple(None, "common.abilities.custom.turret.arrows"),
abilities: [],
),
Custom("Organ"): (
primary: Simple(None, "common.abilities.custom.organ.organaura"),
secondary: Simple(None, "common.abilities.custom.organ.organaura"),
abilities: [], abilities: [],
), ),
Custom("Haniwa Sentry"): ( Custom("Haniwa Sentry"): (
primary: "common.abilities.custom.turret.flamethrower", primary: Simple(None, "common.abilities.custom.turret.flamethrower"),
secondary: "common.abilities.custom.turret.flamethrower", secondary: Simple(None, "common.abilities.custom.turret.flamethrower"),
abilities: [], abilities: [],
), ),
Custom("Mindflayer"): ( Custom("Mindflayer"): (
primary: "common.abilities.custom.mindflayer.cursedflames", primary: Simple(None, "common.abilities.custom.mindflayer.cursedflames"),
secondary: "common.abilities.custom.mindflayer.necroticvortex", secondary: Simple(None, "common.abilities.custom.mindflayer.necroticvortex"),
abilities: [ abilities: [
(None, "common.abilities.custom.mindflayer.dimensionaldoor"), Simple(None, "common.abilities.custom.mindflayer.dimensionaldoor"),
(None, "common.abilities.custom.mindflayer.necroticsphere"), Simple(None, "common.abilities.custom.mindflayer.necroticsphere"),
(None, "common.abilities.custom.mindflayer.summonminions"), Simple(None, "common.abilities.custom.mindflayer.summonminions"),
], ],
), ),
Custom("Minotaur"): ( Custom("Minotaur"): (
primary: "common.abilities.custom.minotaur.cleave", primary: Simple(None, "common.abilities.custom.minotaur.cleave"),
secondary: "common.abilities.custom.minotaur.cripplingstrike", secondary: Simple(None, "common.abilities.custom.minotaur.cripplingstrike"),
abilities: [ abilities: [
(None, "common.abilities.custom.minotaur.charge"), Simple(None, "common.abilities.custom.minotaur.charge"),
(None, "common.abilities.custom.minotaur.frenzy"), Simple(None, "common.abilities.custom.minotaur.frenzy"),
], ],
), ),
Custom("Clay Golem"): ( Custom("Clay Golem"): (
primary: "common.abilities.custom.claygolem.strike", primary: Simple(None, "common.abilities.custom.claygolem.strike"),
secondary: "common.abilities.custom.claygolem.laser", secondary: Simple(None, "common.abilities.custom.claygolem.laser"),
abilities: [ abilities: [
(None, "common.abilities.custom.claygolem.shockwave"), Simple(None, "common.abilities.custom.claygolem.shockwave"),
(None, "common.abilities.custom.claygolem.rocket"), Simple(None, "common.abilities.custom.claygolem.rocket"),
], ],
), ),
Custom("Yeti"): ( Custom("Yeti"): (
primary: "common.abilities.custom.yeti.strike", primary: Simple(None, "common.abilities.custom.yeti.strike"),
secondary: "common.abilities.custom.yeti.icespikes", secondary: Simple(None, "common.abilities.custom.yeti.icespikes"),
abilities: [ abilities: [
(None, "common.abilities.custom.yeti.frostbreath"), Simple(None, "common.abilities.custom.yeti.frostbreath"),
(None, "common.abilities.custom.yeti.snowball"), Simple(None, "common.abilities.custom.yeti.snowball"),
], ],
), ),
Custom("Harvester"): ( Custom("Harvester"): (
primary: "common.abilities.custom.harvester.scythe", primary: Simple(None, "common.abilities.custom.harvester.scythe"),
secondary: "common.abilities.custom.harvester.firebreath", secondary: Simple(None, "common.abilities.custom.harvester.firebreath"),
abilities: [ abilities: [
(None, "common.abilities.custom.harvester.ensnaringvines"), Simple(None, "common.abilities.custom.harvester.ensnaringvines"),
(None, "common.abilities.custom.harvester.explodingpumpkin"), Simple(None, "common.abilities.custom.harvester.explodingpumpkin"),
],
),
// TODO: Allow ability sets to expand other ability sets
Custom("Dagon"): (
primary: Simple(None, "common.abilities.custom.dagon.dagonbombs"),
secondary: Simple(None, "common.abilities.custom.dagon.seaurchins"),
abilities: [
Simple(None, "common.abilities.custom.dagon.steamwave"),
Simple(None, "common.abilities.custom.cardinal.steambeam"),
Simple(None, "common.abilities.custom.dagon.steamheal"),
],
),
Custom("Cardinal"): (
primary: Simple(None, "common.abilities.sceptre.lifestealbeam"),
secondary: Simple(None, "common.abilities.sceptre.healingaura"),
abilities: [
Simple(None, "common.abilities.custom.cardinal.steambeam"),
Simple(None, "common.abilities.custom.cardinal.summonseacrocs"),
], ],
), ),
Custom("Oni"): ( Custom("Oni"): (
primary: "common.abilities.custom.oni.dash", primary: Simple(None, "common.abilities.custom.oni.dash"),
secondary: "common.abilities.custom.oni.doublestrike", secondary: Simple(None, "common.abilities.custom.oni.doublestrike"),
abilities: [], abilities: [],
), ),
Custom("Bird Large Breathe"): ( Custom("Bird Large Breathe"): (
primary: "common.abilities.custom.birdlargebreathe.firebomb", primary: Simple(None, "common.abilities.custom.birdlargebreathe.firebomb"),
secondary: "common.abilities.custom.birdlargebreathe.triplestrike", secondary: Simple(None, "common.abilities.custom.birdlargebreathe.triplestrike"),
abilities: [ abilities: [
(None, "common.abilities.custom.birdlargebreathe.flamethrower"), Simple(None, "common.abilities.custom.birdlargebreathe.flamethrower"),
], ],
), ),
Custom("Bird Large Fire"): ( Custom("Bird Large Fire"): (
primary: "common.abilities.custom.birdlargefire.firebomb", primary: Simple(None, "common.abilities.custom.birdlargefire.firebomb"),
secondary: "common.abilities.custom.birdlargefire.triplestrike", secondary: Simple(None, "common.abilities.custom.birdlargefire.triplestrike"),
abilities: [ abilities: [
(None, "common.abilities.custom.birdlargefire.fireshockwave"), Simple(None, "common.abilities.custom.birdlargefire.fireshockwave"),
],
),
Custom("Flame Wyvern"): (
primary: Simple(None, "common.abilities.custom.flamewyvern.firebomb"),
secondary: Simple(None, "common.abilities.custom.flamewyvern.fireshockwave"),
abilities: [
Simple(None, "common.abilities.custom.flamewyvern.triplestrike"),
Simple(None, "common.abilities.custom.flamewyvern.flamethrower"),
],
),
Custom("Frost Wyvern"): (
primary: Simple(None, "common.abilities.custom.frostwyvern.frostbomb"),
secondary: Simple(None, "common.abilities.custom.frostwyvern.iceshockwave"),
abilities: [
Simple(None, "common.abilities.custom.frostwyvern.triplestrike"),
Simple(None, "common.abilities.custom.frostwyvern.frostthrower"),
],
),
Custom("Cloud Wyvern"): (
primary: Simple(None, "common.abilities.custom.cloudwyvern.windbomb"),
secondary: Simple(None, "common.abilities.custom.cloudwyvern.windshockwave"),
abilities: [
Simple(None, "common.abilities.custom.cloudwyvern.triplestrike"),
Simple(None, "common.abilities.custom.cloudwyvern.windthrower"),
],
),
Custom("Sea Wyvern"): (
primary: Simple(None, "common.abilities.custom.seawyvern.seabomb"),
secondary: Simple(None, "common.abilities.custom.seawyvern.seashockwave"),
abilities: [
Simple(None, "common.abilities.custom.seawyvern.triplestrike"),
Simple(None, "common.abilities.custom.seawyvern.bubblethrower"),
],
),
Custom("Weald Wyvern"): (
primary: Simple(None, "common.abilities.custom.wealdwyvern.firebomb"),
secondary: Simple(None, "common.abilities.custom.wealdwyvern.fireshockwave"),
abilities: [
Simple(None, "common.abilities.custom.wealdwyvern.triplestrike"),
Simple(None, "common.abilities.custom.wealdwyvern.flamethrower"),
], ],
), ),
Custom("Bird Large Basic"): ( Custom("Bird Large Basic"): (
primary: "common.abilities.custom.birdlargebasic.triplestrike", primary: Simple(None, "common.abilities.custom.birdlargebasic.triplestrike"),
secondary: "common.abilities.custom.birdlargebasic.summontornadoes", secondary: Simple(None, "common.abilities.custom.birdlargebasic.summontornadoes"),
abilities: [ abilities: [
(None, "common.abilities.custom.birdlargebasic.dash"), Simple(None, "common.abilities.custom.birdlargebasic.dash"),
],
),
Custom("Bird Medium Basic"): (
primary: Simple(None, "common.abilities.custom.birdmediumbasic.singlestrike"),
secondary: Simple(None, "common.abilities.custom.birdmediumbasic.singlestrike"),
abilities: [],
),
Custom("Frost Gigas"): (
primary: Simple(None, "common.abilities.custom.gigas_frost.cleave"),
secondary: Simple(None, "common.abilities.custom.gigas_frost.wide_cleave"),
abilities: [
Simple(None, "common.abilities.custom.gigas_frost.icespike_smash"),
Simple(None, "common.abilities.custom.gigas_frost.leapshockwave"),
Simple(None, "common.abilities.custom.gigas_frost.ice_volley"),
Simple(None, "common.abilities.custom.gigas_frost.frost_summons"),
Simple(None, "common.abilities.custom.gigas_frost.flashfreeze"),
],
),
Custom("Boreal Bow"): (
primary: Simple(None, "common.abilities.custom.boreal_warrior.bow.charged"),
secondary: Simple(None, "common.abilities.custom.boreal_warrior.bow.repeater"),
abilities: [
Simple(None, "common.abilities.custom.boreal_warrior.bow.shotgun")
],
),
Custom("Boreal Hammer"): (
primary: Simple(None, "common.abilities.custom.boreal_warrior.hammer.singlestrike"),
secondary: Simple(None, "common.abilities.custom.boreal_warrior.hammer.dash"),
abilities: [
Simple(None, "common.abilities.custom.boreal_warrior.hammer.leap")
], ],
), ),
Custom("Tornado"): ( Custom("Tornado"): (
primary: "common.abilities.custom.tornado.spin", primary: Simple(None, "common.abilities.custom.tornado.spin"),
secondary: "common.abilities.empty.basic", secondary: Simple(None, "common.abilities.empty.basic"),
abilities: [], abilities: [],
), ),
Custom("Golf Club"): ( Custom("Golf Club"): (
primary: "common.abilities.hammer.singlestrike", primary: Simple(None, "common.abilities.hammer.singlestrike"),
secondary: "common.abilities.tool.golf_club.charged", secondary: Simple(None, "common.abilities.tool.golf_club.charged"),
abilities: [],
),
Custom("DoubleBass"): (
primary: Simple(None, "common.abilities.music.double_bass"),
secondary: Simple(None, "common.abilities.music.double_bass"),
abilities: [],
),
Custom("Flute"): (
primary: Simple(None, "common.abilities.music.flute"),
secondary: Simple(None, "common.abilities.music.flute"),
abilities: [],
),
Custom("GlassFlute"): (
primary: Simple(None, "common.abilities.music.glass_flute"),
secondary: Simple(None, "common.abilities.music.glass_flute"),
abilities: [],
),
Custom("Lyre"): (
primary: Simple(None, "common.abilities.music.lyre"),
secondary: Simple(None, "common.abilities.music.lyre"),
abilities: [],
),
Custom("IcyTalharpa"): (
primary: Simple(None, "common.abilities.music.icy_talharpa"),
secondary: Simple(None, "common.abilities.music.icy_talharpa"),
abilities: [],
),
Custom("Washboard"): (
primary: Simple(None, "common.abilities.music.washboard"),
secondary: Simple(None, "common.abilities.music.washboard"),
abilities: [],
),
Custom("Kalimba"): (
primary: Simple(None, "common.abilities.music.kalimba"),
secondary: Simple(None, "common.abilities.music.kalimba"),
abilities: [],
),
Custom("Melodica"): (
primary: Simple(None, "common.abilities.music.melodica"),
secondary: Simple(None, "common.abilities.music.melodica"),
abilities: [],
),
Custom("Lute"): (
primary: Simple(None, "common.abilities.music.lute"),
secondary: Simple(None, "common.abilities.music.lute"),
abilities: [],
),
Custom("Guitar"): (
primary: Simple(None, "common.abilities.music.guitar"),
secondary: Simple(None, "common.abilities.music.guitar"),
abilities: [],
),
Custom("DarkGuitar"): (
primary: Simple(None, "common.abilities.music.dark_guitar"),
secondary: Simple(None, "common.abilities.music.dark_guitar"),
abilities: [],
),
Custom("Sitar"): (
primary: Simple(None, "common.abilities.music.sitar"),
secondary: Simple(None, "common.abilities.music.sitar"),
abilities: [], abilities: [],
), ),
Tool(Debug): ( Tool(Debug): (
primary: "common.abilities.debug.forwardboost", primary: Simple(None, "common.abilities.debug.forwardboost"),
secondary: "common.abilities.debug.upboost", secondary: Simple(None, "common.abilities.debug.upboost"),
abilities: [ abilities: [
(None, "common.abilities.debug.possess"), Simple(None, "common.abilities.debug.possess"),
], ],
), ),
Tool(Farming): ( Tool(Farming): (
primary: "common.abilities.farming.basic", primary: Simple(None, "common.abilities.farming.basic"),
secondary: "common.abilities.farming.basic", secondary: Simple(None, "common.abilities.farming.basic"),
abilities: [], abilities: [],
), ),
Tool(Pick): ( Tool(Pick): (
primary: "common.abilities.pick.swing", primary: Simple(None, "common.abilities.pick.swing"),
secondary: "common.abilities.pick.swing", secondary: Simple(None, "common.abilities.pick.swing"),
abilities: [], abilities: [],
), ),
Tool(Empty): ( Tool(Empty): (
primary: "common.abilities.empty.basic", primary: Simple(None, "common.abilities.empty.basic"),
secondary: "common.abilities.empty.basic", secondary: Simple(None, "common.abilities.empty.basic"),
abilities: [], abilities: [],
), ),
}) })

View File

@ -2,8 +2,8 @@ ComboMelee(
stage_data: [ stage_data: [
( (
stage: 1, stage: 1,
base_damage: 11.0, base_damage: 12.0,
damage_increase: 1.0, damage_increase: 0.5,
base_poise_damage: 0, base_poise_damage: 0,
poise_damage_increase: 0, poise_damage_increase: 0,
knockback: 5.0, knockback: 5.0,
@ -24,8 +24,8 @@ ComboMelee(
), ),
( (
stage: 2, stage: 2,
base_damage: 13.0, base_damage: 15.0,
damage_increase: 1.5, damage_increase: 0.75,
base_poise_damage: 0, base_poise_damage: 0,
poise_damage_increase: 0, poise_damage_increase: 0,
knockback: 6.0, knockback: 6.0,
@ -46,11 +46,10 @@ ComboMelee(
), ),
], ],
initial_energy_gain: 2.5, initial_energy_gain: 2.5,
max_energy_gain: 17.5, max_energy_gain: 12.5,
energy_increase: 3.0, energy_increase: 2.5,
speed_increase: 0.1, speed_increase: 0.1,
max_speed_increase: 0.6, max_speed_increase: 0.6,
scales_from_combo: 2, scales_from_combo: 2,
is_interruptible: false,
ori_modifier: 1.0, ori_modifier: 1.0,
) )

View File

@ -1,18 +1,19 @@
LeapMelee( LeapMelee(
energy_cost: 45.0, energy_cost: 30.0,
buildup_duration: 0.2, buildup_duration: 0.3,
movement_duration: 0.2, movement_duration: 0.25,
swing_duration: 0.2, swing_duration: 0.2,
recover_duration: 0.2, recover_duration: 0.2,
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
damage: 30.0, damage: 25.0,
poise: 0.0, poise: 0.0,
knockback: 12.0, knockback: 12.0,
energy_regen: 0.0, energy_regen: 0.0,
), ),
range: 4.5, range: 4.5,
angle: 30.0, angle: 30.0,
multi_target: Some(Normal),
), ),
forward_leap_strength: 20.0, forward_leap_strength: 20.0,
vertical_leap_strength: 8.0, vertical_leap_strength: 8.0,

View File

@ -1,6 +1,6 @@
SpinMelee( SpinMelee(
buildup_duration: 0.2, buildup_duration: 0.2,
swing_duration: 0.6, swing_duration: 0.4,
recover_duration: 0.2, recover_duration: 0.2,
melee_constructor: ( melee_constructor: (
kind: Slash( kind: Slash(
@ -11,11 +11,11 @@ SpinMelee(
), ),
range: 3.5, range: 3.5,
angle: 360.0, angle: 360.0,
multi_target: Some(Normal),
), ),
energy_cost: 10.0, energy_cost: 10.0,
is_infinite: true, is_infinite: true,
movement_behavior: AxeHover, movement_behavior: AxeHover,
is_interruptible: false,
forward_speed: 0.0, forward_speed: 0.0,
num_spins: 1, num_spins: 1,
specifier: None, specifier: None,

View File

@ -51,6 +51,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.7, ori_modifier: 0.7,
) )

View File

@ -1,18 +1,18 @@
ChargedRanged( ChargedRanged(
energy_cost: 0, energy_cost: 0,
energy_drain: 0, energy_drain: 0,
initial_regen: 0.5, initial_regen: 2,
scaled_regen: 12.0, scaled_regen: 14,
initial_damage: 0.5, initial_damage: 2,
scaled_damage: 12.0, scaled_damage: 12,
initial_knockback: 0.0, initial_knockback: 0,
scaled_knockback: 10.0, scaled_knockback: 12,
buildup_duration: 0.2, buildup_duration: 0.25,
charge_duration: 1.0, charge_duration: 1.0,
recover_duration: 0.3, recover_duration: 0.4,
projectile_body: Object(Arrow), projectile_body: Object(Arrow),
projectile_light: None, projectile_light: None,
initial_projectile_speed: 100.0, initial_projectile_speed: 50.0,
scaled_projectile_speed: 150.0, scaled_projectile_speed: 200.0,
move_speed: 0.6, move_speed: 0.6,
) )

View File

@ -1,13 +1,13 @@
RepeaterRanged( RepeaterRanged(
energy_cost: 5.0, energy_cost: 6.0,
buildup_duration: 0.2, buildup_duration: 0.2,
shoot_duration: 0.5, shoot_duration: 0.3,
recover_duration: 0.8, recover_duration: 0.5,
max_speed: 2.0, max_speed: 4.0,
half_speed_at: 1, half_speed_at: 3,
projectile: Arrow( projectile: Arrow(
damage: 3.0, damage: 5.0,
knockback: 2.0, knockback: 0,
energy_regen: 0, energy_regen: 0,
), ),
projectile_body: Object(Arrow), projectile_body: Object(Arrow),

View File

@ -1,15 +1,15 @@
BasicRanged( BasicRanged(
energy_cost: 30.0, energy_cost: 25.0,
buildup_duration: 0.4, buildup_duration: 0.3,
recover_duration: 0.3, recover_duration: 0.3,
projectile_spread: 0.05, projectile_spread: 0.05,
projectile: Arrow( projectile: Arrow(
damage: 4.0, damage: 6,
knockback: 5.0, knockback: 5,
energy_regen: 0, energy_regen: 0,
), ),
projectile_body: Object(Arrow), projectile_body: Object(Arrow),
projectile_light: None, projectile_light: None,
projectile_speed: 60.0, projectile_speed: 80.0,
num_projectiles: 4, num_projectiles: 5,
) )

View File

@ -24,5 +24,4 @@ DashMelee(
recover_duration: 0.8, recover_duration: 0.8,
ori_modifier: 0.1, ori_modifier: 0.1,
charge_through: false, charge_through: false,
is_interruptible: false, )
)

View File

@ -29,6 +29,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.8, ori_modifier: 0.8,
) )

View File

@ -3,6 +3,8 @@ SpriteSummon(
cast_duration: 0.4, cast_duration: 0.4,
recover_duration: 0.3, recover_duration: 0.3,
sprite: EnsnaringWeb, sprite: EnsnaringWeb,
del_timeout: None,
summon_distance: (0, 10), summon_distance: (0, 10),
sparseness: 0.76, sparseness: 0.76,
angle: 360,
) )

View File

@ -29,6 +29,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.8, ori_modifier: 0.8,
) )

View File

@ -13,6 +13,7 @@ LeapMelee(
), ),
range: 4.5, range: 4.5,
angle: 180.0, angle: 180.0,
multi_target: Some(Normal),
), ),
forward_leap_strength: 40.0, forward_leap_strength: 40.0,
vertical_leap_strength: 7.5, vertical_leap_strength: 7.5,

View File

@ -23,6 +23,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.5, ori_modifier: 0.5,
) )

View File

@ -3,6 +3,8 @@ SpriteSummon(
cast_duration: 0.4, cast_duration: 0.4,
recover_duration: 0.3, recover_duration: 0.3,
sprite: EnsnaringWeb, sprite: EnsnaringWeb,
del_timeout: None,
summon_distance: (0, 9), summon_distance: (0, 9),
sparseness: 0.8, sparseness: 0.8,
angle: 360,
) )

View File

@ -29,6 +29,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.8, ori_modifier: 0.8,
) )

View File

@ -23,6 +23,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.6, ori_modifier: 0.6,
) )

View File

@ -23,6 +23,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.65, ori_modifier: 0.65,
) )

View File

@ -24,5 +24,4 @@ DashMelee(
recover_duration: 2.0, recover_duration: 2.0,
ori_modifier: 0.3, ori_modifier: 0.3,
charge_through: false, charge_through: false,
is_interruptible: false,
) )

View File

@ -55,6 +55,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.65, ori_modifier: 0.65,
) )

View File

@ -24,5 +24,4 @@ DashMelee(
recover_duration: 1.4, recover_duration: 1.4,
ori_modifier: 0.3, ori_modifier: 0.3,
charge_through: false, charge_through: false,
is_interruptible: false,
) )

View File

@ -55,6 +55,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.7, ori_modifier: 0.7,
) )

View File

@ -13,7 +13,6 @@ BasicRanged(
col: (1.0, 0.75, 0.11).into(), col: (1.0, 0.75, 0.11).into(),
..Default::default() ..Default::default()
}),*/ }),*/
projectile_gravity: Some(Gravity(0.15)),
projectile_speed: 60.0, projectile_speed: 60.0,
num_projectiles: 1, num_projectiles: 1,
projectile_spread: 0.0, projectile_spread: 0.0,

View File

@ -73,6 +73,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.7, ori_modifier: 0.7,
) )

View File

@ -13,7 +13,6 @@ BasicRanged(
col: (1.0, 0.75, 0.11).into(), col: (1.0, 0.75, 0.11).into(),
..Default::default() ..Default::default()
}),*/ }),*/
projectile_gravity: Some(Gravity(0.15)),
projectile_speed: 60.0, projectile_speed: 60.0,
num_projectiles: 1, num_projectiles: 1,
projectile_spread: 0.0, projectile_spread: 0.0,

View File

@ -14,4 +14,5 @@ Shockwave(
move_efficiency: 0.1, move_efficiency: 0.1,
damage_kind: Energy, damage_kind: Energy,
specifier: Fire, specifier: Fire,
ori_rate: 1.0,
) )

View File

@ -73,6 +73,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.7, ori_modifier: 0.7,
) )

View File

@ -0,0 +1,27 @@
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,
),
],
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,
)

View File

@ -0,0 +1,24 @@
ChargedRanged(
energy_cost: 0,
energy_drain: 0,
initial_regen: 2,
scaled_regen: 14,
initial_damage: 2,
scaled_damage: 12,
initial_knockback: 0,
scaled_knockback: 12,
buildup_duration: 0.25,
charge_duration: 1.0,
recover_duration: 0.4,
projectile_body: Object(Arrow),
projectile_light: None,
initial_projectile_speed: 50.0,
scaled_projectile_speed: 200.0,
damage_effect: Some(Buff((
kind: Frozen,
dur_secs: 2.0,
strength: DamageFraction(0.1),
chance: 1.0,
))),
move_speed: 0.6,
)

View File

@ -0,0 +1,22 @@
RepeaterRanged(
energy_cost: 6.0,
buildup_duration: 0.2,
shoot_duration: 0.3,
recover_duration: 0.5,
max_speed: 4.0,
half_speed_at: 3,
projectile: Arrow(
damage: 5.0,
knockback: 0,
energy_regen: 0,
),
projectile_body: Object(Arrow),
projectile_light: None,
projectile_speed: 100.0,
damage_effect: Some(Buff((
kind: Frozen,
dur_secs: 2.0,
strength: DamageFraction(0.1),
chance: 1.0,
))),
)

View File

@ -0,0 +1,21 @@
BasicRanged(
energy_cost: 25.0,
buildup_duration: 0.3,
recover_duration: 0.3,
projectile_spread: 0.05,
projectile: Arrow(
damage: 6,
knockback: 5,
energy_regen: 0,
),
projectile_body: Object(Arrow),
projectile_light: None,
projectile_speed: 80.0,
num_projectiles: 5,
damage_effect: Some(Buff((
kind: Frozen,
dur_secs: 2.0,
strength: DamageFraction(0.1),
chance: 1.0,
))),
)

View File

@ -0,0 +1,33 @@
DashMelee(
energy_cost: 3.0,
melee_constructor: (
kind: Bash(
damage: 9.0,
poise: 40.0,
knockback: 16.0,
energy_regen: 0.0,
),
scaled: Some(Bash(
damage: 10.0,
poise: 0.0,
knockback: 20.0,
energy_regen: 0.0,
)),
range: 5.0,
angle: 45.0,
damage_effect: Some(Buff((
kind: Frozen,
dur_secs: 2.0,
strength: DamageFraction(0.1),
chance: 1.0,
))),
),
energy_drain: 0,
forward_speed: 12.0,
buildup_duration: 0.6,
charge_duration: 0.2,
swing_duration: 0.1,
recover_duration: 0.9,
ori_modifier: 0.3,
charge_through: false,
)

View File

@ -0,0 +1,26 @@
LeapMelee(
energy_cost: 35.0,
buildup_duration: 0.1,
movement_duration: 0.6,
swing_duration: 0.15,
recover_duration: 0.2,
melee_constructor: (
kind: Bash(
damage: 25.0,
poise: 40.0,
knockback: 25.0,
energy_regen: 0.0,
),
range: 4.5,
angle: 360.0,
multi_target: Some(Normal),
damage_effect: Some(Buff((
kind: Frozen,
dur_secs: 2.0,
strength: DamageFraction(0.1),
chance: 1.0,
))),
),
forward_leap_strength: 20.0,
vertical_leap_strength: 8.0,
)

View File

@ -0,0 +1,31 @@
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: DamageFraction(0.1),
chance: 1.0,
))),
)],
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,
)

View File

@ -0,0 +1,19 @@
BasicBeam(
buildup_duration: 0.3,
recover_duration: 1.0,
beam_duration: 1.0,
damage: 22.5,
tick_rate: 5.0,
range: 8.0,
max_angle: 15.0,
damage_effect: Some(Buff((
kind: Burning,
dur_secs: 3.0,
strength: Value(0.5),
chance: 1.0,
))),
energy_regen: 2,
energy_drain: 0,
ori_rate: 0.5,
specifier: Steam,
)

View File

@ -0,0 +1,18 @@
BasicSummon(
buildup_duration: 0.2,
cast_duration: 0.3,
recover_duration: 0.3,
summon_amount: 4,
summon_distance: (4, 4),
summon_info: (
body: QuadrupedLow((
species: SeaCrocodile,
body_type: Male,
)),
scale: None,
has_health: true,
loadout_config: None,
skillset_config: Some(Rank5),
),
duration: None,
)

View File

@ -14,4 +14,5 @@ Shockwave(
move_efficiency: 0.0, move_efficiency: 0.0,
damage_kind: Crushing, damage_kind: Crushing,
specifier: Ground, specifier: Ground,
ori_rate: 1.0,
) )

View File

@ -12,6 +12,7 @@ BasicMelee(
), ),
range: 4.0, range: 4.0,
angle: 45.0, angle: 45.0,
multi_target: Some(Normal),
), ),
ori_modifier: 1.0, ori_modifier: 1.0,
) )

View File

@ -0,0 +1,77 @@
ComboMelee(
stage_data: [
(
stage: 1,
base_damage: 20.0,
damage_increase: 0,
base_poise_damage: 0,
poise_damage_increase: 0,
knockback: 5.0,
range: 4.5,
angle: 30.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 2.0,
damage_kind: Slashing,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
),
(
stage: 2,
base_damage: 16.0,
damage_increase: 0,
base_poise_damage: 0,
poise_damage_increase: 0,
knockback: 5.0,
range: 3.5,
angle: 30.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 1.5,
damage_kind: Slashing,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
),
(
stage: 3,
base_damage: 26.0,
damage_increase: 0,
base_poise_damage: 0,
poise_damage_increase: 0,
knockback: 10.0,
range: 3.5,
angle: 30.0,
base_buildup_duration: 0.375,
base_swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 1.5,
damage_kind: Slashing,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
),
],
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,
)

View File

@ -0,0 +1,19 @@
BasicRanged(
energy_cost: 0,
buildup_duration: 1.0,
recover_duration: 0.7,
projectile: WindBomb(
damage: 20.0,
radius: 5.0,
energy_regen: 5.0,
min_falloff: 0.5,
),
projectile_body: Object(BoltFire),
/*projectile_light: Some(LightEmitter {
col: (1.0, 0.75, 0.11).into(),
..Default::default()
}),*/
projectile_speed: 60.0,
num_projectiles: 1,
projectile_spread: 0.0,
)

View File

@ -0,0 +1,18 @@
Shockwave(
energy_cost: 60.0,
buildup_duration: 1.4,
swing_duration: 0.1,
recover_duration: 0.4,
damage: 40.0,
poise_damage: 0,
knockback: ( strength: 25.0, direction: Away),
shockwave_angle: 360.0,
shockwave_vertical_angle: 90.0,
shockwave_speed: 20.0,
shockwave_duration: 0.5,
requires_ground: false,
move_efficiency: 0.1,
damage_kind: Energy,
specifier: Water,
ori_rate: 1.0,
)

View File

@ -0,0 +1,19 @@
BasicBeam(
buildup_duration: 0.8,
recover_duration: 0.5,
beam_duration: 0.5,
damage: 10.0,
tick_rate: 3.0,
range: 15.0,
max_angle: 22.5,
damage_effect: Some(Buff((
kind: Burning,
dur_secs: 10.0,
strength: DamageFraction(0.5),
chance: 0.25,
))),
energy_regen: 0,
energy_drain: 0,
ori_rate: 0.3,
specifier: Bubbles,
)

View File

@ -0,0 +1,16 @@
BasicRanged(
energy_cost: 0,
buildup_duration: 0.5,
recover_duration: 1.5,
projectile: DagonBomb(
damage: 32.0,
knockback: 15.0,
radius: 5.0,
min_falloff: 0.1,
),
projectile_body: Object(DagonBomb),
projectile_light: None,
projectile_speed: 20.0,
num_projectiles: 1,
projectile_spread: 0.0,
)

View File

@ -0,0 +1,10 @@
SpriteSummon(
buildup_duration: 0.1,
cast_duration: 0.1,
recover_duration: 0.9,
sprite: SeaUrchin,
del_timeout: Some((4, 5)),
summon_distance: (5, 3.1),
sparseness: 0.2,
angle: 360,
)

View File

@ -0,0 +1,19 @@
BasicAura(
buildup_duration: 0.2,
cast_duration: 0.4,
recover_duration: 5.0,
targets: InGroup,
auras: [
(
kind: Regeneration,
strength: 10.0,
duration: Some(5),
category: Magical,
),
],
aura_duration: 2.0,
range: 10.0,
energy_cost: 0.0,
scales_with_combo: false,
specifier: Some(HealingAura),
)

View File

@ -0,0 +1,18 @@
Shockwave(
energy_cost: 0,
buildup_duration: 0.3,
swing_duration: 0.3,
recover_duration: 0.5,
damage: 20.0,
poise_damage: 10,
knockback: (strength: 18.0, direction: Away),
shockwave_angle: 360.0,
shockwave_vertical_angle: 90.0,
shockwave_speed: 15.0,
shockwave_duration: 2.0,
requires_ground: true,
move_efficiency: 0.0,
damage_kind: Crushing,
specifier: Steam,
ori_rate: 1.0,
)

View File

@ -24,5 +24,4 @@ DashMelee(
recover_duration: 2.0, recover_duration: 2.0,
ori_modifier: 0.1, ori_modifier: 0.1,
charge_through: true, charge_through: true,
is_interruptible: false,
) )

View File

@ -0,0 +1,19 @@
BasicRanged(
energy_cost: 0,
buildup_duration: 1.0,
recover_duration: 0.7,
projectile: Fireball(
damage: 20.0,
radius: 5.0,
energy_regen: 5.0,
min_falloff: 0.5,
),
projectile_body: Object(BoltFire),
/*projectile_light: Some(LightEmitter {
col: (1.0, 0.75, 0.11).into(),
..Default::default()
}),*/
projectile_speed: 60.0,
num_projectiles: 1,
projectile_spread: 0.0,
)

View File

@ -0,0 +1,18 @@
Shockwave(
energy_cost: 60.0,
buildup_duration: 1.4,
swing_duration: 0.1,
recover_duration: 0.4,
damage: 40.0,
poise_damage: 0,
knockback: ( strength: 25.0, direction: Away),
shockwave_angle: 360.0,
shockwave_vertical_angle: 90.0,
shockwave_speed: 20.0,
shockwave_duration: 0.5,
requires_ground: false,
move_efficiency: 0.1,
damage_kind: Energy,
specifier: Fire,
ori_rate: 1.0,
)

View File

@ -0,0 +1,19 @@
BasicBeam(
buildup_duration: 0.8,
recover_duration: 0.5,
beam_duration: 0.5,
damage: 10.0,
tick_rate: 3.0,
range: 15.0,
max_angle: 22.5,
damage_effect: Some(Buff((
kind: Burning,
dur_secs: 10.0,
strength: DamageFraction(0.5),
chance: 0.25,
))),
energy_regen: 0,
energy_drain: 0,
ori_rate: 0.3,
specifier: Flamethrower,
)

View File

@ -0,0 +1,77 @@
ComboMelee(
stage_data: [
(
stage: 1,
base_damage: 20.0,
damage_increase: 0,
base_poise_damage: 0,
poise_damage_increase: 0,
knockback: 5.0,
range: 4.5,
angle: 30.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 2.0,
damage_kind: Slashing,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
),
(
stage: 2,
base_damage: 16.0,
damage_increase: 0,
base_poise_damage: 0,
poise_damage_increase: 0,
knockback: 5.0,
range: 3.5,
angle: 30.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 1.5,
damage_kind: Slashing,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
),
(
stage: 3,
base_damage: 26.0,
damage_increase: 0,
base_poise_damage: 0,
poise_damage_increase: 0,
knockback: 10.0,
range: 3.5,
angle: 30.0,
base_buildup_duration: 0.375,
base_swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 1.5,
damage_kind: Slashing,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
),
],
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,
)

View File

@ -0,0 +1,19 @@
BasicRanged(
energy_cost: 0,
buildup_duration: 1.0,
recover_duration: 0.7,
projectile: Frostball(
damage: 20.0,
radius: 5.0,
energy_regen: 5.0,
min_falloff: 0.5,
),
projectile_body: Object(BoltNature),
/*projectile_light: Some(LightEmitter {
col: (1.0, 0.75, 0.11).into(),
..Default::default()
}),*/
projectile_speed: 60.0,
num_projectiles: 1,
projectile_spread: 0.0,
)

View File

@ -0,0 +1,19 @@
BasicBeam(
buildup_duration: 0.8,
recover_duration: 0.5,
beam_duration: 0.5,
damage: 10.0,
tick_rate: 3.0,
range: 15.0,
max_angle: 22.5,
damage_effect: Some(Buff((
kind: Burning,
dur_secs: 10.0,
strength: DamageFraction(0.5),
chance: 0.25,
))),
energy_regen: 0,
energy_drain: 0,
ori_rate: 0.3,
specifier: Frost,
)

View File

@ -0,0 +1,18 @@
Shockwave(
energy_cost: 60.0,
buildup_duration: 1.4,
swing_duration: 0.1,
recover_duration: 0.4,
damage: 40.0,
poise_damage: 0,
knockback: ( strength: 25.0, direction: Away),
shockwave_angle: 360.0,
shockwave_vertical_angle: 90.0,
shockwave_speed: 20.0,
shockwave_duration: 0.5,
requires_ground: false,
move_efficiency: 0.1,
damage_kind: Energy,
specifier: IceSpikes,
ori_rate: 1.0,
)

View File

@ -0,0 +1,77 @@
ComboMelee(
stage_data: [
(
stage: 1,
base_damage: 20.0,
damage_increase: 0,
base_poise_damage: 0,
poise_damage_increase: 0,
knockback: 5.0,
range: 4.5,
angle: 30.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 2.0,
damage_kind: Slashing,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
),
(
stage: 2,
base_damage: 16.0,
damage_increase: 0,
base_poise_damage: 0,
poise_damage_increase: 0,
knockback: 5.0,
range: 3.5,
angle: 30.0,
base_buildup_duration: 0.8,
base_swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 1.5,
damage_kind: Slashing,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
),
(
stage: 3,
base_damage: 26.0,
damage_increase: 0,
base_poise_damage: 0,
poise_damage_increase: 0,
knockback: 10.0,
range: 3.5,
angle: 30.0,
base_buildup_duration: 0.375,
base_swing_duration: 0.1,
hit_timing: 0.5,
base_recover_duration: 0.6,
forward_movement: 1.5,
damage_kind: Slashing,
damage_effect: Some(Buff((
kind: Bleeding,
dur_secs: 10.0,
strength: DamageFraction(0.1),
chance: 0.1,
))),
),
],
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,
)

View File

@ -0,0 +1,24 @@
BasicMelee(
energy_cost: 0,
buildup_duration: 0.9,
swing_duration: 0.1,
recover_duration: 0.7,
melee_constructor: (
kind: Slash(
damage: 85.0,
poise: 5.0,
knockback: 5.0,
energy_regen: 10.0,
),
range: 5.0,
angle: 75.0,
damage_effect: Some(Buff((
kind: Frozen,
dur_secs: 1.0,
strength: DamageFraction(0.1),
chance: 0.3,
))),
multi_target: Some(Normal),
),
ori_modifier: 0.2,
)

View File

@ -0,0 +1,24 @@
Shockwave(
energy_cost: 0,
buildup_duration: 2.0,
swing_duration: 0.12,
recover_duration: 1.5,
damage: 45.0,
poise_damage: 30,
knockback: (strength: 0.0, direction: TowardsUp),
shockwave_angle: 240.0,
shockwave_vertical_angle: 360.0,
shockwave_speed: 200.0,
shockwave_duration: 0.15,
requires_ground: false,
move_efficiency: 0.0,
damage_kind: Piercing,
specifier: IceSpikes,
ori_rate: 0.0,
damage_effect: Some(Buff((
kind: Frozen,
dur_secs: 2.0,
strength: DamageFraction(0.3),
chance: 1.0,
))),
)

View File

@ -0,0 +1,18 @@
BasicSummon(
buildup_duration: 1.75,
cast_duration: 1.5,
recover_duration: 0.75,
summon_amount: 12,
summon_distance: (10, 15),
summon_info: (
body: BipedSmall((
species: Boreal,
body_type: Male,
)),
scale: None,
has_health: true,
loadout_config: Some(BorealSummon),
skillset_config: None,
),
duration: None,
)

View File

@ -0,0 +1,15 @@
BasicRanged(
energy_cost: 0,
buildup_duration: 0.5,
recover_duration: 0.9,
projectile: IceBomb(
damage: 30.0,
radius: 3.0,
knockback: 12.0,
min_falloff: 0.1,
),
projectile_body: Object(IceBomb),
projectile_speed: 25.0,
num_projectiles: 5,
projectile_spread: 0.07,
)

View File

@ -0,0 +1,10 @@
SpriteSummon(
buildup_duration: 1.3,
cast_duration: 0.1,
recover_duration: 1.1,
sprite: IceSpike,
del_timeout: Some((2, 5)),
summon_distance: (2, 12),
sparseness: 0.95,
angle: 360,
)

View File

@ -0,0 +1,26 @@
LeapShockwave(
energy_cost: 0,
buildup_duration: 1.4,
movement_duration: 0.8,
swing_duration: 0.15,
recover_duration: 0.9,
damage: 45.0,
poise_damage: 10,
knockback: (strength: 3.0, direction: Up),
shockwave_angle: 360.0,
shockwave_vertical_angle: 15.0,
shockwave_speed: 20.0,
shockwave_duration: 0.8,
requires_ground: true,
move_efficiency: 0.2,
damage_kind: Piercing,
specifier: IceSpikes,
damage_effect: Some(Buff((
kind: Frozen,
dur_secs: 1.0,
strength: DamageFraction(0.1),
chance: 1.0,
))),
forward_leap_strength: 45.0,
vertical_leap_strength: 10.0,
)

View File

@ -0,0 +1,24 @@
BasicMelee(
energy_cost: 0,
buildup_duration: 0.4,
swing_duration: 0.1,
recover_duration: 0.8,
melee_constructor: (
kind: Slash(
damage: 90.0,
poise: 20.0,
knockback: 5.0,
energy_regen: 5.0,
),
range: 5.0,
angle: 120.0,
damage_effect: Some(Buff((
kind: Frozen,
dur_secs: 1.0,
strength: DamageFraction(0.1),
chance: 0.5,
))),
multi_target: Some(Normal),
),
ori_modifier: 1.0,
)

View File

@ -3,6 +3,8 @@ SpriteSummon(
cast_duration: 0.4, cast_duration: 0.4,
recover_duration: 0.3, recover_duration: 0.3,
sprite: EnsnaringVines, sprite: EnsnaringVines,
del_timeout: None,
summon_distance: (0, 25), summon_distance: (0, 25),
sparseness: 0.67, sparseness: 0.67,
angle: 360,
) )

View File

@ -12,6 +12,7 @@ BasicMelee(
), ),
range: 4.0, range: 4.0,
angle: 60.0, angle: 60.0,
multi_target: Some(Normal),
), ),
ori_modifier: 1.0, ori_modifier: 1.0,
) )

View File

@ -23,6 +23,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.6, ori_modifier: 0.6,
) )

View File

@ -55,6 +55,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.6, ori_modifier: 0.6,
) )

View File

@ -23,6 +23,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.6, ori_modifier: 0.6,
) )

View File

@ -14,7 +14,6 @@ SpinMelee(
energy_cost: 0.0, energy_cost: 0.0,
is_infinite: false, is_infinite: false,
movement_behavior: Stationary, movement_behavior: Stationary,
is_interruptible: false,
forward_speed: 0.0, forward_speed: 0.0,
num_spins: 1, num_spins: 1,
specifier: None, specifier: None,

View File

@ -23,6 +23,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.65, ori_modifier: 0.65,
) )

View File

@ -10,11 +10,11 @@ SpinMelee(
), ),
range: 16.0, range: 16.0,
angle: 360.0, angle: 360.0,
multi_target: Some(Normal),
), ),
energy_cost: 0.0, energy_cost: 0.0,
is_infinite: true, is_infinite: true,
movement_behavior: Stationary, movement_behavior: Stationary,
is_interruptible: false,
forward_speed: 0.0, forward_speed: 0.0,
num_spins: 1, num_spins: 1,
specifier: Some(CultistVortex), specifier: Some(CultistVortex),

View File

@ -21,6 +21,7 @@ DashMelee(
strength: DamageFraction(0.3), strength: DamageFraction(0.3),
chance: 0.25, chance: 0.25,
))), ))),
multi_target: Some(Normal),
), ),
energy_drain: 0, energy_drain: 0,
forward_speed: 5.0, forward_speed: 5.0,
@ -30,5 +31,4 @@ DashMelee(
recover_duration: 3.4, recover_duration: 3.4,
ori_modifier: 0.1, ori_modifier: 0.1,
charge_through: false, charge_through: false,
is_interruptible: false,
) )

View File

@ -16,6 +16,7 @@ ChargedMelee(
)), )),
range: 5.0, range: 5.0,
angle: 45.0, angle: 45.0,
multi_target: Some(Normal),
), ),
charge_duration: 4.5, charge_duration: 4.5,
swing_duration: 0.1, swing_duration: 0.1,

View File

@ -18,6 +18,7 @@ BasicMelee(
strength: Value(0.5), strength: Value(0.5),
chance: 1.0, chance: 1.0,
))), ))),
multi_target: Some(Normal),
), ),
ori_modifier: 1.0, ori_modifier: 1.0,
) )

View File

@ -24,5 +24,4 @@ DashMelee(
recover_duration: 2.4, recover_duration: 2.4,
ori_modifier: 0.3, ori_modifier: 0.3,
charge_through: false, charge_through: false,
is_interruptible: true,
) )

View File

@ -51,6 +51,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.6, ori_modifier: 0.6,
) )

View File

@ -0,0 +1,19 @@
BasicAura(
buildup_duration: 0.0,
cast_duration: 0.0,
recover_duration: 2.0,
targets: InGroup,
auras: [
(
kind: ProtectingWard,
strength: 0.20,
duration: Some(10.0),
category: Magical,
),
],
aura_duration: 34.75,
range: 18.0,
energy_cost: 0.0,
scales_with_combo: false,
specifier: Some(WardingAura),
)

View File

@ -23,6 +23,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.6, ori_modifier: 0.6,
) )

View File

@ -55,6 +55,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.65, ori_modifier: 0.65,
) )

View File

@ -24,5 +24,4 @@ DashMelee(
recover_duration: 2.0, recover_duration: 2.0,
ori_modifier: 0.3, ori_modifier: 0.3,
charge_through: false, charge_through: false,
is_interruptible: false,
) )

View File

@ -55,6 +55,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.7, ori_modifier: 0.7,
) )

View File

@ -24,5 +24,4 @@ DashMelee(
recover_duration: 2.0, recover_duration: 2.0,
ori_modifier: 0.3, ori_modifier: 0.3,
charge_through: false, charge_through: false,
is_interruptible: false,
) )

View File

@ -71,6 +71,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.8, ori_modifier: 0.8,
) )

View File

@ -16,6 +16,7 @@ ChargedMelee(
)), )),
range: 6.0, range: 6.0,
angle: 90.0, angle: 90.0,
multi_target: Some(Normal),
), ),
charge_duration: 3.2, charge_duration: 3.2,
swing_duration: 0.7, swing_duration: 0.7,

View File

@ -55,6 +55,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.7, ori_modifier: 0.7,
) )

View File

@ -23,6 +23,5 @@ ComboMelee(
speed_increase: 0.0, speed_increase: 0.0,
max_speed_increase: 0.0, max_speed_increase: 0.0,
scales_from_combo: 0, scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.7, ori_modifier: 0.7,
) )

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