1234567891011121314151617181920212223242526 |
- class CCTCursorNoObject : CCTBase
- {
- protected float m_MaximalActionDistanceSq;
-
- void CCTCursorNoObject ( float maximal_target_distance )
- {
- m_MaximalActionDistanceSq = maximal_target_distance * maximal_target_distance;
- }
-
- override bool Can( PlayerBase player, ActionTarget target )
- {
- if ( !target )
- return false;
-
- if ( GetGame().IsServer() && GetGame().IsMultiplayer() )
- return true;
-
- vector playerHeadPos;
- MiscGameplayFunctions.GetHeadBonePos(player, playerHeadPos);
-
- float distanceRoot = vector.DistanceSq(target.GetCursorHitPos(), player.GetPosition());
- float distanceHead = vector.DistanceSq(target.GetCursorHitPos(), playerHeadPos);
-
- return ( distanceRoot <= m_MaximalActionDistanceSq || distanceHead <= m_MaximalActionDistanceSq );
- }
- };
|