#pragma once #ifndef AI_CONDITION_HPP #define AI_CONDITION_HPP #include "AI_Fuzzy.hpp" #include "AI_TacticInterface.hpp" #include "aiutils.hpp" namespace MW4AI { namespace Conditions { Fuzzy ProjectileApproaching(TacticInterface& i, Stuff::Scalar min_distance = 0); Fuzzy HittingSomethingElse(TacticInterface& i); Fuzzy AnyWeaponReady(TacticInterface& i); Fuzzy Fired(TacticInterface& i, Stuff::Scalar within_when = 5.0f); Fuzzy TargetedByEnemy(TacticInterface& i, Stuff::Scalar duration = 0.8f); Fuzzy Rammed(TacticInterface& i, Stuff::Scalar duration = 5.0f); Fuzzy InsideRadiusOfTarget(TacticInterface& i, Stuff::Scalar radius); Fuzzy InsideRadiusOfTarget(TacticInterface&i, Stuff::Scalar radius, Stuff::Scalar when); Fuzzy InsideRadiusOfRamTarget(TacticInterface& i, Stuff::Scalar radius); Fuzzy InsideWeaponsRadiusOfTarget(TacticInterface& i, TacticInterface::WR_WHO who, TacticInterface::WR_QUALIFIER type, Stuff::Scalar multiplier = 1.0f); Fuzzy InsidePercentileRangeOf(TacticInterface& i, Stuff::Scalar percentile_range, bool nearest_enemy = false); Fuzzy PlayerWillHitMe(TacticInterface& i, Stuff::Scalar seconds, Stuff::Scalar threshold); Fuzzy VehicleCrouching(TacticInterface& i); Fuzzy VehicleMoving(TacticInterface& i); Fuzzy ClusterFuckingSomeone(TacticInterface& i, Stuff::Scalar radius = 10.0f); Fuzzy FacingTarget(TacticInterface& i); Fuzzy InFrontOfTarget(TacticInterface& i, bool fUseTorso = false); Fuzzy JumpedWithin(TacticInterface& i, Stuff::Scalar duration); bool Jumping(TacticInterface& i); Fuzzy CanBeSeenByTarget(TacticInterface& i, Stuff::Scalar within_distance = 600.0f); Fuzzy IsHighOffGround(TacticInterface& i); Fuzzy EliteLevelBetween(TacticInterface& i, UserConstants::ID min, UserConstants::ID max); Fuzzy AttackThrottleBetween(TacticInterface& i, Stuff::Scalar min, Stuff::Scalar max); }; }; #endif // AI_CONDITION_HPP