Fix Entity Effect Scaling (Hopefully) for good and some other misc fixes (#41163)
* Fix the last of the entity effects bugs * aaa * losing it --------- Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
2b196257c1
commit
e5b6e4bf04
@@ -9,7 +9,7 @@ namespace Content.Shared.EntityConditions.Conditions;
|
||||
/// Returns true if this solution entity has an amount of reagent in it within a specified minimum and maximum.
|
||||
/// </summary>
|
||||
/// <inheritdoc cref="EntityConditionSystem{T, TCondition}"/>
|
||||
public sealed partial class ReagentThresholdEntityConditionSystem : EntityConditionSystem<SolutionComponent, ReagentCondition>
|
||||
public sealed partial class ReagentEntityConditionSystem : EntityConditionSystem<SolutionComponent, ReagentCondition>
|
||||
{
|
||||
protected override void Condition(Entity<SolutionComponent> entity, ref EntityConditionEvent<ReagentCondition> args)
|
||||
{
|
||||
|
||||
@@ -28,9 +28,6 @@ public abstract partial class BaseSpawnEntityEntityEffect<T> : EntityEffectBase<
|
||||
[DataField]
|
||||
public bool Predicted = true;
|
||||
|
||||
/// <inheritdoc cref="EntityEffect.Scaling"/>
|
||||
public override bool Scaling => true;
|
||||
|
||||
public override string EntityEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys)
|
||||
=> Loc.GetString("entity-effect-guidebook-spawn-entity",
|
||||
("chance", Probability),
|
||||
|
||||
@@ -28,8 +28,6 @@ public sealed partial class AreaReactionEffect : EntityEffectBase<AreaReactionEf
|
||||
/// </summary>
|
||||
[DataField(required: true)] public SoundSpecifier Sound = default!;
|
||||
|
||||
public override bool Scaling => true;
|
||||
|
||||
public override string EntityEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys)
|
||||
=> Loc.GetString("entity-effect-guidebook-area-reaction",
|
||||
("duration", Duration)
|
||||
|
||||
@@ -49,8 +49,6 @@ public sealed partial class Emp : EntityEffectBase<Emp>
|
||||
[DataField]
|
||||
public TimeSpan Duration = TimeSpan.FromSeconds(15);
|
||||
|
||||
public override bool Scaling => true;
|
||||
|
||||
public override string EntityEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys)
|
||||
=> Loc.GetString("entity-effect-guidebook-emp-reaction-effect", ("chance", Probability));
|
||||
|
||||
|
||||
@@ -50,8 +50,6 @@ public sealed partial class Explosion : EntityEffectBase<Explosion>
|
||||
[DataField]
|
||||
public float TileBreakScale = 1f;
|
||||
|
||||
public override bool Scaling => true;
|
||||
|
||||
public override string EntityEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys)
|
||||
=> Loc.GetString("entity-effect-guidebook-explosion", ("chance", Probability));
|
||||
|
||||
|
||||
@@ -76,8 +76,6 @@ public sealed partial class Flash : EntityEffectBase<Flash>
|
||||
[DataField]
|
||||
public SoundSpecifier? Sound = new SoundPathSpecifier("/Audio/Weapons/flash.ogg");
|
||||
|
||||
public override bool Scaling => true;
|
||||
|
||||
public override string EntityEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys)
|
||||
=> Loc.GetString("entity-effect-guidebook-flash-reaction-effect", ("chance", Probability));
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ public abstract partial class EntityEffect
|
||||
/// If true, then it allows the scale multiplier to go above 1.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public virtual bool Scaling { get; private set; }
|
||||
public virtual bool Scaling { get; private set; } = true;
|
||||
|
||||
// TODO: This should be an entity condition but guidebook relies on it heavily for formatting...
|
||||
/// <summary>
|
||||
|
||||
@@ -26,35 +26,35 @@ public sealed partial class SharedEntityEffectsSystem : EntitySystem, IEntityEff
|
||||
|
||||
private void OnReactive(Entity<ReactiveComponent> entity, ref ReactionEntityEvent args)
|
||||
{
|
||||
if (args.Reagent.ReactiveEffects == null || entity.Comp.ReactiveGroups == null)
|
||||
return;
|
||||
|
||||
var scale = args.ReagentQuantity.Quantity.Float();
|
||||
|
||||
foreach (var (key, val) in args.Reagent.ReactiveEffects)
|
||||
if (args.Reagent.ReactiveEffects != null && entity.Comp.ReactiveGroups != null)
|
||||
{
|
||||
if (!val.Methods.Contains(args.Method))
|
||||
continue;
|
||||
foreach (var (key, val) in args.Reagent.ReactiveEffects)
|
||||
{
|
||||
if (!val.Methods.Contains(args.Method))
|
||||
continue;
|
||||
|
||||
if (!entity.Comp.ReactiveGroups.TryGetValue(key, out var group))
|
||||
continue;
|
||||
if (!entity.Comp.ReactiveGroups.TryGetValue(key, out var group))
|
||||
continue;
|
||||
|
||||
if (!group.Contains(args.Method))
|
||||
continue;
|
||||
if (!group.Contains(args.Method))
|
||||
continue;
|
||||
|
||||
ApplyEffects(entity, val.Effects, scale);
|
||||
ApplyEffects(entity, val.Effects, scale);
|
||||
}
|
||||
}
|
||||
|
||||
if (entity.Comp.Reactions == null)
|
||||
return;
|
||||
|
||||
foreach (var entry in entity.Comp.Reactions)
|
||||
if (entity.Comp.Reactions != null)
|
||||
{
|
||||
if (!entry.Methods.Contains(args.Method))
|
||||
continue;
|
||||
foreach (var entry in entity.Comp.Reactions)
|
||||
{
|
||||
if (!entry.Methods.Contains(args.Method))
|
||||
continue;
|
||||
|
||||
if (entry.Reagents == null || entry.Reagents.Contains(args.Reagent.ID))
|
||||
ApplyEffects(entity, entry.Effects, scale);
|
||||
if (entry.Reagents == null || entry.Reagents.Contains(args.Reagent.ID))
|
||||
ApplyEffects(entity, entry.Effects, scale);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -104,7 +104,6 @@
|
||||
methods: [ Touch ]
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
damage:
|
||||
groups:
|
||||
Brute: -0.15
|
||||
@@ -112,7 +111,6 @@
|
||||
methods: [ Touch ]
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
damage:
|
||||
groups:
|
||||
Brute: -0.25
|
||||
@@ -121,7 +119,6 @@
|
||||
methods: [ Touch ]
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
damage:
|
||||
groups:
|
||||
Brute: -1
|
||||
@@ -130,7 +127,6 @@
|
||||
methods: [ Touch ]
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
damage:
|
||||
types:
|
||||
Heat: 1
|
||||
|
||||
@@ -79,7 +79,6 @@
|
||||
methods: [ Touch ]
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
damage:
|
||||
types:
|
||||
Heat: 0.05 #Same as slime species
|
||||
|
||||
@@ -512,7 +512,6 @@
|
||||
methods: [Touch, Ingestion, Injection]
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
damage:
|
||||
types:
|
||||
Caustic: 1
|
||||
|
||||
@@ -48,7 +48,6 @@
|
||||
methods: [ Touch ]
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
damage:
|
||||
types:
|
||||
Blunt: 0.05
|
||||
@@ -63,7 +62,6 @@
|
||||
methods: [ Touch ]
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
damage:
|
||||
types:
|
||||
Poison: 0.125
|
||||
|
||||
@@ -81,7 +81,6 @@
|
||||
methods: [ Touch ]
|
||||
effects: # TODO: when magic is around - make a milk transformation to a skeleton monster
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
damage:
|
||||
groups:
|
||||
Burn: -1 # healing obviously up to discussion
|
||||
|
||||
@@ -87,7 +87,6 @@
|
||||
methods: [ Touch ]
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
damage:
|
||||
types:
|
||||
Heat: 0.05
|
||||
|
||||
@@ -75,7 +75,6 @@
|
||||
methods: [Touch]
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
damage:
|
||||
types:
|
||||
Heat: 0.5
|
||||
|
||||
@@ -453,7 +453,6 @@
|
||||
Gas:
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
ignoreResistances: true
|
||||
conditions:
|
||||
- !type:MetabolizerTypeCondition
|
||||
|
||||
@@ -258,7 +258,6 @@
|
||||
- !type:ReagentCondition
|
||||
reagent: Ammonia
|
||||
min: 1
|
||||
scaling: true
|
||||
ignoreResistances: true
|
||||
damage:
|
||||
groups:
|
||||
|
||||
@@ -183,7 +183,6 @@
|
||||
methods: [ Touch ]
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
ignoreResistances: false
|
||||
damage:
|
||||
types:
|
||||
@@ -233,7 +232,6 @@
|
||||
methods: [ Touch ]
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
ignoreResistances: false
|
||||
damage:
|
||||
types:
|
||||
|
||||
@@ -11,13 +11,11 @@
|
||||
Poison:
|
||||
effects:
|
||||
- !type:Oxygenate
|
||||
scaling: true
|
||||
conditions:
|
||||
- !type:MetabolizerTypeCondition
|
||||
type: [ Human, Animal, Rat, Plant ]
|
||||
# Convert Oxygen into CO2.
|
||||
- !type:ModifyLungGas
|
||||
scaling: true
|
||||
conditions:
|
||||
- !type:MetabolizerTypeCondition
|
||||
type: [ Vox ]
|
||||
@@ -29,7 +27,6 @@
|
||||
conditions:
|
||||
- !type:MetabolizerTypeCondition
|
||||
type: [ Vox ]
|
||||
scaling: true
|
||||
ignoreResistances: true
|
||||
damage:
|
||||
types:
|
||||
@@ -45,13 +42,11 @@
|
||||
Gas:
|
||||
effects:
|
||||
- !type:Oxygenate
|
||||
scaling: true
|
||||
conditions:
|
||||
- !type:MetabolizerTypeCondition
|
||||
type: [ Human, Animal, Rat, Plant ]
|
||||
# Convert Oxygen into CO2.
|
||||
- !type:ModifyLungGas
|
||||
scaling: true
|
||||
conditions:
|
||||
- !type:MetabolizerTypeCondition
|
||||
type: [ Vox ]
|
||||
@@ -63,7 +58,6 @@
|
||||
conditions:
|
||||
- !type:MetabolizerTypeCondition
|
||||
type: [ Vox ]
|
||||
scaling: true
|
||||
ignoreResistances: true
|
||||
damage:
|
||||
types:
|
||||
@@ -103,7 +97,6 @@
|
||||
Gas:
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
ignoreResistances: true
|
||||
damage:
|
||||
types:
|
||||
@@ -149,7 +142,6 @@
|
||||
Gas:
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
ignoreResistances: true
|
||||
damage:
|
||||
types:
|
||||
@@ -173,7 +165,6 @@
|
||||
Poison:
|
||||
effects:
|
||||
- !type:Oxygenate
|
||||
scaling: true
|
||||
conditions:
|
||||
- !type:MetabolizerTypeCondition
|
||||
type: [ Plant ]
|
||||
@@ -182,14 +173,12 @@
|
||||
- !type:MetabolizerTypeCondition
|
||||
type: [ Plant, Vox ]
|
||||
inverted: true
|
||||
scaling: true
|
||||
ignoreResistances: true
|
||||
damage:
|
||||
types:
|
||||
Poison:
|
||||
0.4
|
||||
- !type:Oxygenate
|
||||
scaling: true
|
||||
conditions:
|
||||
- !type:MetabolizerTypeCondition
|
||||
type: [ Plant ]
|
||||
@@ -198,7 +187,6 @@
|
||||
Gas:
|
||||
effects:
|
||||
- !type:Oxygenate
|
||||
scaling: true
|
||||
conditions:
|
||||
- !type:MetabolizerTypeCondition
|
||||
type: [ Plant ]
|
||||
@@ -210,14 +198,12 @@
|
||||
inverted: true
|
||||
# Don't want people to get toxin damage from the gas they just
|
||||
# exhaled, right?
|
||||
scaling: true
|
||||
ignoreResistances: true
|
||||
damage:
|
||||
types:
|
||||
Poison:
|
||||
0.8
|
||||
- !type:Oxygenate # carbon dioxide displaces oxygen from the bloodstream, causing asphyxiation
|
||||
scaling: true
|
||||
conditions:
|
||||
- !type:MetabolizerTypeCondition
|
||||
type: [ Plant ]
|
||||
@@ -246,13 +232,11 @@
|
||||
Gas:
|
||||
effects:
|
||||
- !type:Oxygenate
|
||||
scaling: true
|
||||
conditions:
|
||||
- !type:MetabolizerTypeCondition
|
||||
type: [ Vox, Slime ]
|
||||
# Converts Nitrogen into Ammonia
|
||||
- !type:ModifyLungGas
|
||||
scaling: true
|
||||
conditions:
|
||||
- !type:MetabolizerTypeCondition
|
||||
type: [ Vox ]
|
||||
@@ -260,7 +244,6 @@
|
||||
Ammonia: 1.0
|
||||
Nitrogen: -1.0
|
||||
- !type:ModifyLungGas
|
||||
scaling: true
|
||||
conditions:
|
||||
- !type:MetabolizerTypeCondition
|
||||
type: [ Slime ]
|
||||
@@ -359,7 +342,6 @@
|
||||
Narcotic:
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
ignoreResistances: true
|
||||
damage:
|
||||
types:
|
||||
@@ -386,7 +368,6 @@
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
minScale: 1
|
||||
scaling: true
|
||||
ignoreResistances: true
|
||||
damage:
|
||||
types:
|
||||
|
||||
@@ -1176,7 +1176,6 @@
|
||||
methods: [ Touch ]
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
ignoreResistances: false
|
||||
damage:
|
||||
types:
|
||||
|
||||
@@ -145,7 +145,6 @@
|
||||
methods: [ Touch ]
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
ignoreResistances: false
|
||||
damage:
|
||||
types:
|
||||
@@ -184,7 +183,6 @@
|
||||
- !type:SatiateThirst
|
||||
factor: -1.5
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
ignoreResistances: true
|
||||
damage:
|
||||
types:
|
||||
@@ -207,7 +205,6 @@
|
||||
methods: [ Touch ]
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
ignoreResistances: false
|
||||
damage:
|
||||
types:
|
||||
@@ -257,7 +254,6 @@
|
||||
methods: [ Touch ]
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
scaling: true
|
||||
ignoreResistances: false
|
||||
damage:
|
||||
types:
|
||||
|
||||
Reference in New Issue
Block a user