Ejemplo n.º 1
0
 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);
     }
 }
Ejemplo n.º 6
0
 private void NotifyPickableUnsensed(PickableController pickable)
 {
     if (OnPickableUnsensed != null)
     {
         OnPickableUnsensed(pickable);
     }
 }
 private void NotifyPickableSightLost(PickableController pickable)
 {
     if (OnPickableSightLost != null)
     {
         OnPickableSightLost(pickable);
     }
 }
Ejemplo n.º 8
0
 protected override void OnPickableSensed(PickableController pickable)
 {
     if (state != State.PickingWeapon && pickable.IsWeapon())
     {
         state = State.PickingWeapon;
         base.Mover.ExtremeSpeedActivated();
     }
 }
Ejemplo n.º 9
0
        public void Sense(PickableController pickable)
        {
            pickablesInSight.Add(pickable);

            pickable.OnDestroy += Unsense;

            NotifyPickableSensed(pickable);
        }
Ejemplo n.º 10
0
    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);
        }
Ejemplo n.º 12
0
 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;
     }
 }
Ejemplo n.º 13
0
 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;
     }
 }
Ejemplo n.º 14
0
 private void MedkitSearching()
 {
     if (pickableMemory.IsTypePickableInSight(PickableCategory.Util))
     {
         LookingForTypedPickable(PickableCategory.Util);
         emergencyMedkit = pickableMemory.GetPickableTarget();
     }
     else
     {
         Roaming();
     }
 }
Ejemplo n.º 15
0
 public override void PickableDetected(PickableController pickable)
 {
     if (pickable != null)
     {
         if (pickable.GetPickableType() == PickableType.Shotgun ||
             pickable.GetPickableType() == PickableType.Uzi)
         {
             target = pickable.gameObject;
             StartChasingPickable();
             StopChasing();
         }
     }
 }
Ejemplo n.º 16
0
 public void PickPickable(NpcController npcController, PickableController pickableController)
 {
     if (PickablePickedEventHandler != null)
     {
         PickablePickedEventHandler(npcController);
     }
     else
     {
         SetPickEventAction(pickableController);
         PickablePickedEventHandler?.Invoke(npcController);
         RemovePickEventAction(pickableController);
     }
 }
Ejemplo n.º 17
0
 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;
            }
        }
Ejemplo n.º 19
0
 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);
 }
Ejemplo n.º 20
0
 public override void PickableDetected(PickableController pickable)
 {
     if (!IsChasing)
     {
         if (!NeedsMedicalKit())
         {
             target = pickable.gameObject;
             StartChasing();
         }
         else
         {
             if (pickable.GetPickableType() == PickableType.MedicalKit)
             {
                 target = pickable.gameObject;
                 StartChasing();
             }
         }
     }
 }
Ejemplo n.º 21
0
 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;
         }
     }
 }
Ejemplo n.º 22
0
 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);
 }
Ejemplo n.º 25
0
 protected override void OnPickableUnsensed(PickableController pickable)
 {
 }
Ejemplo n.º 26
0
        public void Unsense(PickableController pickable)
        {
            pickablesInSight.Remove(pickable);

            NotifyPickableUnsensed(pickable);
        }
Ejemplo n.º 27
0
 private void Pickable_OnPickUp(PickableController pickableController)
 {
     pickablesInSight.Remove(pickableController);
 }
Ejemplo n.º 28
0
 private static void DestroyOutOfZonePickable(PickableController pickableController)
 {
     pickableController.DestroyPickable();
 }
Ejemplo n.º 29
0
 private void InitializeComponent()
 {
     pickable = GetComponent <PickableController>();
 }