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); }
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); } } }