1234567891011121314151617181920212223242526272829303132 |
- class CCTCursorParent : CCTBase
- {
- protected float m_MaximalActionDistanceSq;
-
- //approximate head heights
- const float HEIGHT_ERECT = 1.6;
- const float HEIGHT_CROUCH = 1.05;
- const float HEIGHT_PRONE = 0.66;
-
- void CCTCursorParent( float maximal_target_distance = UAMaxDistances.DEFAULT )
- {
- m_MaximalActionDistanceSq = maximal_target_distance * maximal_target_distance;
- }
-
- override bool Can( PlayerBase player, ActionTarget target )
- {
- if( !target )
- return false;
-
- Object parentObject = target.GetParent();
- if ( !player || !parentObject || parentObject.IsDamageDestroyed() )
- return false;
-
- 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 );
- }
- };
|