Exemple #1
0
        // Add Ammo
        public static bool AddAmmo(int index, ref int addАmount)
        {
            if ((index < 0) || (index >= size))
            {
                Debug.LogError("AddAmmo ERROR: Array index out of range.");
                return(false);
            }

            int currentAmmo = GetCurrentAmmo(index);
            int maxAmmo     = GetMaxAmmo(index);

            if (currentAmmo >= maxAmmo)
            {
                return(false);
            }

            //
            int missingAmmo = Mathf.Max(0, maxAmmo - currentAmmo);

            currentAmmo += Mathf.Min(Mathf.Max(0, addАmount), missingAmmo);
            addАmount    = Mathf.Max(0, addАmount -= missingAmmo);
            SetCurrentAmmo(index, currentAmmo);

            WeaponsManager.UpdateHud();
            return(true);
        }
Exemple #2
0
            // Set PointSprite
            internal static void SetPointSprite(ECrosshairMode mode)
            {
                if (mode == ECrosshairMode.Point)
                {
                    m_Instance.pointRT.sizeDelta = Vector2.one * 2f;
                    WeaponsManager.UpdateHud(true);
                }
                else if (mode == ECrosshairMode.None)
                {
                    m_Instance.pointRT.sizeDelta = Vector2.zero;
                    WeaponsManager.UpdateHud(true);
                }
                else
                {
                    m_Instance.pointRT.sizeDelta = Vector2.one * 64f;
                    SetActive(ECrosshairView.OnlyPoint);
                }

                switch (mode)
                {
                case ECrosshairMode.None:
                case ECrosshairMode.Point:
                    m_Instance.pointImg.sprite = m_Instance.pointIcon;
                    break;

                case ECrosshairMode.Cancel:
                    m_Instance.pointImg.sprite = m_Instance.cancelIcon;
                    break;

                case ECrosshairMode.Hand:
                    m_Instance.pointImg.sprite = m_Instance.handIcon;
                    break;

                case ECrosshairMode.Swap:
                    m_Instance.pointImg.sprite = m_Instance.swapIcon;
                    break;

                case ECrosshairMode.Ammo:
                    m_Instance.pointImg.sprite = m_Instance.ammoIcon;
                    break;

                case ECrosshairMode.Health:
                    m_Instance.pointImg.sprite = m_Instance.healthIcon;
                    break;

                default:
                    break;
                }
            }
Exemple #3
0
        // Switch ProjectileType
        internal bool SwitchProjectileType()
        {
            if (projectiles.Length < 2)
            {
                return(false);
            }

            projectileIndex++;

            if (projectileIndex >= projectiles.Length)
            {
                projectileIndex = 0;
            }

            currentSlot = projectiles[projectileIndex];
            WeaponsManager.UpdateHud();
            return(true);
        }
Exemple #4
0
        // Switch ShootingMode
        internal bool SwitchShootingMode()
        {
            if (firingModes.Length < 2)
            {
                return(false);
            }

            firingModeIndex++;

            if (firingModeIndex >= firingModes.Length)
            {
                firingModeIndex = 0;
            }

            firingMode = firingModes[firingModeIndex];
            WeaponsManager.UpdateHud();
            return(true);
        }