From 576b183e200caa2afe0c16f5b5fbacea773ab44d Mon Sep 17 00:00:00 2001 From: Yusuf Bera Ertan Date: Sat, 25 Feb 2023 08:53:34 +0300 Subject: [PATCH 001/109] build(nix): update flake.nix --- flake.lock | 131 +++++++++++++++++----------- flake.nix | 244 +++++++++++++++++++++++++++++------------------------ 2 files changed, 213 insertions(+), 162 deletions(-) diff --git a/flake.lock b/flake.lock index 44c7289f68..4489c2f0e1 100644 --- a/flake.lock +++ b/flake.lock @@ -16,22 +16,6 @@ "type": "github" } }, - "devshell": { - "flake": false, - "locked": { - "lastModified": 1667210711, - "narHash": "sha256-IoErjXZAkzYWHEpQqwu/DeRNJGFdR7X2OGbkhMqMrpw=", - "owner": "numtide", - "repo": "devshell", - "rev": "96a9dd12b8a447840cc246e17a47b81a4268bba7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "devshell", - "type": "github" - } - }, "dream2nix": { "inputs": { "alejandra": [ @@ -42,10 +26,12 @@ ], "crane": "crane", "devshell": [ - "nci", - "devshell" + "nci" + ], + "flake-parts": [ + "nci", + "parts" ], - "flake-parts": "flake-parts", "flake-utils-pre-commit": [ "nci" ], @@ -70,14 +56,17 @@ ], "pre-commit-hooks": [ "nci" + ], + "pruned-racket-catalog": [ + "nci" ] }, "locked": { - "lastModified": 1671323629, - "narHash": "sha256-9KHTPjIDjfnzZ4NjpE3gGIVHVHopy6weRDYO/7Y3hF8=", + "lastModified": 1677289985, + "narHash": "sha256-lUp06cTTlWubeBGMZqPl9jODM99LpWMcwxRiscFAUJg=", "owner": "nix-community", "repo": "dream2nix", - "rev": "2d7d68505c8619410df2c6b6463985f97cbcba6e", + "rev": "28b973a8d4c30cc1cbb3377ea2023a76bc3fb889", "type": "github" }, "original": { @@ -86,37 +75,38 @@ "type": "github" } }, - "flake-parts": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib" - }, + "mk-naked-shell": { + "flake": false, "locked": { - "lastModified": 1668450977, - "narHash": "sha256-cfLhMhnvXn6x1vPm+Jow3RiFAUSCw/l1utktCw5rVA4=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "d591857e9d7dd9ddbfba0ea02b43b927c3c0f1fa", + "lastModified": 1676572903, + "narHash": "sha256-oQoDHHUTxNVSURfkFcYLuAK+btjs30T4rbEUtCUyKy8=", + "owner": "yusdacra", + "repo": "mk-naked-shell", + "rev": "aeca9f8aa592f5e8f71f407d081cb26fd30c5a57", "type": "github" }, "original": { - "owner": "hercules-ci", - "repo": "flake-parts", + "owner": "yusdacra", + "repo": "mk-naked-shell", "type": "github" } }, "nci": { "inputs": { - "devshell": "devshell", "dream2nix": "dream2nix", - "nixpkgs": "nixpkgs", + "mk-naked-shell": "mk-naked-shell", + "nixpkgs": [ + "nixpkgs" + ], + "parts": "parts", "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1671400340, - "narHash": "sha256-VvRL3w+TbnlB1d9eXNJjuJQOYUL64kXA5508lV9Dq5E=", + "lastModified": 1677302541, + "narHash": "sha256-FqXEoPXguxpGUbGsPNO5M1NahA2K8O1W94ffHNUtk2c=", "owner": "yusdacra", "repo": "nix-cargo-integration", - "rev": "7d894cd374f6394482c8de234c8a8cdeaf8908a5", + "rev": "30787e470b77f6d76a9d4e5878ab3dbfc28c6984", "type": "github" }, "original": { @@ -127,15 +117,15 @@ }, "nixpkgs": { "locked": { - "lastModified": 1671200928, - "narHash": "sha256-mZfzDyzojwj6I0wyooIjGIn81WtGVnx6+avU5Wv+VKU=", - "owner": "NixOS", + "lastModified": 1677063315, + "narHash": "sha256-qiB4ajTeAOVnVSAwCNEEkoybrAlA+cpeiBxLobHndE8=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "757b82211463dd5ba1475b6851d3731dfe14d377", + "rev": "988cc958c57ce4350ec248d2d53087777f9e1949", "type": "github" }, "original": { - "owner": "NixOS", + "owner": "nixos", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" @@ -144,11 +134,11 @@ "nixpkgs-lib": { "locked": { "dir": "lib", - "lastModified": 1665349835, - "narHash": "sha256-UK4urM3iN80UXQ7EaOappDzcisYIuEURFRoGQ/yPkug=", + "lastModified": 1675183161, + "narHash": "sha256-Zq8sNgAxDckpn7tJo7V1afRSk2eoVbu3OjI1QklGLNg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "34c5293a71ffdb2fe054eb5288adc1882c1eb0b1", + "rev": "e1e1b192c1a5aab2960bf0a0bd53a2e8124fa18e", "type": "github" }, "original": { @@ -159,19 +149,60 @@ "type": "github" } }, + "parts": { + "inputs": { + "nixpkgs-lib": [ + "nci", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1675933616, + "narHash": "sha256-/rczJkJHtx16IFxMmAWu5nNYcSXNg1YYXTHoGjLrLUA=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "47478a4a003e745402acf63be7f9a092d51b83d7", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "parts_2": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1675933616, + "narHash": "sha256-/rczJkJHtx16IFxMmAWu5nNYcSXNg1YYXTHoGjLrLUA=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "47478a4a003e745402acf63be7f9a092d51b83d7", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "root": { "inputs": { - "nci": "nci" + "nci": "nci", + "nixpkgs": "nixpkgs", + "parts": "parts_2" } }, "rust-overlay": { "flake": false, "locked": { - "lastModified": 1671330075, - "narHash": "sha256-20Pa/jOxfE6QX4bnQReKjXgrnslY6u54wO4tpVkTZQs=", + "lastModified": 1677205778, + "narHash": "sha256-DFe09uzS+8LjGBAAyHkB/5Axs0j/PQ8RLWFzm2FUZLA=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "31f0276dd8bc0dff576394a985e89be4a4995b4e", + "rev": "b91706f9d5a68fecf97b63753da8e9670dff782b", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 9a69eac388..208f36b398 100644 --- a/flake.nix +++ b/flake.nix @@ -1,14 +1,16 @@ { description = "Flake providing Veloren, a multiplayer voxel RPG written in Rust."; + inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; inputs.nci.url = "github:yusdacra/nix-cargo-integration"; + inputs.nci.inputs.nixpkgs.follows = "nixpkgs"; + inputs.parts.url = "github:hercules-ci/flake-parts"; - outputs = inputs: let - lib = inputs.nci.inputs.nixpkgs.lib; - ncl = inputs.nci.lib.nci-lib; + outputs = inp: let + lib = inp.nci.inputs.nixpkgs.lib; git = let - sourceInfo = inputs.self.sourceInfo; + sourceInfo = inp.self.sourceInfo; dateTimeFormat = import ./nix/dateTimeFormat.nix; dateTime = dateTimeFormat sourceInfo.lastModified; shortRev = sourceInfo.shortRev or "dirty"; @@ -45,46 +47,61 @@ # filter out unnecessary paths filter = ignorePaths; }; - checkIfLfsIsSetup = pkgs: checkFile: '' - checkFile="${checkFile}" - result="$(${pkgs.file}/bin/file --mime-type $checkFile)" - if [ "$result" = "$checkFile: image/jpeg" ]; then - echo "Git LFS seems to be setup properly." - true - else - echo " - Git Large File Storage (git-lfs) has not been set up correctly. - Most common reasons: - - git-lfs was not installed before cloning this repository. - - This repository was not cloned from the primary GitLab mirror. - - The GitHub mirror does not support LFS. - See the book at https://book.veloren.net/ for details. - Run 'nix-shell -p git git-lfs --run \"git lfs install --local && git lfs fetch && git lfs checkout\"' - or 'nix shell nixpkgs#git-lfs nixpkgs#git -c sh -c \"git lfs install --local && git lfs fetch && git lfs checkout\"'. - " - false - fi - ''; in - inputs.nci.lib.makeOutputs { - root = ./.; - config = common: { - cCompiler.package = common.pkgs.clang; - outputs.defaults = { - package = "veloren-voxygen"; - app = "veloren-voxygen"; - }; - shell = { - startup.checkLfsSetup.text = '' - ${checkIfLfsIsSetup common.pkgs "$PWD/assets/voxygen/background/bg_main.jpg"} - if [ $? -ne 0 ]; then - exit 1 - fi + inp.parts.lib.mkFlake {inputs = inp;} { + imports = [inp.nci.flakeModule]; + systems = ["x86_64-linux"]; + perSystem = { + config, + pkgs, + lib, + ... + }: let + checkIfLfsIsSetup = checkFile: '' + checkFile="${checkFile}" + result="$(${pkgs.file}/bin/file --mime-type $checkFile)" + if [ "$result" = "$checkFile: image/jpeg" ]; then + echo "Git LFS seems to be setup properly." + true + else + echo " + Git Large File Storage (git-lfs) has not been set up correctly. + Most common reasons: + - git-lfs was not installed before cloning this repository. + - This repository was not cloned from the primary GitLab mirror. + - The GitHub mirror does not support LFS. + See the book at https://book.veloren.net/ for details. + Run 'nix-shell -p git git-lfs --run \"git lfs install --local && git lfs fetch && git lfs checkout\"' + or 'nix shell nixpkgs#git-lfs nixpkgs#git -c sh -c \"git lfs install --local && git lfs fetch && git lfs checkout\"'. + " + false + fi + ''; + assets = pkgs.runCommand "veloren-assets" {} '' + mkdir $out + ln -sf ${./assets} $out/assets + ${checkIfLfsIsSetup "$out/assets/voxygen/background/bg_main.jpg"} + ''; + wrapWithAssets = old: + pkgs.runCommand + old.name + { + inherit (old) pname version; + meta = old.meta or {}; + passthru = + (old.passthru or {}) + // { + unwrapped = old; + }; + nativeBuildInputs = [pkgs.makeWrapper]; + } + '' + cp -rs --no-preserve=mode,ownership ${old} $out + wrapProgram $out/bin/* \ + --set VELOREN_ASSETS ${assets} \ + --set VELOREN_GIT_VERSION "${git.prettyRev}" \ + --set VELOREN_GIT_TAG "${git.tag}" ''; - }; - }; - pkgConfig = common: let - inherit (common) pkgs; veloren-common-ov = { # We don't add in any information here because otherwise anything # that depends on common will be recompiled. We will set these in @@ -92,12 +109,78 @@ NIX_GIT_HASH = ""; NIX_GIT_TAG = ""; }; - assets = pkgs.runCommand "veloren-assets" {} '' - mkdir $out - ln -sf ${./assets} $out/assets - ${checkIfLfsIsSetup pkgs "$out/assets/voxygen/background/bg_main.jpg"} - ''; - wrapWithAssets = _: old: let + voxygenOut = config.nci.outputs."veloren-voxygen"; + serverCliOut = config.nci.outputs."veloren-server-cli"; + in { + packages.veloren-voxygen = wrapWithAssets voxygenOut.packages.release; + packages.veloren-voxygen-dev = wrapWithAssets voxygenOut.packages.dev; + packages.veloren-server-cli = wrapWithAssets serverCliOut.packages.release; + packages.veloren-server-cli-dev = wrapWithAssets serverCliOut.packages.dev; + packages.default = config.packages."veloren-voxygen"; + + devShells.default = config.nci.outputs."veloren".devShell.overrideAttrs (old: { + shellHook = '' + ${checkIfLfsIsSetup "$PWD/assets/voxygen/background/bg_main.jpg"} + if [ $? -ne 0 ]; then + exit 1 + fi + ''; + }); + + nci.projects."veloren".relPath = ""; + nci.crates."veloren-server-cli" = let + veloren-server-cli-deps-ov = _: { + doCheck = false; + dontCheck = true; + }; + in { + profiles = { + release.features = ["default-publish"]; + dev.features = ["default-publish"]; + }; + depsOverrides.fix-build.overrideAttrs = veloren-server-cli-deps-ov; + overrides = { + fix-veloren-common = veloren-common-ov; + add-deps-reqs.overrideAttrs = veloren-server-cli-deps-ov; + fix-build.override = _: { + src = filteredSource; + VELOREN_USERDATA_STRATEGY = "system"; + }; + }; + }; + nci.crates."veloren-voxygen" = let + veloren-voxygen-deps-ov = prev: { + buildInputs = + (prev.buildInputs or []) + ++ ( + with pkgs; [ + alsa-lib + libxkbcommon + udev + xorg.libxcb + ] + ); + nativeBuildInputs = + (prev.nativeBuildInputs or []) + ++ ( + with pkgs; [ + python3 + pkg-config + cmake + gnumake + ] + ); + + SHADERC_LIB_DIR = "${pkgs.shaderc.lib}/lib"; + VELOREN_ASSETS = "${assets}"; + + checkPhase = ":"; + }; + in { + profiles = { + release.features = ["default-publish"]; + dev.features = ["default-publish"]; + }; runtimeLibs = with pkgs; [ xorg.libX11 xorg.libXi @@ -109,48 +192,8 @@ udev alsa-lib vulkan-loader + stdenv.cc.cc.lib ]; - wrapped = - common.internal.pkgsSet.utils.wrapDerivation old - {nativeBuildInputs = [pkgs.makeWrapper];} - '' - rm -rf $out/bin - mkdir $out/bin - ln -sf ${old}/bin/* $out/bin/ - wrapProgram $out/bin/* \ - ${lib.optionalString (old.pname == "veloren-voxygen") "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath runtimeLibs}"} \ - --set VELOREN_ASSETS ${assets} \ - --set VELOREN_GIT_VERSION "${git.prettyRev}" \ - --set VELOREN_GIT_TAG "${git.tag}" - ''; - in - wrapped; - in { - veloren-voxygen = let - veloren-voxygen-deps-ov = oldAttrs: { - buildInputs = ncl.addBuildInputs oldAttrs ( - with pkgs; [ - alsa-lib - libxkbcommon - udev - xorg.libxcb - ] - ); - nativeBuildInputs = - ncl.addNativeBuildInputs oldAttrs (with pkgs; [python3 pkg-config]); - - SHADERC_LIB_DIR = "${pkgs.shaderc.lib}/lib"; - VELOREN_ASSETS = "${assets}"; - - doCheck = false; - dontCheck = true; - }; - in { - features = { - release = ["default-publish"]; - dev = ["default-publish"]; - test = ["default-publish"]; - }; depsOverrides.fix-build.overrideAttrs = veloren-voxygen-deps-ov; overrides = { fix-veloren-common = veloren-common-ov; @@ -171,29 +214,6 @@ ''; }; }; - wrapper = wrapWithAssets; - }; - veloren-server-cli = let - veloren-server-cli-deps-ov = oldAttrs: { - doCheck = false; - dontCheck = true; - }; - in { - features = { - release = ["default-publish"]; - dev = ["default-publish"]; - test = ["default-publish"]; - }; - depsOverrides.fix-build.overrideAttrs = veloren-server-cli-deps-ov; - overrides = { - fix-veloren-common = veloren-common-ov; - add-deps-reqs.overrideAttrs = veloren-server-cli-deps-ov; - fix-build = { - src = filteredSource; - VELOREN_USERDATA_STRATEGY = "system"; - }; - }; - wrapper = wrapWithAssets; }; }; }; From cb3c6f72c563378a77e67457fd5d83626da8224f Mon Sep 17 00:00:00 2001 From: tygyh <32486062+tygyh@users.noreply.github.com> Date: Mon, 20 Mar 2023 22:34:08 +0100 Subject: [PATCH 002/109] Update swedish translations --- assets/voxygen/i18n/sv_SE/hud/misc.ftl | 2 ++ assets/voxygen/i18n/sv_SE/hud/quest.ftl | 7 +++++++ 2 files changed, 9 insertions(+) create mode 100644 assets/voxygen/i18n/sv_SE/hud/quest.ftl diff --git a/assets/voxygen/i18n/sv_SE/hud/misc.ftl b/assets/voxygen/i18n/sv_SE/hud/misc.ftl index 704fade9c0..4d3e0c77e1 100644 --- a/assets/voxygen/i18n/sv_SE/hud/misc.ftl +++ b/assets/voxygen/i18n/sv_SE/hud/misc.ftl @@ -45,6 +45,8 @@ hud-use = Använd hud-unlock-requires = Öppna med { $item } hud-unlock-consumes = Använd { $item } för att öppna hud-mine = Hacka +hud-mine-needs_pickaxe = Kräver Hacka +hud-mine-needs_unhandled_case = Kräver ??? hud-talk = Prata hud-trade = Byt hud-mount = Bestig diff --git a/assets/voxygen/i18n/sv_SE/hud/quest.ftl b/assets/voxygen/i18n/sv_SE/hud/quest.ftl new file mode 100644 index 0000000000..3ac1936d51 --- /dev/null +++ b/assets/voxygen/i18n/sv_SE/hud/quest.ftl @@ -0,0 +1,7 @@ +hud-quest = Uppdrag +hud-quest-intro = Hälsningar, { $playername }! +hud-quest-desc-fetch = Vänligen hjälp mig hitta: +hud-quest-desc-kill = Kan du hjälpa mig att döda +hud-quest-reward = Jag kommer att belöna dig med: +hud-quest-accept = Acceptera +hud-quest-decline = Neka \ No newline at end of file From f2dfaf02764f8b2d2b750e1d7767053573786d32 Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 23 Mar 2023 21:56:16 -0400 Subject: [PATCH 003/109] Fixed dullahan AI. Some number tweaks. --- .../abilities/sword/cleaving_sky_splitter.ron | 2 +- .../abilities/sword/cleaving_spiral_slash.ron | 2 +- server/agent/src/action_nodes.rs | 9 +++- server/agent/src/attack.rs | 51 +++++++++++++++++++ server/agent/src/data.rs | 2 + 5 files changed, 63 insertions(+), 3 deletions(-) diff --git a/assets/common/abilities/sword/cleaving_sky_splitter.ron b/assets/common/abilities/sword/cleaving_sky_splitter.ron index 56464d494a..a687577888 100644 --- a/assets/common/abilities/sword/cleaving_sky_splitter.ron +++ b/assets/common/abilities/sword/cleaving_sky_splitter.ron @@ -20,7 +20,7 @@ ComboMelee2( ori_modifier: 0.6, ), ], - energy_cost_per_strike: 40, + energy_cost_per_strike: 30, meta: ( requirements: (stance: Some(Sword(Cleaving))), ), diff --git a/assets/common/abilities/sword/cleaving_spiral_slash.ron b/assets/common/abilities/sword/cleaving_spiral_slash.ron index fb9886ea8c..413bac773f 100644 --- a/assets/common/abilities/sword/cleaving_spiral_slash.ron +++ b/assets/common/abilities/sword/cleaving_spiral_slash.ron @@ -9,7 +9,7 @@ ChargedMelee( energy_regen: 0, ), scaled: Some(Slash( - damage: 12, + damage: 10, poise: 10, knockback: 0, energy_regen: 10, diff --git a/server/agent/src/action_nodes.rs b/server/agent/src/action_nodes.rs index 1d9f792982..4c4cbb2c2a 100644 --- a/server/agent/src/action_nodes.rs +++ b/server/agent/src/action_nodes.rs @@ -829,7 +829,7 @@ impl<'a> AgentData<'a> { if let Some(ability_spec) = item.ability_spec() { match &*ability_spec { AbilitySpec::Custom(spec) => match spec.as_str() { - "Oni" | "Sword Simple" => Tactic::Sword, + "Oni" | "Sword Simple" => Tactic::SwordSimple, "Staff Simple" => Tactic::Staff, "Simple Flying Melee" => Tactic::SimpleFlyingMelee, "Bow Simple" | "Boreal Bow" => Tactic::Bow, @@ -1322,6 +1322,13 @@ impl<'a> AgentData<'a> { read_data, rng, ), + Tactic::SwordSimple => self.handle_sword_simple_attack( + agent, + controller, + &attack_data, + tgt_data, + read_data, + ), } } diff --git a/server/agent/src/attack.rs b/server/agent/src/attack.rs index edc38bd859..19ac2e1775 100644 --- a/server/agent/src/attack.rs +++ b/server/agent/src/attack.rs @@ -4212,4 +4212,55 @@ impl<'a> AgentData<'a> { None, ); } + + pub fn handle_sword_simple_attack( + &self, + agent: &mut Agent, + controller: &mut Controller, + attack_data: &AttackData, + tgt_data: &TargetData, + read_data: &ReadData, + ) { + const DASH_TIMER: usize = 0; + agent.action_state.timers[DASH_TIMER] += read_data.dt.0; + if matches!(self.char_state, CharacterState::DashMelee(s) if !matches!(s.stage_section, StageSection::Recover)) + { + controller.push_basic_input(InputKind::Secondary); + } else if attack_data.in_min_range() && attack_data.angle < 45.0 { + if agent.action_state.timers[DASH_TIMER] > 2.0 { + agent.action_state.timers[DASH_TIMER] = 0.0; + } + controller.push_basic_input(InputKind::Primary); + } else if attack_data.dist_sqrd < MAX_PATH_DIST.powi(2) + && self.path_toward_target( + agent, + controller, + tgt_data.pos.0, + read_data, + Path::Separate, + None, + ) + && entities_have_line_of_sight( + self.pos, + self.body, + tgt_data.pos, + tgt_data.body, + read_data, + ) + && agent.action_state.timers[DASH_TIMER] > 4.0 + && attack_data.angle < 45.0 + { + controller.push_basic_input(InputKind::Secondary); + agent.action_state.timers[DASH_TIMER] = 0.0; + } else { + self.path_toward_target( + agent, + controller, + tgt_data.pos.0, + read_data, + Path::Partial, + None, + ); + } + } } diff --git a/server/agent/src/data.rs b/server/agent/src/data.rs index 0ad1519429..0443413009 100644 --- a/server/agent/src/data.rs +++ b/server/agent/src/data.rs @@ -127,6 +127,8 @@ pub enum Tactic { Bow, Staff, Sceptre, + // TODO: Remove tactic and ability spec + SwordSimple, // Broad creature tactics CircleCharge { radius: u32, circle_time: u32 }, From 124c8cfb65c1bf3c227f1535451fe2cdb871f282 Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 25 Mar 2023 13:05:26 -0400 Subject: [PATCH 004/109] Weapon stat tweaks --- .../modular/weapon/primary/sword/greatsword.ron | 2 +- .../items/modular/weapon/primary/sword/katana.ron | 8 ++++---- .../items/modular/weapon/primary/sword/ornate.ron | 2 +- .../items/modular/weapon/primary/sword/sabre.ron | 2 +- .../modular/weapon/primary/sword/zweihander.ron | 8 ++++---- .../items/modular/weapon/secondary/sword/long.ron | 2 +- .../items/modular/weapon/secondary/sword/short.ron | 2 +- assets/common/items/weapons/sword/caladbolg.ron | 12 ++++++------ 8 files changed, 19 insertions(+), 19 deletions(-) diff --git a/assets/common/items/modular/weapon/primary/sword/greatsword.ron b/assets/common/items/modular/weapon/primary/sword/greatsword.ron index 989355c4a4..b5683c2e89 100644 --- a/assets/common/items/modular/weapon/primary/sword/greatsword.ron +++ b/assets/common/items/modular/weapon/primary/sword/greatsword.ron @@ -8,7 +8,7 @@ ItemDef( equip_time_secs: 0.25, power: 1.2, effect_power: 1.5, - speed: 0.9, + speed: 0.8, crit_chance: 0.1, range: 1.0, energy_efficiency: 0.7, diff --git a/assets/common/items/modular/weapon/primary/sword/katana.ron b/assets/common/items/modular/weapon/primary/sword/katana.ron index 56aa029347..529bc046fb 100644 --- a/assets/common/items/modular/weapon/primary/sword/katana.ron +++ b/assets/common/items/modular/weapon/primary/sword/katana.ron @@ -8,11 +8,11 @@ ItemDef( equip_time_secs: 0.25, power: 0.8, effect_power: 0.8, - speed: 1.125, - crit_chance: 0.075, + speed: 1.4, + crit_chance: 0.1, range: 1.0, - energy_efficiency: 0.8, - buff_strength: 0.8, + energy_efficiency: 1.3, + buff_strength: 0.9, ), hand_restriction: None, weapon_name: HandednessDependent( diff --git a/assets/common/items/modular/weapon/primary/sword/ornate.ron b/assets/common/items/modular/weapon/primary/sword/ornate.ron index 657600b2db..bd9b292ed4 100644 --- a/assets/common/items/modular/weapon/primary/sword/ornate.ron +++ b/assets/common/items/modular/weapon/primary/sword/ornate.ron @@ -8,7 +8,7 @@ ItemDef( equip_time_secs: 0.25, power: 0.9, effect_power: 0.8, - speed: 1.05, + speed: 1.1, crit_chance: 0.12, range: 1.0, energy_efficiency: 1.5, diff --git a/assets/common/items/modular/weapon/primary/sword/sabre.ron b/assets/common/items/modular/weapon/primary/sword/sabre.ron index 17358ad1e4..366b86f7db 100644 --- a/assets/common/items/modular/weapon/primary/sword/sabre.ron +++ b/assets/common/items/modular/weapon/primary/sword/sabre.ron @@ -8,7 +8,7 @@ ItemDef( equip_time_secs: 0.25, power: 1.4, effect_power: 0.8, - speed: 0.95, + speed: 0.9, crit_chance: 0.14, range: 1.0, energy_efficiency: 1.1, diff --git a/assets/common/items/modular/weapon/primary/sword/zweihander.ron b/assets/common/items/modular/weapon/primary/sword/zweihander.ron index e58b57563c..8a112e950a 100644 --- a/assets/common/items/modular/weapon/primary/sword/zweihander.ron +++ b/assets/common/items/modular/weapon/primary/sword/zweihander.ron @@ -7,11 +7,11 @@ ItemDef( stats: ( equip_time_secs: 0.25, power: 1.2, - effect_power: 0.8, - speed: 0.95, - crit_chance: 0.12, + effect_power: 1.0, + speed: 0.8, + crit_chance: 0.14, range: 1.3, - energy_efficiency: 1.1, + energy_efficiency: 0.9, buff_strength: 0.8, ), hand_restriction: Some(Two), diff --git a/assets/common/items/modular/weapon/secondary/sword/long.ron b/assets/common/items/modular/weapon/secondary/sword/long.ron index bc23033f74..7c028a330c 100644 --- a/assets/common/items/modular/weapon/secondary/sword/long.ron +++ b/assets/common/items/modular/weapon/secondary/sword/long.ron @@ -8,7 +8,7 @@ ItemDef( equip_time_secs: 1.1, power: 1.1, effect_power: 1.1, - speed: 0.95, + speed: 0.9, crit_chance: 0.9, range: 1.1, energy_efficiency: 0.9, diff --git a/assets/common/items/modular/weapon/secondary/sword/short.ron b/assets/common/items/modular/weapon/secondary/sword/short.ron index cb0afe5769..b1bf7c79d6 100644 --- a/assets/common/items/modular/weapon/secondary/sword/short.ron +++ b/assets/common/items/modular/weapon/secondary/sword/short.ron @@ -8,7 +8,7 @@ ItemDef( equip_time_secs: 0.9, power: 0.9, effect_power: 0.9, - speed: 1.05, + speed: 1.1, crit_chance: 1.1, range: 0.9, energy_efficiency: 1.1, diff --git a/assets/common/items/weapons/sword/caladbolg.ron b/assets/common/items/weapons/sword/caladbolg.ron index 4dc521fcba..3a438f36f6 100644 --- a/assets/common/items/weapons/sword/caladbolg.ron +++ b/assets/common/items/weapons/sword/caladbolg.ron @@ -6,13 +6,13 @@ ItemDef( hands: Two, stats: ( equip_time_secs: 1.0, - power: 3.0, - effect_power: 1.2, - speed: 0.7, - crit_chance: 0.2, + power: 4.0, + effect_power: 1.0, + speed: 0.5, + crit_chance: 0.3, range: 1.0, - energy_efficiency: 0.7, - buff_strength: 0.8, + energy_efficiency: 0.5, + buff_strength: 1.0, ), )), quality: Legendary, From ef7b400cca2b92534bc0d73af6fcfd893bb33e31 Mon Sep 17 00:00:00 2001 From: Sam Date: Sun, 26 Mar 2023 19:50:42 -0400 Subject: [PATCH 005/109] Number tweaking --- .../common/abilities/sword/agile_cascade.ron | 6 +- .../abilities/sword/agile_crescent_slash.ron | 6 +- .../abilities/sword/agile_cross_cut.ron | 42 ++++++------ .../abilities/sword/agile_dancing_edge.ron | 4 +- .../abilities/sword/agile_double_slash.ron | 16 ++--- assets/common/abilities/sword/agile_feint.ron | 4 +- .../abilities/sword/agile_fell_strike.ron | 6 +- .../common/abilities/sword/agile_flurry.ron | 4 +- .../abilities/sword/agile_hundred_cuts.ron | 4 +- .../abilities/sword/agile_perforate.ron | 2 +- .../abilities/sword/agile_quick_draw.ron | 12 ++-- .../common/abilities/sword/agile_skewer.ron | 8 +-- .../common/abilities/sword/basic_cascade.ron | 4 +- .../abilities/sword/basic_crescent_slash.ron | 2 +- .../abilities/sword/basic_cross_cut.ron | 12 ++-- .../abilities/sword/basic_double_slash.ron | 4 +- .../abilities/sword/basic_fell_strike.ron | 2 +- .../common/abilities/sword/basic_skewer.ron | 2 +- .../common/abilities/sword/basic_thrust.ron | 6 +- .../abilities/sword/cleaving_blade_fever.ron | 4 +- .../abilities/sword/cleaving_bladestorm.ron | 2 +- .../abilities/sword/cleaving_cascade.ron | 12 ++-- .../sword/cleaving_crescent_slash.ron | 12 ++-- .../abilities/sword/cleaving_cross_cut.ron | 24 +++---- .../abilities/sword/cleaving_double_slash.ron | 12 ++-- .../sword/cleaving_earth_splitter.ron | 8 +-- .../abilities/sword/cleaving_fell_strike.ron | 10 +-- .../abilities/sword/cleaving_skewer.ron | 16 ++--- .../sword/cleaving_whirlwind_slice.ron | 4 +- .../abilities/sword/crippling_bloody_gash.ron | 4 +- .../abilities/sword/crippling_cascade.ron | 8 +-- .../sword/crippling_crescent_slash.ron | 6 +- .../abilities/sword/crippling_cross_cut.ron | 16 ++--- .../abilities/sword/crippling_deep_rend.ron | 4 +- .../sword/crippling_double_slash.ron | 4 +- .../abilities/sword/crippling_eviscerate.ron | 4 +- .../abilities/sword/crippling_fell_strike.ron | 6 +- .../abilities/sword/crippling_gouge.ron | 8 +-- .../abilities/sword/crippling_hamstring.ron | 4 +- .../abilities/sword/crippling_mutilate.ron | 2 +- .../abilities/sword/crippling_skewer.ron | 6 +- .../abilities/sword/defensive_cascade.ron | 7 +- .../abilities/sword/defensive_counter.ron | 2 +- .../sword/defensive_crescent_slash.ron | 7 +- .../abilities/sword/defensive_cross_cut.ron | 18 ++--- .../abilities/sword/defensive_deflect.ron | 2 +- .../abilities/sword/defensive_disengage.ron | 4 +- .../sword/defensive_double_slash.ron | 2 +- .../abilities/sword/defensive_fell_strike.ron | 7 +- .../abilities/sword/defensive_riposte.ron | 8 +-- .../abilities/sword/defensive_skewer.ron | 7 +- .../sword/defensive_stalwart_sword.ron | 4 +- .../common/abilities/sword/heavy_cascade.ron | 8 +-- .../abilities/sword/heavy_crescent_slash.ron | 10 +-- .../abilities/sword/heavy_cross_cut.ron | 22 +++---- .../abilities/sword/heavy_double_slash.ron | 20 +++--- .../abilities/sword/heavy_fell_strike.ron | 8 +-- .../abilities/sword/heavy_fortitude.ron | 4 +- .../abilities/sword/heavy_guillotine.ron | 2 +- .../abilities/sword/heavy_pillar_thrust.ron | 2 +- .../abilities/sword/heavy_pommel_strike.ron | 4 +- .../common/abilities/sword/heavy_skewer.ron | 13 ++-- assets/common/abilities/sword/heavy_slam.ron | 4 +- .../abilities/sword/heavy_windmill_slash.ron | 4 +- common/src/comp/ability.rs | 2 +- common/src/comp/poise.rs | 16 +++-- common/src/states/glide_wield.rs | 1 - common/src/states/idle.rs | 2 +- common/src/states/music.rs | 1 - common/src/states/skate.rs | 1 - common/src/states/sprite_interact.rs | 2 - common/src/states/stunned.rs | 2 +- common/src/states/talk.rs | 3 +- common/src/states/use_item.rs | 2 - server/src/events/entity_manipulation.rs | 65 ++++++++----------- 75 files changed, 289 insertions(+), 299 deletions(-) diff --git a/assets/common/abilities/sword/agile_cascade.ron b/assets/common/abilities/sword/agile_cascade.ron index fce91cdce4..d937f33da3 100644 --- a/assets/common/abilities/sword/agile_cascade.ron +++ b/assets/common/abilities/sword/agile_cascade.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 16, + damage: 12, poise: 5, knockback: 0, energy_regen: 0, @@ -12,11 +12,11 @@ ComboMelee2( angle: 15.0, ), buildup_duration: 0.2, - swing_duration: 0.1, + swing_duration: 0.05, hit_timing: 0.5, recover_duration: 0.1, ori_modifier: 0.6, ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 5, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/agile_crescent_slash.ron b/assets/common/abilities/sword/agile_crescent_slash.ron index d256fb447e..364c4188cb 100644 --- a/assets/common/abilities/sword/agile_crescent_slash.ron +++ b/assets/common/abilities/sword/agile_crescent_slash.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 12, + damage: 9, poise: 5, knockback: 0, energy_regen: 0, @@ -12,11 +12,11 @@ ComboMelee2( angle: 60.0, ), buildup_duration: 0.05, - swing_duration: 0.1, + swing_duration: 0.05, hit_timing: 0.5, recover_duration: 0.1, ori_modifier: 0.6, ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 5, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/agile_cross_cut.ron b/assets/common/abilities/sword/agile_cross_cut.ron index 68ad7b6a75..c69b3a3c71 100644 --- a/assets/common/abilities/sword/agile_cross_cut.ron +++ b/assets/common/abilities/sword/agile_cross_cut.ron @@ -3,30 +3,13 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 6, - poise: 3, + damage: 5, + poise: 5, knockback: 0, energy_regen: 0, ), range: 3.5, - angle: 50.0, - ), - buildup_duration: 0.1, - swing_duration: 0.05, - hit_timing: 0.5, - recover_duration: 0.2, - ori_modifier: 0.6, - ), - ( - melee_constructor: ( - kind: Slash( - damage: 6, - poise: 3, - knockback: 0, - energy_regen: 0, - ), - range: 3.5, - angle: 50.0, + angle: 90.0, ), buildup_duration: 0.1, swing_duration: 0.05, @@ -34,7 +17,24 @@ ComboMelee2( recover_duration: 0.1, ori_modifier: 0.6, ), + ( + melee_constructor: ( + kind: Slash( + damage: 7, + poise: 5, + knockback: 0, + energy_regen: 0, + ), + range: 3.5, + angle: 90.0, + ), + buildup_duration: 0.1, + swing_duration: 0.05, + hit_timing: 0.5, + recover_duration: 0.05, + ori_modifier: 0.6, + ), ], - energy_cost_per_strike: 7.5, + energy_cost_per_strike: 2.5, auto_progress: true, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/agile_dancing_edge.ron b/assets/common/abilities/sword/agile_dancing_edge.ron index 9d41d47983..0583b7a18d 100644 --- a/assets/common/abilities/sword/agile_dancing_edge.ron +++ b/assets/common/abilities/sword/agile_dancing_edge.ron @@ -4,8 +4,8 @@ SelfBuff( recover_duration: 0.3, buff_kind: Hastened, buff_strength: 0.25, - buff_duration: Some(30.0), - energy_cost: 30, + buff_duration: Some(20.0), + energy_cost: 20, meta: ( requirements: (stance: Some(Sword(Agile))), ), diff --git a/assets/common/abilities/sword/agile_double_slash.ron b/assets/common/abilities/sword/agile_double_slash.ron index 55b27eaa72..da678eefee 100644 --- a/assets/common/abilities/sword/agile_double_slash.ron +++ b/assets/common/abilities/sword/agile_double_slash.ron @@ -3,32 +3,32 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 3, - poise: 2, + damage: 2, + poise: 5, knockback: 0, energy_regen: 5, ), range: 3.0, angle: 45.0, ), - buildup_duration: 0.1, + buildup_duration: 0.05, swing_duration: 0.05, hit_timing: 0.5, - recover_duration: 0.1, + recover_duration: 0.05, ori_modifier: 0.6, ), ( melee_constructor: ( kind: Slash( - damage: 6, - poise: 3, + damage: 3, + poise: 5, knockback: 0, - energy_regen: 5, + energy_regen: 10, ), range: 3.0, angle: 45.0, ), - buildup_duration: 0.1, + buildup_duration: 0.05, swing_duration: 0.05, hit_timing: 0.5, recover_duration: 0.1, diff --git a/assets/common/abilities/sword/agile_feint.ron b/assets/common/abilities/sword/agile_feint.ron index e0fb76b97c..e29e6e623e 100644 --- a/assets/common/abilities/sword/agile_feint.ron +++ b/assets/common/abilities/sword/agile_feint.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 12, + damage: 8, poise: 5, knockback: 0, energy_regen: 0, @@ -23,7 +23,7 @@ ComboMelee2( ori_modifier: 0.6, ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 0, meta: ( init_event: Some(EnterStance(Sword(Agile))), ), diff --git a/assets/common/abilities/sword/agile_fell_strike.ron b/assets/common/abilities/sword/agile_fell_strike.ron index 7d3ac7d410..71827ae572 100644 --- a/assets/common/abilities/sword/agile_fell_strike.ron +++ b/assets/common/abilities/sword/agile_fell_strike.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 16, + damage: 12, poise: 5, knockback: 0, energy_regen: 0, @@ -14,9 +14,9 @@ ComboMelee2( buildup_duration: 0.05, swing_duration: 0.05, hit_timing: 0.5, - recover_duration: 0.45, + recover_duration: 0.3, ori_modifier: 0.6, ), ], - energy_cost_per_strike: 15, + energy_cost_per_strike: 5, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/agile_flurry.ron b/assets/common/abilities/sword/agile_flurry.ron index 1a86ccec55..7bbbe86389 100644 --- a/assets/common/abilities/sword/agile_flurry.ron +++ b/assets/common/abilities/sword/agile_flurry.ron @@ -4,7 +4,7 @@ RapidMelee( recover_duration: 0.1, melee_constructor: ( kind: Slash( - damage: 8, + damage: 10, poise: 3, knockback: 0, energy_regen: 0, @@ -12,7 +12,7 @@ RapidMelee( range: 6.0, angle: 10.0, ), - energy_cost: 10, + energy_cost: 5, max_strikes: Some(3), move_modifier: 0.35, ori_modifier: 0.25, diff --git a/assets/common/abilities/sword/agile_hundred_cuts.ron b/assets/common/abilities/sword/agile_hundred_cuts.ron index b8990fe6ca..c243aad42c 100644 --- a/assets/common/abilities/sword/agile_hundred_cuts.ron +++ b/assets/common/abilities/sword/agile_hundred_cuts.ron @@ -4,7 +4,7 @@ RapidMelee( recover_duration: 0.1, melee_constructor: ( kind: Slash( - damage: 2, + damage: 3, poise: 0, knockback: 0, energy_regen: 0, @@ -12,7 +12,7 @@ RapidMelee( range: 3.0, angle: 10.0, ), - energy_cost: 2, + energy_cost: 1, max_strikes: Some(20), move_modifier: 0.6, ori_modifier: 0.4, diff --git a/assets/common/abilities/sword/agile_perforate.ron b/assets/common/abilities/sword/agile_perforate.ron index cd8538c19e..e25f86db76 100644 --- a/assets/common/abilities/sword/agile_perforate.ron +++ b/assets/common/abilities/sword/agile_perforate.ron @@ -1,6 +1,6 @@ RapidMelee( buildup_duration: 0.2, - swing_duration: 0.15, + swing_duration: 0.2, recover_duration: 0.3, melee_constructor: ( kind: Slash( diff --git a/assets/common/abilities/sword/agile_quick_draw.ron b/assets/common/abilities/sword/agile_quick_draw.ron index 421c2d7c1b..68f63e0921 100644 --- a/assets/common/abilities/sword/agile_quick_draw.ron +++ b/assets/common/abilities/sword/agile_quick_draw.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 8, + damage: 12, poise: 5, knockback: 0, energy_regen: 0, @@ -11,19 +11,19 @@ ComboMelee2( range: 5.0, angle: 20.0, ), - buildup_duration: 0.2, + buildup_duration: 0.15, swing_duration: 0.05, hit_timing: 0.5, - recover_duration: 0.05, + recover_duration: 0.1, movement: ( - buildup: None, + buildup: Some(Forward(1.0)), swing: Some(Forward(3.0)), - recover: Some(Forward(2.0)), + recover: Some(Forward(1.0)), ), ori_modifier: 0.6, ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 5, meta: ( init_event: Some(EnterStance(Sword(Agile))), ), diff --git a/assets/common/abilities/sword/agile_skewer.ron b/assets/common/abilities/sword/agile_skewer.ron index fa3621b42c..98f0621027 100644 --- a/assets/common/abilities/sword/agile_skewer.ron +++ b/assets/common/abilities/sword/agile_skewer.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Stab( - damage: 12, + damage: 9, poise: 5, knockback: 0, energy_regen: 0, @@ -14,14 +14,14 @@ ComboMelee2( buildup_duration: 0.1, swing_duration: 0.1, hit_timing: 0.5, - recover_duration: 0.25, + recover_duration: 0.2, ori_modifier: 0.6, movement: ( - buildup: Some(Forward(2.0)), + buildup: Some(Forward(3.0)), swing: Some(Forward(2.0)), recover: None, ), ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 5, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/basic_cascade.ron b/assets/common/abilities/sword/basic_cascade.ron index 822bc6363f..3d5723658b 100644 --- a/assets/common/abilities/sword/basic_cascade.ron +++ b/assets/common/abilities/sword/basic_cascade.ron @@ -11,12 +11,12 @@ ComboMelee2( range: 4.0, angle: 15.0, ), - buildup_duration: 0.35, + buildup_duration: 0.4, swing_duration: 0.1, hit_timing: 0.5, recover_duration: 0.2, ori_modifier: 0.6, ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 5, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/basic_crescent_slash.ron b/assets/common/abilities/sword/basic_crescent_slash.ron index 500f0e56fc..87f54a8d33 100644 --- a/assets/common/abilities/sword/basic_crescent_slash.ron +++ b/assets/common/abilities/sword/basic_crescent_slash.ron @@ -18,5 +18,5 @@ ComboMelee2( ori_modifier: 0.6, ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 5, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/basic_cross_cut.ron b/assets/common/abilities/sword/basic_cross_cut.ron index f4a51976ab..d5fbee507b 100644 --- a/assets/common/abilities/sword/basic_cross_cut.ron +++ b/assets/common/abilities/sword/basic_cross_cut.ron @@ -4,12 +4,12 @@ ComboMelee2( melee_constructor: ( kind: Slash( damage: 10, - poise: 3, + poise: 5, knockback: 0, energy_regen: 0, ), range: 3.5, - angle: 50.0, + angle: 90.0, ), buildup_duration: 0.15, swing_duration: 0.1, @@ -20,13 +20,13 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 10, - poise: 3, + damage: 14, + poise: 5, knockback: 0, energy_regen: 0, ), range: 3.5, - angle: 50.0, + angle: 90.0, ), buildup_duration: 0.15, swing_duration: 0.1, @@ -35,6 +35,6 @@ ComboMelee2( ori_modifier: 0.6, ), ], - energy_cost_per_strike: 7.5, + energy_cost_per_strike: 2.5, auto_progress: true, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/basic_double_slash.ron b/assets/common/abilities/sword/basic_double_slash.ron index 5fdbfc2304..9a814b5868 100644 --- a/assets/common/abilities/sword/basic_double_slash.ron +++ b/assets/common/abilities/sword/basic_double_slash.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 5, + damage: 4, poise: 5, knockback: 0, energy_regen: 5, @@ -20,7 +20,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 10, + damage: 7, poise: 5, knockback: 0, energy_regen: 10, diff --git a/assets/common/abilities/sword/basic_fell_strike.ron b/assets/common/abilities/sword/basic_fell_strike.ron index fc70a6bc93..b586fc7a7e 100644 --- a/assets/common/abilities/sword/basic_fell_strike.ron +++ b/assets/common/abilities/sword/basic_fell_strike.ron @@ -18,5 +18,5 @@ ComboMelee2( ori_modifier: 0.6, ), ], - energy_cost_per_strike: 15, + energy_cost_per_strike: 5, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/basic_skewer.ron b/assets/common/abilities/sword/basic_skewer.ron index 93bb04f8ae..39a0ef28cc 100644 --- a/assets/common/abilities/sword/basic_skewer.ron +++ b/assets/common/abilities/sword/basic_skewer.ron @@ -23,5 +23,5 @@ ComboMelee2( ), ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 5, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/basic_thrust.ron b/assets/common/abilities/sword/basic_thrust.ron index 70d3c7b639..6811c9d64c 100644 --- a/assets/common/abilities/sword/basic_thrust.ron +++ b/assets/common/abilities/sword/basic_thrust.ron @@ -9,10 +9,10 @@ ChargedMelee( energy_regen: 0, ), scaled: Some(Stab( - damage: 20, - poise: 10, + damage: 15, + poise: 5, knockback: 0, - energy_regen: 20, + energy_regen: 15, )), range: 4.5, angle: 10.0, diff --git a/assets/common/abilities/sword/cleaving_blade_fever.ron b/assets/common/abilities/sword/cleaving_blade_fever.ron index 729041cf3a..ad21ac2ea1 100644 --- a/assets/common/abilities/sword/cleaving_blade_fever.ron +++ b/assets/common/abilities/sword/cleaving_blade_fever.ron @@ -4,8 +4,8 @@ SelfBuff( recover_duration: 0.3, buff_kind: Reckless, buff_strength: 0.25, - buff_duration: Some(30.0), - energy_cost: 30, + buff_duration: Some(20.0), + energy_cost: 20, meta: ( requirements: (stance: Some(Sword(Cleaving))), ), diff --git a/assets/common/abilities/sword/cleaving_bladestorm.ron b/assets/common/abilities/sword/cleaving_bladestorm.ron index fee006cfde..ffbdfe1af5 100644 --- a/assets/common/abilities/sword/cleaving_bladestorm.ron +++ b/assets/common/abilities/sword/cleaving_bladestorm.ron @@ -13,7 +13,7 @@ RapidMelee( angle: 360.0, multi_target: Some(Normal), ), - energy_cost: 5, + energy_cost: 3.33, max_strikes: Some(6), move_modifier: 0.8, ori_modifier: 1.0, diff --git a/assets/common/abilities/sword/cleaving_cascade.ron b/assets/common/abilities/sword/cleaving_cascade.ron index 3f57153fee..405b603cf7 100644 --- a/assets/common/abilities/sword/cleaving_cascade.ron +++ b/assets/common/abilities/sword/cleaving_cascade.ron @@ -3,21 +3,21 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 19, + damage: 24, poise: 5, knockback: 0, energy_regen: 0, ), range: 4.0, - angle: 25.0, + angle: 15.0, multi_target: Some(Normal), ), - buildup_duration: 0.35, - swing_duration: 0.1, + buildup_duration: 0.5, + swing_duration: 0.15, hit_timing: 0.5, - recover_duration: 0.2, + recover_duration: 0.25, ori_modifier: 0.6, ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 5, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/cleaving_crescent_slash.ron b/assets/common/abilities/sword/cleaving_crescent_slash.ron index 6af054c286..260967c30f 100644 --- a/assets/common/abilities/sword/cleaving_crescent_slash.ron +++ b/assets/common/abilities/sword/cleaving_crescent_slash.ron @@ -3,21 +3,21 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 15, + damage: 18, poise: 5, knockback: 0, energy_regen: 0, ), range: 3.0, - angle: 75.0, + angle: 60.0, multi_target: Some(Normal), ), - buildup_duration: 0.1, - swing_duration: 0.1, + buildup_duration: 0.15, + swing_duration: 0.15, hit_timing: 0.5, - recover_duration: 0.2, + recover_duration: 0.25, ori_modifier: 0.6, ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 5, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/cleaving_cross_cut.ron b/assets/common/abilities/sword/cleaving_cross_cut.ron index ddcba64b64..c0cd0a8ac8 100644 --- a/assets/common/abilities/sword/cleaving_cross_cut.ron +++ b/assets/common/abilities/sword/cleaving_cross_cut.ron @@ -4,39 +4,39 @@ ComboMelee2( melee_constructor: ( kind: Slash( damage: 10, - poise: 3, + poise: 5, knockback: 0, energy_regen: 0, ), range: 3.5, - angle: 60.0, + angle: 90.0, multi_target: Some(Normal), ), - buildup_duration: 0.15, - swing_duration: 0.1, + buildup_duration: 0.2, + swing_duration: 0.15, hit_timing: 0.5, - recover_duration: 0.2, + recover_duration: 0.25, ori_modifier: 0.6, ), ( melee_constructor: ( kind: Slash( - damage: 10, - poise: 3, + damage: 14, + poise: 5, knockback: 0, energy_regen: 0, ), range: 3.5, - angle: 60.0, + angle: 90.0, multi_target: Some(Normal), ), - buildup_duration: 0.15, - swing_duration: 0.1, + buildup_duration: 0.2, + swing_duration: 0.15, hit_timing: 0.5, - recover_duration: 0.1, + recover_duration: 0.15, ori_modifier: 0.6, ), ], - energy_cost_per_strike: 7.5, + energy_cost_per_strike: 2.5, auto_progress: true, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/cleaving_double_slash.ron b/assets/common/abilities/sword/cleaving_double_slash.ron index 237301445f..4d2ed0b2f3 100644 --- a/assets/common/abilities/sword/cleaving_double_slash.ron +++ b/assets/common/abilities/sword/cleaving_double_slash.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 5, + damage: 4, poise: 5, knockback: 0, energy_regen: 5, @@ -13,25 +13,25 @@ ComboMelee2( multi_target: Some(Normal), ), buildup_duration: 0.2, - swing_duration: 0.05, + swing_duration: 0.1, hit_timing: 0.5, - recover_duration: 0.1, + recover_duration: 0.15, ori_modifier: 0.6, ), ( melee_constructor: ( kind: Slash( - damage: 10, + damage: 7, poise: 5, knockback: 0, - energy_regen: 5, + energy_regen: 10, ), range: 3.0, angle: 45.0, multi_target: Some(Normal), ), buildup_duration: 0.15, - swing_duration: 0.1, + swing_duration: 0.15, hit_timing: 0.5, recover_duration: 0.25, ori_modifier: 0.6, diff --git a/assets/common/abilities/sword/cleaving_earth_splitter.ron b/assets/common/abilities/sword/cleaving_earth_splitter.ron index ab9eba51b3..9906baed98 100644 --- a/assets/common/abilities/sword/cleaving_earth_splitter.ron +++ b/assets/common/abilities/sword/cleaving_earth_splitter.ron @@ -1,5 +1,5 @@ DiveMelee( - energy_cost: 15, + energy_cost: 5, vertical_speed: 5, buildup_duration: Some(0.1), movement_duration: 5, @@ -7,13 +7,13 @@ DiveMelee( recover_duration: 0.3, melee_constructor: ( kind: Slash( - damage: 5, + damage: 10, poise: 5, knockback: 0, energy_regen: 0, ), scaled: Some(Slash( - damage: 10, + damage: 15, poise: 10, knockback: 0, energy_regen: 0, @@ -22,7 +22,7 @@ DiveMelee( angle: 15.0, multi_target: Some(Normal), ), - max_scaling: 10.0, + max_scaling: 6.0, meta: ( init_event: Some(EnterStance(Sword(Cleaving))), ), diff --git a/assets/common/abilities/sword/cleaving_fell_strike.ron b/assets/common/abilities/sword/cleaving_fell_strike.ron index 6275cd338d..11d87db46e 100644 --- a/assets/common/abilities/sword/cleaving_fell_strike.ron +++ b/assets/common/abilities/sword/cleaving_fell_strike.ron @@ -9,15 +9,15 @@ ComboMelee2( energy_regen: 0, ), range: 3.5, - angle: 30.0, + angle: 20.0, multi_target: Some(Normal), ), - buildup_duration: 0.05, - swing_duration: 0.05, + buildup_duration: 0.1, + swing_duration: 0.1, hit_timing: 0.5, - recover_duration: 0.7, + recover_duration: 0.8, ori_modifier: 0.6, ), ], - energy_cost_per_strike: 15, + energy_cost_per_strike: 5, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/cleaving_skewer.ron b/assets/common/abilities/sword/cleaving_skewer.ron index 85ceca2bc0..8a200b852e 100644 --- a/assets/common/abilities/sword/cleaving_skewer.ron +++ b/assets/common/abilities/sword/cleaving_skewer.ron @@ -3,26 +3,26 @@ ComboMelee2( ( melee_constructor: ( kind: Stab( - damage: 14, + damage: 18, poise: 5, knockback: 0, energy_regen: 0, ), range: 5.0, - angle: 7.5, + angle: 5.0, multi_target: Some(Normal), ), - buildup_duration: 0.15, - swing_duration: 0.1, + buildup_duration: 0.2, + swing_duration: 0.15, hit_timing: 0.5, - recover_duration: 0.4, + recover_duration: 0.5, ori_modifier: 0.6, movement: ( - buildup: Some(Forward(2.0)), - swing: Some(Forward(2.0)), + buildup: Some(Forward(1.5)), + swing: Some(Forward(1.5)), recover: None, ), ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 5, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/cleaving_whirlwind_slice.ron b/assets/common/abilities/sword/cleaving_whirlwind_slice.ron index 74e9223d92..d3d65acf2c 100644 --- a/assets/common/abilities/sword/cleaving_whirlwind_slice.ron +++ b/assets/common/abilities/sword/cleaving_whirlwind_slice.ron @@ -4,7 +4,7 @@ RapidMelee( recover_duration: 0.4, melee_constructor: ( kind: Slash( - damage: 12, + damage: 14, poise: 5, knockback: 0, energy_regen: 0, @@ -13,7 +13,7 @@ RapidMelee( angle: 360.0, multi_target: Some(Normal), ), - energy_cost: 10, + energy_cost: 5, max_strikes: Some(2), ori_modifier: 1.0, move_modifier: 1.0, diff --git a/assets/common/abilities/sword/crippling_bloody_gash.ron b/assets/common/abilities/sword/crippling_bloody_gash.ron index d038409cb5..1a22d971e5 100644 --- a/assets/common/abilities/sword/crippling_bloody_gash.ron +++ b/assets/common/abilities/sword/crippling_bloody_gash.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 15, + damage: 18, poise: 5, knockback: 0, energy_regen: 5, @@ -19,7 +19,7 @@ ComboMelee2( ori_modifier: 0.6, ), ], - energy_cost_per_strike: 20, + energy_cost_per_strike: 10, meta: ( requirements: (stance: Some(Sword(Crippling))), ), diff --git a/assets/common/abilities/sword/crippling_cascade.ron b/assets/common/abilities/sword/crippling_cascade.ron index cd8f9bfdcc..b4190453b4 100644 --- a/assets/common/abilities/sword/crippling_cascade.ron +++ b/assets/common/abilities/sword/crippling_cascade.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 18, + damage: 20, poise: 5, knockback: 0, energy_regen: 0, @@ -14,15 +14,15 @@ ComboMelee2( kind: Bleeding, dur_secs: 8.0, strength: DamageFraction(0.25), - chance: 0.25, + chance: 1.0, ))), ), - buildup_duration: 0.35, + buildup_duration: 0.4, swing_duration: 0.1, hit_timing: 0.5, recover_duration: 0.2, ori_modifier: 0.6, ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 5, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/crippling_crescent_slash.ron b/assets/common/abilities/sword/crippling_crescent_slash.ron index 531109a28c..32e619fa8a 100644 --- a/assets/common/abilities/sword/crippling_crescent_slash.ron +++ b/assets/common/abilities/sword/crippling_crescent_slash.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 14, + damage: 15, poise: 5, knockback: 0, energy_regen: 0, @@ -14,7 +14,7 @@ ComboMelee2( kind: Bleeding, dur_secs: 8.0, strength: DamageFraction(0.25), - chance: 0.25, + chance: 1.0, ))), ), buildup_duration: 0.1, @@ -24,5 +24,5 @@ ComboMelee2( ori_modifier: 0.6, ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 5, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/crippling_cross_cut.ron b/assets/common/abilities/sword/crippling_cross_cut.ron index bb659d9084..8f9fe6c3ed 100644 --- a/assets/common/abilities/sword/crippling_cross_cut.ron +++ b/assets/common/abilities/sword/crippling_cross_cut.ron @@ -4,17 +4,17 @@ ComboMelee2( melee_constructor: ( kind: Slash( damage: 7, - poise: 3, + poise: 5, knockback: 0, energy_regen: 0, ), range: 3.5, - angle: 50.0, + angle: 90.0, damage_effect: Some(Buff(( kind: Bleeding, dur_secs: 8.0, strength: DamageFraction(0.25), - chance: 0.25, + chance: 1.0, ))), ), buildup_duration: 0.15, @@ -26,18 +26,18 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 7, - poise: 3, + damage: 11, + poise: 5, knockback: 0, energy_regen: 0, ), range: 3.5, - angle: 50.0, + angle: 90.0, damage_effect: Some(Buff(( kind: Bleeding, dur_secs: 8.0, strength: DamageFraction(0.25), - chance: 0.25, + chance: 1.0, ))), ), buildup_duration: 0.15, @@ -47,6 +47,6 @@ ComboMelee2( ori_modifier: 0.6, ), ], - energy_cost_per_strike: 7.5, + energy_cost_per_strike: 2.5, auto_progress: true, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/crippling_deep_rend.ron b/assets/common/abilities/sword/crippling_deep_rend.ron index 066a89ee6f..a0593015a0 100644 --- a/assets/common/abilities/sword/crippling_deep_rend.ron +++ b/assets/common/abilities/sword/crippling_deep_rend.ron @@ -9,10 +9,10 @@ ChargedMelee( energy_regen: 0, ), scaled: Some(Slash( - damage: 12, + damage: 15, poise: 5, knockback: 0, - energy_regen: 15, + energy_regen: 10, )), damage_effect: Some(BuffsVulnerable(0.5, Bleeding)), range: 4.5, diff --git a/assets/common/abilities/sword/crippling_double_slash.ron b/assets/common/abilities/sword/crippling_double_slash.ron index 3f0a601405..be78731749 100644 --- a/assets/common/abilities/sword/crippling_double_slash.ron +++ b/assets/common/abilities/sword/crippling_double_slash.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 5, + damage: 4, poise: 5, knockback: 0, energy_regen: 5, @@ -21,7 +21,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 10, + damage: 7, poise: 5, knockback: 0, energy_regen: 10, diff --git a/assets/common/abilities/sword/crippling_eviscerate.ron b/assets/common/abilities/sword/crippling_eviscerate.ron index 911da31f66..b7dc2cf7a8 100644 --- a/assets/common/abilities/sword/crippling_eviscerate.ron +++ b/assets/common/abilities/sword/crippling_eviscerate.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 15, + damage: 18, poise: 5, knockback: 0, energy_regen: 0, @@ -19,7 +19,7 @@ ComboMelee2( ori_modifier: 0.6, ), ], - energy_cost_per_strike: 25, + energy_cost_per_strike: 10, meta: ( requirements: (stance: Some(Sword(Crippling))), ), diff --git a/assets/common/abilities/sword/crippling_fell_strike.ron b/assets/common/abilities/sword/crippling_fell_strike.ron index 1ae4c603b6..e4d9180491 100644 --- a/assets/common/abilities/sword/crippling_fell_strike.ron +++ b/assets/common/abilities/sword/crippling_fell_strike.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 18, + damage: 20, poise: 5, knockback: 0, energy_regen: 0, @@ -14,7 +14,7 @@ ComboMelee2( kind: Bleeding, dur_secs: 8.0, strength: DamageFraction(0.25), - chance: 0.25, + chance: 1.0, ))), ), buildup_duration: 0.05, @@ -24,5 +24,5 @@ ComboMelee2( ori_modifier: 0.6, ), ], - energy_cost_per_strike: 15, + energy_cost_per_strike: 5, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/crippling_gouge.ron b/assets/common/abilities/sword/crippling_gouge.ron index c2eecdab85..d0480a6de6 100644 --- a/assets/common/abilities/sword/crippling_gouge.ron +++ b/assets/common/abilities/sword/crippling_gouge.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 8, + damage: 16, poise: 5, knockback: 0, energy_regen: 0, @@ -12,8 +12,8 @@ ComboMelee2( angle: 45.0, damage_effect: Some(Buff(( kind: Bleeding, - dur_secs: 8.0, - strength: DamageFraction(0.35), + dur_secs: 4.0, + strength: DamageFraction(0.4), chance: 1.0, ))), ), @@ -24,7 +24,7 @@ ComboMelee2( ori_modifier: 0.6, ), ], - energy_cost_per_strike: 15, + energy_cost_per_strike: 5, meta: ( init_event: Some(EnterStance(Sword(Crippling))), ), diff --git a/assets/common/abilities/sword/crippling_hamstring.ron b/assets/common/abilities/sword/crippling_hamstring.ron index 031784c8ce..debf08befc 100644 --- a/assets/common/abilities/sword/crippling_hamstring.ron +++ b/assets/common/abilities/sword/crippling_hamstring.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 10, + damage: 16, poise: 5, knockback: 0, energy_regen: 0, @@ -24,7 +24,7 @@ ComboMelee2( ori_modifier: 0.6, ), ], - energy_cost_per_strike: 15, + energy_cost_per_strike: 10, meta: ( init_event: Some(EnterStance(Sword(Crippling))), ), diff --git a/assets/common/abilities/sword/crippling_mutilate.ron b/assets/common/abilities/sword/crippling_mutilate.ron index d18c62d4d8..7973c1f61c 100644 --- a/assets/common/abilities/sword/crippling_mutilate.ron +++ b/assets/common/abilities/sword/crippling_mutilate.ron @@ -13,7 +13,7 @@ RapidMelee( angle: 15.0, damage_effect: Some(BuffsVulnerable(1.0, Bleeding)), ), - energy_cost: 7.5, + energy_cost: 5, max_strikes: Some(4), move_modifier: 0.7, ori_modifier: 0.2, diff --git a/assets/common/abilities/sword/crippling_skewer.ron b/assets/common/abilities/sword/crippling_skewer.ron index 15a7b9e419..ec1701ea04 100644 --- a/assets/common/abilities/sword/crippling_skewer.ron +++ b/assets/common/abilities/sword/crippling_skewer.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Stab( - damage: 14, + damage: 15, poise: 5, knockback: 0, energy_regen: 0, @@ -14,7 +14,7 @@ ComboMelee2( kind: Bleeding, dur_secs: 8.0, strength: DamageFraction(0.25), - chance: 0.25, + chance: 1.0, ))), ), buildup_duration: 0.15, @@ -29,5 +29,5 @@ ComboMelee2( ), ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 5, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/defensive_cascade.ron b/assets/common/abilities/sword/defensive_cascade.ron index 8b60788d4f..be0e45f303 100644 --- a/assets/common/abilities/sword/defensive_cascade.ron +++ b/assets/common/abilities/sword/defensive_cascade.ron @@ -10,18 +10,19 @@ ComboMelee2( ), range: 4.0, angle: 15.0, + damage_effect: Some(BuffsVulnerable(0.5, Parried)), ), - buildup_duration: 0.35, + buildup_duration: 0.4, swing_duration: 0.1, hit_timing: 0.5, recover_duration: 0.2, ori_modifier: 0.6, ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 5, meta: ( capabilities: ( - // When in buildup, attack can get cancelled into parry + // The ability will parry melee attacks in the buildup portion bits: 0b00100000, ), ), diff --git a/assets/common/abilities/sword/defensive_counter.ron b/assets/common/abilities/sword/defensive_counter.ron index 31eeb4b935..6478d05606 100644 --- a/assets/common/abilities/sword/defensive_counter.ron +++ b/assets/common/abilities/sword/defensive_counter.ron @@ -1,5 +1,5 @@ FinisherMelee( - energy_cost: 30, + energy_cost: 20, buildup_duration: 0.05, swing_duration: 0.1, recover_duration: 0.6, diff --git a/assets/common/abilities/sword/defensive_crescent_slash.ron b/assets/common/abilities/sword/defensive_crescent_slash.ron index 213fb924b8..cd2b1915b2 100644 --- a/assets/common/abilities/sword/defensive_crescent_slash.ron +++ b/assets/common/abilities/sword/defensive_crescent_slash.ron @@ -3,13 +3,14 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 15, + damage: 13, poise: 5, knockback: 0, energy_regen: 0, ), range: 3.0, angle: 60.0, + damage_effect: Some(BuffsVulnerable(0.5, Parried)), ), buildup_duration: 0.1, swing_duration: 0.1, @@ -18,10 +19,10 @@ ComboMelee2( ori_modifier: 0.6, ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 5, meta: ( capabilities: ( - // When in buildup, attack can get cancelled into parry + // The ability will parry melee attacks in the buildup portion bits: 0b00100000, ), ), diff --git a/assets/common/abilities/sword/defensive_cross_cut.ron b/assets/common/abilities/sword/defensive_cross_cut.ron index e18ea19827..03670791b4 100644 --- a/assets/common/abilities/sword/defensive_cross_cut.ron +++ b/assets/common/abilities/sword/defensive_cross_cut.ron @@ -3,13 +3,14 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 8, - poise: 3, + damage: 6, + poise: 5, knockback: 0, energy_regen: 0, ), range: 3.5, - angle: 50.0, + angle: 90.0, + damage_effect: Some(BuffsVulnerable(0.5, Parried)), ), buildup_duration: 0.15, swing_duration: 0.1, @@ -20,13 +21,14 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 8, - poise: 3, + damage: 9, + poise: 5, knockback: 0, energy_regen: 0, ), range: 3.5, - angle: 50.0, + angle: 90.0, + damage_effect: Some(BuffsVulnerable(0.5, Parried)), ), buildup_duration: 0.15, swing_duration: 0.1, @@ -35,11 +37,11 @@ ComboMelee2( ori_modifier: 0.6, ), ], - energy_cost_per_strike: 7.5, + energy_cost_per_strike: 2.5, auto_progress: true, meta: ( capabilities: ( - // When in buildup, attack can get cancelled into parry + // The ability will parry melee attacks in the buildup portion bits: 0b00100000, ), ), diff --git a/assets/common/abilities/sword/defensive_deflect.ron b/assets/common/abilities/sword/defensive_deflect.ron index 8209a6c042..e122c71c2b 100644 --- a/assets/common/abilities/sword/defensive_deflect.ron +++ b/assets/common/abilities/sword/defensive_deflect.ron @@ -7,7 +7,7 @@ BasicBlock( buildup: true, recover: true, ), - energy_cost: 10, + energy_cost: 0, can_hold: false, blocked_attacks: ( melee: true, diff --git a/assets/common/abilities/sword/defensive_disengage.ron b/assets/common/abilities/sword/defensive_disengage.ron index bb93b672b4..a8cdfc733a 100644 --- a/assets/common/abilities/sword/defensive_disengage.ron +++ b/assets/common/abilities/sword/defensive_disengage.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 16, + damage: 10, poise: 5, knockback: 0, energy_regen: 0, @@ -23,7 +23,7 @@ ComboMelee2( ori_modifier: 0.6, ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 0, meta: ( init_event: Some(EnterStance(Sword(Defensive))), ), diff --git a/assets/common/abilities/sword/defensive_double_slash.ron b/assets/common/abilities/sword/defensive_double_slash.ron index 34a2b954d6..c1238c068e 100644 --- a/assets/common/abilities/sword/defensive_double_slash.ron +++ b/assets/common/abilities/sword/defensive_double_slash.ron @@ -20,7 +20,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 8, + damage: 7, poise: 5, knockback: 0, energy_regen: 10, diff --git a/assets/common/abilities/sword/defensive_fell_strike.ron b/assets/common/abilities/sword/defensive_fell_strike.ron index f1b3bec5b1..2dff6cc8d1 100644 --- a/assets/common/abilities/sword/defensive_fell_strike.ron +++ b/assets/common/abilities/sword/defensive_fell_strike.ron @@ -3,13 +3,14 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 20, + damage: 18, poise: 5, knockback: 0, energy_regen: 0, ), range: 3.5, angle: 20.0, + damage_effect: Some(BuffsVulnerable(0.5, Parried)), ), buildup_duration: 0.05, swing_duration: 0.05, @@ -18,10 +19,10 @@ ComboMelee2( ori_modifier: 0.6, ), ], - energy_cost_per_strike: 15, + energy_cost_per_strike: 5, meta: ( capabilities: ( - // When in buildup, attack can get cancelled into parry + // The ability will parry melee attacks in the buildup portion bits: 0b00100000, ), ), diff --git a/assets/common/abilities/sword/defensive_riposte.ron b/assets/common/abilities/sword/defensive_riposte.ron index 7a1e7e409d..cd96359902 100644 --- a/assets/common/abilities/sword/defensive_riposte.ron +++ b/assets/common/abilities/sword/defensive_riposte.ron @@ -1,11 +1,11 @@ RiposteMelee( - energy_cost: 20, + energy_cost: 5, buildup_duration: 0.3, - swing_duration: 0.2, - recover_duration: 0.3, + swing_duration: 0.1, + recover_duration: 0.2, melee_constructor: ( kind: Slash( - damage: 25, + damage: 18, poise: 5, knockback: 0, energy_regen: 5, diff --git a/assets/common/abilities/sword/defensive_skewer.ron b/assets/common/abilities/sword/defensive_skewer.ron index b3d5a69b7c..e1be1973e4 100644 --- a/assets/common/abilities/sword/defensive_skewer.ron +++ b/assets/common/abilities/sword/defensive_skewer.ron @@ -3,13 +3,14 @@ ComboMelee2( ( melee_constructor: ( kind: Stab( - damage: 15, + damage: 13, poise: 5, knockback: 0, energy_regen: 0, ), range: 5.0, angle: 5.0, + damage_effect: Some(BuffsVulnerable(0.5, Parried)), ), buildup_duration: 0.15, swing_duration: 0.1, @@ -23,10 +24,10 @@ ComboMelee2( ), ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 5, meta: ( capabilities: ( - // When in buildup, attack can get cancelled into parry + // The ability will parry melee attacks in the buildup portion bits: 0b00100000, ), ), diff --git a/assets/common/abilities/sword/defensive_stalwart_sword.ron b/assets/common/abilities/sword/defensive_stalwart_sword.ron index 4e71961134..9f18bdce40 100644 --- a/assets/common/abilities/sword/defensive_stalwart_sword.ron +++ b/assets/common/abilities/sword/defensive_stalwart_sword.ron @@ -4,8 +4,8 @@ SelfBuff( recover_duration: 0.25, buff_kind: ProtectingWard, buff_strength: 0.4, - buff_duration: Some(30.0), - energy_cost: 30, + buff_duration: Some(20.0), + energy_cost: 20, meta: ( requirements: (stance: Some(Sword(Defensive))), ), diff --git a/assets/common/abilities/sword/heavy_cascade.ron b/assets/common/abilities/sword/heavy_cascade.ron index fc0f69d857..9537028bed 100644 --- a/assets/common/abilities/sword/heavy_cascade.ron +++ b/assets/common/abilities/sword/heavy_cascade.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 26, + damage: 30, poise: 15, knockback: 0, energy_regen: 0, @@ -13,11 +13,11 @@ ComboMelee2( damage_effect: Some(StunnedVulnerable(0.5)), ), buildup_duration: 0.5, - swing_duration: 0.1, + swing_duration: 0.15, hit_timing: 0.5, - recover_duration: 0.3, + recover_duration: 0.25, ori_modifier: 0.6, ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 5, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/heavy_crescent_slash.ron b/assets/common/abilities/sword/heavy_crescent_slash.ron index d86087764d..c988f87f3d 100644 --- a/assets/common/abilities/sword/heavy_crescent_slash.ron +++ b/assets/common/abilities/sword/heavy_crescent_slash.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 19, + damage: 23, poise: 15, knockback: 0, energy_regen: 0, @@ -12,12 +12,12 @@ ComboMelee2( angle: 60.0, damage_effect: Some(StunnedVulnerable(0.5)), ), - buildup_duration: 0.3, - swing_duration: 0.1, + buildup_duration: 0.15, + swing_duration: 0.15, hit_timing: 0.5, - recover_duration: 0.2, + recover_duration: 0.25, ori_modifier: 0.6, ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 5, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/heavy_cross_cut.ron b/assets/common/abilities/sword/heavy_cross_cut.ron index 53694ab527..eeb7bfddc0 100644 --- a/assets/common/abilities/sword/heavy_cross_cut.ron +++ b/assets/common/abilities/sword/heavy_cross_cut.ron @@ -3,40 +3,40 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 11, - poise: 3, + damage: 12, + poise: 5, knockback: 0, energy_regen: 0, ), range: 3.5, - angle: 50.0, + angle: 90.0, damage_effect: Some(StunnedVulnerable(0.5)), ), buildup_duration: 0.2, - swing_duration: 0.1, + swing_duration: 0.15, hit_timing: 0.5, - recover_duration: 0.2, + recover_duration: 0.25, ori_modifier: 0.6, ), ( melee_constructor: ( kind: Slash( - damage: 11, - poise: 3, + damage: 18, + poise: 5, knockback: 0, energy_regen: 0, ), range: 3.5, - angle: 50.0, + angle: 90.0, damage_effect: Some(StunnedVulnerable(0.5)), ), buildup_duration: 0.2, - swing_duration: 0.1, + swing_duration: 0.15, hit_timing: 0.5, - recover_duration: 0.2, + recover_duration: 0.15, ori_modifier: 0.6, ), ], - energy_cost_per_strike: 7.5, + energy_cost_per_strike: 2.5, auto_progress: true, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/heavy_double_slash.ron b/assets/common/abilities/sword/heavy_double_slash.ron index 37e1c7c722..eb93690e82 100644 --- a/assets/common/abilities/sword/heavy_double_slash.ron +++ b/assets/common/abilities/sword/heavy_double_slash.ron @@ -3,19 +3,18 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 6, + damage: 5, poise: 10, knockback: 0, - energy_regen: 10, + energy_regen: 5, ), range: 3.0, angle: 45.0, - damage_effect: Some(StunnedVulnerable(0.5)), ), - buildup_duration: 0.3, - swing_duration: 0.05, + buildup_duration: 0.2, + swing_duration: 0.1, hit_timing: 0.5, - recover_duration: 0.1, + recover_duration: 0.15, ori_modifier: 0.6, ), ( @@ -24,16 +23,15 @@ ComboMelee2( damage: 9, poise: 15, knockback: 0, - energy_regen: 15, + energy_regen: 10, ), range: 3.0, angle: 45.0, - damage_effect: Some(StunnedVulnerable(0.5)), ), - buildup_duration: 0.2, - swing_duration: 0.1, + buildup_duration: 0.15, + swing_duration: 0.15, hit_timing: 0.5, - recover_duration: 0.2, + recover_duration: 0.25, ori_modifier: 0.6, ), ], diff --git a/assets/common/abilities/sword/heavy_fell_strike.ron b/assets/common/abilities/sword/heavy_fell_strike.ron index 1da46eb3e9..83988839ac 100644 --- a/assets/common/abilities/sword/heavy_fell_strike.ron +++ b/assets/common/abilities/sword/heavy_fell_strike.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 28, + damage: 30, poise: 15, knockback: 0, energy_regen: 0, @@ -12,12 +12,12 @@ ComboMelee2( angle: 20.0, damage_effect: Some(StunnedVulnerable(0.5)), ), - buildup_duration: 0.15, + buildup_duration: 0.1, swing_duration: 0.1, hit_timing: 0.5, - recover_duration: 0.9, + recover_duration: 0.8, ori_modifier: 0.6, ), ], - energy_cost_per_strike: 15, + energy_cost_per_strike: 5, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/heavy_fortitude.ron b/assets/common/abilities/sword/heavy_fortitude.ron index 43a75fbd81..cb6e8f4c7e 100644 --- a/assets/common/abilities/sword/heavy_fortitude.ron +++ b/assets/common/abilities/sword/heavy_fortitude.ron @@ -4,8 +4,8 @@ SelfBuff( recover_duration: 0.6, buff_kind: Fortitude, buff_strength: 1.0, - buff_duration: Some(30.0), - energy_cost: 25, + buff_duration: Some(20.0), + energy_cost: 15, meta: ( requirements: (stance: Some(Sword(Heavy))), ), diff --git a/assets/common/abilities/sword/heavy_guillotine.ron b/assets/common/abilities/sword/heavy_guillotine.ron index 0bd08ee13c..331a5ca851 100644 --- a/assets/common/abilities/sword/heavy_guillotine.ron +++ b/assets/common/abilities/sword/heavy_guillotine.ron @@ -1,5 +1,5 @@ FinisherMelee( - energy_cost: 30, + energy_cost: 20, buildup_duration: 0.4, swing_duration: 0.1, recover_duration: 0.6, diff --git a/assets/common/abilities/sword/heavy_pillar_thrust.ron b/assets/common/abilities/sword/heavy_pillar_thrust.ron index 7e06209528..74450363c8 100644 --- a/assets/common/abilities/sword/heavy_pillar_thrust.ron +++ b/assets/common/abilities/sword/heavy_pillar_thrust.ron @@ -1,5 +1,5 @@ DiveMelee( - energy_cost: 25, + energy_cost: 15, vertical_speed: 5, buildup_duration: Some(0.1), movement_duration: 5, diff --git a/assets/common/abilities/sword/heavy_pommel_strike.ron b/assets/common/abilities/sword/heavy_pommel_strike.ron index 6204468262..39a8848e1e 100644 --- a/assets/common/abilities/sword/heavy_pommel_strike.ron +++ b/assets/common/abilities/sword/heavy_pommel_strike.ron @@ -4,7 +4,7 @@ ComboMelee2( melee_constructor: ( kind: Bash( damage: 12, - poise: 60, + poise: 50, knockback: 0, energy_regen: 0, ), @@ -19,7 +19,7 @@ ComboMelee2( ori_modifier: 0.6, ), ], - energy_cost_per_strike: 15, + energy_cost_per_strike: 5, meta: ( init_event: Some(EnterStance(Sword(Heavy))), ), diff --git a/assets/common/abilities/sword/heavy_skewer.ron b/assets/common/abilities/sword/heavy_skewer.ron index 2ac5e3143c..0480811325 100644 --- a/assets/common/abilities/sword/heavy_skewer.ron +++ b/assets/common/abilities/sword/heavy_skewer.ron @@ -3,26 +3,25 @@ ComboMelee2( ( melee_constructor: ( kind: Stab( - damage: 21, + damage: 23, poise: 15, knockback: 0, energy_regen: 0, ), range: 5.0, angle: 5.0, - damage_effect: Some(StunnedVulnerable(0.5)), ), - buildup_duration: 0.3, - swing_duration: 0.1, + buildup_duration: 0.2, + swing_duration: 0.15, hit_timing: 0.5, recover_duration: 0.5, ori_modifier: 0.6, movement: ( - buildup: Some(Forward(2.0)), - swing: Some(Forward(2.0)), + buildup: Some(Forward(1.5)), + swing: Some(Forward(1.5)), recover: None, ), ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 5, ) \ No newline at end of file diff --git a/assets/common/abilities/sword/heavy_slam.ron b/assets/common/abilities/sword/heavy_slam.ron index 7493cee327..4cf7d0f1ae 100644 --- a/assets/common/abilities/sword/heavy_slam.ron +++ b/assets/common/abilities/sword/heavy_slam.ron @@ -18,8 +18,8 @@ ChargedMelee( angle: 10.0, damage_effect: Some(StunnedVulnerable(0.5)), ), - charge_duration: 0.8, + charge_duration: 1.0, swing_duration: 0.1, hit_timing: 0.2, - recover_duration: 0.4, + recover_duration: 0.5, ) diff --git a/assets/common/abilities/sword/heavy_windmill_slash.ron b/assets/common/abilities/sword/heavy_windmill_slash.ron index f49a3dac77..a74f88454b 100644 --- a/assets/common/abilities/sword/heavy_windmill_slash.ron +++ b/assets/common/abilities/sword/heavy_windmill_slash.ron @@ -4,7 +4,7 @@ ComboMelee2( melee_constructor: ( kind: Slash( damage: 11, - poise: 15, + poise: 20, knockback: 0, energy_regen: 0, ), @@ -37,7 +37,7 @@ ComboMelee2( ori_modifier: 0.6, ), ], - energy_cost_per_strike: 10, + energy_cost_per_strike: 5, auto_progress: true, meta: ( init_event: Some(EnterStance(Sword(Heavy))), diff --git a/common/src/comp/ability.rs b/common/src/comp/ability.rs index a19f6274cb..410da60fee 100644 --- a/common/src/comp/ability.rs +++ b/common/src/comp/ability.rs @@ -2904,7 +2904,7 @@ bitflags::bitflags! { const POISE_RESISTANT = 0b00001000; // WHen in the ability, an entity only receives half as much knockback const KNOCKBACK_RESISTANT = 0b00010000; - // The ability will interrupt itself into a parry if hit with melee + // The ability will parry melee attacks in the buildup portion const BUILDUP_PARRIES = 0b00100000; } } diff --git a/common/src/comp/poise.rs b/common/src/comp/poise.rs index 8fdc8a9ca6..2b74f5b63d 100644 --- a/common/src/comp/poise.rs +++ b/common/src/comp/poise.rs @@ -88,19 +88,27 @@ impl PoiseState { let (charstate_parameters, impulse) = match self { PoiseState::Normal => (None, None), PoiseState::Interrupted => ( - Some((Duration::from_millis(200), Duration::from_millis(200), 0.8)), + Some((Duration::from_millis(250), Duration::from_millis(250), 0.8)), None, ), PoiseState::Stunned => ( - Some((Duration::from_millis(400), Duration::from_millis(400), 0.5)), + Some((Duration::from_millis(750), Duration::from_millis(750), 0.5)), None, ), PoiseState::Dazed => ( - Some((Duration::from_millis(750), Duration::from_millis(450), 0.2)), + Some(( + Duration::from_millis(1000), + Duration::from_millis(1000), + 0.2, + )), None, ), PoiseState::KnockedDown => ( - Some((Duration::from_millis(1000), Duration::from_millis(600), 0.0)), + Some(( + Duration::from_millis(2000), + Duration::from_millis(2000), + 0.0, + )), Some(10.0), ), }; diff --git a/common/src/states/glide_wield.rs b/common/src/states/glide_wield.rs index 040842e60c..a47c151084 100644 --- a/common/src/states/glide_wield.rs +++ b/common/src/states/glide_wield.rs @@ -40,7 +40,6 @@ impl CharacterBehavior for Data { fn behavior(&self, data: &JoinData, output_events: &mut OutputEvents) -> StateUpdate { let mut update = StateUpdate::from(data); - leave_stance(data, output_events); handle_orientation(data, &mut update, 1.0, None); handle_move(data, &mut update, 1.0); handle_jump(data, output_events, &mut update, 1.0); diff --git a/common/src/states/idle.rs b/common/src/states/idle.rs index fea197dbab..c89263f2af 100644 --- a/common/src/states/idle.rs +++ b/common/src/states/idle.rs @@ -21,7 +21,7 @@ impl CharacterBehavior for Data { fn behavior(&self, data: &JoinData, output_events: &mut OutputEvents) -> StateUpdate { let mut update = StateUpdate::from(data); - const LEAVE_STANCE_DELAY: f64 = 5.0; + const LEAVE_STANCE_DELAY: f64 = 30.0; if (self.time_entered.0 + LEAVE_STANCE_DELAY) < data.time.0 { leave_stance(data, output_events); } diff --git a/common/src/states/music.rs b/common/src/states/music.rs index 6d05d8fd2e..70dfb296f8 100644 --- a/common/src/states/music.rs +++ b/common/src/states/music.rs @@ -36,7 +36,6 @@ impl CharacterBehavior for Data { fn behavior(&self, data: &JoinData, output_events: &mut OutputEvents) -> StateUpdate { let mut update = StateUpdate::from(data); - leave_stance(data, output_events); handle_orientation(data, &mut update, self.static_data.ori_modifier, None); handle_move(data, &mut update, 0.7); handle_jump(data, output_events, &mut update, 1.0); diff --git a/common/src/states/skate.rs b/common/src/states/skate.rs index 341ebee1fd..8d877675ad 100644 --- a/common/src/states/skate.rs +++ b/common/src/states/skate.rs @@ -35,7 +35,6 @@ impl CharacterBehavior for Data { fn behavior(&self, data: &JoinData, output_events: &mut OutputEvents) -> StateUpdate { let mut update = StateUpdate::from(data); - leave_stance(data, output_events); handle_wield(data, &mut update); handle_jump(data, output_events, &mut update, 1.0); diff --git a/common/src/states/sprite_interact.rs b/common/src/states/sprite_interact.rs index b08bc51ac4..4e3d9eb6b5 100644 --- a/common/src/states/sprite_interact.rs +++ b/common/src/states/sprite_interact.rs @@ -56,8 +56,6 @@ impl CharacterBehavior for Data { fn behavior(&self, data: &JoinData, output_events: &mut OutputEvents) -> StateUpdate { let mut update = StateUpdate::from(data); - leave_stance(data, output_events); - let ori_dir = Dir::from_unnormalized(Vec3::from( (self.static_data.sprite_pos.map(|x| x as f32 + 0.5) - data.pos.0).xy(), )); diff --git a/common/src/states/stunned.rs b/common/src/states/stunned.rs index f3d100121f..1524564d37 100644 --- a/common/src/states/stunned.rs +++ b/common/src/states/stunned.rs @@ -37,7 +37,7 @@ impl CharacterBehavior for Data { if matches!( self.static_data.poise_state, - PoiseState::Stunned | PoiseState::Dazed | PoiseState::KnockedDown + PoiseState::Dazed | PoiseState::KnockedDown ) { leave_stance(data, output_events); } diff --git a/common/src/states/talk.rs b/common/src/states/talk.rs index 34c9aa4483..bab5b59f4d 100644 --- a/common/src/states/talk.rs +++ b/common/src/states/talk.rs @@ -14,10 +14,9 @@ const TURN_RATE: f32 = 40.0; pub struct Data; impl CharacterBehavior for Data { - fn behavior(&self, data: &JoinData, output_events: &mut OutputEvents) -> StateUpdate { + fn behavior(&self, data: &JoinData, _output_events: &mut OutputEvents) -> StateUpdate { let mut update = StateUpdate::from(data); - leave_stance(data, output_events); handle_wield(data, &mut update); handle_orientation(data, &mut update, TURN_RATE, None); diff --git a/common/src/states/use_item.rs b/common/src/states/use_item.rs index 6f5fc1a635..1f6f666724 100644 --- a/common/src/states/use_item.rs +++ b/common/src/states/use_item.rs @@ -52,8 +52,6 @@ impl CharacterBehavior for Data { fn behavior(&self, data: &JoinData, output_events: &mut OutputEvents) -> StateUpdate { let mut update = StateUpdate::from(data); - leave_stance(data, output_events); - match self.static_data.item_kind { ItemUseKind::Consumable(ConsumableKind::Drink) => { handle_orientation(data, &mut update, 1.0, None); diff --git a/server/src/events/entity_manipulation.rs b/server/src/events/entity_manipulation.rs index e47ba762f6..f577a759ce 100644 --- a/server/src/events/entity_manipulation.rs +++ b/server/src/events/entity_manipulation.rs @@ -43,7 +43,7 @@ use rand_distr::Distribution; use specs::{ join::Join, saveload::MarkerAllocator, Builder, Entity as EcsEntity, Entity, WorldExt, }; -use std::{collections::HashMap, iter, ops::Mul, time::Duration}; +use std::{collections::HashMap, iter, time::Duration}; use tracing::{debug, error}; use vek::{Vec2, Vec3}; @@ -1274,11 +1274,7 @@ pub fn handle_parry_hook(server: &Server, defender: EcsEntity, attacker: Option< }); true }, - char_state => char_state.ability_info().map_or(false, |info| { - info.ability_meta - .capabilities - .contains(comp::ability::Capability::BUILDUP_PARRIES) - }), + _ => false, }; if return_to_wield { *char_state = @@ -1287,39 +1283,30 @@ pub fn handle_parry_hook(server: &Server, defender: EcsEntity, attacker: Option< }; if let Some(attacker) = attacker { - if let Some(char_state) = ecs.read_storage::().get(attacker) { - // By having a duration twice as long as either the recovery duration or 0.5 s, - // causes recover duration to effectively be either doubled or increased by 0.5 - // s when a buff is applied that halves their attack speed. - let duration = char_state - .durations() - .and_then(|durs| durs.recover) - .map_or(0.5, |dur| dur.as_secs_f64()) - .max(0.5) - .mul(2.0); - let data = buff::BuffData::new(1.0, Some(Secs(duration)), None); - let source = if let Some(uid) = ecs.read_storage::().get(defender) { - BuffSource::Character { by: *uid } - } else { - BuffSource::World - }; - let time = ecs.read_resource::