Add smuggler stashes (#19460)
* Add smuggler stashes * Prevent anchor/collision test fail * Enabled = false * Oops, missed one * NYAH!1984 * Split/Rebalance loot pools and fix test fail * Errg, still with the canCollide thing * Removed notes, additional balance tweaking, removed some blank lines * Replace generator IDs * Adjust briefcase fill * Node moved * Use noSpawn * Goldschlonger * Adjusts fills for grid-inv * Replace removed items * Replace removed items part 2 * Add empty satchel to clothesmate contraband inventory * Merge master and switch spawning to roundstart event * Cleaned up and converted to entity spawn tables + Added funny clown satchel * Adds comp to prevent stacking bags * Inital cleanup * More changes * ff * Some fixes but yaml needs to be organized and a few bugs remain * Final fixes * Cleanup * good * One more * minor tweaks * Rename * Combine dupe fields * address review * review * make linter happy * names, contraband status * uplink * small bugfix --------- Co-authored-by: Jeff <velcroboy333@hotmail.com> Co-authored-by: beck-thompson <beck314159@hotmail.com> Co-authored-by: Milon <milonpl.git@proton.me> Co-authored-by: ScarKy0 <scarky0@onet.eu>
This commit is contained in:
@@ -0,0 +1,24 @@
|
|||||||
|
using Content.Shared.Construction.EntitySystems;
|
||||||
|
using Content.Shared.Whitelist;
|
||||||
|
using Robust.Shared.GameStates;
|
||||||
|
|
||||||
|
namespace Content.Shared.Construction.Components;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Will not allow anchoring if there is an anchored item in the same tile that fails the <see cref="EntityWhitelist"/>.
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent, NetworkedComponent, Access(typeof(BlockAnchorOnSystem))]
|
||||||
|
public sealed partial class BlockAnchorOnComponent : Component
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// If not null, entities that match this whitelist are allowed.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public EntityWhitelist? Whitelist;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// If not null, entities that match this blacklist are not allowed.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public EntityWhitelist? Blacklist;
|
||||||
|
}
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
using Content.Shared.Construction.Components;
|
||||||
|
using Content.Shared.Popups;
|
||||||
|
using Content.Shared.Whitelist;
|
||||||
|
using Robust.Shared.Map.Components;
|
||||||
|
|
||||||
|
namespace Content.Shared.Construction.EntitySystems;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Prevents anchoring an item in the same tile as an item matching the <see cref="EntityWhitelist"/>.
|
||||||
|
/// <seealso cref="BlockAnchorOnComponent"/>
|
||||||
|
/// </summary>
|
||||||
|
public sealed class BlockAnchorOnSystem : EntitySystem
|
||||||
|
{
|
||||||
|
[Dependency] private readonly EntityWhitelistSystem _whitelist = default!;
|
||||||
|
[Dependency] private readonly SharedMapSystem _map = default!;
|
||||||
|
[Dependency] private readonly SharedPopupSystem _popup = default!;
|
||||||
|
[Dependency] private readonly SharedTransformSystem _xform = default!;
|
||||||
|
|
||||||
|
/// <inheritdoc/>
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<BlockAnchorOnComponent, AnchorStateChangedEvent>(OnAnchorStateChanged);
|
||||||
|
SubscribeLocalEvent<BlockAnchorOnComponent, AnchorAttemptEvent>(OnAnchorAttempt);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Handles the <see cref="AnchorStateChangedEvent"/>.
|
||||||
|
/// </summary>
|
||||||
|
private void OnAnchorStateChanged(Entity<BlockAnchorOnComponent> ent, ref AnchorStateChangedEvent args)
|
||||||
|
{
|
||||||
|
if (!args.Anchored)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!HasOverlap((ent, ent.Comp, Transform(ent))))
|
||||||
|
return;
|
||||||
|
|
||||||
|
_popup.PopupPredicted(Loc.GetString("anchored-already-present"), ent, null);
|
||||||
|
_xform.Unanchor(ent, Transform(ent));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Handles the <see cref="AnchorAttemptEvent"/>.
|
||||||
|
/// </summary>
|
||||||
|
private void OnAnchorAttempt(Entity<BlockAnchorOnComponent> ent, ref AnchorAttemptEvent args)
|
||||||
|
{
|
||||||
|
if (args.Cancelled)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!HasOverlap((ent, ent.Comp, Transform(ent))))
|
||||||
|
return;
|
||||||
|
|
||||||
|
_popup.PopupPredicted(Loc.GetString("anchored-already-present"), ent, args.User);
|
||||||
|
args.Cancel();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Check if there is any anchored overlap with non whitelisted or blacklisted entities.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>True if there is, false if there isn't</returns>
|
||||||
|
private bool HasOverlap(Entity<BlockAnchorOnComponent, TransformComponent> ent)
|
||||||
|
{
|
||||||
|
if (ent.Comp2.GridUid is not { } grid || !TryComp<MapGridComponent>(grid, out var gridComp))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
var indices = _map.TileIndicesFor(grid, gridComp, ent.Comp2.Coordinates);
|
||||||
|
var enumerator = _map.GetAnchoredEntitiesEnumerator(grid, gridComp, indices);
|
||||||
|
|
||||||
|
while (enumerator.MoveNext(out var otherEnt))
|
||||||
|
{
|
||||||
|
// Don't match yourself.
|
||||||
|
if (otherEnt == ent)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (!_whitelist.CheckBoth(otherEnt, ent.Comp1.Blacklist, ent.Comp1.Whitelist))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
using Content.Shared.Storage.EntitySystems;
|
||||||
|
using Content.Shared.Whitelist;
|
||||||
|
using Robust.Shared.GameStates;
|
||||||
|
|
||||||
|
namespace Content.Shared.Storage.Components;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Entities with this component will eject all items that match the whitelist / blacklist when anchored.
|
||||||
|
/// It also doesn't allow any items to be inserted that fit the whitelist / blacklist while anchored.
|
||||||
|
/// </summary>
|
||||||
|
/// <example>
|
||||||
|
/// If you have a smuggler stash that has a player inside of it, you want to eject the player before its anchored so they don't get stuck
|
||||||
|
/// </example>
|
||||||
|
[RegisterComponent, NetworkedComponent, Access(typeof(AnchoredStorageFilterSystem))]
|
||||||
|
public sealed partial class AnchoredStorageFilterComponent : Component
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// If not null, entities that do not match this whitelist will be ejected.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public EntityWhitelist? Whitelist;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// If not null, entities that match this blacklist will be ejected..
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public EntityWhitelist? Blacklist;
|
||||||
|
}
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
using Content.Shared.Storage.Components;
|
||||||
|
using Content.Shared.Whitelist;
|
||||||
|
using Robust.Shared.Containers;
|
||||||
|
|
||||||
|
namespace Content.Shared.Storage.EntitySystems;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Ejects items that do not match a <see cref="EntityWhitelist"/> from a storage when it is anchored.
|
||||||
|
/// <seealso cref="AnchoredStorageFilterComponent"/>
|
||||||
|
/// </summary>
|
||||||
|
public sealed class AnchoredStorageFilterSystem : EntitySystem
|
||||||
|
{
|
||||||
|
[Dependency] private readonly EntityWhitelistSystem _whitelist = default!;
|
||||||
|
[Dependency] private readonly SharedContainerSystem _container = default!;
|
||||||
|
|
||||||
|
/// <inheritdoc/>
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<AnchoredStorageFilterComponent, AnchorStateChangedEvent>(OnAnchorStateChanged);
|
||||||
|
SubscribeLocalEvent<AnchoredStorageFilterComponent, ContainerIsInsertingAttemptEvent>(OnInsertAttempt);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Handles the <see cref="AnchorStateChangedEvent"/>.
|
||||||
|
/// </summary>
|
||||||
|
private void OnAnchorStateChanged(Entity<AnchoredStorageFilterComponent> ent, ref AnchorStateChangedEvent args)
|
||||||
|
{
|
||||||
|
if (!args.Anchored)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!TryComp<StorageComponent>(ent, out var storage))
|
||||||
|
return;
|
||||||
|
|
||||||
|
foreach (var item in storage.StoredItems.Keys)
|
||||||
|
{
|
||||||
|
if (!_whitelist.CheckBoth(item, ent.Comp.Blacklist, ent.Comp.Whitelist))
|
||||||
|
_container.RemoveEntity(ent, item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Handles the <see cref="ContainerIsInsertingAttemptEvent"/>.
|
||||||
|
/// </summary>
|
||||||
|
private void OnInsertAttempt(Entity<AnchoredStorageFilterComponent> ent, ref ContainerIsInsertingAttemptEvent args)
|
||||||
|
{
|
||||||
|
if (args.Cancelled)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (Transform(ent).Anchored && !_whitelist.CheckBoth(args.EntityUid, ent.Comp.Blacklist, ent.Comp.Whitelist))
|
||||||
|
args.Cancel();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
anchored-already-present = There's already something anchored here!
|
||||||
@@ -463,3 +463,6 @@ uplink-business-card-desc = A business card that you can give to someone to demo
|
|||||||
|
|
||||||
uplink-fake-mindshield-name = Fake Mindshield
|
uplink-fake-mindshield-name = Fake Mindshield
|
||||||
uplink-fake-mindshield-desc = A togglable implant capable of mimicking the same transmissions a real mindshield puts out when on, tricking capable Heads-up displays into thinking you have a mindshield (Nanotrasen brand implanter not provided.)
|
uplink-fake-mindshield-desc = A togglable implant capable of mimicking the same transmissions a real mindshield puts out when on, tricking capable Heads-up displays into thinking you have a mindshield (Nanotrasen brand implanter not provided.)
|
||||||
|
|
||||||
|
uplink-smuggler-satchel-name = Smuggler's Satchel
|
||||||
|
uplink-smuggler-satchel-desc = A handy, suspicious looking satchel. Just flat enough to fit underneath floor tiles.
|
||||||
|
|||||||
@@ -98,4 +98,5 @@
|
|||||||
ClothingUniformJumpskirtTacticool: 1
|
ClothingUniformJumpskirtTacticool: 1
|
||||||
ToyFigurinePassenger: 1
|
ToyFigurinePassenger: 1
|
||||||
ToyFigurineGreytider: 1
|
ToyFigurineGreytider: 1
|
||||||
|
ClothingBackpackSatchelSmugglerUnanchored: 1
|
||||||
# DO NOT ADD MORE, USE UNIFORM DYING
|
# DO NOT ADD MORE, USE UNIFORM DYING
|
||||||
|
|||||||
@@ -2148,3 +2148,16 @@
|
|||||||
whitelist:
|
whitelist:
|
||||||
- Chef
|
- Chef
|
||||||
- Mime
|
- Mime
|
||||||
|
|
||||||
|
- type: listing
|
||||||
|
id: UplinkSmugglerSatchel
|
||||||
|
name: uplink-smuggler-satchel-name
|
||||||
|
description: uplink-smuggler-satchel-desc
|
||||||
|
productEntity: ClothingBackpackSatchelSmugglerUnanchored
|
||||||
|
discountCategory: usualDiscounts
|
||||||
|
discountDownTo:
|
||||||
|
Telecrystal: 1
|
||||||
|
cost:
|
||||||
|
Telecrystal: 2
|
||||||
|
categories:
|
||||||
|
- UplinkDeception
|
||||||
|
|||||||
120
Resources/Prototypes/Entities/Clothing/Back/smuggler.yml
Normal file
120
Resources/Prototypes/Entities/Clothing/Back/smuggler.yml
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
- type: entity
|
||||||
|
abstract: true
|
||||||
|
id: BaseSubfloorAnchorStorage
|
||||||
|
components:
|
||||||
|
- type: Appearance
|
||||||
|
- type: SubFloorHide
|
||||||
|
- type: Anchorable
|
||||||
|
- type: CollideOnAnchor
|
||||||
|
- type: Transform
|
||||||
|
anchored: false
|
||||||
|
- type: AnchoredStorageFilter
|
||||||
|
blacklist:
|
||||||
|
components:
|
||||||
|
- HumanoidAppearance # for forks with felines
|
||||||
|
- type: BlockAnchorOn
|
||||||
|
blacklist:
|
||||||
|
components:
|
||||||
|
- AnchoredStorageFilter
|
||||||
|
- type: Visibility
|
||||||
|
layer: 1
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
abstract: true
|
||||||
|
parent: BaseSubfloorAnchorStorage
|
||||||
|
id: BaseSubfloorAnchorStorageAnchored
|
||||||
|
placement:
|
||||||
|
mode: SnapgridCenter
|
||||||
|
components:
|
||||||
|
- type: Transform
|
||||||
|
anchored: true
|
||||||
|
- type: Physics
|
||||||
|
canCollide: false
|
||||||
|
bodyType: Static
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: [ BaseSubfloorAnchorStorageAnchored, ClothingBackpackSatchel, BaseMinorContraband ]
|
||||||
|
id: ClothingBackpackSatchelSmuggler
|
||||||
|
name: smuggler's satchel
|
||||||
|
suffix: Empty
|
||||||
|
description: A dingy, suspicious looking satchel.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Clothing/Back/Satchels/smuggler.rsi
|
||||||
|
state: icon
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: [ BaseSubfloorAnchorStorage, ClothingBackpackSatchel, BaseMinorContraband ]
|
||||||
|
id: ClothingBackpackSatchelSmugglerUnanchored
|
||||||
|
name: smuggler's satchel
|
||||||
|
suffix: Empty, Unanchored
|
||||||
|
description: A dingy, suspicious looking satchel.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Clothing/Back/Satchels/smuggler.rsi
|
||||||
|
state: icon
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: [ BaseSubfloorAnchorStorageAnchored, BriefcaseSyndie, BaseMinorContraband ]
|
||||||
|
id: BriefcaseSmugglerCash
|
||||||
|
name: smuggler's briefcase
|
||||||
|
suffix: Smuggler, Do Not Map
|
||||||
|
components:
|
||||||
|
- type: EntityTableContainerFill
|
||||||
|
containers:
|
||||||
|
storagebase: !type:AllSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash5000
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 11
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: [ BaseSubfloorAnchorStorageAnchored, ClothingBackpackDuffelClown, BaseMinorContraband ]
|
||||||
|
id: ClothingBackpackDuffelClownSmuggler
|
||||||
|
name: smuggler's clown duffel bag
|
||||||
|
suffix: Smuggler, Do Not Map
|
||||||
|
components:
|
||||||
|
- type: EntityTableContainerFill
|
||||||
|
containers:
|
||||||
|
storagebase: !type:AllSelector
|
||||||
|
children:
|
||||||
|
- id: SpeedLoaderCap
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 4, 8
|
||||||
|
- !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: RevolverCapGun
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 4, 8
|
||||||
|
weight: 95
|
||||||
|
- id: RevolverCapGunFake
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 8
|
||||||
|
weight: 5
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: ClothingBackpackSatchelSmuggler
|
||||||
|
id: ClothingBackpackSatchelSmugglerFilled
|
||||||
|
suffix: Smuggler, Do Not Map
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Clothing/Back/Satchels/smuggler.rsi
|
||||||
|
state: icon
|
||||||
|
- type: EntityTableContainerFill
|
||||||
|
containers:
|
||||||
|
storagebase: !type:NestedSelector
|
||||||
|
tableId: FillSmugglerBackpack
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: MarkerBase
|
||||||
|
id: RandomSatchelSpawner
|
||||||
|
name: random smuggler's satchel spawner
|
||||||
|
suffix: Do Not Map
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
layers:
|
||||||
|
- sprite: Clothing/Back/Satchels/smuggler.rsi
|
||||||
|
state: icon
|
||||||
|
- type: EntityTableSpawner
|
||||||
|
table: !type:NestedSelector
|
||||||
|
tableId: RandomSatchelTable
|
||||||
673
Resources/Prototypes/Entities/Clothing/Back/smuggler_tables.yml
Normal file
673
Resources/Prototypes/Entities/Clothing/Back/smuggler_tables.yml
Normal file
@@ -0,0 +1,673 @@
|
|||||||
|
#Table
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: ClothingBackpackSatchelSmugglerFilled
|
||||||
|
weight: 85
|
||||||
|
- id: BriefcaseSmugglerCash
|
||||||
|
weight: 10
|
||||||
|
- id: ClothingBackpackDuffelClownSmuggler
|
||||||
|
weight: 5
|
||||||
|
|
||||||
|
#Table
|
||||||
|
- type: entityTable
|
||||||
|
id: FillSmugglerBackpack
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelTable1
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelTable2
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelTable3
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelTable4
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelTable5
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelTable6
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelTable1
|
||||||
|
table: !type:AllSelector
|
||||||
|
children:
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelGenericTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelFunnyTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelClothingTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelCannabisTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelGizmosTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelChemsTable
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelFunnyTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 20
|
||||||
|
- id: WhoopieCushion
|
||||||
|
- id: RubberChicken
|
||||||
|
- id: PlasticBanana
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: PillSpaceDrugs
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 2
|
||||||
|
- id: StrangePill
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelCannabisTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 4
|
||||||
|
- id: Joint
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: Blunt
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: SmokingPipeFilledCannabis
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: GroundCannabis
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 15
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelGizmosTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 40
|
||||||
|
- id: TimerTrigger
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 2
|
||||||
|
- id: SignalTrigger
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 2
|
||||||
|
- id: VoiceTrigger
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 2
|
||||||
|
- id: ProximitySensor
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelChemsTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 20
|
||||||
|
- id: ChemistryBottleUnstableMutagen
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: ChemistryBottleLeft4Zed
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: ChemistryBottleEZNutrient
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: ChemistryBottleRobustHarvest
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: ChemistryBottleEpinephrine
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: ChemistryBottleEphedrine
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: ChemistryBottleOmnizine
|
||||||
|
- id: ChemistryBottleCognizine
|
||||||
|
- id: ChemistryBottleToxin
|
||||||
|
- id: ChemistryBottleNocturine
|
||||||
|
- id: VestineChemistryVial
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelTable2
|
||||||
|
table: !type:AllSelector
|
||||||
|
children:
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelTobaccoTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelPartyTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelClothingTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelPayloadTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelCircuitboardsTable
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelTobaccoTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 8
|
||||||
|
- id: CigPackSyndicate
|
||||||
|
weight: 0.5
|
||||||
|
- id: CigCartonGreen
|
||||||
|
- id: CigCartonRed
|
||||||
|
- id: CigCartonGreen
|
||||||
|
- id: CigCartonBlack
|
||||||
|
- id: CigarCase
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 2
|
||||||
|
- id: CigarGoldCase
|
||||||
|
weight: 0.25
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 2
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelPartyTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 2
|
||||||
|
- id: GlowstickBase
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: GlowstickRed
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: GlowstickPurple
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: GlowstickYellow
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: GlowstickBlue
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelClothingTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 3
|
||||||
|
- id: ClothingEyesGlassesOutlawGlasses
|
||||||
|
- id: ClothingEyesEyepatch
|
||||||
|
- id: ClothingHandsGlovesNitrile
|
||||||
|
- id: ClothingHeadHatOutlawHat
|
||||||
|
- id: ClothingMaskItalianMoustache
|
||||||
|
- id: ClothingHandsGlovesCombat
|
||||||
|
- id: ClothingNeckScarfStripedSyndieRed
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelPayloadTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 45
|
||||||
|
- id: FlashPayload
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 2
|
||||||
|
- id: ChemicalPayload
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 2
|
||||||
|
- id: ExplosivePayload
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 2
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelCircuitboardsTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 15
|
||||||
|
- id: ChemDispenserMachineCircuitboard
|
||||||
|
- id: SyndicateMicrowaveMachineCircuitboard
|
||||||
|
- id: HydroponicsTrayMachineCircuitboard
|
||||||
|
- id: DawInstrumentMachineCircuitboard
|
||||||
|
- id: PortableGeneratorPacmanMachineCircuitboard
|
||||||
|
- id: PortableGeneratorSuperPacmanMachineCircuitboard
|
||||||
|
- id: HellfireFreezerMachineCircuitBoard
|
||||||
|
- id: HellfireHeaterMachineCircuitBoard
|
||||||
|
- id: ReagentGrinderMachineCircuitboard
|
||||||
|
- id: ReagentGrinderIndustrialMachineCircuitboard
|
||||||
|
- id: BoozeDispenserMachineCircuitboard
|
||||||
|
- id: MiniGravityGeneratorCircuitboard
|
||||||
|
- id: AmmoTechFabCircuitboard
|
||||||
|
- id: CryoPodMachineCircuitboard
|
||||||
|
- id: PowerCageRechargerCircuitboard
|
||||||
|
- id: ShuttleConsoleCircuitboard
|
||||||
|
- id: TurboItemRechargerCircuitboard
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelTable3
|
||||||
|
table: !type:AllSelector
|
||||||
|
children:
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelPresentsOrToysTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelCashTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelWeaponTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelBurgerTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelGenericTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelKeysTable
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelPresentsOrToysTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 5
|
||||||
|
- id: PresentRandom
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 3
|
||||||
|
- id: ToyFigurineHamlet
|
||||||
|
- id: ToyFigurineSpaceDragon
|
||||||
|
- id: ToyFigurineQueen
|
||||||
|
- id: ToyFigurineRatKing
|
||||||
|
- id: PresentRandomUnsafe
|
||||||
|
weight: 0.001
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelCashTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 2
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 4
|
||||||
|
- id: SpaceCash1000
|
||||||
|
weight: 2
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 4
|
||||||
|
- id: SpaceCash2500
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 4
|
||||||
|
- id: SpaceCash5000
|
||||||
|
weight: 0.25
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 4
|
||||||
|
- id: SpaceCash10000
|
||||||
|
weight: 0.005
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 4
|
||||||
|
- id: SpaceCash1000000
|
||||||
|
prob: 0.0001
|
||||||
|
- id: SpaceCash
|
||||||
|
weight: 0.01
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 10
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelWeaponTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 100
|
||||||
|
- id: Katana
|
||||||
|
- id: ThrowingStar
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelBurgerTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 10
|
||||||
|
- id: FoodBurgerAppendix
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: FoodBurgerEmpowered
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: FoodBurgerClown
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: FoodBurgerGhost
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelGenericTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 15
|
||||||
|
- id: RemoteSignaller
|
||||||
|
- id: PersonalAI
|
||||||
|
- id: WeaponFlareGun
|
||||||
|
- id: ModularReceiver
|
||||||
|
- id: RifleStock
|
||||||
|
- id: DrinkSpaceGlue
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 2
|
||||||
|
- id: DrinkSpaceLube
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 2
|
||||||
|
- id: CrazyGlue
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 2
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelKeysTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 50
|
||||||
|
- id: EncryptionKeyCommon
|
||||||
|
- id: EncryptionKeyCargo
|
||||||
|
- id: EncryptionKeyService
|
||||||
|
- id: EncryptionKeyRobo
|
||||||
|
- id: EncryptionKeyScience
|
||||||
|
- id: EncryptionKeyMedical
|
||||||
|
- id: EncryptionKeyEngineering
|
||||||
|
- id: EncryptionKeySecurity
|
||||||
|
weight: 0.5
|
||||||
|
- id: EncryptionKeyCommand
|
||||||
|
weight: 0.25
|
||||||
|
- id: EncryptionKeyStationMaster
|
||||||
|
weight: 0.01
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelTable4
|
||||||
|
table: !type:AllSelector
|
||||||
|
children:
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelMaterialsTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelImplantersTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelCellsTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelSyndicateTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelToolsTable
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelMaterialsTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 6
|
||||||
|
- !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: MaterialDiamond1
|
||||||
|
- !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: MaterialBananium1
|
||||||
|
weight: 2
|
||||||
|
- id: MaterialBananium
|
||||||
|
- !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: IngotGold1
|
||||||
|
weight: 2
|
||||||
|
- id: IngotGold
|
||||||
|
- !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: IngotSilver1
|
||||||
|
weight: 2
|
||||||
|
- id: IngotSilver
|
||||||
|
- !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SheetPlasma1
|
||||||
|
weight: 2
|
||||||
|
- id: SheetPlasma10
|
||||||
|
- id: SheetPlasma
|
||||||
|
weight: 0.50
|
||||||
|
- !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SheetUranium1
|
||||||
|
weight: 2
|
||||||
|
- id: SheetUranium
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelImplantersTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 3
|
||||||
|
- id: LightImplanter
|
||||||
|
- id: BikeHornImplanter
|
||||||
|
- id: SadTromboneImplanter
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelCellsTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 15
|
||||||
|
- id: PowerCellHyper
|
||||||
|
- id: PowerCellMicroreactor
|
||||||
|
- id: PowerCellHigh
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelSyndicateTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 50
|
||||||
|
- id: Telecrystal1
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 3
|
||||||
|
- id: GatfruitSeeds
|
||||||
|
- id: ToySword
|
||||||
|
- id: NukeDiskFake
|
||||||
|
- id: RadioJammer
|
||||||
|
- id: SoapSyndie
|
||||||
|
- id: SingularityToy
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelToolsTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: Crowbar
|
||||||
|
- id: Multitool
|
||||||
|
- id: ClothingHandsGlovesColorYellow
|
||||||
|
- id: Screwdriver
|
||||||
|
- id: ClothingHeadHatWeldingMaskFlame
|
||||||
|
- id: WelderExperimental
|
||||||
|
weight: 0.50
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelTable5
|
||||||
|
table: !type:AllSelector
|
||||||
|
children:
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelAlcoholTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelInstrumentTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelMedsTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelMysteriesTable
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelAlcoholTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 5
|
||||||
|
- id: DrinkCognacBottleFull
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 4
|
||||||
|
- id: DrinkGildlagerBottleFull
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 4
|
||||||
|
- id: DrinkPatronBottleFull
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 4
|
||||||
|
- id: DrinkRumBottleFull
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 4
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelInstrumentTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 15
|
||||||
|
- id: SeashellInstrument
|
||||||
|
- id: MusicalLungInstrument
|
||||||
|
- id: HelicopterInstrument
|
||||||
|
- id: GunpetInstrument
|
||||||
|
- id: RockGuitarInstrument
|
||||||
|
- id: BassGuitarInstrument
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelMedsTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 10
|
||||||
|
- id: SyringeAmbuzol
|
||||||
|
- id: SyringeHyronalin
|
||||||
|
- id: SyringeDermaline
|
||||||
|
- id: SyringeBicaridine
|
||||||
|
- id: SyringeTranexamicAcid
|
||||||
|
- id: SyringeInaprovaline
|
||||||
|
- id: SyringeEphedrine
|
||||||
|
- id: Gauze
|
||||||
|
- id: Bloodpack
|
||||||
|
- id: RegenerativeMesh
|
||||||
|
- id: MedicatedSuture
|
||||||
|
- id: EmergencyMedipen
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: AntiPoisonMedipen
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: BruteAutoInjector
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: BurnAutoInjector
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: SpaceMedipen
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 5
|
||||||
|
- id: Stimpack
|
||||||
|
- id: CombatMedipen
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelMysteriesTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 15
|
||||||
|
- id: EggSpider
|
||||||
|
weight: 5
|
||||||
|
- id: ArtifactFragment1
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 2
|
||||||
|
weight: 10
|
||||||
|
- id: AnomalyCorePyroclastic
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 3
|
||||||
|
- id: AnomalyCoreGravity
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 3
|
||||||
|
- id: AnomalyCoreIce
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 3
|
||||||
|
- id: AnomalyCoreFlesh
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 3
|
||||||
|
- id: AnomalyCoreLiquid
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 3
|
||||||
|
- id: AnomalyCoreBluespace
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 3
|
||||||
|
- id: AnomalyCoreElectricity
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 3
|
||||||
|
- id: AnomalyCoreFlora
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 3
|
||||||
|
- id: AnomalyCoreShadow
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 3
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelTable6
|
||||||
|
table: !type:AllSelector
|
||||||
|
children:
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelGearTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: RandomSatchelGadgetsTable
|
||||||
|
- !type:NestedSelector
|
||||||
|
tableId: CubeTable
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelGearTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 8
|
||||||
|
- id: JetpackMiniFilled
|
||||||
|
- id: HandheldGPSBasic
|
||||||
|
- id: WelderIndustrialAdvanced
|
||||||
|
- id: HandheldStationMap
|
||||||
|
- id: PinpointerStation
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: RandomSatchelGadgetsTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 30
|
||||||
|
- id: HolofanProjector
|
||||||
|
- id: HoloprojectorField
|
||||||
|
- id: HoloprojectorSecurity
|
||||||
|
- id: DeviceQuantumSpinInverter
|
||||||
|
amount: !type:ConstantNumberSelector
|
||||||
|
value: 2
|
||||||
|
- id: SpectralLocator
|
||||||
|
- id: ArabianLamp
|
||||||
|
weight: 0.50
|
||||||
|
- id: ChameleonProjector
|
||||||
|
weight: 0.25
|
||||||
|
|
||||||
|
- type: entityTable
|
||||||
|
id: CubeTable
|
||||||
|
table: !type:GroupSelector
|
||||||
|
children:
|
||||||
|
- id: SpaceCash100
|
||||||
|
weight: 8
|
||||||
|
- id: MonkeyCube
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 10
|
||||||
|
- id: KoboldCube
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 10
|
||||||
|
- id: CowCube
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 10
|
||||||
|
- id: GoatCube
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 10
|
||||||
|
- id: MothroachCube
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 10
|
||||||
|
- id: MouseCube
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 10
|
||||||
|
- id: CockroachCube
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 10
|
||||||
|
- id: SpaceCarpCube
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 10
|
||||||
|
- id: SpaceTickCube
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 10
|
||||||
|
- id: AbominationCube
|
||||||
|
amount: !type:RangeNumberSelector
|
||||||
|
range: 1, 10
|
||||||
@@ -640,6 +640,19 @@
|
|||||||
blacklist:
|
blacklist:
|
||||||
- External # don't space everything
|
- External # don't space everything
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: BaseGameRule
|
||||||
|
id: SmugglerStashVariationPass
|
||||||
|
components:
|
||||||
|
- type: StationEvent
|
||||||
|
earliestStart: 0
|
||||||
|
duration: 1
|
||||||
|
minimumPlayers: 1
|
||||||
|
maxOccurrences: 2
|
||||||
|
weight: 10
|
||||||
|
- type: RandomSpawnRule
|
||||||
|
prototype: RandomSatchelSpawner
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: BaseGameRule
|
parent: BaseGameRule
|
||||||
id: DerelictCyborgSpawn
|
id: DerelictCyborgSpawn
|
||||||
|
|||||||
@@ -443,3 +443,5 @@
|
|||||||
- id: BloodbathPuddleMessVariationPass
|
- id: BloodbathPuddleMessVariationPass
|
||||||
prob: 0.01
|
prob: 0.01
|
||||||
orGroup: puddleMess
|
orGroup: puddleMess
|
||||||
|
- id: SmugglerStashVariationPass
|
||||||
|
prob: 0.90
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 308 B |
BIN
Resources/Textures/Clothing/Back/Satchels/smuggler.rsi/icon.png
Normal file
BIN
Resources/Textures/Clothing/Back/Satchels/smuggler.rsi/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 348 B |
Binary file not shown.
|
After Width: | Height: | Size: 577 B |
Binary file not shown.
|
After Width: | Height: | Size: 489 B |
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"license": "CC-BY-SA-3.0",
|
||||||
|
"copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/a8056c6ba7f5367934ef829116e57d743226e1f0",
|
||||||
|
"size": {
|
||||||
|
"x": 32,
|
||||||
|
"y": 32
|
||||||
|
},
|
||||||
|
"states": [
|
||||||
|
{
|
||||||
|
"name": "icon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "equipped-BACKPACK",
|
||||||
|
"directions": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "inhand-left",
|
||||||
|
"directions": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "inhand-right",
|
||||||
|
"directions": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user