Remove Visitor Shuttles (Real) and also cleanup the event rule system to not break when I try to do this. (#41915)

* shelve

* halfway there

* borgar

* just pass TimeSpan.Zero????

* better API

* no more TODO

* comment

* some fixes

* Gonna make a new PR for this I guess shrug

* add quark back, cleanup some stuff

* add syndie pod back

* one final change

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
This commit is contained in:
Princess Cheeseballs 2026-01-27 14:47:18 -08:00 committed by Coryler
parent 588c07b7e1
commit b6b2a563ab
22 changed files with 123 additions and 36629 deletions

View File

@ -35,7 +35,7 @@ namespace Content.Server.StationEvents
GameRuleStartedEvent args)
{
// A little starting variance so schedulers dont all proc at once.
component.TimeUntilNextEvent = RobustRandom.NextFloat(component.MinimumTimeUntilFirstEvent, component.MinimumTimeUntilFirstEvent + 120);
component.TimeUntilNextEvent = RobustRandom.NextFloat(component.MinimumTimeUntilFirstEvent, component.MinimumTimeUntilFirstEvent + component.MaximumSpanUntilFirstEvent);
// Begin DeltaV Additions: init NextEventComp
if (TryComp<NextEventComponent>(uid, out var nextEventComponent)
@ -166,14 +166,15 @@ namespace Content.Server.StationEvents
// sim an event
curTime += TimeSpan.FromSeconds(compMinMax.Next(_random));
var available = _stationEvent.AvailableEvents(false, playerCount, curTime);
if (!_stationEvent.TryBuildLimitedEvents(basicScheduler.ScheduledGameRules, available, out var selectedEvents))
if (!_stationEvent.TryBuildLimitedEvents(basicScheduler.ScheduledGameRules,
out var selectedEvents,
currentTime: curTime,
playerCount: playerCount))
{
continue; // doesnt break because maybe the time is preventing events being available.
}
var ev = _stationEvent.FindEvent(selectedEvents);
if (ev == null)
if (_stationEvent.FindEvent(selectedEvents) is not { } ev)
continue;
occurrences[ev] += 1;
@ -195,15 +196,14 @@ namespace Content.Server.StationEvents
if (!eventScheduler.TryGetComponent<BasicStationEventSchedulerComponent>(out var basicScheduler, _compFac))
yield break;
var available = _stationEvent.AvailableEvents();
if (!_stationEvent.TryBuildLimitedEvents(basicScheduler.ScheduledGameRules, available, out var events))
if (!_stationEvent.TryListLimitedEvents(basicScheduler.ScheduledGameRules, out var events))
yield break;
var totalWeight = events.Sum(x => x.Value.Weight); // Well this shit definitely isnt correct now, and I see no way to make it correct.
// Its probably *fine* but it wont be accurate if the EntityTableSelector does any subsetting.
foreach (var (proto, comp) in events) // The only solution I see is to do a simulation, and we already have that, so...!
{
yield return (proto.ID, comp.Weight / totalWeight);
yield return (proto.ID, comp.Weight * (float)basicScheduler.ScheduledGameRules.Prob / totalWeight);
}
}
@ -221,8 +221,10 @@ namespace Content.Server.StationEvents
var timemins = time * 60;
var theoryTime = TimeSpan.Zero + TimeSpan.FromSeconds(timemins);
var available = _stationEvent.AvailableEvents(false, playerCount, theoryTime);
if (!_stationEvent.TryBuildLimitedEvents(basicScheduler.ScheduledGameRules, available, out var untimedEvents))
if (!_stationEvent.TryListLimitedEvents(basicScheduler.ScheduledGameRules,
out var untimedEvents,
currentTime: theoryTime,
playerCount: playerCount))
yield break;
var events = untimedEvents.Where(pair => pair.Value.EarliestStart <= timemins).ToList();
@ -231,7 +233,7 @@ namespace Content.Server.StationEvents
foreach (var (proto, comp) in events)
{
yield return (proto.ID, comp.Weight / totalWeight);
yield return (proto.ID, comp.Weight * (float)basicScheduler.ScheduledGameRules.Prob / totalWeight);
}
}
@ -247,15 +249,14 @@ namespace Content.Server.StationEvents
if (!eventScheduler.TryGetComponent<BasicStationEventSchedulerComponent>(out var basicScheduler, _compFac))
return 0f;
var available = _stationEvent.AvailableEvents();
if (!_stationEvent.TryBuildLimitedEvents(basicScheduler.ScheduledGameRules, available, out var events))
if (!_stationEvent.TryListLimitedEvents(basicScheduler.ScheduledGameRules, out var events))
return 0f;
var totalWeight = events.Sum(x => x.Value.Weight); // same subsetting issue as lsprob.
var weight = 0f;
if (events.TryFirstOrNull(p => p.Key.ID == eventId, out var pair))
{
weight = pair.Value.Value.Weight;
weight = pair.Value.Value.Weight * (float)basicScheduler.ScheduledGameRules.Prob;
}
return weight / totalWeight;

