protected override void OnPickableUnsensed(PickableController pickable) { if (base.PickableSensor.GetFirstMedkit == null && !health.IsLowLife) { if (base.EnnemySensor.GetFirstEnnemy == null) { if (base.PickableSensor.GetFirstWeapon == null) { state = State.Seeking; } else { state = State.PickingWeapon; } } else { state = State.Shooting; } } else if (state != State.Shooting || state != State.PickingWeapon || health.IsLowLife) { state = State.PickingMedkit; } }
public void TargetNearestTypedPickable(Vector3 selfPosition, PickableCategory type) { PickableController nearestPickable = null; foreach (var pickable in pickablesInSight) { if (pickable != null) { if (pickable.Category == type) { if (nearestPickable == null) { nearestPickable = pickable; } else if (IsVectorCloserThanOtherVector( selfPosition, pickable.transform.root.position, nearestPickable.transform.root.position)) { nearestPickable = pickable; } } } } target = nearestPickable; }
private void UpdateTargetInformation() { if (!NpcSensorSight.NpcsInSight.Any()) { CurrentEnemyTarget = null; } else if (CurrentEnemyTarget == null) { CurrentEnemyTarget = NpcSensorSight.GetClosestNpc(); } if (NpcSensorSight.PickablesInSight.Any() && CurrentMedicalKitTarget == null) { CurrentMedicalKitTarget = NpcSensorSight.GetClosestPickable(TypePickable.Medicalkit); } if (NpcSensorSight.PickablesInSight.Any() && CurrentShotgunTarget == null) { CurrentShotgunTarget = NpcSensorSight.GetClosestPickable(TypePickable.Shotgun); } if (NpcSensorSight.PickablesInSight.Any() && CurrentUziTarget == null) { CurrentUziTarget = NpcSensorSight.GetClosestPickable(TypePickable.Uzi); } UpdateCurrentEnemyDistance(); }
public PickableController GetClosestPickable(TypePickable typePickable) { PickableController closestPickable = null; var distance = float.MaxValue; foreach (var pickable in pickablesInSight) { if (pickable.GetPickableType() != typePickable) { continue; } if (closestPickable == null) { closestPickable = pickable; distance = Vector3.Distance(closestPickable.transform.position, transform.root.position); } else { var currentPickableDistance = Vector3.Distance(closestPickable.transform.position, pickable.transform.position); if (distance > currentPickableDistance) { distance = currentPickableDistance; closestPickable = pickable; } } } return(closestPickable); }
private void NotifyPickableSeen(PickableController pickable) { if (OnPickableSeen != null) { OnPickableSeen(pickable); } }
private void NotifyPickableUnsensed(PickableController pickable) { if (OnPickableUnsensed != null) { OnPickableUnsensed(pickable); } }
private void NotifyPickableSightLost(PickableController pickable) { if (OnPickableSightLost != null) { OnPickableSightLost(pickable); } }
protected override void OnPickableSensed(PickableController pickable) { if (state != State.PickingWeapon && pickable.IsWeapon()) { state = State.PickingWeapon; base.Mover.ExtremeSpeedActivated(); } }
public void Sense(PickableController pickable) { pickablesInSight.Add(pickable); pickable.OnDestroy += Unsense; NotifyPickableSensed(pickable); }
private void Awake() { Instance = this; for (int i = 0; i < Slots.Count; i++) { Slots[i].Hide(); } }
private void OnPickableDestroy(PickableController pickable) { if (pickable == target) { target = null; } Remove(pickable); }
protected override void OnPickableSensed(PickableController pickable) { if (pickable.IsMedkit() && state != State.Shooting) { state = State.PickingMedkit; } if (pickable.IsWeapon() && state == State.Seeking && !health.IsLowLife) { state = State.PickingWeapon; } }
protected override void OnPickableSensed(PickableController pickable) { if (state == State.Seeking && pickable.IsWeapon()) { state = State.PickingWeapon; } else if (pickable.IsMedkit() && state != State.PickingMedkit && state != State.SearchingEnnemy && state != State.Shooting) { state = State.PickingMedkit; medkitPosition = pickable.transform.position; } }
private void MedkitSearching() { if (pickableMemory.IsTypePickableInSight(PickableCategory.Util)) { LookingForTypedPickable(PickableCategory.Util); emergencyMedkit = pickableMemory.GetPickableTarget(); } else { Roaming(); } }
public override void PickableDetected(PickableController pickable) { if (pickable != null) { if (pickable.GetPickableType() == PickableType.Shotgun || pickable.GetPickableType() == PickableType.Uzi) { target = pickable.gameObject; StartChasingPickable(); StopChasing(); } } }
public void PickPickable(NpcController npcController, PickableController pickableController) { if (PickablePickedEventHandler != null) { PickablePickedEventHandler(npcController); } else { SetPickEventAction(pickableController); PickablePickedEventHandler?.Invoke(npcController); RemovePickEventAction(pickableController); } }
protected override void OnPickableUnsensed(PickableController pickable) { if (state == State.PickingWeapon && base.PickableSensor.GetFirstWeapon == null) { if (base.EnnemySensor.GetFirstEnnemy == null) { state = State.Seeking; } else { state = State.Shooting; } } }
private void UpdateCampedMedicalKit() { if (campedMedKit == null && CurrentMedicalKitTarget != null) { campedMedKit = CurrentMedicalKitTarget; } if (campedMedKit != null && Vector3.Distance(Mover.transform.root.position, campedMedKit.transform.root.position) <= 3) { isCamping = true; } else { isCamping = false; } }
public static PickableControllerWeapon TargetWeapon(PickableSensor pickableSensor) { if (pickableSensor.PickablesInSight.Count() > 0) { var pickableProvider = new LoopingEnumerator <PickableController>(pickableSensor.PickablesInSight); int test = pickableSensor.PickablesInSight.Count(); for (var i = 0; i < test; i++) { PickableController controller = pickableProvider.Next(); if (controller is PickableControllerWeapon) { return(controller as PickableControllerWeapon); } } } return(null); }
public override void PickableDetected(PickableController pickable) { if (!IsChasing) { if (!NeedsMedicalKit()) { target = pickable.gameObject; StartChasing(); } else { if (pickable.GetPickableType() == PickableType.MedicalKit) { target = pickable.gameObject; StartChasing(); } } } }
public override void PickableDetected(PickableController pickable) { if (pickable != null) { if (pickable.GetPickableType() == PickableType.MedicalKit && IsChasingMedic == false) { target = pickable.gameObject; StartChasingMedic(); IsSearching = false; } else if (pickable.GetPickableType() == PickableType.Shotgun || pickable.GetPickableType() == PickableType.Uzi) { target = pickable.gameObject; StartChasingGun(); StopChasingMedic(); IsSearching = false; } } }
protected override void OnPickableUnsensed(PickableController pickable) { if (state != State.Seeking && state != State.PickingWeapon && base.PickableSensor.GetFirstMedkit == null) { medkitPosition = null; if (base.PickableSensor.GetFirstWeapon == null) { state = State.Seeking; } else { state = State.PickingWeapon; } } else if (state == State.PickingWeapon && base.PickableSensor.GetFirstWeapon == null) { state = State.Seeking; } else if (pickable.IsMedkit()) { medkitPosition = base.PickableSensor.GetFirstMedkit.transform.position; } }
public void LoseSightOfPickable(PickableController pickable) { pickablesInSight.Remove(pickable); NotifyPickableSightLost(pickable); }
public void SeePickable(PickableController pickable) { pickablesInSight.Add(pickable); NotifyPickableSeen(pickable); }
protected override void OnPickableUnsensed(PickableController pickable) { }
public void Unsense(PickableController pickable) { pickablesInSight.Remove(pickable); NotifyPickableUnsensed(pickable); }
private void Pickable_OnPickUp(PickableController pickableController) { pickablesInSight.Remove(pickableController); }
private static void DestroyOutOfZonePickable(PickableController pickableController) { pickableController.DestroyPickable(); }
private void InitializeComponent() { pickable = GetComponent <PickableController>(); }