combat: tweaks and modified shockwave animation

This commit is contained in:
Eternalisime 2022-11-13 22:04:00 +01:00
parent a64236f50f
commit 71e59e4b81
5 changed files with 27 additions and 29 deletions

View File

@ -33,8 +33,8 @@ ComboMelee(
damage_kind: Piercing,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
initial_energy_gain: 5,
max_energy_gain: 5,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,

View File

@ -1,6 +1,6 @@
Shockwave(
energy_cost: 0,
buildup_duration: 0.9,
buildup_duration: 1.5,
swing_duration: 0.15,
recover_duration: 2.0,
damage: 15.0,

View File

@ -6,6 +6,7 @@ ItemDef(
stats: Direct((
protection: Some(Normal(100.0)),
poise_resilience: Some(Normal(2.0)),
energy_max: Some(10),
)),
)),
quality: Epic,

View File

@ -691,7 +691,7 @@ impl Body {
quadruped_medium::Species::Bonerattler => 50,
quadruped_medium::Species::Deer => 50,
quadruped_medium::Species::Hirdrasil => 70,
quadruped_medium::Species::Roshwalr => 350,
quadruped_medium::Species::Roshwalr => 500,
quadruped_medium::Species::Donkey => 55,
quadruped_medium::Species::Zebra => 55,
quadruped_medium::Species::Antelope => 45,

View File

@ -29,8 +29,8 @@ impl Animation for ShockwaveAnimation {
match stage_section {
Some(StageSection::Buildup) => (anim_time.sqrt(), 0.0, 0.0, 0.0, anim_time),
Some(StageSection::Charge) => (1.0, 1.0, 0.0, 0.0, 0.0),
Some(StageSection::Action) => (1.0, 1.0, anim_time.powi(4), 0.0, 1.0),
Some(StageSection::Recover) => (1.0, 1.0, 1.0, anim_time, 1.0),
Some(StageSection::Action) => (1.0, 1.0, anim_time.powi(4), 0.0, 0.2),
Some(StageSection::Recover) => (1.0, 1.0, 1.0, anim_time, 0.0),
_ => (0.0, 0.0, 0.0, 0.0, 0.0),
};
let pullback = 1.0 - movement3;
@ -44,7 +44,7 @@ impl Animation for ShockwaveAnimation {
//let movement2 = mirror * movement2base * pullback;
let movement1abs = movement1base * pullback;
let movement2abs = movement2base * pullback;
let legtwitch = (legtell * 6.0).sin() * pullback;
//let legtwitch = (legtell * 6.0).sin() * pullback;
let legswing = legtell * pullback;
let short = ((1.0 / (0.72 + 0.28 * ((anim_time * 16.0_f32 + PI * 0.25).sin()).powi(2)))
.sqrt())
@ -65,47 +65,44 @@ impl Animation for ShockwaveAnimation {
+ movement2abs * 1.2
+ chargemovementbase * -0.5,
);
next.torso_front.orientation =
Quaternion::rotation_z(twitch1 * 0.06) * Quaternion::rotation_y(short * 0.06);
next.torso_front.orientation = Quaternion::rotation_z(twitch1 * 0.06)
* Quaternion::rotation_y(short * 0.06)
* Quaternion::rotation_x(legswing * 0.06);
next.tail.orientation = Quaternion::rotation_x(
0.15 + movement1abs * -0.4 + movement2abs * 0.2 + chargemovementbase * 0.2,
) * Quaternion::rotation_z(shortalt * 0.15);
if legtell > 0.0 {
if mirror.is_sign_positive() {
next.leg_fl.orientation = Quaternion::rotation_x(legswing * 1.1);
next.leg_fl.orientation = Quaternion::rotation_x(legswing * 1.4);
next.foot_fl.orientation =
Quaternion::rotation_x(legswing * -1.1 + legtwitch * 0.5);
next.leg_bl.orientation = Quaternion::rotation_x(legswing * 1.1);
next.foot_fl.orientation = Quaternion::rotation_x(legswing * -0.5);
next.leg_bl.orientation = Quaternion::rotation_x(legswing * 0.3);
next.foot_bl.orientation =
Quaternion::rotation_x(legswing * -1.1 + legtwitch * 0.5);
next.foot_bl.orientation = Quaternion::rotation_x(legswing * -0.3);
next.leg_fr.orientation = Quaternion::rotation_x(0.0);
next.leg_fr.orientation = Quaternion::rotation_x(legswing * 1.4);
next.foot_fr.orientation = Quaternion::rotation_x(0.0);
next.foot_fr.orientation = Quaternion::rotation_x(legswing * -0.5);
next.leg_br.orientation = Quaternion::rotation_x(0.0);
next.leg_br.orientation = Quaternion::rotation_x(legswing * 0.3);
next.foot_br.orientation = Quaternion::rotation_x(0.0);
next.foot_br.orientation = Quaternion::rotation_x(legswing * -0.3);
} else {
next.leg_fl.orientation = Quaternion::rotation_x(0.0);
next.leg_fl.orientation = Quaternion::rotation_x(legswing * 1.4);
next.foot_fl.orientation = Quaternion::rotation_x(0.0);
next.leg_bl.orientation = Quaternion::rotation_x(0.0);
next.foot_fl.orientation = Quaternion::rotation_x(legswing * -0.5);
next.leg_bl.orientation = Quaternion::rotation_x(legswing * 0.3);
next.foot_bl.orientation = Quaternion::rotation_x(0.0);
next.foot_bl.orientation = Quaternion::rotation_x(legswing * -0.3);
next.leg_fr.orientation = Quaternion::rotation_x(legswing * 1.1);
next.leg_fr.orientation = Quaternion::rotation_x(legswing * 1.4);
next.foot_fr.orientation =
Quaternion::rotation_x(legswing * -1.1 + legtwitch * 0.5);
next.foot_fr.orientation = Quaternion::rotation_x(legswing * -0.5);
next.leg_br.orientation = Quaternion::rotation_x(legswing * 1.1);
next.leg_br.orientation = Quaternion::rotation_x(legswing * 0.3);
next.foot_br.orientation =
Quaternion::rotation_x(legswing * -1.1 + legtwitch * 0.5);
next.foot_br.orientation = Quaternion::rotation_x(legswing * -0.3);
}
};
next