예제 #1
0
        ///精准系数*精准值
        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));
        }
예제 #2
0
        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);
        }