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; }
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); }
/// <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); }
public void PlayEjectedShellHitAudio(AudioSource audioSource, WeaponBase.WeaponType weaponType) { audioSource.PlayOneShot(_ejectedShellAudioDatas[((int)weaponType - 1)].audioClip); }
public static bool GetBool(AnimationParameter parameter, WeaponBase.WeaponType weaponType) { return(s_instance.animatorParameters[(int)parameter].GetBool(s_instance._weaponAnimators[(int)weaponType])); }
public static void ResetTrigger(AnimationParameter parameter, WeaponBase.WeaponType weaponType) { s_instance.animatorParameters[(int)parameter].ResetTrigger(s_instance._weaponAnimators[(int)weaponType - 1]); }
public static void UnSet(AnimationParameter parameter, WeaponBase.WeaponType weaponType) { s_instance.animatorParameters[(int)parameter].UnSet(s_instance._weaponAnimators[(int)weaponType - 1]); }
public bool IsWeaponInInventory(WeaponBase.WeaponType weaponType) { return(_weaponAvailability[(int)weaponType]); }