Beispiel #1
0
 private static void SetActive(bool on)
 {
     if (on)
     {
         if (!LockOnHelper.CanEnable())
         {
             return;
         }
         LockOnHelper.RefreshTargets(Main.MouseWorld, 2000f);
         LockOnHelper.GetClosestTarget(Main.MouseWorld);
         if (LockOnHelper._pickedTarget < 0)
         {
             return;
         }
         LockOnHelper._enabled = true;
     }
     else
     {
         LockOnHelper._enabled = false;
         LockOnHelper._targets.Clear();
         LockOnHelper._lifeTimeCounter     = 0;
         LockOnHelper._threeDSTarget       = -1;
         LockOnHelper._targetClosestTarget = -1;
     }
 }
Beispiel #2
0
        // Token: 0x06000E2F RID: 3631 RVA: 0x003E7F18 File Offset: 0x003E6118
        public static void Update()
        {
            LockOnHelper._canLockOn = false;
            if (!PlayerInput.UsingGamepad)
            {
                LockOnHelper.SetActive(false);
                return;
            }
            if (--LockOnHelper._lifeTimeArrowDisplay < 0)
            {
                LockOnHelper._lifeTimeArrowDisplay = 0;
            }
            LockOnHelper.Handle3DSTarget();
            if (PlayerInput.Triggers.JustPressed.LockOn && !PlayerInput.WritingText)
            {
                LockOnHelper._lifeTimeCounter      = 40;
                LockOnHelper._lifeTimeArrowDisplay = 30;
                LockOnHelper.HandlePressing();
            }
            if (!LockOnHelper._enabled)
            {
                return;
            }
            if (LockOnHelper.UseMode == LockOnHelper.LockOnMode.FocusTarget && PlayerInput.Triggers.Current.LockOn)
            {
                if (LockOnHelper._lifeTimeCounter <= 0)
                {
                    LockOnHelper.SetActive(false);
                    return;
                }
                LockOnHelper._lifeTimeCounter--;
            }
            NPC aimedTarget = LockOnHelper.AimedTarget;

            if (!LockOnHelper.ValidTarget(aimedTarget))
            {
                LockOnHelper.SetActive(false);
            }
            if (LockOnHelper.UseMode == LockOnHelper.LockOnMode.TargetClosest)
            {
                LockOnHelper.SetActive(false);
                LockOnHelper.SetActive(LockOnHelper.CanEnable());
            }
            if (!LockOnHelper._enabled)
            {
                return;
            }
            Player  player            = Main.player[Main.myPlayer];
            Vector2 predictedPosition = LockOnHelper.PredictedPosition;
            bool    flag = false;

            if (LockOnHelper.ShouldLockOn(player) && (ItemID.Sets.LockOnIgnoresCollision[player.inventory[player.selectedItem].type] || Collision.CanHit(player.Center, 0, 0, predictedPosition, 0, 0) || Collision.CanHitLine(player.Center, 0, 0, predictedPosition, 0, 0) || Collision.CanHit(player.Center, 0, 0, aimedTarget.Center, 0, 0) || Collision.CanHitLine(player.Center, 0, 0, aimedTarget.Center, 0, 0)))
            {
                flag = true;
            }
            if (flag)
            {
                LockOnHelper._canLockOn = true;
            }
        }