This commit is contained in:
Sam 2021-04-13 01:46:42 -04:00
parent 91c6288213
commit f5ec23df48
4 changed files with 22 additions and 12 deletions

View File

@ -3,4 +3,5 @@ BasicBlock(
recover_duration: 0.1,
max_angle: 90.0,
block_strength: 0.8,
energy_cost: 0.0,
)

View File

@ -12,8 +12,8 @@ use crate::{
},
poise::PoiseChange,
skills::SkillGroupKind,
Body, CharacterState, Combo, Energy, EnergyChange, EnergySource, Health, HealthChange, HealthSource,
Inventory, Ori, SkillSet, Stats,
Body, CharacterState, Combo, Energy, EnergyChange, EnergySource, Health, HealthChange,
HealthSource, Inventory, Ori, SkillSet, Stats,
},
event::ServerEvent,
outcome::Outcome,
@ -125,7 +125,11 @@ impl Attack {
{
if ori.look_vec().angle_between(-*dir) < data.static_data.max_angle.to_radians()
{
data.static_data.block_strength
if data.parry {
1.0
} else {
data.static_data.block_strength
}
} else {
0.0
}

View File

@ -119,6 +119,7 @@ pub enum CharacterAbility {
recover_duration: f32,
max_angle: f32,
block_strength: f32,
energy_cost: f32,
},
Roll {
energy_cost: f32,
@ -310,7 +311,8 @@ impl CharacterAbility {
| CharacterAbility::ChargedRanged { energy_cost, .. }
| CharacterAbility::ChargedMelee { energy_cost, .. }
| CharacterAbility::Shockwave { energy_cost, .. }
| CharacterAbility::BasicAura { energy_cost, .. } => update
| CharacterAbility::BasicAura { energy_cost, .. }
| CharacterAbility::BasicBlock { energy_cost, .. } => update
.energy
.try_change_by(-(*energy_cost as i32), EnergySource::Ability)
.is_ok(),
@ -352,6 +354,7 @@ impl CharacterAbility {
recover_duration: 0.1,
max_angle: 60.0,
block_strength: 0.5,
energy_cost: 50.0,
}
}
@ -600,7 +603,8 @@ impl CharacterAbility {
| ChargedRanged { energy_cost, .. }
| Shockwave { energy_cost, .. }
| HealingBeam { energy_cost, .. }
| BasicAura { energy_cost, .. } => *energy_cost as u32,
| BasicAura { energy_cost, .. }
| BasicBlock { energy_cost, .. } => *energy_cost as u32,
BasicBeam { energy_drain, .. } => {
if *energy_drain > f32::EPSILON {
1
@ -608,11 +612,7 @@ impl CharacterAbility {
0
}
},
BasicBlock { .. }
| Boost { .. }
| ComboMelee { .. }
| Blink { .. }
| BasicSummon { .. } => 0,
Boost { .. } | ComboMelee { .. } | Blink { .. } | BasicSummon { .. } => 0,
}
}
@ -1266,6 +1266,7 @@ impl From<(&CharacterAbility, AbilityInfo)> for CharacterState {
recover_duration,
max_angle,
block_strength,
energy_cost: _,
} => CharacterState::BasicBlock(basic_block::Data {
static_data: basic_block::StaticData {
buildup_duration: Duration::from_secs_f32(*buildup_duration),

View File

@ -49,14 +49,18 @@ impl CharacterBehavior for Data {
.timer
.checked_add(Duration::from_secs_f32(data.dt.0))
.unwrap_or_default(),
parry: !input_is_pressed(data, InputKind::Block),
parry: self.parry || !input_is_pressed(data, InputKind::Block),
..*self
});
} else {
// Transitions to swing section of stage
update.character = CharacterState::BasicBlock(Data {
timer: Duration::default(),
stage_section: StageSection::Swing,
stage_section: if self.parry {
StageSection::Recover
} else {
StageSection::Swing
},
..*self
});
}