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; } }
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; }
public void StopFiringRangedWeapon() { if(_parentCharacter.MyReference.CurrentWeapon != null) { _parentCharacter.MyReference.CurrentWeapon.GetComponent<Gun>().TriggerRelease(); } AIWeaponState = AIWeaponStates.None; _triggerState = AIWeaponTriggerState.Released; }
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; } }
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; } }