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; }
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); }
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)); }
public static float GetSpreadScaleFactor(PistolSpreadLogicConfig pistolSpreadLogicConfig, PlayerWeaponController controller) { return(GetSpreadFactor(pistolSpreadLogicConfig, controller)); }