// Token: 0x060017F8 RID: 6136 RVA: 0x00081990 File Offset: 0x0007FB90 public void AssignWeapon(global::LoadoutSlotType slot, BaseWeaponDecorator weapon, IUnityItem item) { if (weapon) { BaseWeaponDecorator baseWeaponDecorator; if (this._weapons.TryGetValue(slot, out baseWeaponDecorator) && baseWeaponDecorator) { UnityEngine.Object.Destroy(baseWeaponDecorator.gameObject); } this._weapons[slot] = weapon; weapon.transform.parent = this.Decorator.WeaponAttachPoint; foreach (Transform transform in weapon.gameObject.transform.GetComponentsInChildren <Transform>(true)) { if (transform.gameObject.name == "Head") { transform.gameObject.name = "WeaponHead"; } } LayerUtil.SetLayerRecursively(weapon.gameObject.transform, this.Decorator.gameObject.layer); weapon.transform.localPosition = Vector3.zero; weapon.transform.localRotation = Quaternion.identity; weapon.IsEnabled = (slot == this.CurrentWeaponSlot); weapon.WeaponClass = item.View.ItemClass; } else { this.UnassignWeapon(slot); } }
// Token: 0x06001FCD RID: 8141 RVA: 0x00014F4C File Offset: 0x0001314C protected WeaponState(BaseWeaponLogic weapon, BaseWeaponDecorator decorator) { this._time = 0f; this._weapon = weapon; this._decorator = decorator; this._isRunning = (this._weapon != null); }
// Token: 0x06001FD9 RID: 8153 RVA: 0x000987A8 File Offset: 0x000969A8 public PickUpState(BaseWeaponLogic weapon, BaseWeaponDecorator decorator) : base(weapon, decorator) { this._transitionTime = Mathf.Max(WeaponFeedbackManager.Instance.WeaponAnimation.PickUpDuration, (float)(weapon.Config.SwitchDelayMilliSeconds / 1000)); if (decorator.IsMelee) { this._currentRotation = -90f; if (base.Decorator) { base.Decorator.CurrentRotation = Quaternion.Euler(0f, 0f, this._currentRotation); base.Decorator.CurrentPosition = decorator.DefaultPosition; base.Decorator.IsEnabled = true; } } else { this._currentRotation = WeaponFeedbackManager.Instance.WeaponAnimation.PutDownAngles; this._pivotOffset = -WeaponFeedbackManager.Instance._pivotPoint.localPosition; if (base.Decorator) { base.Decorator.CurrentRotation = Quaternion.Euler(WeaponFeedbackManager.Instance.WeaponAnimation.PutDownAngles, 0f, 0f); base.Decorator.CurrentPosition = Quaternion.AngleAxis(this._currentRotation, Vector3.right) * base.PivotVector; base.Decorator.IsEnabled = true; } } LevelCamera.ResetZoom(); }
/* Handle weapon secondary inputs. */ private void CreateWeaponInputHandler(WeaponItem item, IWeaponLogic logic, BaseWeaponDecorator decorator, bool isLocal) { switch ((WeaponSecondaryAction)View.WeaponSecondaryAction) { /* Sniper sights, e.g. Scope on the Sniper Rifle. Aims down a scope texture. * Alternatively, it may simply zoom in the screen without adding a scope, and maintaing a crosshair. * This is exclusive to snipers with crosshairs. */ case WeaponSecondaryAction.SniperRifle: ZoomInfo zoomInfo = new ZoomInfo((float)this.View.DefaultZoomMultiplier, (float)this.View.MinZoomMultiplier, (float)this.View.MaxZoomMultiplier); this.InputHandler = new SniperRifleInputHandler(logic, isLocal, zoomInfo, this.View); break; /* Iron sights, e.g. ADS on Machine Gun. Basically aims down the physical gun model. */ case WeaponSecondaryAction.IronSight: ZoomInfo zoomInfo2 = new ZoomInfo((float)this.View.DefaultZoomMultiplier, (float)this.View.MinZoomMultiplier, (float)this.View.MaxZoomMultiplier); this.InputHandler = new IronsightInputHandler(logic, isLocal, zoomInfo2, this.View); break; /* Detonation trigger, e.g. The Final World. */ case WeaponSecondaryAction.ExplosionTrigger: Debug.LogError("The ting go skrrt"); this.InputHandler = new DefaultWeaponInputHandler(logic, isLocal, this.View, new GrenadeExplosionHander()); break; /* Windup time on the weapon, e.g. Battlesnake/Sabertooth. */ case WeaponSecondaryAction.Minigun: this.InputHandler = new MinigunInputHandler(logic, isLocal, decorator as MinigunWeaponDecorator, this.View); break; /* No secondary action, only Left Click. Think of cannons, most launchers, most splatterguns. */ default: this.InputHandler = new DefaultWeaponInputHandler(logic, isLocal, this.View, null); break; } }
// Token: 0x06001FC0 RID: 8128 RVA: 0x00014E99 File Offset: 0x00013099 private void PutDownWeapon(BaseWeaponLogic weapon, BaseWeaponDecorator decorator, bool destroy = false) { if (this._putDownWeaponState != null) { this._putDownWeaponState.Finish(); } this._putDownWeaponState = new WeaponFeedbackManager.PutDownState(weapon, decorator, destroy); }
// Token: 0x06001F1D RID: 7965 RVA: 0x000963E4 File Offset: 0x000945E4 protected static void ZoomOut(ZoomInfo zoomInfo, BaseWeaponDecorator weapon) { LevelCamera.DoZoomOut(75f, 10f); UserInput.ZoomSpeed = 1f; if (zoomInfo != null) { zoomInfo.CurrentMultiplier = zoomInfo.DefaultMultiplier; } if (weapon) { AutoMonoBehaviour <SfxManager> .Instance.PlayInGameAudioClip(GameAudio.SniperScopeOut, 0UL); } }
// Token: 0x06001FDD RID: 8157 RVA: 0x00098E78 File Offset: 0x00097078 public PutDownState(BaseWeaponLogic weapon, BaseWeaponDecorator decorator, bool destroy = false) : base(weapon, decorator) { this._destroy = destroy; this._currentRotation = decorator.CurrentRotation.eulerAngles.x; if (this._currentRotation > 300f) { this._currentRotation = 360f - this._currentRotation; } if (!decorator.IsMelee) { this._pivotOffset = -WeaponFeedbackManager.Instance._pivotPoint.localPosition; } this._transitionTime = WeaponFeedbackManager.Instance.WeaponAnimation.PutDownDuration; if (base.Weapon != null) { base.Weapon.IsWeaponActive = false; } }
// Token: 0x06001F1C RID: 7964 RVA: 0x0009630C File Offset: 0x0009450C protected static void ZoomIn(ZoomInfo zoomInfo, BaseWeaponDecorator weapon, float zoom, bool hideWeapon) { if (weapon) { if (!LevelCamera.IsZoomedIn) { AutoMonoBehaviour <SfxManager> .Instance.PlayInGameAudioClip(GameAudio.SniperScopeIn, 0UL); } else if (zoom < 0f && zoomInfo.CurrentMultiplier != zoomInfo.MinMultiplier) { AutoMonoBehaviour <SfxManager> .Instance.PlayInGameAudioClip(GameAudio.SniperZoomIn, 0UL); } else if (zoom > 0f && zoomInfo.CurrentMultiplier != zoomInfo.MaxMultiplier) { AutoMonoBehaviour <SfxManager> .Instance.PlayInGameAudioClip(GameAudio.SniperZoomOut, 0UL); } zoomInfo.CurrentMultiplier = Mathf.Clamp(zoomInfo.CurrentMultiplier + zoom, zoomInfo.MinMultiplier, zoomInfo.MaxMultiplier); LevelCamera.DoZoomIn(75f / zoomInfo.CurrentMultiplier, 20f, hideWeapon); UserInput.ZoomSpeed = 0.5f; } }
// Token: 0x0600142E RID: 5166 RVA: 0x00074308 File Offset: 0x00072508 public void EquipWeapon(global::LoadoutSlotType weaponSlot, IUnityItem itemWeapon) { if (itemWeapon != null) { GameObject gameObject = itemWeapon.Create(Vector3.zero, Quaternion.identity); if (gameObject) { BaseWeaponDecorator component = gameObject.GetComponent <BaseWeaponDecorator>(); component.EnableShootAnimation = false; GameState.Current.Avatar.AssignWeapon(weaponSlot, component, itemWeapon); GameState.Current.Avatar.ShowWeapon(weaponSlot); } else { GameState.Current.Avatar.UnassignWeapon(weaponSlot); } } else { GameState.Current.Avatar.UnassignWeapon(weaponSlot); } }
// Token: 0x06001EEA RID: 7914 RVA: 0x000146C1 File Offset: 0x000128C1 public SemiAutoFireHandler(BaseWeaponDecorator weapon, float frequency) { this.frequency = frequency; this._weapon = weapon; this.IsTriggerPulled = false; }
// Token: 0x06001ED2 RID: 7890 RVA: 0x000145EA File Offset: 0x000127EA public FullAutoFireHandler(BaseWeaponDecorator weapon, float frequency) { this.weapon = weapon; this.frequency = frequency; }
// Token: 0x0600200A RID: 8202 RVA: 0x000151FB File Offset: 0x000133FB public InstantMultiHitWeapon(WeaponItem item, BaseWeaponDecorator decorator, int shotGauge, IWeaponController controller, UberStrikeItemWeaponView view) : base(item, controller) { this.ShotgunGauge = shotGauge; this._view = view; this._decorator = decorator; }
// Token: 0x06002007 RID: 8199 RVA: 0x000151C0 File Offset: 0x000133C0 public InstantHitWeapon(WeaponItem item, BaseWeaponDecorator decorator, IWeaponController controller, UberStrikeItemWeaponView view) : base(item, controller) { this._view = view; this._decorator = decorator; this._supportIronSight = (view.WeaponSecondaryAction == 2); }
// Token: 0x06001E5C RID: 7772 RVA: 0x00014221 File Offset: 0x00012421 public void SetDecorator(BaseWeaponDecorator decorator) { this._decorator = decorator; }
// Token: 0x06001E30 RID: 7728 RVA: 0x000140CD File Offset: 0x000122CD public void PlayOutOfAmmoSound() { BaseWeaponDecorator.Play3dAudioClip(this._mainAudioSource, GameAudio.OutOfAmmoClick); }
// Token: 0x06001E28 RID: 7720 RVA: 0x0001408A File Offset: 0x0001228A private static void Play3dAudioClip(AudioSource audioSource, AudioClip soundEffect) { BaseWeaponDecorator.Play3dAudioClip(audioSource, soundEffect, 0f); }