Example #1
0
    private void HandleFiringRangedWeapon()
    {
        /*
        if(_parentCharacter.MyAI.BlackBoard.TargetEnemy == null)
        {
            StopFiringRangedWeapon();
            return;
        }
        */

        float aimAngleThreshold = 20;
        Vector3 aimPoint = _parentCharacter.MyAI.BlackBoard.AimPoint;
        float aimAngle = Vector3.Angle(aimPoint - _parentCharacter.MyReference.CurrentWeapon.transform.position, _parentCharacter.MyReference.CurrentWeapon.transform.forward);
        float climb = _parentCharacter.AimTarget.localPosition.y;
        bool aimReady = _parentCharacter.MyAI.ControlType == AIControlType.Player ? true : (aimAngle < aimAngleThreshold);

        if(climb >= 0.05f && _triggerState == AIWeaponTriggerState.WaitForRecoil)
        {

        }
        else if(climb < 0.05f && aimReady && _triggerState != AIWeaponTriggerState.Pulled)
        {
            _parentCharacter.MyReference.CurrentWeapon.GetComponent<Gun>().TriggerPull();
            _triggerState = AIWeaponTriggerState.Pulled;
        }
        else if(climb >= 0.2f && _triggerState == AIWeaponTriggerState.Pulled)
        {
            _parentCharacter.MyReference.CurrentWeapon.GetComponent<Gun>().TriggerRelease();
            _triggerState = AIWeaponTriggerState.WaitForRecoil;
        }
    }
Example #2
0
 public void StopFiringRangedWeapon()
 {
     if (_parentCharacter.MyReference.CurrentWeapon != null && _parentCharacter.MyReference.CurrentWeapon.GetComponent <Weapon>().IsRanged)
     {
         _parentCharacter.MyReference.CurrentWeapon.GetComponent <Gun>().TriggerRelease();
     }
     AIWeaponState = AIWeaponStates.None;
     _triggerState = AIWeaponTriggerState.Released;
 }
Example #3
0
 public void StopFiringRangedWeapon()
 {
     if(_parentCharacter.MyReference.CurrentWeapon != null)
     {
         _parentCharacter.MyReference.CurrentWeapon.GetComponent<Gun>().TriggerRelease();
     }
     AIWeaponState = AIWeaponStates.None;
     _triggerState = AIWeaponTriggerState.Released;
 }
Example #4
0
    private void HandleFiringRangedWeapon()
    {
        /*
         * if(_parentCharacter.MyAI.BlackBoard.TargetEnemy == null)
         * {
         *      StopFiringRangedWeapon();
         *      return;
         * }
         */

        float   aimAngleThreshold = 10;
        Vector3 aimPoint          = _parentCharacter.MyAI.BlackBoard.AimPoint;
        float   aimAngle          = Vector3.Angle(aimPoint - _parentCharacter.MyReference.CurrentWeapon.transform.position, _parentCharacter.MyReference.CurrentWeapon.transform.forward);
        float   climb             = _parentCharacter.AimTarget.localPosition.y;
        bool    aimReady          = _parentCharacter.MyAI.ControlType == AIControlType.Player ? true : (aimAngle < aimAngleThreshold);
        //Debug.Log("Trigger pull aim ready? " + aimReady + " " + _parentCharacter.name);
        float maxClimb = 0.1f;

        if (_parentCharacter.MyAI.ControlType == AIControlType.Player)
        {
            maxClimb = 0.5f;
        }

        if (climb >= 0.05f && _triggerState == AIWeaponTriggerState.WaitForRecoil)
        {
        }
        else if (climb < 0.05f && aimReady)
        {
            Gun gun = _parentCharacter.MyReference.CurrentWeapon.GetComponent <Gun>();
            if (gun.CurrentFireMode == GunFireModes.Full && _triggerState != AIWeaponTriggerState.Pulled)
            {
                gun.TriggerPull();
                _triggerState = AIWeaponTriggerState.Pulled;
            }
            else if (gun.CurrentFireMode == GunFireModes.Semi || gun.CurrentFireMode == GunFireModes.Burst || gun.CurrentFireMode == GunFireModes.Pump || gun.CurrentFireMode == GunFireModes.Bolt)
            {
                gun.TriggerPull();
                gun.TriggerRelease();
                _triggerState = AIWeaponTriggerState.Released;
            }
        }
        else if (climb >= maxClimb && _triggerState == AIWeaponTriggerState.Pulled)
        {
            _parentCharacter.MyReference.CurrentWeapon.GetComponent <Gun>().TriggerRelease();
            _triggerState = AIWeaponTriggerState.WaitForRecoil;
        }
    }
Example #5
0
	private void HandleFiringRangedWeapon()
	{
		/*
		if(_parentCharacter.MyAI.BlackBoard.TargetEnemy == null)
		{
			StopFiringRangedWeapon();
			return;
		}
		*/

		float aimAngleThreshold = 10;
		Vector3 aimPoint = _parentCharacter.MyAI.BlackBoard.AimPoint;
		float aimAngle = Vector3.Angle(aimPoint - _parentCharacter.MyReference.CurrentWeapon.transform.position, _parentCharacter.MyReference.CurrentWeapon.transform.forward);
		float climb = _parentCharacter.AimTarget.localPosition.y;
		bool aimReady = _parentCharacter.MyAI.ControlType == AIControlType.Player ? true : (aimAngle < aimAngleThreshold);
		//Debug.Log("Trigger pull aim ready? " + aimReady + " " + _parentCharacter.name);
		if(climb >= 0.05f && _triggerState == AIWeaponTriggerState.WaitForRecoil)
		{

		}
		else if(climb < 0.05f && aimReady)
		{
			
			Gun gun = _parentCharacter.MyReference.CurrentWeapon.GetComponent<Gun>();
			if(gun.CurrentFireMode == GunFireModes.Full && _triggerState != AIWeaponTriggerState.Pulled)
			{
				
				gun.TriggerPull();
				_triggerState = AIWeaponTriggerState.Pulled;
			}
			else if(gun.CurrentFireMode == GunFireModes.Semi || gun.CurrentFireMode == GunFireModes.Burst || gun.CurrentFireMode == GunFireModes.Pump || gun.CurrentFireMode == GunFireModes.Bolt)
			{
				gun.TriggerPull();
				gun.TriggerRelease();
				_triggerState = AIWeaponTriggerState.Released;
			}
		}
		else if(climb >= 0.2f && _triggerState == AIWeaponTriggerState.Pulled)
		{
			_parentCharacter.MyReference.CurrentWeapon.GetComponent<Gun>().TriggerRelease();
			_triggerState = AIWeaponTriggerState.WaitForRecoil;
		}
	}