Untroll reagents

This commit is contained in:
null
2024-07-25 02:07:54 +02:00
parent 06fe23e33a
commit 96acb39b71
6 changed files with 32 additions and 22 deletions
@@ -1,5 +1,6 @@
using Content.Shared.Chemistry.Reagent;
using Content.Server.Abilities.Psionics;
using Content.Shared.EntityEffects;
using JetBrains.Annotations;
using Robust.Shared.Prototypes;
@@ -9,19 +10,22 @@ namespace Content.Server.Chemistry.ReagentEffects
/// Rerolls psionics once.
/// </summary>
[UsedImplicitly]
public sealed partial class ChemRemovePsionic : ReagentEffect
public sealed partial class ChemRemovePsionic : EntityEffect
{
protected override string? ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys)
=> Loc.GetString("reagent-effect-guidebook-chem-remove-psionic", ("chance", Probability));
public override void Effect(ReagentEffectArgs args)
public override void Effect(EntityEffectBaseArgs args)
{
if (args.Scale != 1f)
return;
if (args is EntityEffectReagentArgs reagentArgs)
{
if (reagentArgs.Scale != 1f)
return;
}
var psySys = args.EntityManager.EntitySysManager.GetEntitySystem<PsionicAbilitiesSystem>();
psySys.RemovePsionics(args.SolutionEntity);
psySys.RemovePsionics(args.TargetEntity);
}
}
}
@@ -1,5 +1,6 @@
using Content.Shared.Chemistry.Reagent;
using Content.Server.Psionics;
using Content.Shared.EntityEffects;
using JetBrains.Annotations;
using Robust.Shared.Prototypes;
@@ -9,7 +10,7 @@ namespace Content.Server.Chemistry.ReagentEffects
/// Rerolls psionics once.
/// </summary>
[UsedImplicitly]
public sealed partial class ChemRerollPsionic : ReagentEffect
public sealed partial class ChemRerollPsionic : EntityEffect
{
protected override string? ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys)
=> Loc.GetString("reagent-effect-guidebook-chem-reroll-psionic", ("chance", Probability));
@@ -20,11 +21,11 @@ namespace Content.Server.Chemistry.ReagentEffects
[DataField("bonusMultiplier")]
public float BonusMuliplier = 1f;
public override void Effect(ReagentEffectArgs args)
public override void Effect(EntityEffectBaseArgs args)
{
var psySys = args.EntityManager.EntitySysManager.GetEntitySystem<PsionicsSystem>();
psySys.RerollPsionics(args.SolutionEntity, bonusMuliplier: BonusMuliplier);
psySys.RerollPsionics(args.TargetEntity, bonusMuliplier: BonusMuliplier);
}
}
}
@@ -1,11 +1,12 @@
using Content.Shared.Chemistry.Reagent;
using Content.Shared.EntityEffects;
using Content.Shared.Psionics.Glimmer;
using Robust.Shared.Prototypes;
namespace Content.Server.Chemistry.ReactionEffects;
[DataDefinition]
public sealed partial class ChangeGlimmerReactionEffect : ReagentEffect
public sealed partial class ChangeGlimmerReactionEffect : EntityEffect
{
protected override string? ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys)
=> Loc.GetString("reagent-effect-guidebook-change-glimmer-reaction-effect", ("chance", Probability),
@@ -17,7 +18,7 @@ public sealed partial class ChangeGlimmerReactionEffect : ReagentEffect
[DataField("count")]
public int Count = 1;
public override void Effect(ReagentEffectArgs args)
public override void Effect(EntityEffectBaseArgs args)
{
var glimmersys = args.EntityManager.EntitySysManager.GetEntitySystem<GlimmerSystem>();
@@ -1,6 +1,7 @@
using Content.Shared.Chemistry.Components;
using Content.Shared.Chemistry.Reagent;
using Content.Shared.Construction.Prototypes;
using Content.Shared.EntityEffects;
using Content.Shared.FixedPoint;
using Content.Shared.Nutrition;
using Content.Shared.Nyanotrasen.Kitchen;
@@ -187,7 +188,7 @@ namespace Content.Server.Nyanotrasen.Kitchen.Components
[ViewVariables(VVAccess.ReadWrite)]
[DataField("unsafeOilVolumeEffects")]
public List<ReagentEffect> UnsafeOilVolumeEffects = new();
public List<EntityEffect> UnsafeOilVolumeEffects = new();
/// <summary>
/// What is the temperature of the vat when the deep fryer is powered?
@@ -4,6 +4,7 @@ using Content.Server.Nyanotrasen.Kitchen.Components;
using Content.Shared.Chemistry.Components;
using Content.Shared.Chemistry.Components.SolutionManager;
using Content.Shared.Chemistry.Reagent;
using Content.Shared.EntityEffects;
using Content.Shared.FixedPoint;
using Content.Shared.Popups;
using Robust.Shared.Player;
@@ -54,14 +55,14 @@ public sealed partial class DeepFryerSystem
foreach (var effect in component.UnsafeOilVolumeEffects)
{
effect.Effect(new ReagentEffectArgs(uid,
null,
component.Solution,
proto!,
reagent.Quantity,
EntityManager,
null,
1f));
effect.Effect(new EntityEffectReagentArgs(uid,
EntityManager,
null,
component.Solution,
reagent.Quantity,
proto!,
null,
1f));
}
}
@@ -29,6 +29,7 @@ using Content.Shared.Damage.Prototypes;
using Content.Shared.Database;
using Content.Shared.Destructible;
using Content.Shared.DoAfter;
using Content.Shared.EntityEffects;
using Content.Shared.Examine;
using Content.Shared.FixedPoint;
using Content.Shared.Hands.Components;
@@ -381,12 +382,13 @@ public sealed partial class DeepFryerSystem : SharedDeepfryerSystem
{
//JJ Comment - not sure this works. Need to check if Reagent.ToString is correct.
_prototypeManager.TryIndex<ReagentPrototype>(reagent.Reagent.ToString(), out var proto);
var effectsArgs = new ReagentEffectArgs(uid,
var effectsArgs = new EntityEffectReagentArgs(uid,
EntityManager,
null,
component.Solution,
proto!,
reagent.Quantity,
EntityManager,
proto!,
null,
1f);
foreach (var effect in component.UnsafeOilVolumeEffects)