diff --git a/Content.Server/_White/Cult/Runes/Comps/CultRuneBloodBoilComponent.cs b/Content.Server/_White/Cult/Runes/Comps/CultRuneBloodBoilComponent.cs index bc3fa75dff..7c20639503 100644 --- a/Content.Server/_White/Cult/Runes/Comps/CultRuneBloodBoilComponent.cs +++ b/Content.Server/_White/Cult/Runes/Comps/CultRuneBloodBoilComponent.cs @@ -22,5 +22,5 @@ public sealed partial class CultRuneBloodBoilComponent : Component public int MaxProjectiles = 9; [DataField("projectileRange"), ViewVariables(VVAccess.ReadWrite)] - public float ProjectileRange = 50f; + public float ProjectileRange = 30f; } diff --git a/Content.Server/_White/Cult/Runes/Systems/CultSystem.Rune.cs b/Content.Server/_White/Cult/Runes/Systems/CultSystem.Rune.cs index 43da0dfcad..fbf1ce33e2 100644 --- a/Content.Server/_White/Cult/Runes/Systems/CultSystem.Rune.cs +++ b/Content.Server/_White/Cult/Runes/Systems/CultSystem.Rune.cs @@ -1036,20 +1036,28 @@ public sealed partial class CultSystem : EntitySystem _random.Shuffle(list); - var bloodCost = -120 / cultists.Count; + var bloodCost = 120 / cultists.Count; foreach (var cultist in cultists) { - if (!TryComp(cultist, out var bloodstreamComponent)) + if (!TryComp(cultist, out var bloodstreamComponent) || + bloodstreamComponent.BloodSolution is null) + { return false; + } - _bloodstreamSystem.TryModifyBloodLevel(cultist, bloodCost, bloodstreamComponent); + if (bloodstreamComponent.BloodSolution.Value.Comp.Solution.Volume < bloodCost) + { + _popupSystem.PopupEntity(Loc.GetString("cult-blood-boil-rune-no-blood"), user, user); + return false; + } + + _bloodstreamSystem.TryModifyBloodLevel(cultist, -bloodCost, bloodstreamComponent); } var projectileCount = (int) MathF.Round(MathHelper.Lerp(component.MinProjectiles, component.MaxProjectiles, severity)); - while (projectileCount > 0) { var target = _random.Pick(list); @@ -1059,7 +1067,7 @@ public sealed partial class CultSystem : EntitySystem if (!flammable.TryGetComponent(target, out var fl)) continue; - fl.FireStacks += _random.Next(1, 3); + fl.FireStacks += 1; _flammableSystem.Ignite(target, target); diff --git a/Resources/Locale/ru-RU/White/cult.ftl b/Resources/Locale/ru-RU/White/cult.ftl index c27fa06cef..e0229b6cd4 100644 --- a/Resources/Locale/ru-RU/White/cult.ftl +++ b/Resources/Locale/ru-RU/White/cult.ftl @@ -36,6 +36,7 @@ cult-revive-rune-no-charges = У рун воскрешения кончилис cult-summon-rune-need-minimum-cultists = Необходимо минимум 2 культиста. cult-cultists-not-found = Культисты не обнаружены. cult-blood-boil-rune-need-minimum = Необходимо минимум 3 культиста. +cult-blood-boil-rune-no-blood = Кому-то из культистов не хватает крови. cult-blood-boil-rune-no-targets = Нет целей. cult-teleport-rune-default-label = безымянная метка cult-narsie-summon-drawn-position = Культ закончил рисовать руну ритуала разрыва измерений! Координаты: { $posText }