public void ApplyInfection(InfectionAttackData data, PlayerAgent player, Agent _)
        {
            var infectionAbs = data.Infection.GetAbsValue(PlayerData.MaxInfection);

            if (infectionAbs == 0.0f)
            {
                return;
            }

            if (data.SoundEventID != 0u)
            {
                player.Sound.Post(data.SoundEventID);
            }

            if (data.UseEffect)
            {
                var liquidSetting = ScreenLiquidSettingName.spitterJizz;
                if (infectionAbs < 0.0f)
                {
                    liquidSetting = ScreenLiquidSettingName.disinfectionStation_Apply;
                }
                ScreenLiquidManager.TryApply(liquidSetting, player.Position, data.ScreenLiquidRange, true);
            }

            player.Damage.ModifyInfection(new pInfection()
            {
                amount = infectionAbs,
                effect = pInfectionEffect.None,
                mode   = pInfectionMode.Add
            }, true, true);
        }
Ejemplo n.º 2
0
        private void PlaySplatter()
        {
            if (splattered == true)
            {
                return;
            }
            splattered = true;
            if (PlayerManager.TryGetLocalPlayerAgent(out PlayerAgent playerAgent))
            {
                if (ScreenLiquidManager.TryApply(ScreenLiquidSettingName.enemyBlood_BigBloodBomb, enemyAgent.Position, exploderConfig.Radius * 2, true))
                {
                    playerAgent.Sound.Post(EVENTS.VISOR_SPLATTER_GORE);
                }

                if (exploderConfig.InfectionAmount == 0)
                {
                    return;
                }
                if (ScreenLiquidManager.TryApply(ScreenLiquidSettingName.spitterJizz, enemyAgent.Position, exploderConfig.Radius, true))
                {
                    playerAgent.Damage.ModifyInfection(new pInfection
                    {
                        amount = exploderConfig.InfectionAmount,
                        mode   = pInfectionMode.Add
                    }, true, true);
                    playerAgent.Sound.Post(EVENTS.VISOR_SPLATTER_INFECTION);
                }
            }
        }