Exemple #1
0
    public void SetActive(WeaponBase.WeaponType weaponType, int ammo)
    {
        _activeWeapon.enabled = false;
        foreach (var playerWeapon in playerWeapons)
        {
            playerWeapon.playerWeaponController = this;
            playerWeapon._playerId = _playerId;
            if (playerWeapon.weaponType == weaponType)
            {
                _activeWeapon           = playerWeapon;
                _activeWeapon.enabled   = true;
                _activeWeapon.ammoCount = ammo;
                if (weaponType != WeaponBase.WeaponType.basic)
                {
                    _gameController.updateAmmo(_playerId, ammo.ToString());
                }
                else
                {
                    _gameController.updateAmmo(_playerId, "*");
                }

                return;
            }
        }
    }
    void SetWeapon(WeaponBase.WeaponType newWeaponType)
    {
        currentWeapon.SetActive(false);

        currentWeaponType = newWeaponType;
        currentWeapon     = weaponsTypes[newWeaponType];
        currentWeapon.SetActive(true);
        currentWeapon.GetComponent <WeaponBase>().mayAttack = true;
    }
Exemple #3
0
    public WeaponBase GetWeapon(WeaponBase.WeaponType weaponType)
    {
        int index = (int)weaponType;

        if (_indexedWeapons[index] == null)
        {
            Debug.LogError("A weapon of type >>" + weaponType + "<< is not present in weaponsManager. Please create one.");
            return(null);
        }
        return(_indexedWeapons[index]);
    }
 public void HandleChangeWeapon(string newWeaponType)
 {
     if (newWeaponType != currentWeaponType.ToString())
     {
         WeaponBase.WeaponType newType = (WeaponBase.WeaponType)Enum.Parse(typeof(WeaponBase.WeaponType), newWeaponType);
         SetWeapon(newType);
         print($"Weapon changed to {newType}");
     }
     else
     {
         print($"{newWeaponType.ToString()} is allready active");
     }
 }
    void Start()
    {
        weaponsTypes = new Dictionary <WeaponBase.WeaponType, GameObject>();
        EventBus.Subscribe(this);

        foreach (GameObject weapon in weapons)
        {
            WeaponBase.WeaponType type = weapon.GetComponent <WeaponBase>().type;
            weaponsTypes.Add(type, weapon);
            weaponsTypes[type].SetActive(false);
        }

        currentWeapon = weaponsTypes[WeaponBase.WeaponType.Pistol];
        currentWeapon.SetActive(true);
    }
Exemple #6
0
 /// <summary>
 /// Function to make the player switch to another weapon
 /// </summary>
 private void ChangeActiveWeapon(WeaponBase.WeaponType weaponType)
 {
     _isWeaponBeingSwitched = true;
     PlayerAttack.Instance.OnPrimaryAttackEnd();
     AnimatorStates.Set(AnimatorStates.AnimationParameter.Unwield, _activeWeapon.weaponType);
     SoundManager.Instance.PlayWeaponChange(_activeWeapon.audioClipUnwield);
     if (_prevDelayedCallWeaponChange != -1)
     {
         DelayedCaller.Instance.RemoveDelayedCall(_prevDelayedCallWeaponChange);
     }
     _prevDelayedCallWeaponChange = DelayedCaller.Instance.AddDelayedCall(() =>
     {
         _isWeaponBeingSwitched = false;
         _weaponSprites[(int)_activeWeapon.weaponType - 1].SetActive(false);
         _activeWeapon = WeaponsManager.Instance.GetWeapon(weaponType);
         _weaponSprites[(int)weaponType - 1].SetActive(true);
         SoundManager.Instance.PlayWeaponChange(_activeWeapon.audioClipWield);
     }, _weaponUnwieldTime);
 }
Exemple #7
0
 public void PlayEjectedShellHitAudio(AudioSource audioSource, WeaponBase.WeaponType weaponType)
 {
     audioSource.PlayOneShot(_ejectedShellAudioDatas[((int)weaponType - 1)].audioClip);
 }
Exemple #8
0
 public static bool GetBool(AnimationParameter parameter, WeaponBase.WeaponType weaponType)
 {
     return(s_instance.animatorParameters[(int)parameter].GetBool(s_instance._weaponAnimators[(int)weaponType]));
 }
Exemple #9
0
 public static void ResetTrigger(AnimationParameter parameter, WeaponBase.WeaponType weaponType)
 {
     s_instance.animatorParameters[(int)parameter].ResetTrigger(s_instance._weaponAnimators[(int)weaponType - 1]);
 }
Exemple #10
0
 public static void UnSet(AnimationParameter parameter, WeaponBase.WeaponType weaponType)
 {
     s_instance.animatorParameters[(int)parameter].UnSet(s_instance._weaponAnimators[(int)weaponType - 1]);
 }
Exemple #11
0
 public bool IsWeaponInInventory(WeaponBase.WeaponType weaponType)
 {
     return(_weaponAvailability[(int)weaponType]);
 }