///精准系数*精准值 public static float GetSpreadScaleFactor(RifleSpreadLogicConfig rifleSpreadLogicConfig, WeaponAttackProxy attackProxy) { Spread spreadAimCfg = attackProxy.IsAiming ? rifleSpreadLogicConfig.Aiming : rifleSpreadLogicConfig.Default; var spreadFactor = GetSpreadFactor(spreadAimCfg, rifleSpreadLogicConfig.FastMoveSpeed, attackProxy); return(spreadFactor * spreadAimCfg.Base * (1 - attackProxy.GetAttachedAttributeByType(WeaponAttributeType.Spread) / 100)); }
public static ShakeInfoStruct GetFireUpDirShakeArgs(WeaponAttackProxy attackProxy, ShakeInfo shakeInfo) { var newInfo = (ShakeInfoStruct)shakeInfo; float factor = attackProxy.GetAttachedAttributeByType(WeaponAttributeType.UpBase); if (factor != 0f) { newInfo.UpBase *= factor; } // logger.Info("Shoot Shake factor:"+factor); factor = attackProxy.GetAttachedAttributeByType(WeaponAttributeType.UpMax); if (factor != 0f) { newInfo.UpMax *= factor; } factor = attackProxy.GetAttachedAttributeByType(WeaponAttributeType.UpModifier); if (factor != 0f) { newInfo.UpModifier *= factor; } factor = attackProxy.GetAttachedAttributeByType(WeaponAttributeType.LateralBase); if (factor != 0f) { newInfo.LateralBase *= factor; } factor = attackProxy.GetAttachedAttributeByType(WeaponAttributeType.LateralMax); if (factor != 0f) { newInfo.LateralMax *= factor; } factor = attackProxy.GetAttachedAttributeByType(WeaponAttributeType.LateralModifier); if (factor != 0f) { newInfo.LateralModifier *= factor; } factor = attackProxy.GetAttachedAttributeByType(WeaponAttributeType.LateralTurnback); if (factor != 0f) { newInfo.LateralTurnback *= factor; } return(newInfo); }