diff --git a/Content.Server/_Sunrise/FleshCult/FleshCultSystem.Cultist.cs b/Content.Server/_Sunrise/FleshCult/FleshCultSystem.Cultist.cs index 3185e9d930..8f41d177d3 100644 --- a/Content.Server/_Sunrise/FleshCult/FleshCultSystem.Cultist.cs +++ b/Content.Server/_Sunrise/FleshCult/FleshCultSystem.Cultist.cs @@ -104,6 +104,9 @@ public sealed partial class FleshCultSystem private void HandleDeadState(EntityUid uid, FleshCultistComponent component) { + if (component.IsDeathPending) // Fish-Edit + return; + DeleteFleshBodyModComponent(uid, "shoes", component); DeleteFleshBodyModComponent(uid, "outerClothing", component); ParasiteComesOut(uid, component); @@ -294,6 +297,11 @@ public sealed partial class FleshCultSystem if (!Resolve(uid, ref component)) return false; + if (component.IsDeathPending) // Fish-Edit + return false; + + component.IsDeathPending = true; // Fish-Edit + var coordinates = Transform(uid).Coordinates; var abommob = Spawn(component.FleshMutationMobId, _transformSystem.GetMapCoordinates(uid)); @@ -308,7 +316,8 @@ public sealed partial class FleshCultSystem { foreach (var cont in container.GetAllContainers().ToArray()) { - foreach (var entity in cont.ContainedEntities.Where(entity => !HasComp(entity) && !HasComp(entity))) + // foreach (var entity in cont.ContainedEntities.Where(entity => !HasComp(entity) && !HasComp(entity))) + foreach (var entity in cont.ContainedEntities.Where(entity => !HasComp(entity) && !HasComp(entity)).ToList()) // Fish-Edit { _containerSystem.Remove(entity, cont, force: true); Transform(entity).Coordinates = coordinates; @@ -335,8 +344,14 @@ public sealed partial class FleshCultSystem public void UpdateCultist(float frameTime) { base.Update(frameTime); - foreach (var cultist in EntityQuery()) + // foreach (var cultist in EntityQuery()) + var query = EntityQueryEnumerator(); // Fish-Edit + + while (query.MoveNext(out var uid, out var cultist)) // Fish-Edit { + if (cultist.IsDeathPending) // Fish-Edit + continue; + cultist.Accumulator += frameTime; if (cultist.Accumulator <= 1) continue; @@ -348,14 +363,19 @@ public sealed partial class FleshCultSystem if (cultist.AccumulatorStarveNotify > 30) { cultist.AccumulatorStarveNotify = 0; - _popup.PopupEntity(Loc.GetString("flesh-cultist-hungry"), cultist.Owner, cultist.Owner, PopupType.Large); + _popup.PopupEntity(Loc.GetString("flesh-cultist-hungry"), uid, uid, PopupType.Large); } } if (cultist.Hunger < 0) - ParasiteComesOut(cultist.Owner, cultist); + { + // ParasiteComesOut(cultist.Owner, cultist); + ParasiteComesOut(uid, cultist); // Fish-Edit + continue; // Fish-Edit + } - ChangeParasiteHunger(cultist.Owner, cultist.HungerСonsumption, cultist); + // ChangeParasiteHunger(cultist.Owner, cultist.HungerСonsumption, cultist); + ChangeParasiteHunger(uid, cultist.HungerСonsumption, cultist); // Fish-Edit } } } diff --git a/Content.Shared/CCVar/CCVars.Game.cs b/Content.Shared/CCVar/CCVars.Game.cs index a5e6d57cd0..358b755cac 100644 --- a/Content.Shared/CCVar/CCVars.Game.cs +++ b/Content.Shared/CCVar/CCVars.Game.cs @@ -354,8 +354,8 @@ public sealed partial class CCVars /// The prototype to use for secret weights. /// public static readonly CVarDef SecretWeightPrototype = - CVarDef.Create("game.secret_weight_prototype", "SunriseSecret", CVar.SERVERONLY); // Sunrise-Edit - + //CVarDef.Create("game.secret_weight_prototype", "SunriseSecret", CVar.SERVERONLY); // Sunrise-Edit + CVarDef.Create("game.secret_weight_prototype", "FishSecret", CVar.SERVERONLY); // Fish-Edit /// /// The id of the sound collection to randomly choose a sound from and play when the round ends. /// diff --git a/Content.Shared/_Sunrise/FleshCult/FleshCultistComponent.cs b/Content.Shared/_Sunrise/FleshCult/FleshCultistComponent.cs index 180ac999e8..87f373dc7a 100644 --- a/Content.Shared/_Sunrise/FleshCult/FleshCultistComponent.cs +++ b/Content.Shared/_Sunrise/FleshCult/FleshCultistComponent.cs @@ -48,4 +48,10 @@ public sealed partial class FleshCultistComponent : Component [DataField] public SoundSpecifier SoundMutation = new SoundPathSpecifier("/Audio/_Sunrise/FleshCult/flesh_cultist_mutation.ogg"); + + /// + /// Flag to indicate that the entity is already in the process of dying/gibbing. + /// + [ViewVariables] + public bool IsDeathPending = false; // Fish-Edit } diff --git a/Resources/Locale/ru-RU/_strings/_sunrise/flesh-cult/toxins.ftl b/Resources/Locale/ru-RU/_strings/_sunrise/flesh-cult/toxins.ftl index dcb971cfaf..6d45013479 100644 --- a/Resources/Locale/ru-RU/_strings/_sunrise/flesh-cult/toxins.ftl +++ b/Resources/Locale/ru-RU/_strings/_sunrise/flesh-cult/toxins.ftl @@ -1,5 +1,5 @@ # Fish-edit - FleshCult reagent localizations -reagent-name-carol = Карол +reagent-name-carol = карол reagent-desc-carol = ?????? -reagent-name-flesh-acid = Кислота Плоти +reagent-name-flesh-acid = кислота плоти reagent-desc-flesh-acid = ?????? diff --git a/Resources/Prototypes/Reagents/medicine.yml b/Resources/Prototypes/Reagents/medicine.yml index 6385368182..3f4ae3c546 100644 --- a/Resources/Prototypes/Reagents/medicine.yml +++ b/Resources/Prototypes/Reagents/medicine.yml @@ -275,7 +275,7 @@ types: Asphyxiation: -1 Bloodloss: -0.5 - Mangleness: 0.1 #Fish-Edit: boosted by 2x (was 0.05) + Mangleness: 0.015 #Fish-Edit: 1/100 of healing amount (was 0.1) - !type:HealthChange conditions: - !type:ReagentThreshold @@ -301,7 +301,7 @@ types: Asphyxiation: -3.5 Bloodloss: -3 - Mangleness: 0.35 #Fish-Edit: boosted by 2x (was 0.175) + Mangleness: 0.065 #Fish-Edit: 1/100 of healing amount (was 0.35) - !type:AdjustReagent conditions: - !type:ReagentThreshold diff --git a/Resources/Prototypes/Reagents/narcotics.yml b/Resources/Prototypes/Reagents/narcotics.yml index 89384f217d..978f38965f 100644 --- a/Resources/Prototypes/Reagents/narcotics.yml +++ b/Resources/Prototypes/Reagents/narcotics.yml @@ -19,7 +19,7 @@ - !type:HealthChange conditions: - !type:ReagentThreshold - min: 20 # Fish-edit + min: 30 damage: types: Poison: 2 # this is added to the base damage of the meth. diff --git a/Resources/Prototypes/_Sunrise/Chemistry/medicine.yml b/Resources/Prototypes/_Sunrise/Chemistry/medicine.yml index dbcfcb1857..535f623882 100644 --- a/Resources/Prototypes/_Sunrise/Chemistry/medicine.yml +++ b/Resources/Prototypes/_Sunrise/Chemistry/medicine.yml @@ -14,11 +14,11 @@ amount: -4 #Fish-Edit - !type:EvenHealthChange #Fish-Edit damage: - Brute: -2 + Brute: -1 - !type:HealthChange damage: types: - Mangleness: 0.2 + Mangleness: 0.1 - !type:HealthChange conditions: - !type:ReagentThreshold diff --git a/Resources/Prototypes/_Sunrise/FleshCult/reactions.yml b/Resources/Prototypes/_Sunrise/FleshCult/reactions.yml index 36e08d9660..9279de6cd4 100644 --- a/Resources/Prototypes/_Sunrise/FleshCult/reactions.yml +++ b/Resources/Prototypes/_Sunrise/FleshCult/reactions.yml @@ -1,19 +1,19 @@ -- type: reaction # Fish-edit - id: FleshAcidFluorosurfactant - reactants: - Carol: - amount: 1 - Fluorosurfactant: - amount: 1 - products: - FleshAcid: 2 +#- type: reaction # Fish-edit +# id: FleshAcidFluorosurfactant +# reactants: +# Carol: +# amount: 1 +# Fluorosurfactant: +# amount: 1 +# products: +# FleshAcid: 2 -- type: reaction # Fish-edit - id: FleshAcidFoamingAgent - reactants: - Carol: - amount: 1 - FoamingAgent: - amount: 1 - products: - FleshAcid: 2 +#- type: reaction # Fish-edit +# id: FleshAcidFoamingAgent +# reactants: +# Carol: +# amount: 1 +# FoamingAgent: +# amount: 1 +# products: +# FleshAcid: 2