1234567891011121314151617181920212223242526272829303132333435 |
- class CCTCursorNoRuinCheck : 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 CCTCursorNoRuinCheck( 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 targetObject = target.GetObject();
- if (!targetObject)
- targetObject = target.GetParent();
-
- if (!player || !targetObject)
- 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);
- }
- };
|