extract method

This commit is contained in:
in0finite 2020-06-05 23:22:30 +02:00
parent d37d601082
commit 03a0f5c35e

View file

@ -643,26 +643,31 @@ namespace SanAndreasUnity.Behaviours.Peds.States
{ {
if (buttonName == "G") if (buttonName == "G")
{ {
// try to recruit peds to follow you RecruitPedUnderWeaponToFollowPed(m_ped);
if (m_weapon != null) }
}
public static void RecruitPedUnderWeaponToFollowPed(Ped pedToFollow)
{
// try to recruit peds to follow you
if (pedToFollow.CurrentWeapon != null)
{
if (pedToFollow.CurrentWeapon.ProjectileRaycast(
pedToFollow.IsControlledByLocalPlayer ? pedToFollow.FirePosition : pedToFollow.NetFirePos,
pedToFollow.IsControlledByLocalPlayer ? pedToFollow.FireDirection : pedToFollow.NetFireDir,
out RaycastHit hit,
WeaponAttackParams.Default))
{ {
if (m_weapon.ProjectileRaycast( // see if ped is hit
m_ped.IsControlledByLocalPlayer ? m_ped.FirePosition : m_ped.NetFirePos, var hitPed = hit.transform.GetComponent<Ped>();
m_ped.IsControlledByLocalPlayer ? m_ped.FireDirection : m_ped.NetFireDir, if (hitPed != null && hitPed != pedToFollow && null == hitPed.PlayerOwner)
out RaycastHit hit,
WeaponAttackParams.Default))
{ {
// see if ped is hit // ray hit a ped who is not controlled by any player
var ped = hit.transform.GetComponent<Ped>(); var pedStalker = hitPed.gameObject.GetOrAddComponent<PedStalker>();
if (ped != null && ped != m_ped && null == ped.PlayerOwner) if (pedStalker.TargetPed == pedToFollow)
{ pedStalker.TargetPed = null;
// ray hit a ped who is not controlled by any player else
var pedStalker = ped.gameObject.GetOrAddComponent<PedStalker>(); pedStalker.TargetPed = pedToFollow;
if (pedStalker.TargetPed == m_ped)
pedStalker.TargetPed = null;
else
pedStalker.TargetPed = m_ped;
}
} }
} }
} }