mirror of
https://github.com/space-syndicate/space-station-14.git
synced 2026-10-19 07:01:09 +03:00
commit
0ecb2631d1
39 changed files with 2580 additions and 1491 deletions
|
|
@ -22,13 +22,13 @@ using Content.Shared.Timing;
|
|||
using Content.Shared.Toggleable;
|
||||
using Content.Shared.Weapons.Melee.Events;
|
||||
using Content.Shared.FixedPoint;
|
||||
using Content.Shared.Hands;
|
||||
using Content.Shared.Temperature.Components;
|
||||
using Robust.Server.Audio;
|
||||
using Robust.Shared.Physics.Components;
|
||||
using Robust.Shared.Physics.Events;
|
||||
using Robust.Shared.Physics.Systems;
|
||||
using Robust.Shared.Random;
|
||||
using Robust.Shared.Timing;
|
||||
|
||||
namespace Content.Server.Atmos.EntitySystems
|
||||
{
|
||||
|
|
@ -49,14 +49,12 @@ namespace Content.Server.Atmos.EntitySystems
|
|||
[Dependency] private readonly UseDelaySystem _useDelay = default!;
|
||||
[Dependency] private readonly AudioSystem _audio = default!;
|
||||
[Dependency] private readonly IRobustRandom _random = default!;
|
||||
[Dependency] private readonly IGameTiming _timing = default!;
|
||||
|
||||
private EntityQuery<InventoryComponent> _inventoryQuery;
|
||||
private EntityQuery<PhysicsComponent> _physicsQuery;
|
||||
|
||||
// This should probably be moved to the component, requires a rewrite, all fires tick at the same time
|
||||
private const float UpdateTime = 1f;
|
||||
|
||||
private float _timer;
|
||||
private static readonly TimeSpan UpdateTime = TimeSpan.FromSeconds(1);
|
||||
|
||||
private readonly Dictionary<Entity<FlammableComponent>, float> _fireEvents = new();
|
||||
|
||||
|
|
@ -138,6 +136,8 @@ namespace Content.Server.Atmos.EntitySystems
|
|||
|
||||
private void OnMapInit(EntityUid uid, FlammableComponent component, MapInitEvent args)
|
||||
{
|
||||
component.NextUpdate = _timing.CurTime + UpdateTime;
|
||||
|
||||
// Sets up a fixture for flammable collisions.
|
||||
// TODO: Should this be generalized into a general non-hard 'effects' fixture or something? I can't think of other use cases for it.
|
||||
// This doesn't seem great either (lots more collisions generated) but there isn't a better way to solve it either that I can think of.
|
||||
|
|
@ -146,7 +146,7 @@ namespace Content.Server.Atmos.EntitySystems
|
|||
return;
|
||||
|
||||
_fixture.TryCreateFixture(uid, component.FlammableCollisionShape, component.FlammableFixtureID, density: 0,
|
||||
hard: false, collisionMask: (int) CollisionGroup.FullTileLayer, body: body);
|
||||
hard: false, collisionMask: (int)CollisionGroup.FullTileLayer, body: body);
|
||||
}
|
||||
|
||||
private void OnInteractUsing(EntityUid uid, FlammableComponent flammable, InteractUsingEvent args)
|
||||
|
|
@ -365,7 +365,7 @@ namespace Content.Server.Atmos.EntitySystems
|
|||
if (args.DamageDelta.DamageDict.TryGetValue("Heat", out FixedPoint2 value))
|
||||
{
|
||||
// Make sure the value is greater than the threshold
|
||||
if(value <= component.Threshold)
|
||||
if (value <= component.Threshold)
|
||||
return;
|
||||
|
||||
// Ignite that sucker
|
||||
|
|
@ -382,21 +382,13 @@ namespace Content.Server.Atmos.EntitySystems
|
|||
if (!Resolve(uid, ref flammable))
|
||||
return;
|
||||
|
||||
if (!flammable.OnFire || !_actionBlockerSystem.CanInteract(uid, null) || flammable.Resisting)
|
||||
if (!flammable.OnFire || flammable.Resisting || !_actionBlockerSystem.CanInteract(uid, null))
|
||||
return;
|
||||
|
||||
flammable.Resisting = true;
|
||||
flammable.ResistCompleteTime = _timing.CurTime + flammable.ResistTime;
|
||||
|
||||
_popup.PopupEntity(Loc.GetString("flammable-component-resist-message"), uid, uid);
|
||||
_stunSystem.TryUpdateParalyzeDuration(uid, TimeSpan.FromSeconds(2f));
|
||||
|
||||
// TODO FLAMMABLE: Make this not use TimerComponent...
|
||||
uid.SpawnTimer(2000, () =>
|
||||
{
|
||||
flammable.Resisting = false;
|
||||
flammable.FireStacks -= 1f;
|
||||
UpdateAppearance(uid, flammable);
|
||||
});
|
||||
_stunSystem.TryUpdateParalyzeDuration(uid, flammable.ResistTime);
|
||||
}
|
||||
|
||||
public override void Update(float frameTime)
|
||||
|
|
@ -416,17 +408,21 @@ namespace Content.Server.Atmos.EntitySystems
|
|||
}
|
||||
_fireEvents.Clear();
|
||||
|
||||
_timer += frameTime;
|
||||
|
||||
if (_timer < UpdateTime)
|
||||
return;
|
||||
|
||||
_timer -= UpdateTime;
|
||||
var curTime = _timing.CurTime;
|
||||
|
||||
// TODO: This needs cleanup to take off the crust from TemperatureComponent and shit.
|
||||
var query = EntityQueryEnumerator<FlammableComponent, TransformComponent>();
|
||||
while (query.MoveNext(out var uid, out var flammable, out _))
|
||||
{
|
||||
if (curTime < flammable.NextUpdate)
|
||||
continue;
|
||||
|
||||
flammable.NextUpdate += UpdateTime;
|
||||
|
||||
// Check if we finished resisting.
|
||||
if (curTime > flammable.ResistCompleteTime)
|
||||
flammable.ResistCompleteTime = null;
|
||||
|
||||
// Slowly dry ourselves off if wet.
|
||||
if (flammable.FireStacks < 0)
|
||||
{
|
||||
|
|
@ -467,7 +463,7 @@ namespace Content.Server.Atmos.EntitySystems
|
|||
|
||||
_damageableSystem.TryChangeDamage(uid, flammable.Damage * flammable.FireStacks * ev.Multiplier, interruptsDoAfters: false);
|
||||
|
||||
AdjustFireStacks(uid, flammable.FirestackFade * (flammable.Resisting ? 10f : 1f), flammable, flammable.OnFire);
|
||||
AdjustFireStacks(uid, flammable.FirestackFade * (flammable.Resisting ? 15f : 1f), flammable, flammable.OnFire);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ public sealed class PoweredLightVariationPassSystem : VariationPassSystem<Powere
|
|||
// some aging fluorescents (tubes) start to flicker
|
||||
// its also way too annoying right now so we wrap it in another prob lol
|
||||
if (Random.Prob(ent.Comp.AgedLightTubeFlickerChance))
|
||||
_poweredLight.ToggleBlinkingLight(uid, comp, true);
|
||||
EnsureComp<BlinkingPoweredLightComponent>(uid);
|
||||
_poweredLight.ReplaceSpawnedPrototype((uid, comp), ent.Comp.AgedLightTubePrototype);
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -19,24 +19,19 @@ public sealed class PoweredLightSystem : SharedPoweredLightSystem
|
|||
|
||||
private void OnGhostBoo(EntityUid uid, PoweredLightComponent light, GhostBooEvent args)
|
||||
{
|
||||
if (light.IgnoreGhostsBoo)
|
||||
return;
|
||||
if (light.IgnoreGhostsBoo || HasComp<BlinkingPoweredLightComponent>(uid))
|
||||
return; // The light is immune or already blinking.
|
||||
|
||||
// check cooldown first to prevent abuse
|
||||
var time = GameTiming.CurTime;
|
||||
if (light.LastGhostBlink != null)
|
||||
{
|
||||
if (time <= light.LastGhostBlink + light.GhostBlinkingCooldown)
|
||||
return;
|
||||
}
|
||||
var curTime = GameTiming.CurTime;
|
||||
if (light.LastGhostBlink != null && curTime <= light.LastGhostBlink + light.GhostBlinkingCooldown)
|
||||
return;
|
||||
|
||||
light.LastGhostBlink = time;
|
||||
light.LastGhostBlink = curTime;
|
||||
|
||||
ToggleBlinkingLight(uid, light, true);
|
||||
uid.SpawnTimer(light.GhostBlinkingTime, () =>
|
||||
{
|
||||
ToggleBlinkingLight(uid, light, false);
|
||||
});
|
||||
var blinkingComp = EnsureComp<BlinkingPoweredLightComponent>(uid);
|
||||
blinkingComp.StopBlinkingTime = curTime + light.GhostBlinkingTime;
|
||||
Dirty(uid, blinkingComp);
|
||||
|
||||
args.Handled = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,14 +3,40 @@ using Content.Shared.Damage;
|
|||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Physics.Collision.Shapes;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
|
||||
|
||||
namespace Content.Shared.Atmos.Components
|
||||
{
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
[RegisterComponent, NetworkedComponent, AutoGenerateComponentPause] // TODO: Access restriction so that other systems have to use the API to modify fire stacks
|
||||
public sealed partial class FlammableComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
/// Is the mob currently resisting being on fire
|
||||
/// (i.e. throwing themselves onto the ground to extinguish themselves)?
|
||||
/// </summary>
|
||||
[ViewVariables]
|
||||
public bool Resisting => ResistCompleteTime.HasValue;
|
||||
|
||||
/// <summary>
|
||||
/// The time stamp at which the active resist will be over and the mob's flame stacks will be reduced.
|
||||
/// </summary>
|
||||
[DataField(customTypeSerializer: typeof(TimeOffsetSerializer))]
|
||||
[AutoPausedField]
|
||||
public TimeSpan? ResistCompleteTime;
|
||||
|
||||
/// <summary>
|
||||
/// Timestamp for the next update.
|
||||
/// </summary>
|
||||
[DataField(customTypeSerializer: typeof(TimeOffsetSerializer))]
|
||||
[AutoPausedField]
|
||||
public TimeSpan NextUpdate;
|
||||
|
||||
/// <summary>
|
||||
/// The time resisting being on fire will take.
|
||||
/// The mob will be paralyzed for this duration.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public bool Resisting;
|
||||
public TimeSpan ResistTime = TimeSpan.FromSeconds(2);
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
[DataField]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
using System.Diagnostics.CodeAnalysis;
|
||||
using Content.Shared.Construction.Components;
|
||||
using Content.Shared.Administration.Logs;
|
||||
using Content.Shared.Construction.Components;
|
||||
using Content.Shared.Construction.EntitySystems;
|
||||
using Content.Shared.Containers.ItemSlots;
|
||||
using Content.Shared.Database;
|
||||
using Content.Shared.Examine;
|
||||
|
|
@ -12,6 +13,8 @@ using Robust.Shared.Audio.Systems;
|
|||
using Robust.Shared.Containers;
|
||||
using Robust.Shared.Map.Components;
|
||||
using Robust.Shared.Network;
|
||||
using Robust.Shared.Physics;
|
||||
using Robust.Shared.Physics.Systems;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared.Construction;
|
||||
|
|
@ -21,16 +24,16 @@ public abstract class SharedFlatpackSystem : EntitySystem
|
|||
[Dependency] private readonly ISharedAdminLogManager _adminLogger = default!;
|
||||
[Dependency] private readonly INetManager _net = default!;
|
||||
[Dependency] protected readonly IPrototypeManager PrototypeManager = default!;
|
||||
[Dependency] protected readonly SharedAppearanceSystem Appearance = default!;
|
||||
[Dependency] private readonly AnchorableSystem _anchorable = default!;
|
||||
[Dependency] private readonly MetaDataSystem _metaData = default!;
|
||||
[Dependency] private readonly SharedAudioSystem _audio = default!;
|
||||
[Dependency] private readonly SharedContainerSystem _container = default!;
|
||||
[Dependency] private readonly EntityLookupSystem _entityLookup = default!;
|
||||
[Dependency] private readonly SharedMapSystem _map = default!;
|
||||
[Dependency] protected readonly MachinePartSystem MachinePart = default!;
|
||||
[Dependency] protected readonly SharedMaterialStorageSystem MaterialStorage = default!;
|
||||
[Dependency] private readonly MetaDataSystem _metaData = default!;
|
||||
[Dependency] private readonly SharedPopupSystem _popup = default!;
|
||||
[Dependency] private readonly SharedToolSystem _tool = default!;
|
||||
[Dependency] protected readonly MachinePartSystem MachinePart = default!;
|
||||
[Dependency] protected readonly SharedAppearanceSystem Appearance = default!;
|
||||
[Dependency] protected readonly SharedMaterialStorageSystem MaterialStorage = default!;
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override void Initialize()
|
||||
|
|
@ -77,17 +80,18 @@ public abstract class SharedFlatpackSystem : EntitySystem
|
|||
return;
|
||||
}
|
||||
|
||||
var buildPos = _map.TileIndicesFor(grid, gridComp, xform.Coordinates);
|
||||
var coords = _map.ToCenterCoordinates(grid, buildPos);
|
||||
|
||||
// TODO FLATPAK
|
||||
// Make this logic smarter. This should eventually allow for shit like building microwaves on tables and such.
|
||||
// Also: make it ignore ghosts
|
||||
if (_entityLookup.AnyEntitiesIntersecting(coords, LookupFlags.Dynamic | LookupFlags.Static))
|
||||
if (!PrototypeManager.Resolve(comp.Entity, out var proto) ||
|
||||
!proto.TryGetComponent<FixturesComponent>(out var fixture, EntityManager.ComponentFactory))
|
||||
{
|
||||
// this popup is on the server because the predicts on the intersection is crazy
|
||||
if (_net.IsServer)
|
||||
_popup.PopupEntity(Loc.GetString("flatpack-unpack-no-room"), uid, args.User);
|
||||
return;
|
||||
}
|
||||
|
||||
var (layer, mask) = SharedPhysicsSystem.GetHardCollision(fixture);
|
||||
var buildPos = _map.TileIndicesFor(grid, gridComp, xform.Coordinates);
|
||||
|
||||
if (!_anchorable.TileFree((grid, gridComp), buildPos, layer, mask))
|
||||
{
|
||||
_popup.PopupPredicted(Loc.GetString("flatpack-unpack-no-room"), uid, args.User);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
namespace Content.Shared.Crayon;
|
||||
|
||||
[Virtual]
|
||||
public abstract class SharedCrayonSystem : EntitySystem { }
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ using Robust.Shared.Audio;
|
|||
using Robust.Shared.Containers;
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
|
||||
|
||||
namespace Content.Shared.Light.Components
|
||||
{
|
||||
|
|
@ -48,9 +49,6 @@ namespace Content.Shared.Light.Components
|
|||
[AutoNetworkedField]
|
||||
public bool CurrentLit;
|
||||
|
||||
[DataField, AutoNetworkedField]
|
||||
public bool IsBlinking;
|
||||
|
||||
[DataField, AutoNetworkedField, AutoPausedField]
|
||||
public TimeSpan LastThunk;
|
||||
|
||||
|
|
@ -84,4 +82,19 @@ namespace Content.Shared.Light.Components
|
|||
[DataField]
|
||||
public TimeSpan UnarmedHitStun = TimeSpan.FromSeconds(5);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Makes an entity with <see cref="PoweredLightComponent"/> toggle itself on and off.
|
||||
/// </summary>
|
||||
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState, AutoGenerateComponentPause]
|
||||
public sealed partial class BlinkingPoweredLightComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
/// The time at which this component will remove itself, stopping the blinking.
|
||||
/// If null then this light will keep blinking forever.
|
||||
/// </summary>
|
||||
[DataField(customTypeSerializer: typeof(TimeOffsetSerializer))]
|
||||
[AutoNetworkedField, AutoPausedField]
|
||||
public TimeSpan? StopBlinkingTime;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,6 +54,9 @@ public abstract class SharedPoweredLightSystem : EntitySystem
|
|||
SubscribeLocalEvent<PoweredLightComponent, PoweredLightDoAfterEvent>(OnDoAfter);
|
||||
SubscribeLocalEvent<PoweredLightComponent, DamageChangedEvent>(HandleLightDamaged);
|
||||
SubscribeLocalEvent<PoweredLightComponent, EmpPulseEvent>(OnEmpPulse);
|
||||
|
||||
SubscribeLocalEvent<BlinkingPoweredLightComponent, MapInitEvent>(OnBlinkingMapInit);
|
||||
SubscribeLocalEvent<BlinkingPoweredLightComponent, ComponentShutdown>(OnBlinkingShutdown);
|
||||
}
|
||||
|
||||
private void OnInit(EntityUid uid, PoweredLightComponent light, ComponentInit args)
|
||||
|
|
@ -353,20 +356,6 @@ public abstract class SharedPoweredLightSystem : EntitySystem
|
|||
args.Affected = true;
|
||||
}
|
||||
|
||||
public void ToggleBlinkingLight(EntityUid uid, PoweredLightComponent light, bool isNowBlinking)
|
||||
{
|
||||
if (light.IsBlinking == isNowBlinking)
|
||||
return;
|
||||
|
||||
light.IsBlinking = isNowBlinking;
|
||||
Dirty(uid, light);
|
||||
|
||||
if (!TryComp<AppearanceComponent>(uid, out var appearance))
|
||||
return;
|
||||
|
||||
_appearance.SetData(uid, PoweredLightVisuals.Blinking, isNowBlinking, appearance);
|
||||
}
|
||||
|
||||
private void SetLight(EntityUid uid, bool value, Color? color = null, PoweredLightComponent? light = null, float? radius = null, float? energy = null, float? softness = null)
|
||||
{
|
||||
if (!Resolve(uid, ref light))
|
||||
|
|
@ -427,4 +416,27 @@ public abstract class SharedPoweredLightSystem : EntitySystem
|
|||
|
||||
args.Handled = true;
|
||||
}
|
||||
|
||||
private void OnBlinkingMapInit(Entity<BlinkingPoweredLightComponent> ent, ref MapInitEvent args)
|
||||
{
|
||||
_appearance.SetData(ent, PoweredLightVisuals.Blinking, true);
|
||||
}
|
||||
|
||||
private void OnBlinkingShutdown(Entity<BlinkingPoweredLightComponent> ent, ref ComponentShutdown args)
|
||||
{
|
||||
_appearance.SetData(ent, PoweredLightVisuals.Blinking, false);
|
||||
}
|
||||
|
||||
public override void Update(float frameTime)
|
||||
{
|
||||
base.Update(frameTime);
|
||||
|
||||
var curTime = GameTiming.CurTime;
|
||||
var query = EntityQueryEnumerator<BlinkingPoweredLightComponent>();
|
||||
while (query.MoveNext(out var uid, out var blinkingComp))
|
||||
{
|
||||
if (curTime > blinkingComp.StopBlinkingTime)
|
||||
RemCompDeferred<BlinkingPoweredLightComponent>(uid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,25 +1,4 @@
|
|||
Entries:
|
||||
- author: ScarKy0
|
||||
changes:
|
||||
- message: Mice, cockroaches and other small mobs can no longer unwrap parcels.
|
||||
type: Fix
|
||||
id: 9075
|
||||
time: '2025-10-11T21:32:59.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/40838
|
||||
- author: Hitlinemoss
|
||||
changes:
|
||||
- message: Autolathes can now print durathread.
|
||||
type: Add
|
||||
id: 9076
|
||||
time: '2025-10-11T21:46:46.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/40837
|
||||
- author: cloudyias
|
||||
changes:
|
||||
- message: Added the ability for droppers to be printed via autolathes and medfabs
|
||||
type: Add
|
||||
id: 9077
|
||||
time: '2025-10-11T23:15:41.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/40074
|
||||
- author: jessicamaybe
|
||||
changes:
|
||||
- message: Added swabs and an emag inventory to the biogenerator
|
||||
|
|
@ -4029,3 +4008,28 @@ Entries:
|
|||
id: 9586
|
||||
time: '2026-03-22T22:57:42.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/43321
|
||||
- author: mqole
|
||||
changes:
|
||||
- message: Flatpacks now use the collision of the flatpacked entity, so they can
|
||||
be opened on tables and aren't blocked by ghosts.
|
||||
type: Fix
|
||||
id: 9587
|
||||
time: '2026-03-24T20:25:18.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/41849
|
||||
- author: Not-A-Chair
|
||||
changes:
|
||||
- message: Tricordrazine no longer heals radiation
|
||||
type: Tweak
|
||||
- message: . Tricordrazine no longer works on mobs in crit
|
||||
type: Tweak
|
||||
id: 9588
|
||||
time: '2026-03-25T13:34:10.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/43293
|
||||
- author: ArcaneValiance
|
||||
changes:
|
||||
- message: Ambuzol and Ambuzol Plus pills now properly cure and prevent infection
|
||||
respectively.
|
||||
type: Fix
|
||||
id: 9589
|
||||
time: '2026-03-25T13:49:55.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/43331
|
||||
|
|
|
|||
|
|
@ -1067,4 +1067,15 @@
|
|||
id: 131
|
||||
time: '2026-03-19T07:44:21.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/43278
|
||||
- author: ProPeperos
|
||||
changes:
|
||||
- message: On Reach, added protective grill around the station.
|
||||
type: Add
|
||||
- message: On Reach, you can now dock cargo shuttle to cargo dock
|
||||
type: Tweak
|
||||
- message: On Reach, added a bunch of needed improvements
|
||||
type: Tweak
|
||||
id: 132
|
||||
time: '2026-03-24T21:43:08.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/43046
|
||||
Order: 2
|
||||
|
|
|
|||
|
|
@ -270166,7 +270166,6 @@ entities:
|
|||
rot: 1.5707963267948966 rad
|
||||
pos: 141.5,115.5
|
||||
parent: 2
|
||||
- type: Timer
|
||||
- uid: 37569
|
||||
components:
|
||||
- type: Transform
|
||||
|
|
@ -270189,7 +270188,6 @@ entities:
|
|||
- type: Transform
|
||||
pos: 137.5,113.5
|
||||
parent: 2
|
||||
- type: Timer
|
||||
- uid: 37573
|
||||
components:
|
||||
- type: Transform
|
||||
|
|
@ -271222,7 +271220,6 @@ entities:
|
|||
rot: 1.5707963267948966 rad
|
||||
pos: 86.5,104.5
|
||||
parent: 2
|
||||
- type: Timer
|
||||
- uid: 37751
|
||||
components:
|
||||
- type: Transform
|
||||
|
|
@ -271293,7 +271290,6 @@ entities:
|
|||
rot: -1.5707963267948966 rad
|
||||
pos: 90.5,106.5
|
||||
parent: 2
|
||||
- type: Timer
|
||||
- uid: 37763
|
||||
components:
|
||||
- type: Transform
|
||||
|
|
@ -273940,7 +273936,6 @@ entities:
|
|||
- type: Transform
|
||||
pos: 88.5,107.5
|
||||
parent: 2
|
||||
- type: Timer
|
||||
- uid: 38207
|
||||
components:
|
||||
- type: Transform
|
||||
|
|
|
|||
|
|
@ -210337,7 +210337,6 @@ entities:
|
|||
parent: 2
|
||||
- type: ApcPowerReceiver
|
||||
powerLoad: 0
|
||||
- type: Timer
|
||||
- uid: 27232
|
||||
components:
|
||||
- type: Transform
|
||||
|
|
@ -210827,7 +210826,6 @@ entities:
|
|||
parent: 2
|
||||
- type: ApcPowerReceiver
|
||||
powerLoad: 0
|
||||
- type: Timer
|
||||
- uid: 27298
|
||||
components:
|
||||
- type: Transform
|
||||
|
|
@ -211369,7 +211367,6 @@ entities:
|
|||
parent: 2
|
||||
- type: ApcPowerReceiver
|
||||
powerLoad: 0
|
||||
- type: Timer
|
||||
- uid: 27371
|
||||
components:
|
||||
- type: Transform
|
||||
|
|
@ -212216,7 +212213,6 @@ entities:
|
|||
parent: 2
|
||||
- type: ApcPowerReceiver
|
||||
powerLoad: 0
|
||||
- type: Timer
|
||||
- uid: 27491
|
||||
components:
|
||||
- type: Transform
|
||||
|
|
|
|||
|
|
@ -233080,7 +233080,6 @@ entities:
|
|||
- type: Transform
|
||||
pos: 9.5,-11.5
|
||||
parent: 2
|
||||
- type: Timer
|
||||
- uid: 25526
|
||||
components:
|
||||
- type: Transform
|
||||
|
|
|
|||
|
|
@ -46415,7 +46415,6 @@ entities:
|
|||
- type: Transform
|
||||
pos: -7.5,-4.5
|
||||
parent: 8406
|
||||
- type: Timer
|
||||
- uid: 8559
|
||||
components:
|
||||
- type: MetaData
|
||||
|
|
|
|||
|
|
@ -92512,7 +92512,6 @@ entities:
|
|||
rot: -1.5707963267948966 rad
|
||||
pos: 21.5,-70.5
|
||||
parent: 2
|
||||
- type: Timer
|
||||
- uid: 9798
|
||||
components:
|
||||
- type: Transform
|
||||
|
|
|
|||
|
|
@ -171204,7 +171204,6 @@ entities:
|
|||
parent: 13329
|
||||
- type: ApcPowerReceiver
|
||||
powerLoad: 0
|
||||
- type: Timer
|
||||
- uid: 20036
|
||||
components:
|
||||
- type: Transform
|
||||
|
|
@ -171213,7 +171212,6 @@ entities:
|
|||
parent: 13329
|
||||
- type: ApcPowerReceiver
|
||||
powerLoad: 0
|
||||
- type: Timer
|
||||
- uid: 20037
|
||||
components:
|
||||
- type: Transform
|
||||
|
|
@ -171222,7 +171220,6 @@ entities:
|
|||
parent: 13329
|
||||
- type: ApcPowerReceiver
|
||||
powerLoad: 0
|
||||
- type: Timer
|
||||
- uid: 20038
|
||||
components:
|
||||
- type: Transform
|
||||
|
|
|
|||
|
|
@ -153624,7 +153624,7 @@ entities:
|
|||
content: >-
|
||||
To: Mom
|
||||
|
||||
From: Elian Voss,
|
||||
From: Elian Voss,
|
||||
Power Systems Maintenance Tech – Oasis Station
|
||||
Subject: Before I Go Under
|
||||
|
||||
|
|
@ -156986,13 +156986,11 @@ entities:
|
|||
rot: 3.141592653589793 rad
|
||||
pos: 22.5,4.5
|
||||
parent: 2
|
||||
- type: Timer
|
||||
- uid: 2585
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 22.5,9.5
|
||||
parent: 2
|
||||
- type: Timer
|
||||
- uid: 2586
|
||||
components:
|
||||
- type: Transform
|
||||
|
|
@ -157547,7 +157545,6 @@ entities:
|
|||
rot: 3.141592653589793 rad
|
||||
pos: -29.5,39.5
|
||||
parent: 2
|
||||
- type: Timer
|
||||
- uid: 9180
|
||||
components:
|
||||
- type: Transform
|
||||
|
|
|
|||
|
|
@ -77244,7 +77244,6 @@ entities:
|
|||
parent: 2
|
||||
- type: ApcPowerReceiver
|
||||
powerLoad: 0
|
||||
- type: Timer
|
||||
- uid: 7568
|
||||
components:
|
||||
- type: Transform
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -51418,7 +51418,6 @@ entities:
|
|||
parent: 31
|
||||
- type: ApcPowerReceiver
|
||||
powerLoad: 0
|
||||
- type: Timer
|
||||
- uid: 1324
|
||||
components:
|
||||
- type: Transform
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
required: true
|
||||
default: [ IpcOrangeS ]
|
||||
enum.HumanoidVisualLayers.Head:
|
||||
limit: 0
|
||||
limit: 1
|
||||
required: false
|
||||
enum.HumanoidVisualLayers.LArm:
|
||||
limit: 1
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
- type: marking
|
||||
id: FoxEars
|
||||
bodyPart: HeadTop
|
||||
|
||||
groupWhitelist: [Human]
|
||||
sponsorOnly: true # Corvax-Sponsors
|
||||
sponsorOnly: false # Corvax-Sponsors
|
||||
sprites:
|
||||
- sprite: Corvax/Mobs/Customization/fox_parts.rsi
|
||||
state: ears_fox_outer
|
||||
|
|
|
|||
|
|
@ -11,9 +11,8 @@
|
|||
- type: marking
|
||||
id: FoxTail
|
||||
bodyPart: Tail
|
||||
|
||||
groupWhitelist: [Vulpkanin]
|
||||
sponsorOnly: true # Corvax-Sponsors
|
||||
sponsorOnly: false # Corvax-Sponsors
|
||||
sprites:
|
||||
- sprite: Corvax/Mobs/Customization/vulpkanin.rsi
|
||||
state: vulp_tail
|
||||
|
|
@ -59,7 +58,7 @@
|
|||
bodyPart: Snout
|
||||
|
||||
groupWhitelist: [Vulpkanin]
|
||||
sponsorOnly: true # Corvax-Sponsors
|
||||
sponsorOnly: false # Corvax-Sponsors
|
||||
sprites:
|
||||
- sprite: Corvax/Mobs/Customization/vulpkanin.rsi
|
||||
state: vulp_face
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@
|
|||
- sprite: Mobs/Species/Human/parts.rsi
|
||||
state: full
|
||||
- state: ai
|
||||
- type: Timer
|
||||
- type: TimedSpawner
|
||||
prototypes:
|
||||
- MobSpirate
|
||||
|
|
@ -30,7 +29,6 @@
|
|||
- sprite: Mobs/Aliens/Xenos/burrower.rsi
|
||||
state: crit
|
||||
- state: ai
|
||||
- type: Timer
|
||||
- type: TimedSpawner
|
||||
prototypes:
|
||||
- MobXeno
|
||||
|
|
@ -50,7 +48,6 @@
|
|||
- sprite: Mobs/Animals/mouse.rsi
|
||||
state: icon-2
|
||||
- state: timed
|
||||
- type: Timer
|
||||
- type: TimedSpawner
|
||||
prototypes:
|
||||
- MobMouse
|
||||
|
|
|
|||
|
|
@ -35,15 +35,18 @@
|
|||
layers:
|
||||
- state: green
|
||||
- state: ai
|
||||
- type: RandomSpawner
|
||||
prototypes:
|
||||
- MobCat
|
||||
- MobCatCalico
|
||||
- MobCatCaracal
|
||||
- MobCatKitten
|
||||
rarePrototypes:
|
||||
- MobCatSpace
|
||||
rareChance: 0.05
|
||||
- type: EntityTableSpawner
|
||||
table: !type:GroupSelector
|
||||
children:
|
||||
- id: MobCatSpace
|
||||
weight: 5
|
||||
- !type:GroupSelector
|
||||
weight: 95
|
||||
children:
|
||||
- id: MobCat
|
||||
- id: MobCatCalico
|
||||
- id: MobCatCaracal
|
||||
- id: MobCatKitten
|
||||
|
||||
- type: entity
|
||||
parent: MarkerBase
|
||||
|
|
|
|||
|
|
@ -3,29 +3,34 @@
|
|||
id: BedsheetSpawner
|
||||
parent: MarkerBase
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Objects/Misc/bedsheets.rsi
|
||||
state: random_bedsheet
|
||||
- type: RandomSpawner
|
||||
rarePrototypes:
|
||||
- BedsheetIan
|
||||
- BedsheetCosmos
|
||||
rareChance: 0.03
|
||||
prototypes:
|
||||
- BedsheetBlue
|
||||
- BedsheetYellow
|
||||
- BedsheetOrange
|
||||
- BedsheetGreen
|
||||
- BedsheetNT
|
||||
- BedsheetRed
|
||||
- BedsheetUSA
|
||||
- BedsheetBrown
|
||||
- BedsheetBlack
|
||||
- BedsheetPurple
|
||||
- BedsheetGrey
|
||||
- BedsheetWhite
|
||||
- BedsheetRainbow
|
||||
chance: 0.97
|
||||
offset: 0
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Objects/Misc/bedsheets.rsi
|
||||
state: random_bedsheet
|
||||
- type: EntityTableSpawner
|
||||
table: !type:GroupSelector
|
||||
children:
|
||||
- !type:GroupSelector
|
||||
weight: 97
|
||||
prob: 0.97
|
||||
children:
|
||||
- id: BedsheetBlue
|
||||
- id: BedsheetYellow
|
||||
- id: BedsheetOrange
|
||||
- id: BedsheetGreen
|
||||
- id: BedsheetNT
|
||||
- id: BedsheetRed
|
||||
- id: BedsheetUSA
|
||||
- id: BedsheetBrown
|
||||
- id: BedsheetBlack
|
||||
- id: BedsheetPurple
|
||||
- id: BedsheetGrey
|
||||
- id: BedsheetWhite
|
||||
- id: BedsheetRainbow
|
||||
- !type:GroupSelector
|
||||
weight: 3
|
||||
children:
|
||||
- id: BedsheetIan
|
||||
- id: BedsheetCosmos
|
||||
offset: 0
|
||||
|
|
|
|||
|
|
@ -184,37 +184,42 @@
|
|||
- state: red
|
||||
- sprite: Structures/Storage/Crates/engineering.rsi
|
||||
state: icon
|
||||
- type: RandomSpawner
|
||||
rarePrototypes:
|
||||
- CrateEngineeringSingularityGenerator
|
||||
- CrateEngineeringTeslaGenerator
|
||||
- CrateEngineeringTeslaGroundingRod
|
||||
- CrateEngineeringParticleAccelerator
|
||||
- CrateRCD
|
||||
- CrateEngineeringGear
|
||||
rareChance: 0.2
|
||||
prototypes:
|
||||
- CrateEngineering
|
||||
- CrateElectrical
|
||||
- CrateEngineeringElectricalSupplies
|
||||
- CrateRCDAmmo
|
||||
- CrateEngineeringCableLV
|
||||
- CrateEngineeringCableMV
|
||||
- CrateEngineeringCableHV
|
||||
- CrateEngineeringCableBulk
|
||||
- CrateEngineeringSingularityContainment
|
||||
- CrateEngineeringSingularityCollector
|
||||
- CrateEngineeringTeslaCoil
|
||||
- CrateEngineeringSingularityEmitter
|
||||
- CrateEngineeringGyroscope
|
||||
- CrateEngineeringThruster
|
||||
- CrateEngineeringToolbox
|
||||
- CrateEngineeringShuttle
|
||||
- CrateEngineeringSolar
|
||||
- CrateEngineeringJetpack
|
||||
- CrateEmergencyRadiation
|
||||
- CrateRadiation
|
||||
chance: 0.9
|
||||
- type: EntityTableSpawner
|
||||
table: !type:GroupSelector
|
||||
children:
|
||||
- !type:GroupSelector
|
||||
weight: 8
|
||||
prob: 0.9
|
||||
children:
|
||||
- id: CrateEngineering
|
||||
- id: CrateElectrical
|
||||
- id: CrateEngineeringElectricalSupplies
|
||||
- id: CrateRCDAmmo
|
||||
- id: CrateEngineeringCableLV
|
||||
- id: CrateEngineeringCableMV
|
||||
- id: CrateEngineeringCableHV
|
||||
- id: CrateEngineeringCableBulk
|
||||
- id: CrateEngineeringSingularityContainment
|
||||
- id: CrateEngineeringSingularityCollector
|
||||
- id: CrateEngineeringTeslaCoil
|
||||
- id: CrateEngineeringSingularityEmitter
|
||||
- id: CrateEngineeringGyroscope
|
||||
- id: CrateEngineeringThruster
|
||||
- id: CrateEngineeringToolbox
|
||||
- id: CrateEngineeringShuttle
|
||||
- id: CrateEngineeringSolar
|
||||
- id: CrateEngineeringJetpack
|
||||
- id: CrateEmergencyRadiation
|
||||
- id: CrateRadiation
|
||||
- !type:GroupSelector
|
||||
weight: 2
|
||||
children:
|
||||
- id: CrateEngineeringSingularityGenerator
|
||||
- id: CrateEngineeringTeslaGenerator
|
||||
- id: CrateEngineeringTeslaGroundingRod
|
||||
- id: CrateEngineeringParticleAccelerator
|
||||
- id: CrateRCD
|
||||
- id: CrateEngineeringGear
|
||||
offset: 0.0
|
||||
|
||||
- type: entity
|
||||
|
|
@ -227,26 +232,30 @@
|
|||
- state: red
|
||||
- sprite: Structures/Storage/Crates/sec_gear.rsi
|
||||
state: icon
|
||||
- type: RandomSpawner
|
||||
rarePrototypes: #Very useful stuff we probably don't want random people getting on space ruins often, even if there are hurdles to open it
|
||||
- CrateArmoryShotgun
|
||||
- CrateArmorySMG
|
||||
- CrateSecurityRiot
|
||||
- CrateSecurityNonlethal
|
||||
rareChance: 0.1
|
||||
prototypes:
|
||||
- CrateWeaponSecure
|
||||
- CrateArmoryLaser
|
||||
- CrateArmoryPistols
|
||||
- CrateTrainingBombs
|
||||
- CrateTrackingImplants
|
||||
- CrateSecurityTrackingMindshieldImplants
|
||||
- CrateSecurityHelmet
|
||||
- CrateSecurityArmor
|
||||
- CrateRestraints
|
||||
- CrateEmergencyExplosive
|
||||
- CrateSecurityBiosuit
|
||||
chance: 0.9
|
||||
- type: EntityTableSpawner
|
||||
table: !type:GroupSelector
|
||||
children:
|
||||
- !type:GroupSelector
|
||||
weight: 9
|
||||
prob: 0.9
|
||||
children:
|
||||
- id: CrateWeaponSecure
|
||||
- id: CrateArmoryLaser
|
||||
- id: CrateArmoryPistols
|
||||
- id: CrateTrainingBombs
|
||||
- id: CrateTrackingImplants
|
||||
- id: CrateSecurityTrackingMindshieldImplants
|
||||
- id: CrateSecurityHelmet
|
||||
- id: CrateSecurityArmor
|
||||
- id: CrateRestraints
|
||||
- id: CrateEmergencyExplosive
|
||||
- id: CrateSecurityBiosuit
|
||||
- !type:GroupSelector #Very useful stuff we probably don't want random people getting on space ruins often, even if there are hurdles to open it
|
||||
children:
|
||||
- id: CrateArmoryShotgun
|
||||
- id: CrateArmorySMG
|
||||
- id: CrateSecurityRiot
|
||||
- id: CrateSecurityNonlethal
|
||||
offset: 0.0
|
||||
|
||||
- type: entityTable
|
||||
|
|
|
|||
|
|
@ -4,24 +4,28 @@
|
|||
id: LootSpawnerEncryptionKey
|
||||
parent: MarkerBase
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Objects/Devices/encryption_keys.rsi
|
||||
state: crypt_rusted
|
||||
- sprite: Objects/Devices/encryption_keys.rsi
|
||||
state: nano_label
|
||||
- type: RandomSpawner
|
||||
rarePrototypes:
|
||||
- EncryptionKeyCommand
|
||||
- EncryptionKeySecurity
|
||||
rareChance: 0.1
|
||||
prototypes:
|
||||
- EncryptionKeyCommon
|
||||
- EncryptionKeyEngineering
|
||||
- EncryptionKeyScience
|
||||
- EncryptionKeyService
|
||||
- EncryptionKeyMedical
|
||||
- EncryptionKeyCargo
|
||||
chance: 0.9
|
||||
offset: 0.0
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Objects/Devices/encryption_keys.rsi
|
||||
state: crypt_rusted
|
||||
- sprite: Objects/Devices/encryption_keys.rsi
|
||||
state: nano_label
|
||||
- type: EntityTableSpawner
|
||||
table: !type:GroupSelector
|
||||
children:
|
||||
- !type:GroupSelector
|
||||
weight: 9
|
||||
prob: 0.9
|
||||
children:
|
||||
- id: EncryptionKeyCommon
|
||||
- id: EncryptionKeyEngineering
|
||||
- id: EncryptionKeyScience
|
||||
- id: EncryptionKeyService
|
||||
- id: EncryptionKeyMedical
|
||||
- id: EncryptionKeyCargo
|
||||
- !type:GroupSelector
|
||||
children:
|
||||
- id: EncryptionKeyCommand
|
||||
- id: EncryptionKeySecurity
|
||||
offset: 0.0
|
||||
|
|
|
|||
|
|
@ -8,13 +8,16 @@
|
|||
- state: red
|
||||
- sprite: Objects/Decoration/Flora/flora_trees.rsi
|
||||
state: tree01
|
||||
- type: RandomSpawner
|
||||
prototypes:
|
||||
- FloraTreeLarge
|
||||
- FloraTreeConifer
|
||||
- FloraTreeSnow
|
||||
- FloraTree
|
||||
chance: 0.95
|
||||
rarePrototypes:
|
||||
- ShadowTree
|
||||
rareChance: 0.05
|
||||
- type: EntityTableSpawner
|
||||
table: !type:GroupSelector
|
||||
children:
|
||||
- id: ShadowTree
|
||||
weight: 5
|
||||
- !type:GroupSelector
|
||||
weight: 95
|
||||
prob: 0.95
|
||||
children:
|
||||
- id: FloraTreeLarge
|
||||
- id: FloraTreeConifer
|
||||
- id: FloraTreeSnow
|
||||
- id: FloraTree
|
||||
|
|
|
|||
|
|
@ -4,33 +4,37 @@
|
|||
id: LootSpawnerIndustrialFluff
|
||||
parent: MarkerBase
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Objects/Tools/flashlight.rsi
|
||||
state: flashlight
|
||||
- type: RandomSpawner
|
||||
rarePrototypes:
|
||||
- CheapLighter
|
||||
- Pen
|
||||
- Cigar
|
||||
- CigarSpent
|
||||
- Cigarette
|
||||
- CigaretteSpent
|
||||
- Paper
|
||||
- FolderSpawner
|
||||
rareChance: 0.1
|
||||
prototypes:
|
||||
- RemoteSignaller
|
||||
- GeigerCounter
|
||||
- trayScanner
|
||||
- FlashlightLantern
|
||||
- ClothingHandsGlovesColorBlack
|
||||
- Lighter
|
||||
- ClothingMaskGas
|
||||
- HandheldGPSBasic
|
||||
chance: 0.85
|
||||
offset: 0.0
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Objects/Tools/flashlight.rsi
|
||||
state: flashlight
|
||||
- type: EntityTableSpawner
|
||||
table: !type:GroupSelector
|
||||
children:
|
||||
- !type:GroupSelector
|
||||
weight: 9
|
||||
prob: 0.85
|
||||
children:
|
||||
- id: RemoteSignaller
|
||||
- id: GeigerCounter
|
||||
- id: trayScanner
|
||||
- id: FlashlightLantern
|
||||
- id: ClothingHandsGlovesColorBlack
|
||||
- id: Lighter
|
||||
- id: ClothingMaskGas
|
||||
- id: HandheldGPSBasic
|
||||
- !type:GroupSelector
|
||||
children:
|
||||
- id: CheapLighter
|
||||
- id: Pen
|
||||
- id: Cigar
|
||||
- id: CigarSpent
|
||||
- id: Cigarette
|
||||
- id: CigaretteSpent
|
||||
- id: Paper
|
||||
- id: FolderSpawner
|
||||
offset: 0.0
|
||||
|
||||
- type: entity
|
||||
name: industrial loot spawner
|
||||
|
|
@ -38,48 +42,53 @@
|
|||
id: LootSpawnerIndustrial
|
||||
parent: MarkerBase
|
||||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Objects/Tools/welder.rsi
|
||||
state: icon
|
||||
- type: RandomSpawner
|
||||
rarePrototypes:
|
||||
- MicroManipulatorStockPart
|
||||
- CableHVStack10
|
||||
- WelderIndustrial
|
||||
- PowerCellHigh
|
||||
- PowerCellSmall
|
||||
- ClothingHandsGlovesColorYellowBudget
|
||||
rareChance: 0.2
|
||||
prototypes:
|
||||
- ClothingHeadHatWelding
|
||||
- WelderMini
|
||||
- Crowbar
|
||||
- CrowbarRed
|
||||
- Screwdriver
|
||||
- Wrench
|
||||
- Wirecutter
|
||||
- Welder
|
||||
- RemoteSignaller
|
||||
- GeigerCounter
|
||||
- GasAnalyzer
|
||||
- Multitool
|
||||
- trayScanner
|
||||
- FlashlightLantern
|
||||
- ClothingHandsGlovesColorBlack
|
||||
- ClothingMaskGas
|
||||
- HandheldGPSBasic
|
||||
- FireExtinguisher
|
||||
- PowerCellMedium
|
||||
- SheetSteel10
|
||||
- SheetGlass10
|
||||
- SheetPlastic10
|
||||
- SheetPlasteel10
|
||||
- PartRodMetal10
|
||||
- CableApcStack10
|
||||
- CableMVStack10
|
||||
- ToolboxElectricalFilled
|
||||
- ToolboxMechanicalFilled
|
||||
chance: 0.8
|
||||
offset: 0.0
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Objects/Tools/welder.rsi
|
||||
state: icon
|
||||
- type: EntityTableSpawner
|
||||
table: !type:GroupSelector
|
||||
children:
|
||||
- !type:GroupSelector
|
||||
weight: 8
|
||||
prob: 0.8
|
||||
children:
|
||||
- id: ClothingHeadHatWelding
|
||||
- id: WelderMini
|
||||
- id: Crowbar
|
||||
- id: CrowbarRed
|
||||
- id: Screwdriver
|
||||
- id: Wrench
|
||||
- id: Wirecutter
|
||||
- id: Welder
|
||||
- id: RemoteSignaller
|
||||
- id: GeigerCounter
|
||||
- id: GasAnalyzer
|
||||
- id: Multitool
|
||||
- id: trayScanner
|
||||
- id: FlashlightLantern
|
||||
- id: ClothingHandsGlovesColorBlack
|
||||
- id: ClothingMaskGas
|
||||
- id: HandheldGPSBasic
|
||||
- id: FireExtinguisher
|
||||
- id: PowerCellMedium
|
||||
- id: SheetSteel10
|
||||
- id: SheetGlass10
|
||||
- id: SheetPlastic10
|
||||
- id: SheetPlasteel10
|
||||
- id: PartRodMetal10
|
||||
- id: CableApcStack10
|
||||
- id: CableMVStack10
|
||||
- id: ToolboxElectricalFilled
|
||||
- id: ToolboxMechanicalFilled
|
||||
- !type:GroupSelector
|
||||
weight: 2
|
||||
children:
|
||||
- id: MicroManipulatorStockPart
|
||||
- id: CableHVStack10
|
||||
- id: WelderIndustrial
|
||||
- id: PowerCellHigh
|
||||
- id: PowerCellSmall
|
||||
- id: ClothingHandsGlovesColorYellowBudget
|
||||
offset: 0.0
|
||||
|
|
|
|||
|
|
@ -5,31 +5,35 @@
|
|||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Structures/Wallmounts/paintings.rsi
|
||||
state: painting8
|
||||
- type: RandomSpawner
|
||||
- state: red
|
||||
- sprite: Structures/Wallmounts/paintings.rsi
|
||||
state: painting8
|
||||
- type: EntityTableSpawner
|
||||
offset: 0
|
||||
prototypes:
|
||||
- PaintingPersistenceOfMemory
|
||||
- PaintingTheSonOfMan
|
||||
- PaintingTheKiss
|
||||
- PaintingTheScream
|
||||
- PaintingTheGreatWave
|
||||
- PaintingCafeTerraceAtNight
|
||||
- PaintingNightHawks
|
||||
- PaintingSkeletonCigarette
|
||||
- PaintingPrayerHands
|
||||
- PaintingOldGuitarist
|
||||
- PaintingOlympia
|
||||
- PaintingSaturn
|
||||
- PaintingSleepingGypsy
|
||||
- PaintingRedBlueYellow
|
||||
- PaintingHelloWorld
|
||||
chance: 1
|
||||
rarePrototypes:
|
||||
- PaintingSkeletonBoof
|
||||
- PaintingEmpty
|
||||
- PaintingMoony
|
||||
- PaintingAmogusTriptych
|
||||
rareChance: 0.01
|
||||
table: !type:GroupSelector
|
||||
children:
|
||||
- !type:GroupSelector
|
||||
weight: 99
|
||||
children:
|
||||
- id: PaintingPersistenceOfMemory
|
||||
- id: PaintingTheSonOfMan
|
||||
- id: PaintingTheKiss
|
||||
- id: PaintingTheScream
|
||||
- id: PaintingTheGreatWave
|
||||
- id: PaintingCafeTerraceAtNight
|
||||
- id: PaintingNightHawks
|
||||
- id: PaintingSkeletonCigarette
|
||||
- id: PaintingPrayerHands
|
||||
- id: PaintingOldGuitarist
|
||||
- id: PaintingOlympia
|
||||
- id: PaintingSaturn
|
||||
- id: PaintingSleepingGypsy
|
||||
- id: PaintingRedBlueYellow
|
||||
- id: PaintingHelloWorld
|
||||
- !type:GroupSelector
|
||||
weight: 1
|
||||
children:
|
||||
- id: PaintingSkeletonBoof
|
||||
- id: PaintingEmpty
|
||||
- id: PaintingMoony
|
||||
- id: PaintingAmogusTriptych
|
||||
|
|
|
|||
|
|
@ -1,3 +1,129 @@
|
|||
- type: entityTable
|
||||
id: ContrabandPosterTable
|
||||
table: !type:GroupSelector
|
||||
children:
|
||||
- id: PosterContrabandFreeTonto
|
||||
- id: PosterContrabandAtmosiaDeclarationIndependence
|
||||
- id: PosterContrabandFunPolice
|
||||
- id: PosterContrabandRealExomorph
|
||||
- id: PosterContrabandSyndicateRecruitment
|
||||
- id: PosterContrabandClown
|
||||
- id: PosterContrabandSmoke
|
||||
- id: PosterContrabandGreyTide
|
||||
- id: PosterContrabandMissingGloves
|
||||
- id: PosterContrabandHackingGuide
|
||||
- id: PosterContrabandRIPBadger
|
||||
- id: PosterContrabandAmbrosiaVulgaris
|
||||
- id: PosterContrabandDonutCorp
|
||||
- id: PosterContrabandEAT
|
||||
- id: PosterContrabandTools
|
||||
- id: PosterContrabandPower
|
||||
- id: PosterContrabandSpaceCube
|
||||
- id: PosterContrabandCommunistState
|
||||
- id: PosterContrabandLamarr
|
||||
- id: PosterContrabandBorgFancy
|
||||
- id: PosterContrabandBorgFancyv2
|
||||
- id: PosterContrabandKosmicheskayaStantsiya
|
||||
- id: PosterContrabandRebelsUnite
|
||||
- id: PosterContrabandC20r
|
||||
- id: PosterContrabandHaveaPuff
|
||||
- id: PosterContrabandRevolver
|
||||
- id: PosterContrabandDDayPromo
|
||||
- id: PosterContrabandSyndicatePistol
|
||||
- id: PosterContrabandEnergySwords
|
||||
- id: PosterContrabandRedRum
|
||||
- id: PosterContrabandCC64KAd
|
||||
- id: PosterContrabandPunchShit
|
||||
- id: PosterContrabandTheGriffin
|
||||
- id: PosterContrabandFreeDrone
|
||||
- id: PosterContrabandRouny
|
||||
- id: PosterContrabandRobustSoftdrinks
|
||||
- id: PosterContrabandShamblersJuice
|
||||
- id: PosterContrabandPwrGame
|
||||
- id: PosterContrabandSunkist
|
||||
- id: PosterContrabandSpaceCola
|
||||
- id: PosterContrabandSpaceUp
|
||||
- id: PosterContrabandKudzu
|
||||
- id: PosterContrabandMaskedMen
|
||||
- id: PosterContrabandUnreadableAnnouncement
|
||||
- id: PosterContrabandFreeSyndicateEncryptionKey
|
||||
- id: PosterContrabandBountyHunters
|
||||
- id: PosterContrabandTheBigGasTruth
|
||||
- id: PosterContrabandWehWatches
|
||||
- id: PosterContrabandVoteWeh
|
||||
- id: PosterContrabandBeachStarYamamoto
|
||||
- id: PosterContrabandHighEffectEngineering
|
||||
- id: PosterContrabandNuclearDeviceInformational
|
||||
- id: PosterContrabandRevolt
|
||||
- id: PosterContrabandRise
|
||||
- id: PosterContrabandMoth
|
||||
- id: PosterContrabandCybersun600
|
||||
- id: PosterContrabandDonk
|
||||
- id: PosterContrabandEnlistGorlex
|
||||
- id: PosterContrabandInterdyne
|
||||
- id: PosterContrabandWaffleCorp
|
||||
- id: PosterContrabandMissingSpacepen
|
||||
- id: PosterContrabandExoAcid
|
||||
- id: PosterContrabandExoRun
|
||||
- id: PosterContrabandExoChomp
|
||||
|
||||
- type: entityTable
|
||||
id: LegitPosterTable
|
||||
table: !type:GroupSelector
|
||||
children:
|
||||
- id: PosterLegitHereForYourSafety
|
||||
- id: PosterLegitNanotrasenLogo
|
||||
- id: PosterLegitCleanliness
|
||||
- id: PosterLegitHelpOthers
|
||||
- id: PosterLegitBuild
|
||||
- id: PosterLegitBlessThisSpess
|
||||
- id: PosterLegitScience
|
||||
- id: PosterLegitIan
|
||||
- id: PosterLegitObey
|
||||
- id: PosterLegitWalk
|
||||
- id: PosterLegitStateLaws
|
||||
- id: PosterLegitLoveIan
|
||||
- id: PosterLegitSpaceCops
|
||||
- id: PosterLegitUeNo
|
||||
- id: PosterLegitGetYourLEGS
|
||||
- id: PosterLegitDoNotQuestion
|
||||
- id: PosterLegitWorkForAFuture
|
||||
- id: PosterLegitSoftCapPopArt
|
||||
- id: PosterLegitSafetyInternals
|
||||
- id: PosterLegitSafetyEyeProtection
|
||||
- id: PosterLegitSafetyReport
|
||||
- id: PosterLegitReportCrimes
|
||||
- id: PosterLegitIonRifle
|
||||
- id: PosterLegitFoamForceAd
|
||||
- id: PosterLegitCohibaRobustoAd
|
||||
- id: PosterLegit50thAnniversaryVintageReprint
|
||||
- id: PosterLegitFruitBowl
|
||||
- id: PosterLegitPDAAd
|
||||
- id: PosterLegitEnlist
|
||||
- id: PosterLegitNanomichiAd
|
||||
- id: PosterLegit12Gauge
|
||||
- id: PosterLegitHighClassMartini
|
||||
- id: PosterLegitTheOwl
|
||||
- id: PosterLegitNoERP
|
||||
- id: PosterLegitCarbonDioxide
|
||||
- id: PosterLegitDickGumshue
|
||||
- id: PosterLegitThereIsNoGasGiant
|
||||
- id: PosterLegitJustAWeekAway
|
||||
- id: PosterLegitSecWatch
|
||||
- id: PosterLegitVacation
|
||||
- id: PosterLegitRenault
|
||||
- id: PosterLegitNTTGC
|
||||
- id: PosterLegitSafetyMothDelam
|
||||
- id: PosterLegitSafetyMothEpi
|
||||
- id: PosterLegitSafetyMothPiping
|
||||
- id: PosterLegitSafetyMothMeth
|
||||
- id: PosterLegitSafetyMothHardhat
|
||||
- id: PosterLegitSafetyMothSSD
|
||||
- id: PosterLegitOppenhopper
|
||||
- id: PosterLegitTyrone
|
||||
- id: PosterLegitHelio
|
||||
- id: PosterLegitBotanyFear
|
||||
|
||||
- type: entity
|
||||
parent: MarkerBase
|
||||
id: RandomPosterAny
|
||||
|
|
@ -5,18 +131,23 @@
|
|||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Structures/Wallmounts/posters.rsi
|
||||
state: random_anything
|
||||
- type: RandomSpawner
|
||||
- state: red
|
||||
- sprite: Structures/Wallmounts/posters.rsi
|
||||
state: random_anything
|
||||
- type: EntityTableSpawner
|
||||
offset: 0
|
||||
prototypes:
|
||||
- RandomPosterContraband
|
||||
- RandomPosterLegit
|
||||
chance: 0.95
|
||||
rarePrototypes:
|
||||
- PosterBroken
|
||||
rareChance: 0.05
|
||||
table: !type:GroupSelector
|
||||
children:
|
||||
- id: PosterBroken
|
||||
weight: 0.05
|
||||
- !type:GroupSelector
|
||||
weight: 0.95
|
||||
prob: 0.95
|
||||
children:
|
||||
- !type:NestedSelector
|
||||
tableId: ContrabandPosterTable
|
||||
- !type:NestedSelector
|
||||
tableId: LegitPosterTable
|
||||
|
||||
- type: entity
|
||||
parent: MarkerBase
|
||||
|
|
@ -25,78 +156,13 @@
|
|||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Structures/Wallmounts/posters.rsi
|
||||
state: random_contraband
|
||||
- type: RandomSpawner
|
||||
- state: red
|
||||
- sprite: Structures/Wallmounts/posters.rsi
|
||||
state: random_contraband
|
||||
- type: EntityTableSpawner
|
||||
offset: 0
|
||||
prototypes:
|
||||
- PosterContrabandFreeTonto
|
||||
- PosterContrabandAtmosiaDeclarationIndependence
|
||||
- PosterContrabandFunPolice
|
||||
- PosterContrabandRealExomorph
|
||||
- PosterContrabandSyndicateRecruitment
|
||||
- PosterContrabandClown
|
||||
- PosterContrabandSmoke
|
||||
- PosterContrabandGreyTide
|
||||
- PosterContrabandMissingGloves
|
||||
- PosterContrabandHackingGuide
|
||||
- PosterContrabandRIPBadger
|
||||
- PosterContrabandAmbrosiaVulgaris
|
||||
- PosterContrabandDonutCorp
|
||||
- PosterContrabandEAT
|
||||
- PosterContrabandTools
|
||||
- PosterContrabandPower
|
||||
- PosterContrabandSpaceCube
|
||||
- PosterContrabandCommunistState
|
||||
- PosterContrabandLamarr
|
||||
- PosterContrabandBorgFancy
|
||||
- PosterContrabandBorgFancyv2
|
||||
- PosterContrabandKosmicheskayaStantsiya
|
||||
- PosterContrabandRebelsUnite
|
||||
- PosterContrabandC20r
|
||||
- PosterContrabandHaveaPuff
|
||||
- PosterContrabandRevolver
|
||||
- PosterContrabandDDayPromo
|
||||
- PosterContrabandSyndicatePistol
|
||||
- PosterContrabandEnergySwords
|
||||
- PosterContrabandRedRum
|
||||
- PosterContrabandCC64KAd
|
||||
- PosterContrabandPunchShit
|
||||
- PosterContrabandTheGriffin
|
||||
- PosterContrabandFreeDrone
|
||||
- PosterContrabandRouny
|
||||
- PosterContrabandRobustSoftdrinks
|
||||
- PosterContrabandShamblersJuice
|
||||
- PosterContrabandPwrGame
|
||||
- PosterContrabandSunkist
|
||||
- PosterContrabandSpaceCola
|
||||
- PosterContrabandSpaceUp
|
||||
- PosterContrabandKudzu
|
||||
- PosterContrabandMaskedMen
|
||||
- PosterContrabandUnreadableAnnouncement
|
||||
- PosterContrabandFreeSyndicateEncryptionKey
|
||||
- PosterContrabandBountyHunters
|
||||
- PosterContrabandTheBigGasTruth
|
||||
- PosterContrabandWehWatches
|
||||
- PosterContrabandVoteWeh
|
||||
- PosterContrabandBeachStarYamamoto
|
||||
- PosterContrabandHighEffectEngineering
|
||||
- PosterContrabandNuclearDeviceInformational
|
||||
- PosterLegitEnlist # Corvax-Lore
|
||||
- PosterContrabandRevolt
|
||||
- PosterContrabandRise
|
||||
- PosterContrabandMoth
|
||||
- PosterContrabandCybersun600
|
||||
- PosterContrabandDonk
|
||||
- PosterContrabandEnlistGorlex
|
||||
- PosterContrabandInterdyne
|
||||
- PosterContrabandWaffleCorp
|
||||
- PosterContrabandMissingSpacepen
|
||||
- PosterContrabandExoAcid
|
||||
- PosterContrabandExoRun
|
||||
- PosterContrabandExoChomp
|
||||
chance: 1
|
||||
table: !type:NestedSelector
|
||||
tableId: ContrabandPosterTable
|
||||
|
||||
- type: entity
|
||||
parent: MarkerBase
|
||||
|
|
@ -105,61 +171,10 @@
|
|||
components:
|
||||
- type: Sprite
|
||||
layers:
|
||||
- state: red
|
||||
- sprite: Structures/Wallmounts/posters.rsi
|
||||
state: random_legit
|
||||
- type: RandomSpawner
|
||||
- state: red
|
||||
- sprite: Structures/Wallmounts/posters.rsi
|
||||
state: random_legit
|
||||
- type: EntityTableSpawner
|
||||
offset: 0
|
||||
prototypes:
|
||||
- PosterLegitHereForYourSafety
|
||||
- PosterLegitNanotrasenLogo
|
||||
- PosterLegitCleanliness
|
||||
- PosterLegitHelpOthers
|
||||
- PosterLegitBuild
|
||||
- PosterLegitBlessThisSpess
|
||||
- PosterLegitScience
|
||||
- PosterLegitIan
|
||||
- PosterLegitObey
|
||||
- PosterLegitWalk
|
||||
- PosterLegitStateLaws
|
||||
- PosterLegitLoveIan
|
||||
- PosterLegitSpaceCops
|
||||
- PosterLegitUeNo
|
||||
- PosterLegitGetYourLEGS
|
||||
- PosterLegitDoNotQuestion
|
||||
- PosterLegitWorkForAFuture
|
||||
- PosterLegitSoftCapPopArt
|
||||
- PosterLegitSafetyInternals
|
||||
- PosterLegitSafetyEyeProtection
|
||||
- PosterLegitSafetyReport
|
||||
- PosterLegitReportCrimes
|
||||
- PosterLegitIonRifle
|
||||
- PosterLegitFoamForceAd
|
||||
- PosterLegitCohibaRobustoAd
|
||||
- PosterLegit50thAnniversaryVintageReprint
|
||||
- PosterLegitFruitBowl
|
||||
- PosterLegitPDAAd
|
||||
- PosterLegitNanomichiAd
|
||||
- PosterLegit12Gauge
|
||||
- PosterLegitHighClassMartini
|
||||
- PosterLegitTheOwl
|
||||
- PosterLegitNoERP
|
||||
- PosterLegitCarbonDioxide
|
||||
- PosterLegitDickGumshue
|
||||
- PosterLegitThereIsNoGasGiant
|
||||
- PosterLegitJustAWeekAway
|
||||
- PosterLegitSecWatch
|
||||
- PosterLegitVacation
|
||||
- PosterLegitRenault
|
||||
- PosterLegitNTTGC
|
||||
- PosterLegitSafetyMothDelam
|
||||
- PosterLegitSafetyMothEpi
|
||||
- PosterLegitSafetyMothPiping
|
||||
- PosterLegitSafetyMothMeth
|
||||
- PosterLegitSafetyMothHardhat
|
||||
- PosterLegitSafetyMothSSD
|
||||
- PosterLegitOppenhopper
|
||||
- PosterLegitTyrone
|
||||
- PosterLegitHelio
|
||||
- PosterLegitBotanyFear
|
||||
chance: 1
|
||||
table: !type:NestedSelector
|
||||
tableId: LegitPosterTable
|
||||
|
|
|
|||
|
|
@ -8,25 +8,30 @@
|
|||
- state: red
|
||||
- sprite: Objects/Misc/module.rsi
|
||||
state: boris
|
||||
- type: RandomSpawner
|
||||
prototypes:
|
||||
- AirAlarmElectronics
|
||||
- FireAlarmElectronics
|
||||
- DoorElectronics
|
||||
- FirelockElectronics
|
||||
- IntercomElectronics
|
||||
- APCElectronics
|
||||
- SignalTimerElectronics
|
||||
- APECircuitboard
|
||||
- SMESMachineCircuitboard
|
||||
- SubstationMachineCircuitboard
|
||||
- TelecomServerCircuitboard
|
||||
chance: 0.95
|
||||
rarePrototypes:
|
||||
- CommsComputerCircuitboard
|
||||
- ShuttleConsoleCircuitboard
|
||||
- ComputerMassMediaCircuitboard
|
||||
- AutolatheMachineCircuitboard
|
||||
- ProtolatheMachineCircuitboard
|
||||
- SalvageMagnetMachineCircuitboard
|
||||
rareChance: 0.05
|
||||
- type: EntityTableSpawner
|
||||
table: !type:GroupSelector
|
||||
children:
|
||||
- !type:GroupSelector
|
||||
weight: 95
|
||||
prob: 0.95
|
||||
children:
|
||||
- id: AirAlarmElectronics
|
||||
- id: FireAlarmElectronics
|
||||
- id: DoorElectronics
|
||||
- id: FirelockElectronics
|
||||
- id: IntercomElectronics
|
||||
- id: APCElectronics
|
||||
- id: SignalTimerElectronics
|
||||
- id: APECircuitboard
|
||||
- id: SMESMachineCircuitboard
|
||||
- id: SubstationMachineCircuitboard
|
||||
- id: TelecomServerCircuitboard
|
||||
- !type:GroupSelector
|
||||
weight: 5
|
||||
children:
|
||||
- id: CommsComputerCircuitboard
|
||||
- id: ShuttleConsoleCircuitboard
|
||||
- id: ComputerMassMediaCircuitboard
|
||||
- id: AutolatheMachineCircuitboard
|
||||
- id: ProtolatheMachineCircuitboard
|
||||
- id: SalvageMagnetMachineCircuitboard
|
||||
|
|
|
|||
|
|
@ -340,7 +340,6 @@
|
|||
parent: FoodEgg
|
||||
suffix: Fertilized, Chicken
|
||||
components:
|
||||
- type: Timer
|
||||
- type: TimedSpawner
|
||||
prototypes:
|
||||
- MobChicken
|
||||
|
|
@ -779,7 +778,6 @@
|
|||
parent: FoodEgg
|
||||
suffix: Fertilized, Duck
|
||||
components:
|
||||
- type: Timer
|
||||
- type: TimedSpawner
|
||||
prototypes:
|
||||
- MobDuckMallard
|
||||
|
|
|
|||
|
|
@ -927,6 +927,8 @@
|
|||
id: MobPollyParrot
|
||||
description: An expert in quantum cracker theory
|
||||
components:
|
||||
- type: TTS # Corvax-TTS
|
||||
voice: Meiow
|
||||
- type: Vocalizer
|
||||
maxVocalizeInterval: 240 # polly is chattier
|
||||
- type: RadioVocalizer
|
||||
|
|
|
|||
|
|
@ -411,6 +411,8 @@
|
|||
parent: PositronicBrain
|
||||
categories: [ HideSpawnMenu, DoNotMap ]
|
||||
components:
|
||||
- type: TTS
|
||||
voice: Machine_spirit_4 # Corvax-TTS
|
||||
- type: Sprite
|
||||
# Once it's in a core it's pretty much an abstract entity at that point.
|
||||
visible: false
|
||||
|
|
|
|||
|
|
@ -663,6 +663,13 @@
|
|||
- !type:ReagentCondition
|
||||
reagent: Ambuzol
|
||||
min: 10
|
||||
Digestion:
|
||||
effects:
|
||||
- !type:CureZombieInfection
|
||||
conditions:
|
||||
- !type:ReagentCondition
|
||||
reagent: Ambuzol
|
||||
min: 10
|
||||
|
||||
- type: reagent
|
||||
id: AmbuzolPlus
|
||||
|
|
@ -681,6 +688,14 @@
|
|||
- !type:ReagentCondition
|
||||
reagent: AmbuzolPlus
|
||||
min: 5
|
||||
Digestion:
|
||||
effects:
|
||||
- !type:CureZombieInfection
|
||||
innoculate: true
|
||||
conditions:
|
||||
- !type:ReagentCondition
|
||||
reagent: AmbuzolPlus
|
||||
min: 5
|
||||
|
||||
- type: reagent
|
||||
id: PulpedBananaPeel
|
||||
|
|
@ -817,10 +832,19 @@
|
|||
Bloodstream:
|
||||
effects:
|
||||
- !type:EvenHealthChange
|
||||
conditions:
|
||||
- !type:MobStateCondition # no healing in crit so that dedicated single damage type meds can still have a niche.
|
||||
mobstate: Alive
|
||||
damage:
|
||||
Brute: -1
|
||||
Burn: -1
|
||||
Toxin: -0.5
|
||||
- !type:HealthChange
|
||||
conditions:
|
||||
- !type:MobStateCondition
|
||||
mobstate: Alive
|
||||
damage:
|
||||
types:
|
||||
Poison: -0.5 # Same as what it was before the second coming of offmed
|
||||
|
||||
- type: reagent
|
||||
id: Lipozine
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/9c980cb9bc84d07b1c210c5447798af525185f80/icons/obj/food.dmi",
|
||||
"copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/blob/633736637f35321062f723752cb9e5d797c532aa/icons/obj/food.dmi",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit cc5d7503b3e2d87a2c9007c003d51246c2b1d450
|
||||
Subproject commit dad56301e115f79f03852e3a8dfe485f0db667c3
|
||||
Loading…
Add table
Reference in a new issue