1234567891011121314151617181920212223 |
- class CCTMan : CCTBase
- {
- protected float m_MaximalActionDistanceSq;
- protected bool m_MustBeAlive;
-
- void CCTMan ( float maximal_target_distance = UAMaxDistances.DEFAULT, bool must_be_alive = true )
- {
- m_MaximalActionDistanceSq = maximal_target_distance * maximal_target_distance;
- m_MustBeAlive = must_be_alive;
- }
-
- override bool Can( PlayerBase player, ActionTarget target )
- {
- if( !target )
- return false;
-
- Object targetObject = target.GetObject();
- if ( !player || !targetObject || targetObject == player || !targetObject.IsMan() || !player.IsFacingTarget(targetObject) || ( m_MustBeAlive && targetObject.IsDamageDestroyed() ) )
- return false;
-
- return ( vector.DistanceSq(targetObject.GetPosition(), player.GetPosition()) <= m_MaximalActionDistanceSq );
- }
- };
|