mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Fix up comments relating to AI logic
This commit is contained in:
parent
8dd2202e1a
commit
b338abd761
@ -2477,7 +2477,8 @@ impl<'a> AgentData<'a> {
|
|||||||
&& self.energy.current() > CharacterAbility::default_roll().get_energy_cost()
|
&& self.energy.current() > CharacterAbility::default_roll().get_energy_cost()
|
||||||
&& !matches!(self.char_state, CharacterState::Shockwave(_))
|
&& !matches!(self.char_state, CharacterState::Shockwave(_))
|
||||||
{
|
{
|
||||||
// if a humanoid, have enough stamina, and in melee range, emergency roll
|
// if a humanoid, have enough stamina, not in shockwave, and in melee range,
|
||||||
|
// emergency roll
|
||||||
controller
|
controller
|
||||||
.actions
|
.actions
|
||||||
.push(ControlAction::basic_input(InputKind::Roll));
|
.push(ControlAction::basic_input(InputKind::Roll));
|
||||||
@ -2491,8 +2492,7 @@ impl<'a> AgentData<'a> {
|
|||||||
.push(ControlAction::basic_input(InputKind::Ability(0)));
|
.push(ControlAction::basic_input(InputKind::Ability(0)));
|
||||||
} else if !matches!(self.char_state, CharacterState::Shockwave(c) if !matches!(c.stage_section, StageSection::Recover))
|
} else if !matches!(self.char_state, CharacterState::Shockwave(c) if !matches!(c.stage_section, StageSection::Recover))
|
||||||
{
|
{
|
||||||
// only try to use another ability if not already in recover and not casting
|
// only try to use another ability unless in shockwave or recover
|
||||||
// shockwave
|
|
||||||
let target_approaching_speed = -agent
|
let target_approaching_speed = -agent
|
||||||
.target
|
.target
|
||||||
.as_ref()
|
.as_ref()
|
||||||
@ -2502,8 +2502,8 @@ impl<'a> AgentData<'a> {
|
|||||||
if self
|
if self
|
||||||
.skill_set
|
.skill_set
|
||||||
.has_skill(Skill::Staff(StaffSkill::UnlockShockwave))
|
.has_skill(Skill::Staff(StaffSkill::UnlockShockwave))
|
||||||
&& target_approaching_speed > 20.0
|
&& target_approaching_speed > 12.0
|
||||||
&& self.energy.current() > 200
|
&& self.energy.current() > shockwave_cost
|
||||||
{
|
{
|
||||||
// if enemy is closing distance quickly, use shockwave to knock back
|
// if enemy is closing distance quickly, use shockwave to knock back
|
||||||
if matches!(self.char_state, CharacterState::Wielding) {
|
if matches!(self.char_state, CharacterState::Wielding) {
|
||||||
@ -2579,7 +2579,8 @@ impl<'a> AgentData<'a> {
|
|||||||
// Sometimes try to roll
|
// Sometimes try to roll
|
||||||
if self.body.map_or(false, |b| b.is_humanoid())
|
if self.body.map_or(false, |b| b.is_humanoid())
|
||||||
&& attack_data.dist_sqrd < 16.0f32.powi(2)
|
&& attack_data.dist_sqrd < 16.0f32.powi(2)
|
||||||
&& thread_rng().gen::<f32>() < 0.01
|
&& !matches!(self.char_state, CharacterState::Shockwave(_))
|
||||||
|
&& thread_rng().gen::<f32>() < 0.02
|
||||||
{
|
{
|
||||||
controller
|
controller
|
||||||
.actions
|
.actions
|
||||||
|
Loading…
Reference in New Issue
Block a user