View File

@ -13,6 +13,12 @@ public sealed partial class BasicStationEventSchedulerComponent : Component
[DataField]
public float MinimumTimeUntilFirstEvent = 200;
/// <summary>
/// How much additional time it may take for a GameRule to first start.
/// </summary>
[DataField]
public float MaximumSpanUntilFirstEvent = 120;
/// <summary>
/// The minimum and maximum time between rule starts in seconds.
/// </summary>

View File

@ -29,29 +29,21 @@ public sealed class EventManagerSystem : EntitySystem
public bool EventsEnabled { get; private set; }
private void SetEnabled(bool value) => EventsEnabled = value;
public Dictionary<EntityPrototype, StationEventComponent>? AllEventCache;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<PrototypesReloadedEventArgs>(OnPrototypesReloaded);
Subs.CVar(_configurationManager, CCVars.EventsEnabled, SetEnabled, true);
}
/// <summary>
/// Randomly runs a valid event.
/// </summary>
[Obsolete("use overload taking EnityTableSelector instead or risk unexpected results")]
public void RunRandomEvent()
private void OnPrototypesReloaded(PrototypesReloadedEventArgs args)
{
var randomEvent = PickRandomEvent();
if (randomEvent == null)
{
var errStr = Loc.GetString("station-event-system-run-random-event-no-valid-events");
Log.Error(errStr);
return;
}
GameTicker.AddGameRule(randomEvent);
if (args.WasModified<EntityPrototype>())
AllEventCache = GetAllEvents();
}
/// <summary>
@ -77,14 +69,16 @@ public sealed class EventManagerSystem : EntitySystem
var availableEvents = AvailableEvents(eventRunTime: eventRunTime); // handles the player counts and individual event restrictions.
// Putting this here only makes any sense in the context of the toolshed commands in BasicStationEventScheduler. Kill me.
if (!TryBuildLimitedEvents(limitedEventsTable, availableEvents, out var limitedEvents))
if (!TryBuildLimitedEvents(limitedEventsTable, out var limitedEvents))
{
Log.Warning("Provided event table could not build dict!");
return null;
}
var randomLimitedEvent = FindEvent(limitedEvents); // this picks the event, It might be better to use the GetSpawns to do it, but that will be a major rebalancing fuck.
if (randomLimitedEvent == null)
// This picks the event. Arguably we should be doing this with GetSpawns but that would be a massive amount of YAML slop.
// Or you'd need a new table prototype which inherits from EntityTables with its own logic for events.
// It's a ton of effort that only results in Events being able to use GroupSelectors so not worth it unless you're insane.
if (FindEvent(limitedEvents) is not { } randomLimitedEvent)
{
Log.Warning("The selected random event is null!");
return null;
@ -99,27 +93,51 @@ public sealed class EventManagerSystem : EntitySystem
return randomLimitedEvent;
}
/// <summary>
/// Returns true if the provided EntityTableSelector gives at least one prototype with a StationEvent comp.
/// </summary>
/// <inheritdoc cref="TryBuildLimitedEvents(IEnumerable{EntProtoId},out Dictionary{EntityPrototype,StationEventComponent},TimeSpan?,int?)"/>
public bool TryListLimitedEvents(
EntityTableSelector limitedEventsTable,
out Dictionary<EntityPrototype, StationEventComponent> limitedEvents,
TimeSpan? currentTime = null,
int? playerCount = null)
{
var selectedEvents = _entityTable.ListSpawns(limitedEventsTable);
return TryBuildLimitedEvents(selectedEvents, out limitedEvents, currentTime, playerCount);
}
/// <inheritdoc cref="TryBuildLimitedEvents(IEnumerable{EntProtoId},out Dictionary{EntityPrototype,StationEventComponent},TimeSpan?,int?)"/>
public bool TryBuildLimitedEvents(
EntityTableSelector limitedEventsTable,
Dictionary<EntityPrototype, StationEventComponent> availableEvents,
out Dictionary<EntityPrototype, StationEventComponent> limitedEvents
)
out Dictionary<EntityPrototype, StationEventComponent> limitedEvents,
TimeSpan? currentTime = null,
int? playerCount = null)
{
var selectedEvents = _entityTable.GetSpawns(limitedEventsTable);
return TryBuildLimitedEvents(selectedEvents, out limitedEvents, currentTime, playerCount);
}
/// <summary>
/// Builds a dictionary of valid event prototypes from a list of <see cref="EntProtoId"/>.
/// Dictionary output consists of the valid prototype as the key, and the <see cref="StationEventComponent"/> as the value.
/// </summary>
/// <param name="selectedEvents">List of events we're selecting from.</param>
/// <param name="limitedEvents">Dictionary we're outputting.</param>
/// <param name="currentTime">Optional override for station time.</param>
/// <param name="playerCount">Optional override for playerCount.</param>
/// <returns>Returns true if the provided EntProtoId list has at least one prototype with a StationEventComp that can successfully run!</returns>
public bool TryBuildLimitedEvents(
IEnumerable<EntProtoId> selectedEvents,
out Dictionary<EntityPrototype, StationEventComponent> limitedEvents,
TimeSpan? currentTime = null,
int? playerCount = null)
{
limitedEvents = new Dictionary<EntityPrototype, StationEventComponent>();
if (availableEvents.Count == 0)
{
Log.Warning("No events were available to run!");
return false;
}
playerCount ??= _playerManager.PlayerCount;
var selectedEvents = _entityTable.GetSpawns(limitedEventsTable);
if (selectedEvents.Any() != true) // This is here so if you fuck up the table it wont die.
return false;
// playerCount does a lock so we'll just keep the variable here
currentTime ??= GameTicker.RoundDuration();
foreach (var eventid in selectedEvents)
{
@ -138,7 +156,7 @@ public sealed class EventManagerSystem : EntitySystem
if (!eventproto.TryGetComponent<StationEventComponent>(out var stationEvent, EntityManager.ComponentFactory))
continue;
if (!availableEvents.ContainsKey(eventproto))
if (!CanRun(eventproto, stationEvent, playerCount.Value, currentTime.Value))
continue;
limitedEvents.Add(eventproto, stationEvent);
@ -202,7 +220,6 @@ public sealed class EventManagerSystem : EntitySystem
/// <param name="currentTimeOverride">Override for round time, if using this to simulate events rather than in an actual round.</param>
/// <returns></returns>
public Dictionary<EntityPrototype, StationEventComponent> AvailableEvents(
bool ignoreEarliestStart = false,
int? playerCountOverride = null,
TimeSpan? currentTimeOverride = null,
TimeSpan? eventRunTime = null) // DeltaV
@ -210,9 +227,7 @@ public sealed class EventManagerSystem : EntitySystem
var playerCount = playerCountOverride ?? _playerManager.PlayerCount;
// playerCount does a lock so we'll just keep the variable here
var currentTime = currentTimeOverride ?? (!ignoreEarliestStart
? eventRunTime ?? GameTicker.RoundDuration() // DeltaV - Use eventRunTime instead of RoundDuration if provided
: TimeSpan.Zero);
var currentTime = currentTimeOverride ?? (eventRunTime ?? GameTicker.RoundDuration()); // DeltaV - Use eventRunTime instead of RoundDuration if provided;
var result = new Dictionary<EntityPrototype, StationEventComponent>();
@ -227,7 +242,19 @@ public sealed class EventManagerSystem : EntitySystem
return result;
}
/// <summary>
/// Returns all events prototypes which exist. Prioritizes the cache.
/// </summary>
/// <returns>All event prototypes, and their event component.</returns>
public Dictionary<EntityPrototype, StationEventComponent> AllEvents()
{
return AllEventCache ?? GetAllEvents();
}
/// <summary>
/// Gets all event prototypes that exist. Private because you should be using the cache!
/// </summary>
private Dictionary<EntityPrototype, StationEventComponent> GetAllEvents()
{
var allEvents = new Dictionary<EntityPrototype, StationEventComponent>();
foreach (var prototype in _prototype.EnumeratePrototypes<EntityPrototype>())

View File

@ -83,6 +83,21 @@ public abstract partial class EntityTableSelector
return success;
}
/// <summary>
/// Gets the spawns in a given table, ignoring the requirements for the table.
/// This should only be used for debugging!
/// </summary>
public IEnumerable<EntProtoId> ListSpawns(System.Random rand,
IEntityManager entMan,
IPrototypeManager proto,
EntityTableContext ctx)
{
foreach (var spawn in GetSpawnsImplementation(rand, entMan, proto, ctx))
{
yield return spawn;
}
}
protected abstract IEnumerable<EntProtoId> GetSpawnsImplementation(System.Random rand,
IEntityManager entMan,
IPrototypeManager proto,

View File

@ -26,6 +26,17 @@ public sealed class EntityTableSystem : EntitySystem
ctx ??= new EntityTableContext();
return table.GetSpawns(rand, EntityManager, _prototypeManager, ctx);
}
// TODO: Have this method be much better for entity tables
public IEnumerable<EntProtoId> ListSpawns(EntityTableSelector? table, System.Random? rand = null, EntityTableContext? ctx = null)
{
if (table == null)
return new List<EntProtoId>();
rand ??= _random.GetRandom();
ctx ??= new EntityTableContext();
return table.ListSpawns(rand, EntityManager, _prototypeManager, ctx);
}
}
/// <summary>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,363 +0,0 @@
meta:
format: 6
postmapinit: false
tilemap:
0: Space
82: FloorShuttleOrange
85: FloorShuttleWhite
120: Lattice
121: Plating
entities:
- proto: ""
entities:
- uid: 1
components:
- type: MetaData
name: Evacuation pod
- type: Transform
parent: invalid
- type: MapGrid
chunks:
0,0:
ind: 0,0
tiles: eQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
version: 6
-1,0:
ind: -1,0
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
version: 6
0,-1:
ind: 0,-1
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
version: 6
-1,-1:
ind: -1,-1
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAA
version: 6
- type: Broadphase
- type: Physics
bodyStatus: InAir
angularDamping: 0.05
linearDamping: 0.05
fixedRotation: False
bodyType: Dynamic
- type: Fixtures
fixtures: {}
- type: OccluderTree
- type: SpreaderGrid
- type: Shuttle
- type: GridPathfinding
- type: Gravity
gravityShakeSound: !type:SoundPathSpecifier
path: /Audio/Effects/alert.ogg
- type: DecalGrid
chunkCollection:
version: 2
nodes: []
- type: GridAtmosphere
version: 2
data:
tiles:
0,-1:
0: 4368
1: 32
0,0:
1: 2
-1,0:
1: 8
-1,-1:
1: 128
uniqueMixes:
- volume: 2500
temperature: 293.15
moles:
- 21.824879
- 82.10312
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- volume: 2500
immutable: True
moles:
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
chunkSize: 4
- type: GasTileOverlay
- type: RadiationGridResistance
- type: NavMap
- proto: AirlockShuttle
entities:
- uid: 2
components:
- type: Transform
pos: 0.5,-2.5
parent: 1
- proto: APCBasic
entities:
- uid: 3
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 1.5,-0.5
parent: 1
- proto: AtmosDeviceFanTiny
entities:
- uid: 4
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: 0.5,-2.5
parent: 1
- proto: BoxMRE
entities:
- uid: 6
components:
- type: Transform
parent: 5
- type: Physics
canCollide: False
- type: InsideEntityStorage
- proto: CableApcExtension
entities:
- uid: 10
components:
- type: Transform
pos: 1.5,-0.5
parent: 1
- uid: 11
components:
- type: Transform
pos: 0.5,-0.5
parent: 1
- uid: 12
components:
- type: Transform
pos: 0.5,-1.5
parent: 1
- proto: CableHV
entities:
- uid: 13
components:
- type: Transform
pos: -0.5,-1.5
parent: 1
- uid: 14
components:
- type: Transform
pos: -0.5,-0.5
parent: 1
- proto: CableMV
entities:
- uid: 15
components:
- type: Transform
pos: -0.5,-0.5
parent: 1
- uid: 16
components:
- type: Transform
pos: 0.5,-0.5
parent: 1
- uid: 17
components:
- type: Transform
pos: 1.5,-0.5
parent: 1
- proto: ChairPilotSeat
entities:
- uid: 18
components:
- type: Transform
rot: 3.141592653589793 rad
pos: 0.5,-1.5
parent: 1
- proto: ClosetWallMaintenanceFilledRandom
entities:
- uid: 5
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 1.5,-1.5
parent: 1
- type: EntityStorage
air:
volume: 200
immutable: False
temperature: 293.14673
moles:
- 1.8856695
- 7.0937095
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- type: ContainerContainer
containers:
entity_storage: !type:Container
showEnts: False
occludes: True
ents:
- 7
- 6
- 8
- 9
- proto: ClothingOuterSuitEmergency
entities:
- uid: 7
components:
- type: Transform
parent: 5
- type: Physics
canCollide: False
- type: InsideEntityStorage
- proto: ComputerShuttle
entities:
- uid: 19
components:
- type: Transform
pos: 0.5,-0.5
parent: 1
- proto: GeneratorWallmountAPU
entities:
- uid: 21
components:
- type: Transform
pos: -0.5,-1.5
parent: 1
- proto: Grille
entities:
- uid: 34
components:
- type: Transform
pos: 0.5,0.5
parent: 1
- proto: Gyroscope
entities:
- uid: 32
components:
- type: Transform
pos: -0.5,-2.5
parent: 1
- proto: HandheldGPSBasic
entities:
- uid: 8
components:
- type: Transform
parent: 5
- type: Physics
canCollide: False
- type: InsideEntityStorage
- proto: NTVisitorSpawner
entities:
- uid: 20
components:
- type: Transform
pos: 0.5,-1.5
parent: 1
- uid: 33
components:
- type: Transform
pos: 0.5,-1.5
parent: 1
- proto: Poweredlight
entities:
- uid: 22
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 0.5,-1.5
parent: 1
- proto: ShuttleWindow
entities:
- uid: 23
components:
- type: Transform
pos: 0.5,0.5
parent: 1
- proto: SubstationWallBasic
entities:
- uid: 24
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: -0.5,-0.5
parent: 1
- proto: Thruster
entities:
- uid: 25
components:
- type: Transform
rot: 3.141592653589793 rad
pos: 1.5,-2.5
parent: 1
- proto: WallShuttle
entities:
- uid: 26
components:
- type: Transform
pos: -0.5,-0.5
parent: 1
- uid: 27
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -0.5,-1.5
parent: 1
- uid: 28
components:
- type: Transform
rot: 3.141592653589793 rad
pos: 1.5,-0.5
parent: 1
- uid: 29
components:
- type: Transform
rot: 3.141592653589793 rad
pos: 1.5,-1.5
parent: 1
- proto: WallShuttleDiagonal
entities:
- uid: 30
components:
- type: Transform
pos: -0.5,0.5
parent: 1
- uid: 31
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 1.5,0.5
parent: 1
- proto: WeaponLaserSvalinn
entities:
- uid: 9
components:
- type: Transform
parent: 5
- type: Physics
canCollide: False
- type: InsideEntityStorage
...

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,526 +0,0 @@
meta:
format: 6
postmapinit: false
tilemap:
0: Space
1: FloorMetalDiamond
77: FloorShuttleOrange
80: FloorShuttleWhite
112: Lattice
113: Plating
entities:
- proto: ""
entities:
- uid: 1
components:
- type: MetaData
name: PC-Luxury
- type: Transform
pos: -0.50006104,-0.5
parent: invalid
- type: MapGrid
chunks:
0,0:
ind: 0,0
tiles: UAAAAAAATQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
version: 6
-1,0:
ind: -1,0
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAATQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
version: 6
-1,-1:
ind: -1,-1
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAATQAAAAAA
version: 6
0,-1:
ind: 0,-1
tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAATQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
version: 6
- type: Broadphase
- type: Physics
bodyStatus: InAir
angularDamping: 0.05
linearDamping: 0.05
fixedRotation: False
bodyType: Dynamic
- type: Fixtures
fixtures: {}
- type: OccluderTree
- type: SpreaderGrid
- type: Shuttle
- type: GridPathfinding
- type: Gravity
gravityShakeSound: !type:SoundPathSpecifier
path: /Audio/Effects/alert.ogg
- type: DecalGrid
chunkCollection:
version: 2
nodes:
- node:
color: '#FFFFFFFF'
id: BotGreyscale
decals:
0: -1,-1
1: 1,-1
- node:
color: '#FFFFFFFF'
id: BoxGreyscale
decals:
2: -1,0
3: 1,0
- type: GridAtmosphere
version: 2
data:
tiles:
0,0:
0: 19
1: 1088
0,-1:
0: 12544
1: 1024
-1,0:
0: 8
1: 1088
-1,-1:
0: 32768
1: 1024
uniqueMixes:
- volume: 2500
temperature: 293.15
moles:
- 21.824879
- 82.10312
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- volume: 2500
immutable: True
moles:
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
chunkSize: 4
- type: GasTileOverlay
- type: RadiationGridResistance
- proto: AirCanister
entities:
- uid: 40
components:
- type: Transform
anchored: True
pos: -0.5,0.5
parent: 1
- type: Physics
bodyType: Static
- proto: AirlockGlassShuttle
entities:
- uid: 2
components:
- type: Transform
pos: 0.5,-1.5
parent: 1
- proto: APCBasic
entities:
- uid: 41
components:
- type: Transform
rot: 3.141592653589793 rad
pos: 1.5,-1.5
parent: 1
- proto: AtmosDeviceFanDirectional
entities:
- uid: 49
components:
- type: Transform
pos: 0.5,-1.5
parent: 1
- proto: BookEarth
entities:
- uid: 51
components:
- type: MetaData
name: 'How to Fly: For Dum Dums'
- type: Transform
pos: 0.50006104,1.4869615
parent: 1
- type: Paper
content: >+
[head=2][bold]Steps to flying:[/bold][/head]
1. Locate power generation or storage. Some small crafts utilize P.A.C.M.A.N. brand generators.
2. Ensure your generator is connected to the power network. Some small crafts utilize only a Medium Voltage (MV) network!
3. Fuel and start your generator or power source.
4. Wait for your shuttle to prime, and all services to come online.
5. Use the Shuttle Console to locate your destination of choice. You may find further away destinations on the Map tab when scanning for objects.
6. Attempt to avoid crashing you forgot to buy insurance.
- proto: CableApcExtension
entities:
- uid: 42
components:
- type: Transform
pos: 1.5,-1.5
parent: 1
- uid: 43
components:
- type: Transform
pos: 1.5,-0.5
parent: 1
- uid: 44
components:
- type: Transform
pos: 0.5,-0.5
parent: 1
- uid: 45
components:
- type: Transform
pos: 0.5,0.5
parent: 1
- uid: 52
components:
- type: Transform
pos: 0.5,1.5
parent: 1
- proto: CableMV
entities:
- uid: 46
components:
- type: Transform
pos: 1.5,-0.5
parent: 1
- uid: 47
components:
- type: Transform
pos: 1.5,-1.5
parent: 1
- proto: ChairPilotSeat
entities:
- uid: 3
components:
- type: Transform
rot: 3.141592653589793 rad
pos: 0.5,0.5
parent: 1
- proto: ComputerShuttle
entities:
- uid: 4
components:
- type: Transform
pos: 0.5,1.5
parent: 1
- proto: CrateMaterialPlasma
entities:
- uid: 48
components:
- type: Transform
pos: -0.5,-0.5
parent: 1
- type: Lock
locked: False
- type: EntityStorage
air:
volume: 200
immutable: False
temperature: 293.14673
moles:
- 1.7459903
- 6.568249
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- proto: Flare
entities:
- uid: 53
components:
- type: Transform
pos: 0.7396444,1.3668714
parent: 1
- uid: 54
components:
- type: Transform
pos: 0.53131104,-0.591462
parent: 1
- type: Item
heldPrefix: lit
- type: IgnitionSource
ignited: True
- proto: GasPassiveVent
entities:
- uid: 37
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -1.5,-1.5
parent: 1
- proto: GasPipeBend
entities:
- uid: 34
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: -1.5,-0.5
parent: 1
- proto: GasPipeStraight
entities:
- uid: 35
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: -0.5,-0.5
parent: 1
- proto: GasPort
entities:
- uid: 18
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: -0.5,0.5
parent: 1
- proto: GasVentPump
entities:
- uid: 19
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 0.5,0.5
parent: 1
- proto: GasVentScrubber
entities:
- uid: 36
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 0.5,-0.5
parent: 1
- proto: Grille
entities:
- uid: 24
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: -0.5,1.5
parent: 1
- uid: 25
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: -0.5,2.5
parent: 1
- uid: 26
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: 0.5,2.5
parent: 1
- uid: 27
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: 1.5,2.5
parent: 1
- uid: 28
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: 1.5,1.5
parent: 1
- uid: 29
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: 2.5,0.5
parent: 1
- uid: 30
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: 2.5,-0.5
parent: 1
- uid: 31
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: -1.5,-0.5
parent: 1
- uid: 32
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: -1.5,0.5
parent: 1
- proto: Gyroscope
entities:
- uid: 33
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: 1.5,0.5
parent: 1
- proto: NTVisitorSpawner
entities:
- uid: 50
components:
- type: Transform
pos: 0.5,0.5
parent: 1
- proto: PortableGeneratorPacman
entities:
- uid: 38
components:
- type: Transform
anchored: True
pos: 1.5,-0.5
parent: 1
- type: Physics
bodyType: Static
- proto: PoweredSmallLight
entities:
- uid: 39
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -0.5,-0.5
parent: 1
- proto: ShuttleWindow
entities:
- uid: 9
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: -1.5,-0.5
parent: 1
- uid: 10
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: -1.5,0.5
parent: 1
- uid: 11
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: -0.5,1.5
parent: 1
- uid: 12
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: -0.5,2.5
parent: 1
- uid: 13
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 0.5,2.5
parent: 1
- uid: 14
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 1.5,2.5
parent: 1
- uid: 15
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 1.5,1.5
parent: 1
- uid: 16
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 2.5,0.5
parent: 1
- uid: 17
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 2.5,-0.5
parent: 1
- proto: Thruster
entities:
- uid: 20
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 2.5,-1.5
parent: 1
- uid: 21
components:
- type: Transform
rot: 3.141592653589793 rad
pos: -1.5,-1.5
parent: 1
- uid: 22
components:
- type: Transform
rot: 1.5707963267948966 rad
pos: -1.5,2.5
parent: 1
- uid: 23
components:
- type: Transform
pos: 2.5,2.5
parent: 1
- proto: WallShuttle
entities:
- uid: 5
components:
- type: Transform
pos: -0.5,-1.5
parent: 1
- uid: 6
components:
- type: Transform
pos: 1.5,-1.5
parent: 1
- proto: WallShuttleDiagonal
entities:
- uid: 7
components:
- type: Transform
pos: -1.5,1.5
parent: 1
- uid: 8
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 2.5,1.5
parent: 1
...

