* buzz buzz

* Darn now i'm all out of periods   thanks mirror
fix toy issue

* desc edits.

* rng and alphabee

* adds some missed parens
This commit is contained in:
Moony
2021-11-25 00:06:13 -06:00
committed by GitHub
parent 2a409de436
commit d5c5cbeaf4
12 changed files with 236 additions and 4 deletions

View File

@@ -13,6 +13,10 @@ namespace Content.Server.Chemistry.TileReactions
[DataDefinition]
public class CleanTileReaction : ITileReaction
{
[DataField("cleanAmountMultiplier")]
public float CleanAmountMultiplier { get; private set; } = 1.0f;
FixedPoint2 ITileReaction.TileReact(TileRef tile, ReagentPrototype reagent, FixedPoint2 reactVolume)
{
var entities = tile.GetEntitiesInTileFast().ToArray();
@@ -21,7 +25,7 @@ namespace Content.Server.Chemistry.TileReactions
{
if (entity.TryGetComponent(out CleanableComponent? cleanable))
{
var next = amount + cleanable.CleanAmount;
var next = (amount + cleanable.CleanAmount) * CleanAmountMultiplier;
// Nothing left?
if (reactVolume < next)
break;

View File

@@ -2,12 +2,14 @@
using Content.Shared.Chemistry.Reagent;
using Content.Shared.FixedPoint;
using Content.Shared.Maps;
using Content.Shared.Random.Helpers;
using Content.Shared.Whitelist;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Map;
using Robust.Shared.Maths;
using Robust.Shared.Prototypes;
using Robust.Shared.Random;
using Robust.Shared.Serialization.Manager.Attributes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
@@ -34,6 +36,9 @@ public class CreateEntityReaction : ITileReaction
[DataField("maxOnTileWhitelist")]
public EntityWhitelist? Whitelist;
[DataField("randomOffsetMax")]
public float RandomOffsetMax = 0.0f;
public FixedPoint2 TileReact(TileRef tile, ReagentPrototype reagent, FixedPoint2 reactVolume)
{
if (reactVolume >= Usage)
@@ -54,7 +59,13 @@ public class CreateEntityReaction : ITileReaction
}
}
entMan.SpawnEntity(Entity, tile.GridPosition().Offset(new Vector2(0.5f, 0.5f)));
var random = IoCManager.Resolve<IRobustRandom>();
var xoffs = random.NextFloat(-RandomOffsetMax, RandomOffsetMax);
var yoffs = random.NextFloat(-RandomOffsetMax, RandomOffsetMax);
var pos = tile.GridPosition().Offset(new Vector2(0.5f + xoffs, 0.5f + yoffs));
entMan.SpawnEntity(Entity, pos);
return Usage;
}