mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Balance tweaks for harvester.
This commit is contained in:
parent
aac24ad601
commit
68c6a0a495
@ -3,9 +3,9 @@ BasicRanged(
|
|||||||
buildup_duration: 0.5,
|
buildup_duration: 0.5,
|
||||||
recover_duration: 0.8,
|
recover_duration: 0.8,
|
||||||
projectile: ExplodingPumpkin(
|
projectile: ExplodingPumpkin(
|
||||||
damage: 500.0,
|
damage: 200.0,
|
||||||
knockback: 25.0,
|
knockback: 25.0,
|
||||||
radius: 10.0,
|
radius: 5.0,
|
||||||
),
|
),
|
||||||
projectile_body: Object(Pumpkin),
|
projectile_body: Object(Pumpkin),
|
||||||
projectile_light: None,
|
projectile_light: None,
|
||||||
|
@ -2,8 +2,8 @@ BasicBeam(
|
|||||||
buildup_duration: 0.5,
|
buildup_duration: 0.5,
|
||||||
recover_duration: 0.5,
|
recover_duration: 0.5,
|
||||||
beam_duration: 1.0,
|
beam_duration: 1.0,
|
||||||
damage: 35,
|
damage: 30,
|
||||||
tick_rate: 3.0,
|
tick_rate: 1.5,
|
||||||
range: 20.0,
|
range: 20.0,
|
||||||
max_angle: 15.0,
|
max_angle: 15.0,
|
||||||
damage_effect: Some(Buff((
|
damage_effect: Some(Buff((
|
||||||
@ -15,6 +15,6 @@ BasicBeam(
|
|||||||
energy_regen: 0,
|
energy_regen: 0,
|
||||||
energy_drain: 0,
|
energy_drain: 0,
|
||||||
orientation_behavior: Normal,
|
orientation_behavior: Normal,
|
||||||
ori_rate: 0.6,
|
ori_rate: 0.2,
|
||||||
specifier: Flamethrower,
|
specifier: Flamethrower,
|
||||||
)
|
)
|
||||||
|
@ -88,12 +88,12 @@ impl CharacterBehavior for Data {
|
|||||||
data.pos.0.z.floor() as i32,
|
data.pos.0.z.floor() as i32,
|
||||||
);
|
);
|
||||||
|
|
||||||
// Check for collision in z up to 25 blocks up or down
|
// Check for collision in z up to 10 blocks up or down
|
||||||
let obstacle_z = data
|
let obstacle_z = data
|
||||||
.terrain
|
.terrain
|
||||||
.ray(
|
.ray(
|
||||||
sprite_pos.map(|x| x as f32 + 0.5) + Vec3::unit_z() * 25.0,
|
sprite_pos.map(|x| x as f32 + 0.5) + Vec3::unit_z() * 10.0,
|
||||||
sprite_pos.map(|x| x as f32 + 0.5) - Vec3::unit_z() * 25.0,
|
sprite_pos.map(|x| x as f32 + 0.5) - Vec3::unit_z() * 10.0,
|
||||||
)
|
)
|
||||||
.until(|b| {
|
.until(|b| {
|
||||||
// Until reaching a solid block that is not the created sprite
|
// Until reaching a solid block that is not the created sprite
|
||||||
@ -104,7 +104,7 @@ impl CharacterBehavior for Data {
|
|||||||
.0;
|
.0;
|
||||||
|
|
||||||
// z height relative to caster
|
// z height relative to caster
|
||||||
let z = sprite_pos.z + (25.5 - obstacle_z).ceil() as i32;
|
let z = sprite_pos.z + (10.5 - obstacle_z).ceil() as i32;
|
||||||
|
|
||||||
// Location sprite will be created
|
// Location sprite will be created
|
||||||
let sprite_pos = Vec3::new(sprite_pos.x as i32, sprite_pos.y as i32, z);
|
let sprite_pos = Vec3::new(sprite_pos.x as i32, sprite_pos.y as i32, z);
|
||||||
|
@ -3734,10 +3734,16 @@ impl<'a> AgentData<'a> {
|
|||||||
agent.action_state.condition = true;
|
agent.action_state.condition = true;
|
||||||
}
|
}
|
||||||
} else if attack_data.dist_sqrd < FIRE_BREATH_RANGE.powi(2) {
|
} else if attack_data.dist_sqrd < FIRE_BREATH_RANGE.powi(2) {
|
||||||
if matches!(self.char_state, CharacterState::BasicBeam(c) if c.timer < Duration::from_secs(10))
|
if matches!(self.char_state, CharacterState::BasicBeam(c) if c.timer < Duration::from_secs(5))
|
||||||
|
&& can_see_tgt(
|
||||||
|
&*read_data.terrain,
|
||||||
|
self.pos,
|
||||||
|
tgt_data.pos,
|
||||||
|
attack_data.dist_sqrd,
|
||||||
|
)
|
||||||
{
|
{
|
||||||
// Keep breathing fire if close enough and have not been breathing for more than
|
// Keep breathing fire if close enough, can see target, and have not been
|
||||||
// 10 seconds
|
// breathing for more than 5 seconds
|
||||||
controller
|
controller
|
||||||
.actions
|
.actions
|
||||||
.push(ControlAction::basic_input(InputKind::Secondary));
|
.push(ControlAction::basic_input(InputKind::Secondary));
|
||||||
|
Loading…
Reference in New Issue
Block a user