File diff suppressed because it is too large Load Diff

View File

@ -533,14 +533,8 @@
- type: entityTable
id: SpaceTrafficControlTable
table: !type:AllSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp
children:
- !type:NestedSelector
tableId: UnknownShuttlesFriendlyTable
- !type:NestedSelector
tableId: UnknownShuttlesFreelanceTable
- !type:NestedSelector
tableId: UnknownShuttlesHostileTable
table: !type:NestedSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp
tableId: UnknownShuttlesHostileTable
- type: entity
id: BasicStationEventScheduler
@ -590,25 +584,14 @@
- type: NextEvent # DeltaV: Queue Event for precognition
- type: BasicStationEventScheduler
minimumTimeUntilFirstEvent: 2700 # 45 mins #shows up like half way through shift.
maximumSpanUntilFirstEvent: 900 # At longest takes an hour to show up.
minMaxEventTiming:
min: 1200 # 20 mins
max: 7200 # 120 mins # you probably arent getting a second visitor shuttle in one round, but it is possible.
scheduledGameRules: !type:NestedSelector
prob: 0.05 # Only 1 in 20 rounds...
tableId: SpaceTrafficControlTable
- type: entity
id: SpaceTrafficControlFriendlyEventScheduler
parent: BaseGameRule
components:
- type: NextEvent # DeltaV: Queue Event for precognition
- type: BasicStationEventScheduler
minimumTimeUntilFirstEvent: 1200 # 20 mins
minMaxEventTiming:
min: 600 # 10 mins
max: 1800 # 30 mins
scheduledGameRules: !type:NestedSelector
tableId: UnknownShuttlesFriendlyTable
# variation passes
- type: entity
id: BasicRoundstartVariation

