* Gateway generation * Gateway stuff * gatewehs * mercenaries * play area * Range fixes and tweaks * weh * Gateway UI polish * Lots of fixes * Knock some items off * Fix dungeon spawning Realistically we should probably be using a salvage job. * wahwah * wehvs * expression * weh * eee * a * a * WEH * frfr * Gatwey * Fix gateway windows * Fix gateway windows * a * a * Better layer masking * a * a * Noise fixes * a * Fix fractal calculations * a * More fixes * Fixes * Add layers back in * Fixes * namespaces and ftl * Other TODO * Fix distance * Cleanup * Fix test
69 lines
1.6 KiB
C#
69 lines
1.6 KiB
C#
using Content.Shared.Parallax.Biomes.Markers;
|
|
using Robust.Shared.Prototypes;
|
|
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
|
|
|
|
namespace Content.Server.Gateway.Components;
|
|
|
|
/// <summary>
|
|
/// Generates gateway destinations at a regular interval.
|
|
/// </summary>
|
|
[RegisterComponent]
|
|
public sealed partial class GatewayGeneratorComponent : Component
|
|
{
|
|
/// <summary>
|
|
/// Prototype to spawn on the generated map if applicable.
|
|
/// </summary>
|
|
[DataField]
|
|
public EntProtoId? Proto = "Gateway";
|
|
|
|
/// <summary>
|
|
/// Next time another seed unlocks.
|
|
/// </summary>
|
|
[DataField(customTypeSerializer:typeof(TimeOffsetSerializer))]
|
|
public TimeSpan NextUnlock;
|
|
|
|
/// <summary>
|
|
/// How long it takes to unlock another destination once one is taken.
|
|
/// </summary>
|
|
[DataField]
|
|
public TimeSpan UnlockCooldown = TimeSpan.FromMinutes(45);
|
|
|
|
/// <summary>
|
|
/// Maps we've generated.
|
|
/// </summary>
|
|
[DataField]
|
|
public List<EntityUid> Generated = new();
|
|
|
|
[DataField]
|
|
public int MobLayerCount = 1;
|
|
|
|
/// <summary>
|
|
/// Mob layers to pick from.
|
|
/// </summary>
|
|
[DataField]
|
|
public List<ProtoId<BiomeMarkerLayerPrototype>> MobLayers = new()
|
|
{
|
|
"Carps",
|
|
"Xenos",
|
|
};
|
|
|
|
[DataField]
|
|
public int LootLayerCount = 3;
|
|
|
|
/// <summary>
|
|
/// Loot layers to pick from.
|
|
/// </summary>
|
|
public List<ProtoId<BiomeMarkerLayerPrototype>> LootLayers = new()
|
|
{
|
|
"OreTin",
|
|
"OreQuartz",
|
|
"OreGold",
|
|
"OreSilver",
|
|
"OrePlasma",
|
|
"OreUranium",
|
|
"OreBananium",
|
|
"OreArtifactFragment",
|
|
};
|
|
}
|
|
|