Beispiel #1
0
        public void BeforeFireBullet(PlayerWeaponController controller, IWeaponCmd cmd)
        {
            PistolSpreadLogicConfig config = controller.HeldWeaponAgent.PistolSpreadLogicCfg;
            var   weaponState = controller.HeldWeaponAgent.RunTimeComponent;
            float spread      = UpdateSpread(controller, weaponState.Accuracy);

            weaponState.LastSpreadX = spread * config.SpreadScale.ScaleX;
            weaponState.LastSpreadY = spread * config.SpreadScale.ScaleY;
        }
Beispiel #2
0
        private static float GetSpreadFactor(PistolSpreadLogicConfig pistolSpreadLogicConfig, PlayerWeaponController controller)
        {
            float param   = pistolSpreadLogicConfig.DefaultParam;
            var   posture = controller.RelatedCharState.GetCurrentPostureState();

            if (!controller.RelatedPlayerMove.IsGround)
            {
                param = pistolSpreadLogicConfig.AirParam;
            }
            else if (controller.RelatedPlayerMove.HorizontalVelocity > 13)
            {
                param = pistolSpreadLogicConfig.LengthGreater13Param;
            }
            else if (posture == XmlConfig.PostureInConfig.Prone || posture == XmlConfig.PostureInConfig.Crouch)
            {
                param = pistolSpreadLogicConfig.DuckParam;
            }

            return(param);
        }
        private static float GetSpreadFactor(PistolSpreadLogicConfig pistolSpreadLogicConfig,
                                             WeaponAttackProxy attackProxy)
        {
            float param   = pistolSpreadLogicConfig.DefaultParam;
            var   posture = attackProxy.CharacterState.GetCurrentPostureState();

            if (!attackProxy.PlayerMove.IsGround)
            {
                param = pistolSpreadLogicConfig.AirParam;
            }
            else if (attackProxy.PlayerMove.HorizontalVelocity > 13)
            {
                param = pistolSpreadLogicConfig.LengthGreater13Param;
            }
            else if (posture == PostureInConfig.Prone || posture == PostureInConfig.Crouch)
            {
                param = pistolSpreadLogicConfig.DuckParam;
            }

            return(param);
        }
Beispiel #4
0
        protected float UpdateSpread(PlayerWeaponController controller, float accuracy)
        {
            PistolSpreadLogicConfig config = controller.HeldWeaponAgent.PistolSpreadLogicCfg;
            float param;
            var   posture = controller.RelatedStateInterface.GetCurrentPostureState();

            if (!controller.RelatedPlayerMove.IsGround)
            {
                param = config.AirParam;
            }
            else if (controller.RelatedPlayerMove.HorizontalVelocity > 13)
            {
                param = config.LengthGreater13Param;
            }
            else if (posture == XmlConfig.PostureInConfig.Prone || posture == XmlConfig.PostureInConfig.Crouch)
            {
                param = config.DuckParam;
            }
            else
            {
                param = config.DefaultParam;
            }
            return(param * (1 - accuracy));
        }
 public static float GetSpreadScaleFactor(PistolSpreadLogicConfig pistolSpreadLogicConfig,
                                          WeaponAttackProxy attackProxy)
 {
     return(GetSpreadFactor(pistolSpreadLogicConfig, attackProxy));
 }
Beispiel #6
0
 public static float GetSpreadScaleFactor(PistolSpreadLogicConfig pistolSpreadLogicConfig, PlayerWeaponController controller)
 {
     return(GetSpreadFactor(pistolSpreadLogicConfig, controller));
 }