コード例 #1
0
 // 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);
     }
 }
コード例 #2
0
 // 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);
 }
コード例 #3
0
 // 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();
 }
コード例 #4
0
    /* 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;
        }
    }
コード例 #5
0
 // 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);
 }
コード例 #6
0
 // 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);
     }
 }
コード例 #7
0
 // 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;
     }
 }
コード例 #8
0
 // 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;
     }
 }
コード例 #9
0
 // 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);
     }
 }
コード例 #10
0
 // Token: 0x06001EEA RID: 7914 RVA: 0x000146C1 File Offset: 0x000128C1
 public SemiAutoFireHandler(BaseWeaponDecorator weapon, float frequency)
 {
     this.frequency       = frequency;
     this._weapon         = weapon;
     this.IsTriggerPulled = false;
 }
コード例 #11
0
 // Token: 0x06001ED2 RID: 7890 RVA: 0x000145EA File Offset: 0x000127EA
 public FullAutoFireHandler(BaseWeaponDecorator weapon, float frequency)
 {
     this.weapon    = weapon;
     this.frequency = frequency;
 }
コード例 #12
0
 // 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;
 }
コード例 #13
0
 // 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);
 }
コード例 #14
0
 // Token: 0x06001E5C RID: 7772 RVA: 0x00014221 File Offset: 0x00012421
 public void SetDecorator(BaseWeaponDecorator decorator)
 {
     this._decorator = decorator;
 }
コード例 #15
0
 // Token: 0x06001E30 RID: 7728 RVA: 0x000140CD File Offset: 0x000122CD
 public void PlayOutOfAmmoSound()
 {
     BaseWeaponDecorator.Play3dAudioClip(this._mainAudioSource, GameAudio.OutOfAmmoClick);
 }
コード例 #16
0
 // Token: 0x06001E28 RID: 7720 RVA: 0x0001408A File Offset: 0x0001228A
 private static void Play3dAudioClip(AudioSource audioSource, AudioClip soundEffect)
 {
     BaseWeaponDecorator.Play3dAudioClip(audioSource, soundEffect, 0f);
 }