Wide wallop

This commit is contained in:
Sam 2024-01-29 18:46:44 -05:00
parent bddced1ab7
commit af755197bb
7 changed files with 56 additions and 3 deletions

View File

@ -194,8 +194,7 @@
Tool(Hammer): (
guard: Some(Simple(None, "common.abilities.hammer.basic_guard")),
primary: Simple(None, "common.abilities.hammer.solid_smash"),
secondary: Simple(None, "common.abilities.hammer.basic_guard"),
// secondary: Simple(None, "common.abilities.hammer.wide_wallop"),
secondary: Simple(None, "common.abilities.hammer.wide_wallop"),
abilities: [
// Simple(Hammer(ScornfulSwipe), "common.abilities.hammer.scornful_swipe"),
// Simple(Hammer(Tremor), "common.abilities.hammer.tremor"),

View File

@ -0,0 +1,25 @@
ChargedMelee(
energy_cost: 0,
energy_drain: 0,
melee_constructor: (
kind: Bash(
damage: 0,
poise: 0,
knockback: 0,
energy_regen: 0,
),
scaled: Some((
kind: Bash(
damage: 20,
poise: 30,
knockback: 20,
energy_regen: 30,
))),
range: 4.5,
angle: 15.0,
),
charge_duration: 0.6,
swing_duration: 0.2,
hit_timing: 0.5,
recover_duration: 0.5,
)

BIN
assets/voxygen/element/skills/hammer/wide_wallop.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -380,3 +380,6 @@ common-abilities-axe-capsize = Capsize
common-abilities-hammer-solid_smash = Solid Smash
.desc =
A solid smash, that'll hurt
common-abilities-hammer-wide_wallop = Wide Wallop
.desc =
Pull back and send them flying

View File

@ -1,6 +1,6 @@
use super::{
super::{vek::*, Animation},
CharacterSkeleton, SkeletonAttr,
hammer_start, twist_back, twist_forward, CharacterSkeleton, SkeletonAttr,
};
use common::states::utils::StageSection;
use core::f32::consts::{PI, TAU};
@ -262,6 +262,27 @@ impl Animation for ChargeswingAnimation {
next.control.orientation.rotate_x(move2 * -3.0);
next.control.position += Vec3::new(0.0, move2 * 8.0, move2 * -30.0);
},
Some("common.abilities.hammer.wide_wallop") => {
hammer_start(&mut next, s_a);
let (move1, move2, move3, tension) = match stage_section {
StageSection::Charge => (anim_time.min(1.0), 0.0, 0.0, (anim_time * 7.0).sin()),
StageSection::Action => (1.0, anim_time, 0.0, 0.0),
StageSection::Recover => (1.0, 1.0, anim_time, 0.0),
_ => (0.0, 0.0, 0.0, 0.0),
};
let pullback = 1.0 - move3;
let move1 = move1 * pullback;
let move2 = move2 * pullback;
next.control.orientation.rotate_x(move1 * 1.1 + move2 * 0.6);
twist_back(&mut next, move1 + tension / 25.0, 1.7, 0.7, 0.3, 1.1);
next.control.orientation.rotate_y(move1 * -0.8);
next.control.position += Vec3::new(0.0, 0.0, 6.0) * move1;
twist_forward(&mut next, move2, 4.8, 1.7, 0.7, 3.2);
next.control.orientation.rotate_y(move2 * 2.0);
next.control.orientation.rotate_z(move2 * -1.8);
},
_ => {},
}

View File

@ -316,6 +316,7 @@ image_ids! {
axe_capsize: "voxygen.element.skills.axe.capsize",
// Hammer
hammer_solid_smash: "voxygen.element.skills.hammer.solid_smash",
hammer_wide_wallop: "voxygen.element.skills.hammer.wide_wallop",
// Skilltree Icons
health_plus_skill: "voxygen.element.skills.skilltree.health_plus",
energy_plus_skill: "voxygen.element.skills.skilltree.energy_plus",

View File

@ -620,6 +620,7 @@ pub fn ability_image(imgs: &img_ids::Imgs, ability_id: &str) -> image::Id {
"common.abilities.axe.capsize" => imgs.axe_capsize,
// Hammer
"common.abilities.hammer.solid_smash" => imgs.hammer_solid_smash,
"common.abilities.hammer.wide_wallop" => imgs.hammer_wide_wallop,
// Bow
"common.abilities.bow.charged" => imgs.bow_m1,
"common.abilities.bow.repeater" => imgs.bow_m2,