Call goat protective services (#18812)

* Limit reproductivecomponent in confined areas

* Slight bump
This commit is contained in:
metalgearsloth 2023-08-07 19:48:47 +10:00 committed by GitHub
parent 61b4ee080e
commit 649295dcd2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 0 deletions

View File

@ -11,6 +11,7 @@ using Content.Shared.Nutrition.Components;
using Content.Shared.Nutrition.EntitySystems;
using Content.Shared.Storage;
using Robust.Server.GameObjects;
using Robust.Shared.Collections;
using Robust.Shared.Random;
using Robust.Shared.Timing;
@ -83,7 +84,12 @@ public sealed class AnimalHusbandrySystem : EntitySystem
return false;
var xform = Transform(uid);
var partners = _entityLookup.GetComponentsInRange<ReproductivePartnerComponent>(xform.Coordinates, component.BreedRange);
if (partners.Count >= component.Capacity)
return false;
foreach (var comp in partners)
{
var partner = comp.Owner;

View File

@ -38,6 +38,12 @@ public sealed class ReproductiveComponent : Component
[DataField("breedRange"), ViewVariables(VVAccess.ReadWrite)]
public float BreedRange = 3f;
/// <summary>
/// How many other entities with this component are allowed in range before we stop.
/// </summary>
[DataField("capacity"), ViewVariables(VVAccess.ReadWrite)]
public int Capacity = 6;
/// <summary>
/// The chance that, on a given attempt,
/// for each valid partner, the entity will breed.