mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Addressed playtesting feedback.
This commit is contained in:
parent
6f3f6996a6
commit
14e4af7ab6
@ -50,6 +50,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- Split out the sections of the server settings that can be edited and saved by the server.
|
||||
- Revamped structure of where settings, logs, and game saves are stored so that almost everything is in one place.
|
||||
- Moved hammer leap attack to skillbar
|
||||
- Reworked fire staff
|
||||
|
||||
### Removed
|
||||
|
||||
|
@ -290,7 +290,7 @@ void main() {
|
||||
);
|
||||
} else if (inst_mode == FLAMETHROWER) {
|
||||
attr = Attr(
|
||||
(inst_dir * lifetime / inst_lifespan) + vec3(rand0, rand1, rand2) * 0.3,
|
||||
(inst_dir * lifetime / inst_lifespan) + vec3(rand0, rand1, rand2) * (lifetime * 5 + 0.25),
|
||||
vec3(0.6 + rand3 * 0.5 + lifetime / inst_lifespan * 5),
|
||||
vec4(1, 0.6 + rand5 * 0.3 - 0.6 * lifetime / inst_lifespan, 0, 0.8 - 0.6 * lifetime / inst_lifespan),
|
||||
spin_in_axis(vec3(rand6, rand7, rand8), lifetime / inst_lifespan * 10 + 3 * rand9)
|
||||
|
@ -187,6 +187,7 @@ pub enum CharacterAbility {
|
||||
damage: u32,
|
||||
knockback: f32,
|
||||
shockwave_angle: f32,
|
||||
shockwave_vertical_angle: f32,
|
||||
shockwave_speed: f32,
|
||||
shockwave_duration: Duration,
|
||||
requires_ground: bool,
|
||||
@ -631,6 +632,7 @@ impl From<&CharacterAbility> for CharacterState {
|
||||
damage,
|
||||
knockback,
|
||||
shockwave_angle,
|
||||
shockwave_vertical_angle,
|
||||
shockwave_speed,
|
||||
shockwave_duration,
|
||||
requires_ground,
|
||||
@ -643,6 +645,7 @@ impl From<&CharacterAbility> for CharacterState {
|
||||
damage: *damage,
|
||||
knockback: *knockback,
|
||||
shockwave_angle: *shockwave_angle,
|
||||
shockwave_vertical_angle: *shockwave_vertical_angle,
|
||||
shockwave_speed: *shockwave_speed,
|
||||
shockwave_duration: *shockwave_duration,
|
||||
requires_ground: *requires_ground,
|
||||
|
@ -427,15 +427,15 @@ impl Tool {
|
||||
Staff(_) => vec![
|
||||
BasicRanged {
|
||||
energy_cost: 0,
|
||||
holdable: true,
|
||||
prepare_duration: Duration::from_millis(800),
|
||||
recover_duration: Duration::from_millis(50),
|
||||
holdable: false,
|
||||
prepare_duration: Duration::from_millis(500),
|
||||
recover_duration: Duration::from_millis(350),
|
||||
projectile: Projectile {
|
||||
hit_solid: vec![
|
||||
projectile::Effect::Explode(Explosion {
|
||||
radius: 5.0,
|
||||
max_damage: (80.0 * self.base_power()) as u32,
|
||||
min_damage: (20.0 * self.base_power()) as u32,
|
||||
max_damage: (100.0 * self.base_power()) as u32,
|
||||
min_damage: 0,
|
||||
max_heal: 0,
|
||||
min_heal: 0,
|
||||
terrain_destruction_power: 0.0,
|
||||
@ -446,8 +446,8 @@ impl Tool {
|
||||
hit_entity: vec![
|
||||
projectile::Effect::Explode(Explosion {
|
||||
radius: 5.0,
|
||||
max_damage: (80.0 * self.base_power()) as u32,
|
||||
min_damage: (20.0 * self.base_power()) as u32,
|
||||
max_damage: (100.0 * self.base_power()) as u32,
|
||||
min_damage: 0,
|
||||
max_heal: 0,
|
||||
min_heal: 0,
|
||||
terrain_destruction_power: 0.0,
|
||||
@ -473,14 +473,14 @@ impl Tool {
|
||||
recover_duration: Duration::from_millis(250),
|
||||
beam_duration: Duration::from_millis(500),
|
||||
base_hps: 0,
|
||||
base_dps: (200.0 * self.base_power()) as u32,
|
||||
base_dps: (150.0 * self.base_power()) as u32,
|
||||
tick_rate: 3.0,
|
||||
range: 15.0,
|
||||
max_angle: 22.5,
|
||||
lifesteal_eff: 0.0,
|
||||
energy_regen: 0,
|
||||
energy_cost: 0,
|
||||
energy_drain: 400,
|
||||
energy_drain: 350,
|
||||
ability_key: AbilityKey::Mouse2,
|
||||
},
|
||||
Shockwave {
|
||||
@ -491,10 +491,11 @@ impl Tool {
|
||||
damage: (200.0 * self.base_power()) as u32,
|
||||
knockback: 25.0,
|
||||
shockwave_angle: 360.0,
|
||||
shockwave_vertical_angle: 90.0,
|
||||
shockwave_speed: 20.0,
|
||||
shockwave_duration: Duration::from_millis(500),
|
||||
requires_ground: false,
|
||||
move_efficiency: 0.8,
|
||||
move_efficiency: 0.1,
|
||||
},
|
||||
],
|
||||
Shield(_) => vec![
|
||||
@ -529,6 +530,7 @@ impl Tool {
|
||||
damage: 500,
|
||||
knockback: -40.0,
|
||||
shockwave_angle: 90.0,
|
||||
shockwave_vertical_angle: 15.0,
|
||||
shockwave_speed: 20.0,
|
||||
shockwave_duration: Duration::from_millis(2000),
|
||||
requires_ground: true,
|
||||
|
@ -7,6 +7,7 @@ use std::time::Duration;
|
||||
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
|
||||
pub struct Properties {
|
||||
pub angle: f32,
|
||||
pub vertical_angle: f32,
|
||||
pub speed: f32,
|
||||
pub damage: u32,
|
||||
pub knockback: f32,
|
||||
|
@ -100,7 +100,7 @@ impl CharacterBehavior for Data {
|
||||
timer: Duration::default(),
|
||||
stage_section: StageSection::Cast,
|
||||
particle_ori: Some(*data.inputs.look_dir),
|
||||
offset: eye_height * 0.9,
|
||||
offset: eye_height * 0.55,
|
||||
});
|
||||
}
|
||||
},
|
||||
|
@ -22,6 +22,8 @@ pub struct StaticData {
|
||||
pub knockback: f32,
|
||||
/// Angle of the shockwave
|
||||
pub shockwave_angle: f32,
|
||||
/// Vertical angle of the shockwave
|
||||
pub shockwave_vertical_angle: f32,
|
||||
/// Speed of the shockwave
|
||||
pub shockwave_speed: f32,
|
||||
/// How long the shockwave travels for
|
||||
@ -65,6 +67,7 @@ impl CharacterBehavior for Data {
|
||||
// Attack
|
||||
let properties = shockwave::Properties {
|
||||
angle: self.static_data.shockwave_angle,
|
||||
vertical_angle: self.static_data.shockwave_vertical_angle,
|
||||
speed: self.static_data.shockwave_speed,
|
||||
duration: self.static_data.shockwave_duration,
|
||||
damage: self.static_data.damage,
|
||||
|
@ -170,7 +170,7 @@ impl<'a> System<'a> for Sys {
|
||||
|
||||
// Angle checks
|
||||
let pos_b_ground = Vec3::new(pos_b.0.x, pos_b.0.y, pos.0.z);
|
||||
let max_angle = 15.0_f32.to_radians();
|
||||
let max_angle = shockwave.vertical_angle.to_radians();
|
||||
|
||||
// See if entities are in the same group
|
||||
let same_group = group
|
||||
|
@ -496,9 +496,7 @@ pub fn handle_explosion(
|
||||
let ecs = &server.state.ecs();
|
||||
|
||||
let outcome_power = if explosion.max_heal > explosion.max_damage {
|
||||
-explosion
|
||||
.terrain_destruction_power
|
||||
.min(explosion.max_heal as f32 / -100.0)
|
||||
(-explosion.terrain_destruction_power).min(explosion.max_heal as f32 / -100.0)
|
||||
} else {
|
||||
explosion
|
||||
.terrain_destruction_power
|
||||
|
@ -78,7 +78,7 @@ impl ParticleMgr {
|
||||
);
|
||||
} else {
|
||||
self.particles.resize_with(
|
||||
self.particles.len() + (50.0 * power.abs()) as usize,
|
||||
self.particles.len() + (200.0 * power.abs()) as usize,
|
||||
|| {
|
||||
Particle::new(
|
||||
Duration::from_secs(1),
|
||||
|
Loading…
Reference in New Issue
Block a user