View File

@ -1,34 +1,5 @@
# Shuttle Game Rule Tables -- If you dont add your rules to these they wont be used by the games schedulers.
- type: entityTable
id: UnknownShuttlesFriendlyTable
table: !type:AllSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp
children:
- id: UnknownShuttleCargoLost
- id: UnknownShuttleTravelingCuisine
- id: UnknownShuttleDisasterEvacPod
#- id: UnknownShuttleHonki # DeltaV - Removes the Clown Shuttle
#- id: UnknownShuttleNTQuark # DeltaV - removed until theyre individually looked at
#- id: UnknownShuttleCruiser
#- id: UnknownShuttleCryptid
#- id: UnknownShuttleEternal
#- id: UnknownShuttleFlatline
#- id: UnknownShuttleGym
#- id: UnknownShuttleNTIncorporation
#- id: UnknownShuttleJoe
#- id: UnknownShuttleLambordeere
#- id: UnknownShuttleMeatZone
#- id: UnknownShuttleMicroshuttle
#- id: UnknownShuttleSpacebus
- type: entityTable
id: UnknownShuttlesFreelanceTable
table: !type:AllSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp
children:
- !type:NestedSelector # DeltaV
tableId: UnknownShuttlesFreelanceTableDeltaV
- id: UnknownShuttleSyndieEvacPod
- type: entityTable
id: UnknownShuttlesHostileTable
table: !type:AllSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp
@ -45,10 +16,7 @@
id: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming
startAudio:
path: /Audio/_DV/Announcements/attention.ogg # DeltaV: custom announcer
weight: 5 # DeltaV - was 10, all of these kinda suck
weight: 10 # 10 default
reoccurrenceDelay: 30
duration: 1
maxOccurrences: 1
@ -56,47 +24,21 @@
- type: LoadMapRule
- type: entity
abstract: true
parent: BaseUnknownShuttleRule
id: UnknownShuttleCargoLost
components:
- type: StationEvent
maxOccurrences: 2
- type: PrecognitionResult # DeltaV - Precogniton
message: psionic-power-precognition-unknown-shuttle-cargo-lost-result-message
- type: LoadMapRule
gridPath: /Maps/_DV/Shuttles/Event/lost_cargo_dv.yml # DeltaV - DV custom lost cargo shuttle, was: /Maps/Shuttles/ShuttleEvent/lost_cargo.yml
- type: entity
parent: BaseUnknownShuttleRule
id: UnknownShuttleTravelingCuisine
id: BaseUnknownShuttleAnnouncedRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming
maxOccurrences: 2
- type: PrecognitionResult # DeltaV - Precogniton
message: psionic-power-precognition-unknown-shuttle-traveling-cuisine-result-message
- type: LoadMapRule
gridPath: /Maps/_DV/Shuttles/Event/traveling_cuisines_dv.yml # DeltaV - DV custom traveling cuisines shuttle, was: /Maps/Shuttles/ShuttleEvent/traveling_china_cuisine.yml
- type: entity
parent: BaseUnknownShuttleRule
id: UnknownShuttleDisasterEvacPod
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming
maxOccurrences: 3
- type: PrecognitionResult # DeltaV - Precogniton
message: psionic-power-precognition-unknown-shuttle-disaster-evac-pod-result-message
- type: LoadMapRule
gridPath: /Maps/_DV/Shuttles/Event/disaster_escape_pod_dv.yml # DeltaV - DV Custom disaster pod, Was: /Maps/Shuttles/ShuttleEvent/disaster_evacpod.yml
startAudio:
path: /Audio/_DV/Announcements/attention.ogg
# The power of 3 clowns proved too strong for the players and may need to be 1984'ed. Replace this with a more engaging clown shuttle.
- type: entity
parent: BaseUnknownShuttleRule
parent: BaseUnknownShuttleAnnouncedRule
id: UnknownShuttleHonki
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
weight: 2
- type: LoadMapRule
gridPath: /Maps/Shuttles/ShuttleEvent/honki.yml
@ -106,7 +48,6 @@
id: UnknownShuttleSyndieEvacPod
components:
- type: StationEvent
startAnnouncement: null # It should be silent.
weight: 5 # lower because weird freelance roles
maxOccurrences: 2
- type: LoadMapRule
@ -117,137 +58,26 @@
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: null # It should be silent.
weight: .5 # Hopefully this is uncommon enough, it needs to be uncommon enough that people wont waste time metaknowledging it.
earliestStart: 45 # late to hopefully have enough ghosts to fill all roles quickly.
minimumPlayers: 25
- type: LoadMapRule
gridPath: /Maps/Shuttles/ShuttleEvent/quark.yml
- type: entity
id: UnknownShuttleCruiser
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
weight: 2 # Its just a big ship, so it needs to be rarer to be interesting.
- type: LoadMapRule
gridPath: /Maps/Shuttles/ShuttleEvent/cruiser.yml
- type: entity
id: UnknownShuttleCryptid
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
- type: LoadMapRule
gridPath: /Maps/Shuttles/ShuttleEvent/cryptid.yml
- type: entity
id: UnknownShuttleEternal
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
- type: LoadMapRule
gridPath: /Maps/Shuttles/ShuttleEvent/eternal.yml
- type: entity
id: UnknownShuttleFlatline
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
- type: LoadMapRule
gridPath: /Maps/Shuttles/ShuttleEvent/flatline.yml
- type: entity
id: UnknownShuttleGym
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
weight: 5 # Its just a big ship, so it needs to be rarer to be interesting.
- type: LoadMapRule
gridPath: /Maps/Shuttles/ShuttleEvent/gym.yml
- type: entity
id: UnknownShuttleNTIncorporation
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
weight: 2 # Its just a big ship, so it needs to be rarer to be interesting.
earliestStart: 45 # late to hopefully have enough ghosts to fill all roles quickly. (5-6)
- type: LoadMapRule
gridPath: /Maps/Shuttles/ShuttleEvent/incorporation.yml
- type: entity
id: UnknownShuttleInstigator
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: null #dont nark on antags
weight: 1 # lower because antags.
earliestStart: 50 # late to hopefully have enough ghosts to fill all roles quickly (3) and because antags
weight: 0.1 # approximately 1/1000 on the random hostile shuttle table. Golden Legendary!
- type: LoadMapRule
gridPath: /Maps/Shuttles/ShuttleEvent/instigator.yml
- type: entity
id: UnknownShuttleJoe
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
- type: LoadMapRule
gridPath: /Maps/Shuttles/ShuttleEvent/joe.yml
- type: entity
id: UnknownShuttleLambordeere
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
- type: LoadMapRule
gridPath: /Maps/Shuttles/ShuttleEvent/lambordeere.yml
- type: entity
id: UnknownShuttleManOWar
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #Leaving this one because theyre like primitives and its funnier
weight: 1 # lower because antags
earliestStart: 50 # late to hopefully have enough ghosts to fill all roles quickly. (4) & antags
- type: LoadMapRule
gridPath: /Maps/Shuttles/ShuttleEvent/manowar.yml
- type: entity
id: UnknownShuttleMeatZone
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
- type: LoadMapRule
gridPath: /Maps/Shuttles/ShuttleEvent/meatzone.yml
- type: entity
id: UnknownShuttleMicroshuttle
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
weight: 11 # this is higher because its just a little generic personal shuttle
maxOccurrences: 4
- type: LoadMapRule
gridPath: /Maps/Shuttles/ShuttleEvent/microshuttle.yml
- type: entity
id: UnknownShuttleSpacebus
parent: BaseUnknownShuttleRule
components:
- type: StationEvent
startAnnouncement: station-event-unknown-shuttle-incoming #!!
- type: LoadMapRule
gridPath: /Maps/Shuttles/ShuttleEvent/spacebus.yml

View File

@ -10,7 +10,6 @@
- MeteorSwarmScheduler
- RampingStationEventScheduler
- SpaceTrafficControlEventScheduler
#- SpaceTrafficControlFriendlyEventScheduler # DeltaV: spam of garbage roles nobody takes every 10-20 minutes
- BasicRoundstartVariation
- GlimmerEventScheduler # DeltaV
- SubGamemodesRule # DeltaV
@ -75,7 +74,6 @@
- MeteorSwarmScheduler
- RampingStationEventScheduler
- SpaceTrafficControlEventScheduler
- SpaceTrafficControlFriendlyEventScheduler
- BasicRoundstartVariation
- GlimmerEventScheduler # DeltaV
@ -103,7 +101,6 @@
showInVote: true #4boring4vote # DeltaV - Enable greenshift in gamemode vote
description: greenshift-description
rules:
- SpaceTrafficControlFriendlyEventScheduler
- BasicRoundstartVariation
- GlimmerEventScheduler # DeltaV