Esempio n. 1
0
 private void ModifyKickbackGroup(KickbackGroup kickbackGroup, KickbackGroup baseKickbackGroup, RifleKickbackModifierArg arg)
 {
     ModifyKickback(kickbackGroup.Air, baseKickbackGroup.Air, arg);
     ModifyKickback(kickbackGroup.Base, baseKickbackGroup.Base, arg);
     ModifyKickback(kickbackGroup.Duck, baseKickbackGroup.Duck, arg);
     ModifyKickback(kickbackGroup.FastMove, baseKickbackGroup.FastMove, arg);
     ModifyKickback(kickbackGroup.Prone, baseKickbackGroup.Prone, arg);
 }
Esempio n. 2
0
        public override void AfterFireBullet(IPlayerWeaponState playerWeapon, IWeaponCmd cmd, int bullet)
        {
            KickbackGroup kickbackGroup = null;
            var           hOffsetFactor = 1f;
            var           vOffsetFactor = 1f;

            if (playerWeapon.IsAiming)
            {
                kickbackGroup = _config.Aiming;
                hOffsetFactor = _config.Aiming.HPunchOffsetFactor;
                vOffsetFactor = _config.Aiming.VPunchOffsetFactor;
                Logger.DebugFormat("animing offset {0}, {1}", hOffsetFactor, vOffsetFactor);
            }
            else
            {
                kickbackGroup = _config.Default;
                hOffsetFactor = _config.Default.HPunchOffsetFactor;
                vOffsetFactor = _config.Default.VPunchOffsetFactor;
                Logger.DebugFormat("default offset {0}, {1}", hOffsetFactor, vOffsetFactor);
            }

            WeaponConfigNs.Kickback kickBackParams;
            if (playerWeapon.IsAir)
            {
                kickBackParams = kickbackGroup.Air;
            }
            else if (playerWeapon.HorizontalVeocity > _config.FastMoveSpeed)
            {
                kickBackParams = kickbackGroup.FastMove;
            }
            else if (playerWeapon.IsProne)
            {
                kickBackParams = kickbackGroup.Prone;
            }
            else if (playerWeapon.IsDuckOrProneState)
            {
                kickBackParams = kickbackGroup.Duck;
            }
            else
            {
                kickBackParams = kickbackGroup.Base;
            }



            BaseKickBack(playerWeapon, cmd.CmdSeq + bullet,
                         kickBackParams.UpBase,
                         kickBackParams.LateralBase,
                         kickBackParams.UpModifier,
                         kickBackParams.LateralModifier,
                         kickBackParams.UpMax,
                         kickBackParams.LateralMax,
                         kickBackParams.LateralTurnback,
                         hOffsetFactor,
                         vOffsetFactor);
        }
Esempio n. 3
0
        public override void OnAfterFire(PlayerWeaponController controller, IWeaponCmd cmd)
        {
            var           config        = controller.HeldWeaponAgent.RifleKickbackLogicCfg;
            KickbackGroup kickbackGroup = null;
            var           hOffsetFactor = 1f;
            var           vOffsetFactor = 1f;

            if (controller.RelatedCameraSNew.IsAiming())
            {
                kickbackGroup = config.Aiming;
                hOffsetFactor = config.Aiming.HPunchOffsetFactor;
                vOffsetFactor = config.Aiming.VPunchOffsetFactor;
                Logger.DebugFormat("animing offset {0}, {1}", hOffsetFactor, vOffsetFactor);
            }
            else
            {
                kickbackGroup = config.Default;
                hOffsetFactor = config.Default.HPunchOffsetFactor;
                vOffsetFactor = config.Default.VPunchOffsetFactor;
                Logger.DebugFormat("default offset {0}, {1}", hOffsetFactor, vOffsetFactor);
            }

            WeaponConfigNs.Kickback kickBackParams;
            var posture = controller.RelatedStateInterface.GetCurrentPostureState();

            if (!controller.RelatedPlayerMove.IsGround)
            {
                kickBackParams = kickbackGroup.Air;
            }
            else if (controller.RelatedPlayerMove.HorizontalVelocity > config.FastMoveSpeed)
            {
                kickBackParams = kickbackGroup.FastMove;
            }
            else if (posture == XmlConfig.PostureInConfig.Prone)
            {
                kickBackParams = kickbackGroup.Prone;
            }
            else if (posture == XmlConfig.PostureInConfig.Crouch)
            {
                kickBackParams = kickbackGroup.Duck;
            }
            else
            {
                kickBackParams = kickbackGroup.Base;
            }

            BaseKickBack(controller, cmd.CmdSeq,
                         kickBackParams,
                         hOffsetFactor,
                         vOffsetFactor);
        }