Merge remote-tracking branch 'upstream/master' into ups

This commit is contained in:
Jabak
2024-07-26 21:32:42 +03:00
790 changed files with 5278 additions and 138 deletions

View File

@@ -4,6 +4,7 @@ using Content.Server._White.Cult.GameRule;
using Content.Server._White.Mood;
using Content.Server._White.Other.FastAndFuriousSystem;
using Content.Server._White.Wizard;
using Content.Server.Abilities.Felinid;
using Content.Server.Administration.Systems;
using Content.Server.Bible.Components;
using Content.Server.Body.Components;
@@ -1008,6 +1009,12 @@ public sealed partial class ChangelingSystem
_actionContainerSystem.TransferAllActionsFiltered(target, polymorphEntity.Value, polymorphEntity.Value);
_action.GrantContainedActions(polymorphEntity.Value, polymorphEntity.Value);
if (!TryComp(polymorphEntity.Value, out FelinidComponent? felinid))
return polymorphEntity;
_action.SetCharges(felinid.HairballAction, 0);
_action.SetEnabled(felinid.HairballAction, false);
return polymorphEntity;
}

View File

@@ -78,6 +78,8 @@ public sealed partial class DragonSystem : EntitySystem
}
}
continue; // WD EDIT, Don't despawn dragon
// At max rifts
if (comp.Rifts.Count >= RiftsAllowed)
continue;

View File

@@ -17,7 +17,9 @@ using Content.Shared.Traits.Assorted;
using Content.Shared.Weapons.Melee.Events;
using Content.Shared.StatusEffect;
using Content.Shared.Examine;
using Content.Shared.Hands.Components;
using Robust.Server.Audio;
using Robust.Server.Containers;
using Robust.Server.GameObjects;
using Robust.Shared.Audio;
using Robust.Shared.Random;
@@ -40,6 +42,7 @@ namespace Content.Server.Flash
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly StatusEffectsSystem _statusEffectsSystem = default!;
[Dependency] private readonly FlashSoundSuppressionSystem _flashSoundSuppressionSystem = default!;
[Dependency] private readonly ContainerSystem _container = default!;
public override void Initialize()
{
@@ -162,6 +165,14 @@ namespace Content.Server.Flash
var statusEffectsQuery = GetEntityQuery<StatusEffectsComponent>();
var damagedByFlashingQuery = GetEntityQuery<DamagedByFlashingComponent>();
// WD START
var flashInContainer =
_container.TryGetOuterContainer(source.Owner, transform, out var flashContainer);
if (flashInContainer && HasComp<HandsComponent>(flashContainer!.Owner))
flashInContainer = false;
// WD END
foreach (var entity in _entityLookup.GetEntitiesInRange(transform.Coordinates, range))
{
if (!_random.Prob(probability))
@@ -171,6 +182,16 @@ namespace Content.Server.Flash
if (!statusEffectsQuery.HasComponent(entity) && !damagedByFlashingQuery.HasComponent(entity))
continue;
// WD START
var entityInContainer = _container.TryGetContainingContainer(entity, out var entityContainer);
if (flashInContainer != entityInContainer)
continue;
if (flashInContainer && flashContainer != entityContainer)
continue;
// WD END
// Check for entites in view
// put damagedByFlashingComponent in the predicate because shadow anomalies block vision.
if (!_examine.InRangeUnOccluded(entity, mapPosition, range, predicate: (e) => damagedByFlashingQuery.HasComponent(e)))

View File

@@ -14,7 +14,7 @@ namespace Content.Server.Holosign
/// How much charge a single use expends.
/// </summary>
[ViewVariables(VVAccess.ReadWrite), DataField]
public int Uses = 10;
public int Uses = 6;
[ViewVariables(VVAccess.ReadWrite), DataField]
public List<EntityUid?> Signs = new();

View File

@@ -5,6 +5,7 @@ using Content.Shared.Interaction;
using Content.Shared.Interaction.Events;
using Content.Shared.Popups;
using Content.Shared.Storage;
using Content.Shared.Timing;
using Robust.Shared.Utility;
namespace Content.Server.Holosign;
@@ -13,6 +14,7 @@ public sealed class HolosignSystem : EntitySystem
{
[Dependency] private readonly SharedTransformSystem _transform = default!;
[Dependency] private readonly PopupSystem _popupSystem = default!;
[Dependency] private readonly UseDelaySystem _useDelay = default!;
public override void Initialize()
{
@@ -61,7 +63,10 @@ public sealed class HolosignSystem : EntitySystem
return;
}
if (args.Handled || !args.CanReach || HasComp<StorageComponent>(args.Target))
if (args.Handled || !args.CanReach || args.Target != null)
return;
if (TryComp(uid, out UseDelayComponent? useDelay) && !_useDelay.TryResetDelay((uid, useDelay), true))
return;
if (component.Signs.Count >= component.Uses) // wd edit

View File

@@ -102,6 +102,8 @@ public sealed partial class ImplanterSystem : SharedImplanterSystem
BreakOnDamage = true,
BreakOnMove = true,
NeedHand = true,
BreakOnHandChange = true, // WD EDIT
MovementThreshold = 0.01f,
};
if (!_doAfter.TryStartDoAfter(args))

View File

@@ -82,7 +82,7 @@ public sealed class HijackShuttleConditionSystem : EntitySystem
if (!isHumanoid) // Only humanoids count as enemies
continue;
var isAntagonist = _role.MindIsAntagonist(mindId);
var isAntagonist = _role.MindIsAntagonist(crewMindId);
if (isAntagonist) // Allow antagonist
continue;

View File

@@ -4,5 +4,5 @@
public sealed partial class TriggerOnLandComponent : Component
{
[DataField]
public float Delay = 0.3f;
public float Delay = 1f;
}

View File

@@ -12,7 +12,7 @@ public sealed class WeaponModulesSystem : EntitySystem
{
protected static readonly Dictionary<string, Enum> Slots = new()
{
{ "handguard_module", ModuleVisualState.HandGuardModule }, { "barrel_module", ModuleVisualState.BarrelModule }, { "aim_module", ModuleVisualState.AimModule }
{ "handguard_module", ModuleVisualState.HandGuardModule }, { "barrel_module", ModuleVisualState.BarrelModule }, { "aim_module", ModuleVisualState.AimModule }, { "shutter_module", ModuleVisualState.ShutterModule }
};
[Dependency] private readonly PointLightSystem _lightSystem = default!;
@@ -40,6 +40,9 @@ public sealed class WeaponModulesSystem : EntitySystem
SubscribeLocalEvent<AimModuleComponent, EntGotInsertedIntoContainerMessage>(EightAimModuleOnInsert);
SubscribeLocalEvent<AimModuleComponent, EntGotRemovedFromContainerMessage>(EightAimModuleOnEject);
SubscribeLocalEvent<ShutterModuleComponent, EntGotInsertedIntoContainerMessage>(ShutterModuleOnInsert);
SubscribeLocalEvent<ShutterModuleComponent, EntGotRemovedFromContainerMessage>(ShutterModuleOnEject);
}
private bool TryInsertModule(EntityUid module, EntityUid weapon, BaseModuleComponent component,
@@ -170,6 +173,22 @@ public sealed class WeaponModulesSystem : EntitySystem
EnsureComp<TelescopeComponent>(weapon).Divisor = component.Divisor;
}
private void ShutterModuleOnInsert(EntityUid module, ShutterModuleComponent component, EntGotInsertedIntoContainerMessage args)
{
EntityUid weapon = args.Container.Owner;
if (!TryComp<GunComponent>(weapon, out var gunComp)) return;
if(!TryInsertModule(module, weapon, component, args.Container.ID, out var weaponModulesComponent))
return;
if (!TryComp<BallisticAmmoProviderComponent>(weapon, out var ballisticAmmo))
return;
ballisticAmmo.Whitelist?.Tags?.Add(component.Tag);
Dirty(weapon, ballisticAmmo);
}
#endregion
#region EjectModules
@@ -239,5 +258,19 @@ public sealed class WeaponModulesSystem : EntitySystem
RemComp<TelescopeComponent>(weapon);
}
private void ShutterModuleOnEject(EntityUid module, ShutterModuleComponent component, EntGotRemovedFromContainerMessage args)
{
EntityUid weapon = args.Container.Owner;
if(!TryEjectModule(module, weapon, args.Container.ID, out var weaponModulesComponent))
return;
if (!TryComp<BallisticAmmoProviderComponent>(weapon, out var ballisticAmmo))
return;
ballisticAmmo.Whitelist?.Tags?.Remove(component.Tag);
Dirty(weapon, ballisticAmmo);
}
#endregion
}

View File

@@ -75,6 +75,13 @@ public sealed class WizardRuleSystem : GameRuleSystem<WizardRuleComponent>
_sawmill = _logManager.GetSawmill("Wizard");
}
protected override void Added(EntityUid uid, WizardRuleComponent component, GameRuleComponent gameRule, GameRuleAddedEvent args)
{
base.Added(uid, component, gameRule, args);
gameRule.MinPlayers = component.MinPlayers;
}
private void OnObjectivesTextGetInfo(Entity<WizardRuleComponent> ent, ref ObjectivesTextGetInfoEvent args)
{
args.Minds = ent.Comp.WizardMinds;

View File

@@ -86,10 +86,10 @@ public abstract partial class SharedBuckleSystem : EntitySystem
case StrapPosition.None:
break;
case StrapPosition.Stand:
_standing.Stand(buckleUid);
_standing.Stand(buckleUid, unbuckle: false);
break;
case StrapPosition.Down:
_standing.Down(buckleUid, false, false);
_standing.Down(buckleUid, false, false, false);
break;
}
}

View File

@@ -186,7 +186,7 @@ public abstract partial class SharedStandingStateSystem : EntitySystem
return false;
}
Down(uid, true, behavior != DropHeldItemsBehavior.NoDrop, standingState);
Down(uid, true, behavior != DropHeldItemsBehavior.NoDrop, true, standingState);
return true;
}
// WD EDIT END
@@ -203,6 +203,7 @@ public abstract partial class SharedStandingStateSystem : EntitySystem
EntityUid uid,
bool playSound = true,
bool dropHeldItems = true,
bool unbuckle = true, // WD EDIT
StandingStateComponent? standingState = null,
AppearanceComponent? appearance = null,
HandsComponent? hands = null)
@@ -292,7 +293,8 @@ public abstract partial class SharedStandingStateSystem : EntitySystem
EntityUid uid,
StandingStateComponent? standingState = null,
AppearanceComponent? appearance = null,
bool force = false)
bool force = false,
bool unbuckle = true) // WD EDIT
{
if (!Resolve(uid, ref standingState, false))
return false;
@@ -300,7 +302,7 @@ public abstract partial class SharedStandingStateSystem : EntitySystem
// Optional component.
Resolve(uid, ref appearance, false);
if (TryComp(uid, out BuckleComponent? buckle) && buckle.Buckled && !_buckle.TryUnbuckle(uid, uid, buckleComp: buckle)) // WD EDIT
if (unbuckle && TryComp(uid, out BuckleComponent? buckle) && buckle.Buckled && !_buckle.TryUnbuckle(uid, uid, buckleComp: buckle)) // WD EDIT
return false;
if (standingState.CurrentState is StandingState.Standing)

View File

@@ -361,7 +361,7 @@ public abstract class SharedEntityStorageSystem : EntitySystem
return false;
}
if (_container.IsEntityInContainer(target))
if (_container.IsEntityInContainer(target) && !_container.ContainsEntity(target, user)) // WD EDIT
{
if (_container.TryGetOuterContainer(target,Transform(target) ,out var container) &&
!HasComp<HandsComponent>(container.Owner))

View File

@@ -1,5 +1,6 @@
using System.Diagnostics.CodeAnalysis;
using System.Numerics;
using Content.Shared._White.Containers;
using Content.Shared._White.Events;
using Content.Shared._White.WeaponModules;
using Content.Shared.ActionBlocker;
@@ -230,7 +231,12 @@ public abstract partial class SharedGunSystem : EntitySystem
private void AttemptShoot(EntityUid user, EntityUid gunUid, GunComponent gun)
{
if (gun.FireRateModified <= 0f ||
!_actionBlockerSystem.CanAttack(user))
!_actionBlockerSystem.CanAttack(user) || TryComp(gunUid, out UseDelayComponent? useDelay) &&
_useDelay.IsDelayed((gunUid, useDelay))) // WD EDIT
return;
if (Containers.TryGetOuterContainer(user, Transform(user), out var container) &&
HasComp<ShootBlockerContainerComponent>(container.Owner)) // WD
return;
var toCoordinates = gun.ShootCoordinates;

View File

@@ -1,6 +1,7 @@
using Content.Shared.Coordinates;
using Content.Shared.Humanoid;
using Content.Shared.Interaction.Events;
using Content.Shared.Polymorph.Components;
using Content.Shared.Stealth.Components;
using JetBrains.Annotations;
using Robust.Shared.Timing;
@@ -54,6 +55,9 @@ public sealed class WhistleSystem : EntitySystem
if (TryComp(iterator, out stealth) && stealth.Enabled)
continue;
if (HasComp<ChameleonDisguisedComponent>(iterator)) // WD
continue;
//We don't want to ping user of whistle
if (iterator.Owner == owner)
continue;

View File

@@ -6,5 +6,5 @@ namespace Content.Shared._White.BuffedFlashGrenade;
public sealed partial class FlashSoundSuppressionComponent : Component
{
[DataField, ViewVariables(VVAccess.ReadWrite)]
public float MaxRange = 3f;
public float MaxRange = 2f;
}

View File

@@ -0,0 +1,6 @@
namespace Content.Shared._White.Containers;
[RegisterComponent]
public sealed partial class ShootBlockerContainerComponent : Component
{
}

View File

@@ -11,10 +11,10 @@ public sealed class ConcealableSystem : EntitySystem
base.Initialize();
SubscribeLocalEvent<ConcealableComponent, ExamineAttemptEvent>(OnExamine);
SubscribeLocalEvent<ConcealableComponent, InteractionAttemptEvent>(OnInteract);
SubscribeLocalEvent<ConcealableComponent, GettingInteractedWithAttemptEvent>(OnInteract);
}
private void OnInteract(Entity<ConcealableComponent> ent, ref InteractionAttemptEvent args)
private void OnInteract(Entity<ConcealableComponent> ent, ref GettingInteractedWithAttemptEvent args)
{
if (ent.Comp is {Concealed: true, ExaminableWhileConcealed: false})
args.Cancel();

View File

@@ -0,0 +1,8 @@
namespace Content.Shared._White.WeaponModules;
[RegisterComponent]
public sealed partial class ShutterModuleComponent : BaseModuleComponent
{
[ViewVariables(VVAccess.ReadWrite), DataField]
public string Tag;
}

View File

@@ -21,7 +21,8 @@ public enum ModuleVisualState : byte
{
BarrelModule,
HandGuardModule,
AimModule
AimModule,
ShutterModule
}
[Serializable, NetSerializable]

View File

@@ -6681,3 +6681,107 @@
id: 416
time: '2024-07-24T19:40:38.0000000+00:00'
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/491
- author: Aviu
changes:
- message: "\u0414\u043E\u0431\u0430\u0432\u0434\u0435\u043D\u0430 \u043D\u0435\u0431\
\u043E\u043B\u044C\u0448\u0430\u044F \u0437\u0430\u0434\u0435\u0440\u0436\u043A\
\u0430 \u043D\u0430 \u0433\u043E\u043B\u043E\u043F\u0440\u043E\u0435\u043A\u0442\
\u043E\u0440\u044B."
type: Add
- message: "\u041F\u0440\u0438 \u0442\u0440\u0430\u043D\u0441\u0444\u043E\u0440\u043C\
\u0430\u0446\u0438\u0438 \u0433\u0435\u043D\u043E\u043A\u0440\u0430\u0434\u0430\
\ \u0432 \u0444\u0435\u043B\u0438\u043D\u0438\u0434\u0430 \u0441\u0447\u0435\
\u0442\u0447\u0438\u043A \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043A\
\u043E\u043C\u043A\u0430 \u0448\u0435\u0440\u0441\u0442\u0438 \u0442\u0435\u043F\
\u0435\u0440\u044C 0, \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435\u043B\
\u044C\u0437\u044F \u043B\u0435\u0442\u0430\u0442\u044C \u043F\u043E \u043A\u043E\
\u0441\u043C\u043E\u0441\u0443 \u043F\u0440\u0435\u0432\u0440\u0430\u0449\u0430\
\u044F\u0441\u044C \u0432 \u0444\u0435\u043B\u0438\u043D\u0438\u0434\u0430."
type: Add
- message: "\u0414\u0440\u0430\u043A\u043E\u043D \u0431\u043E\u043B\u044C\u0448\u0435\
\ \u043D\u0435 \u0434\u0435\u0441\u043F\u0430\u0432\u043D\u0438\u0442\u0441\u044F\
."
type: Remove
- message: "\u0423\u0431\u0440\u0430\u043D\u0430 \u0446\u0435\u043B\u044C \u043D\
\u0430 \u0441\u043A\u0430\u0444\u0430\u043D\u0434\u0440 \u0420\u0414."
type: Remove
- message: "\u0418\u043C\u043F\u043B\u0430\u043D\u0442\u044B \u0432\u043A\u0430\u043B\
\u044B\u0430\u044E\u0442\u0441\u044F \u0447\u0443\u0442\u044C \u0441\u043B\u043E\
\u0436\u043D\u0435\u0435 (\u0441\u0442\u0430\u043B\u043E \u043B\u0435\u0433\u0447\
\u0435 \u043E\u0442\u0431\u0435\u0436\u0430\u0442\u044C \u0438 \u043E\u0442\u043C\
\u0435\u043D\u0438\u0442\u044C \u0432\u043A\u0430\u043B\u0432\u044B\u0432\u0430\
\u043D\u0438\u0435)."
type: Tweak
- message: "\u0423\u043C\u0435\u043D\u044C\u0448\u0435\u043D\u043E \u043A\u043E\u043B\
\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0438\u0441\u043F\u043E\u043B\u044C\
\u0437\u043E\u0432\u0430\u043D\u0438\u0439 \u043F\u0440\u043E\u0435\u043A\u0442\
\u043E\u0440\u043E\u0432 \u0434\u043E 6."
type: Tweak
- message: "\u0411\u043E\u043B\u044C\u0448\u0435 \u043D\u0435\u043B\u044C\u0437\u044F\
\ \u0432\u0437\u0430\u0438\u043C\u043E\u0434\u0435\u0439\u0441\u0442\u0432\u043E\
\u0432\u0430\u0442\u044C \u0441 \u0441\u043E\u043A\u0440\u044B\u0442\u044B\u043C\
\u0438 \u0440\u0443\u043D\u0430\u043C\u0438 \u043A\u0440\u043E\u043C\u0435 \u043C\
\u043E\u0433\u0443\u0449\u0435\u0441\u0442\u0432\u0430."
type: Fix
- message: "\u0420\u0435\u0436\u0438\u043C \u043C\u0430\u0433\u0430 \u0431\u043E\
\u043B\u044C\u0448\u0435 \u043D\u0435 \u0441\u0442\u0430\u0440\u0442\u0443\u0435\
\u0442 \u043F\u0440\u0438 \u043B\u044E\u0431\u043E\u043C \u043E\u043D\u043B\u0430\
\u0439\u043D\u0435."
type: Fix
- message: "\u0413\u043E\u043B\u043E\u0431\u0430\u0440\u044C\u0435\u0440\u044B \u0431\
\u043E\u043B\u044C\u0448\u0435 \u043D\u0435\u043B\u044C\u0437\u044F \u0441\u0442\
\u0430\u043A\u0430\u0442\u044C \u0434\u0440\u0443\u0433 \u043D\u0430 \u0434\u0440\
\u0443\u0433\u0435."
type: Fix
- message: "\u041D\u0430 \u043E\u0444\u0438\u0441\u043D\u043E\u043C \u043A\u0440\
\u0435\u0441\u043B\u0435 \u0442\u0435\u043F\u0435\u0440\u044C \u043C\u043E\u0436\
\u043D\u043E \u043A\u0440\u0443\u0442\u0438\u0442\u044C\u0441\u044F."
type: Fix
- message: "\u0424\u0438\u043A\u0441 \u0446\u0435\u043B\u0438 \u043D\u0430 \u0443\
\u0433\u043E\u043D \u0448\u0430\u0442\u0442\u043B\u0430."
type: Fix
- message: "\u0411\u043E\u043B\u044C\u0448\u0435 \u043D\u0435\u043B\u044C\u0437\u044F\
\ \u0437\u0430\u0441\u0442\u0440\u044F\u0442\u044C \u0432 \u043F\u0435\u0440\
\u0435\u043D\u043E\u0441\u043A\u0435 \u0432 \u044F\u0449\u0438\u043A\u0435."
type: Fix
- message: "\u0411\u043E\u043B\u044C\u0448\u0435 \u043D\u0435\u043B\u044C\u0437\u044F\
\ \u0441\u0442\u0440\u0435\u043B\u044F\u0442\u044C \u0438\u0437 \u043C\u0435\
\u0448\u043A\u0430 \u0434\u043B\u044F \u0442\u0440\u0443\u043F\u043E\u0432."
type: Fix
- message: "\u0421\u0432\u0438\u0441\u0442\u043E\u043A \u0431\u043E\u043B\u044C\u0448\
\u0435 \u043D\u0435 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442\
\ \u0445\u0430\u043C\u0435\u043B\u0435\u043E\u043D \u043C\u0430\u0441\u043A\u0438\
\u0440\u043E\u0432\u043A\u0443."
type: Fix
id: 417
time: '2024-07-25T13:32:56.0000000+00:00'
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/495
- author: Spatison
changes:
- message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0430 \u0442\u0440\u0430\
\u0432\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0430\u044F \u0433\u0440\
\u0430\u043D\u0430\u0442\u0430"
type: Add
- message: "\u0420\u0430\u0437\u043C\u0435\u0440 \u0421\u0438\u043D\u0430\u043D\u043E\
\ 1x2 -> 3x2"
type: Tweak
- message: "\u0412\u0440\u0435\u043C\u044F \u0432\u0437\u0440\u044B\u0432\u0430\
\ \u0433\u0440\u0430\u043D\u0430\u0442 \u0421\u0438\u043D\u0430\u043D\u043E\
\ 0.3 -> 1"
type: Tweak
- message: "\u0417\u0430\u0449\u0438\u0442\u044B \u043E\u0442 \u0432\u0441\u043F\
\u044B\u0448\u0435\u043A \u0447\u0443\u0442\u044C \u0443\u0432\u0435\u043B\u0438\
\u0447\u0435\u043D\u0430"
type: Tweak
id: 418
time: '2024-07-25T13:33:12.0000000+00:00'
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/494
- author: Spatison
changes:
- message: "\u0422\u0435\u043F\u0435\u0440\u044C \u0441\u043D\u0430\u0440\u044F\u0434\
\u044B \u0434\u043B\u044F \u0421\u0438\u043D\u0430\u043D\u043E \u043C\u043E\u0436\
\u043D\u043E \u043F\u0435\u0447\u0430\u0442\u0430\u0442\u044C"
type: Add
id: 419
time: '2024-07-26T13:53:25.0000000+00:00'
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/499

View File

@@ -39,4 +39,4 @@ latejoin-arrivals-direction = A shuttle transferring you to your station will ar
latejoin-arrivals-direction-time = A shuttle transferring you to your station will arrive in {$time}.
preset-not-enough-ready-players = Can't start {$presetName}. Requires {$minimumPlayers} players but we have {$readyPlayersCount}.
preset-no-one-ready = Can't start {$presetName}. No players are ready.
preset-no-one-ready = Can't start. No players are ready.

View File

@@ -0,0 +1,2 @@
ent-ShinanoShutterModule = модифицированный затвор Синано
.desc = Нелегальная модификация для TS430 Shinano, произведенная одним из подрядчиков Синдиката. Позволяет использовать широкий спектр гранатных боеприпасов, что стоят на вооружении Синдиката.

View File

@@ -1,8 +1,10 @@
ent-BaseShinanoGrenadeAmmoProvider = { ent-BaseAmmoProvider }
.desc = { ent-BaseAmmoProvider.desc }
ent-BoxShinanoGrenadeFlash = коробка гранат (светошумовые)
ent-BoxShinanoGrenadeFlash = коробка светошумовых гранат SHN
.desc = Заставь их плакать.
ent-BoxShinanoGrenadeSmoke = коробка гранат (слезоточивые)
ent-BoxShinanoGrenadeSmoke = коробка слезоточивых гранат SHN
.desc = Заставь их плакать.
ent-BoxShinanoGrenadeBeanbag = коробка гранат (травматические)
ent-BoxShinanoGrenadeStinger = коробка травматических гранат SHN
.desc = Это точно никого не убьет?
ent-BoxShinanoGrenadeBeanbag = коробка травматических пуль SHN
.desc = Это точно никого не убьет?

View File

@@ -1,8 +1,10 @@
ent-BaseShinanoGrenade = Граната
ent-BaseShinanoGrenade = граната SHN
.desc = { ent-BaseCartridge.desc }
ent-ShinanoGrenadeFlash = Светошумовая граната
ent-ShinanoGrenadeFlash = светошумовая граната SHN
.desc = { ent-BaseShinanoGrenade.desc }
ent-ShinanoGrenadeSmoke = Слезоточивая граната
ent-ShinanoGrenadeSmoke = слезоточивая граната SHN
.desc = { ent-BaseShinanoGrenade.desc }
ent-ShinanoGrenadeBeanbag = Травматическая граната
ent-ShinanoGrenadeStinger = травматическая граната SHN
.desc = { ent-BaseShinanoGrenade.desc }
ent-ShinanoGrenadeBeanbag = травматическая пуля SHN
.desc = { ent-BaseShinanoGrenade.desc }

View File

@@ -22,6 +22,7 @@
- id: WeaponLauncherShinano
- id: BoxShinanoGrenadeFlash
- id: BoxShinanoGrenadeSmoke
- id: BoxShinanoGrenadeStinger
- id: BoxShinanoGrenadeBeanbag
- type: entity
@@ -46,6 +47,7 @@
- id: WeaponLauncherShinano
- id: BoxShinanoGrenadeFlash
- id: BoxShinanoGrenadeSmoke
- id: BoxShinanoGrenadeStinger
- id: BoxShinanoGrenadeBeanbag
- type: entity

View File

@@ -0,0 +1,356 @@
- type: decal
id: TrimDarkBox
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: dark_box
- type: decal
id: TrimDarkCornerNe
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: dark_corner_ne
- type: decal
id: TrimDarkCornerSe
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: dark_corner_se
- type: decal
id: TrimDarkCornerNw
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: dark_corner_nw
- type: decal
id: TrimDarkCornerSw
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: dark_corner_sw
- type: decal
id: TrimDarkInnerNe
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: dark_inner_ne
- type: decal
id: TrimDarkInnerSe
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: dark_inner_se
- type: decal
id: TrimDarkInnerNw
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: dark_inner_nw
- type: decal
id: TrimDarkInnerSw
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: dark_inner_sw
- type: decal
id: TrimDarkEndN
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: dark_end_n
- type: decal
id: TrimDarkEndE
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: dark_end_e
- type: decal
id: TrimDarkEndS
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: dark_end_s
- type: decal
id: TrimDarkEndW
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: dark_end_w
- type: decal
id: TrimDarkLineN
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: dark_line_n
- type: decal
id: TrimDarkLineE
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: dark_line_e
- type: decal
id: TrimDarkLineS
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: dark_line_s
- type: decal
id: TrimDarkLineW
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: dark_line_w
- type: decal
id: TrimSteelBox
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: steel_box
- type: decal
id: TrimSteelCornerNe
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: steel_corner_ne
- type: decal
id: TrimSteelCornerSe
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: steel_corner_se
- type: decal
id: TrimSteelCornerNw
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: steel_corner_nw
- type: decal
id: TrimSteelCornerSw
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: steel_corner_sw
- type: decal
id: TrimSteelInnerNe
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: steel_inner_ne
- type: decal
id: TrimSteelInnerSe
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: steel_inner_se
- type: decal
id: TrimSteelInnerNw
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: steel_inner_nw
- type: decal
id: TrimSteelInnerSw
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: steel_inner_sw
- type: decal
id: TrimSteelEndN
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: steel_end_n
- type: decal
id: TrimSteelEndE
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: steel_end_e
- type: decal
id: TrimSteelEndS
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: steel_end_s
- type: decal
id: TrimSteelEndW
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: steel_end_w
- type: decal
id: TrimSteelLineN
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: steel_line_n
- type: decal
id: TrimSteelLineE
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: steel_line_e
- type: decal
id: TrimSteelLineS
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: steel_line_s
- type: decal
id: TrimSteelLineW
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: steel_line_w
- type: decal
id: TrimWhiteBox
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: white_box
- type: decal
id: TrimWhiteCornerNe
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: white_corner_ne
- type: decal
id: TrimWhiteCornerSe
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: white_corner_se
- type: decal
id: TrimWhiteCornerNw
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: white_corner_nw
- type: decal
id: TrimWhiteCornerSw
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: white_corner_sw
- type: decal
id: TrimWhiteInnerNe
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: white_inner_ne
- type: decal
id: TrimWhiteInnerSe
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: white_inner_se
- type: decal
id: TrimWhiteInnerNw
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: white_inner_nw
- type: decal
id: TrimWhiteInnerSw
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: white_inner_sw
- type: decal
id: TrimWhiteEndN
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: white_end_n
- type: decal
id: TrimWhiteEndE
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: white_end_e
- type: decal
id: TrimWhiteEndS
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: white_end_s
- type: decal
id: TrimWhiteEndW
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: white_end_w
- type: decal
id: TrimWhiteLineN
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: white_line_n
- type: decal
id: TrimWhiteLineE
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: white_line_e
- type: decal
id: TrimWhiteLineS
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: white_line_s
- type: decal
id: TrimWhiteLineW
tags: ["station", "markings"]
sprite:
sprite: Decals/trim.rsi
state: white_line_w

View File

@@ -0,0 +1,255 @@
- type: decal
id: TrimWarnBox
tags: ["station", "markings"]
sprite:
sprite: Decals/trim_markings.rsi
state: warn_box
- type: decal
id: TrimWarnBoxGreyscale
tags: ["station", "markings"]
defaultCustomColor: true
sprite:
sprite: Decals/trim_markings.rsi
state: warn_box_greyscale
- type: decal
id: TrimWarnCornerGreyscaleNE
tags: ["station", "markings"]
defaultCustomColor: true
sprite:
sprite: Decals/trim_markings.rsi
state: warn_corner_greyscale_ne
- type: decal
id: TrimWarnCornerGreyscaleNW
tags: ["station", "markings"]
defaultCustomColor: true
sprite:
sprite: Decals/trim_markings.rsi
state: warn_corner_greyscale_nw
- type: decal
id: TrimWarnCornerGreyscaleSE
tags: ["station", "markings"]
defaultCustomColor: true
sprite:
sprite: Decals/trim_markings.rsi
state: warn_corner_greyscale_se
- type: decal
id: TrimWarnCornerGreyscaleSW
tags: ["station", "markings"]
defaultCustomColor: true
sprite:
sprite: Decals/trim_markings.rsi
state: warn_corner_greyscale_sw
- type: decal
id: TrimWarnCornerNE
tags: ["station", "markings"]
sprite:
sprite: Decals/trim_markings.rsi
state: warn_corner_ne
- type: decal
id: TrimWarnCornerNW
tags: ["station", "markings"]
sprite:
sprite: Decals/trim_markings.rsi
state: warn_corner_nw
- type: decal
id: TrimWarnCornerSE
tags: ["station", "markings"]
sprite:
sprite: Decals/trim_markings.rsi
state: warn_corner_se
- type: decal
id: TrimWarnCornerSW
tags: ["station", "markings"]
sprite:
sprite: Decals/trim_markings.rsi
state: warn_corner_sw
- type: decal
id: TrimWarnCornerSmallGreyscaleNE
tags: ["station", "markings"]
defaultCustomColor: true
sprite:
sprite: Decals/trim_markings.rsi
state: warn_corner_small_greyscale_ne
- type: decal
id: TrimWarnCornerSmallGreyscaleNW
tags: ["station", "markings"]
defaultCustomColor: true
sprite:
sprite: Decals/trim_markings.rsi
state: warn_corner_small_greyscale_nw
- type: decal
id: TrimWarnCornerSmallGreyscaleSE
tags: ["station", "markings"]
defaultCustomColor: true
sprite:
sprite: Decals/trim_markings.rsi
state: warn_corner_small_greyscale_se
- type: decal
id: TrimWarnCornerSmallGreyscaleSW
tags: ["station", "markings"]
defaultCustomColor: true
sprite:
sprite: Decals/trim_markings.rsi
state: warn_corner_small_greyscale_sw
- type: decal
id: TrimWarnCornerSmallNE
tags: ["station", "markings"]
sprite:
sprite: Decals/trim_markings.rsi
state: warn_corner_small_ne
- type: decal
id: TrimWarnCornerSmallNW
tags: ["station", "markings"]
sprite:
sprite: Decals/trim_markings.rsi
state: warn_corner_small_nw
- type: decal
id: TrimWarnCornerSmallSE
tags: ["station", "markings"]
sprite:
sprite: Decals/trim_markings.rsi
state: warn_corner_small_se
- type: decal
id: TrimWarnCornerSmallSW
tags: ["station", "markings"]
sprite:
sprite: Decals/trim_markings.rsi
state: warn_corner_small_sw
- type: decal
id: TrimWarnEndE
tags: ["station", "markings"]
sprite:
sprite: Decals/trim_markings.rsi
state: warn_end_e
- type: decal
id: TrimWarnEndN
tags: ["station", "markings"]
sprite:
sprite: Decals/trim_markings.rsi
state: warn_end_n
- type: decal
id: TrimWarnEndS
tags: ["station", "markings"]
sprite:
sprite: Decals/trim_markings.rsi
state: warn_end_s
- type: decal
id: TrimWarnEndW
tags: ["station", "markings"]
sprite:
sprite: Decals/trim_markings.rsi
state: warn_end_w
- type: decal
id: TrimWarnEndGreyscaleE
tags: ["station", "markings"]
defaultCustomColor: true
sprite:
sprite: Decals/trim_markings.rsi
state: warn_end_greyscale_e
- type: decal
id: TrimWarnEndGreyscaleN
tags: ["station", "markings"]
defaultCustomColor: true
sprite:
sprite: Decals/trim_markings.rsi
state: warn_end_greyscale_n
- type: decal
id: TrimWarnEndGreyscaleS
tags: ["station", "markings"]
defaultCustomColor: true
sprite:
sprite: Decals/trim_markings.rsi
state: warn_end_greyscale_s
- type: decal
id: TrimWarnEndGreyscaleW
tags: ["station", "markings"]
defaultCustomColor: true
sprite:
sprite: Decals/trim_markings.rsi
state: warn_end_greyscale_w
- type: decal
id: TrimWarnLineE
tags: ["station", "markings"]
sprite:
sprite: Decals/trim_markings.rsi
state: warn_line_e
- type: decal
id: TrimWarnLineW
tags: ["station", "markings"]
sprite:
sprite: Decals/trim_markings.rsi
state: warn_line_n
- type: decal
id: TrimWarnLineN
tags: ["station", "markings"]
sprite:
sprite: Decals/trim_markings.rsi
state: warn_line_s
- type: decal
id: TrimWarnLineS
tags: ["station", "markings"]
sprite:
sprite: Decals/trim_markings.rsi
state: warn_line_w
- type: decal
id: TrimWarnLineGreyscaleE
tags: ["station", "markings"]
defaultCustomColor: true
sprite:
sprite: Decals/trim_markings.rsi
state: warn_line_greyscale_e
- type: decal
id: TrimWarnLineGreyscaleN
tags: ["station", "markings"]
defaultCustomColor: true
sprite:
sprite: Decals/trim_markings.rsi
state: warn_line_greyscale_n
- type: decal
id: TrimWarnLineGreyscaleS
tags: ["station", "markings"]
defaultCustomColor: true
sprite:
sprite: Decals/trim_markings.rsi
state: warn_line_greyscale_s
- type: decal
id: TrimWarnLineGreyscaleW
tags: ["station", "markings"]
defaultCustomColor: true
sprite:
sprite: Decals/trim_markings.rsi
state: warn_line_greyscale_w

View File

@@ -0,0 +1,237 @@
- type: decal
id: WindowFramekBox
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: frame_box
- type: decal
id: WindowFrameCornerNe
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: frame_corner_ne
- type: decal
id: WindowFrameCornerSe
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: frame_corner_se
- type: decal
id: WindowFrameCornerNw
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: frame_corner_nw
- type: decal
id: WindowFrameCornerSw
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: frame_corner_sw
- type: decal
id: WindowFrameInnerNe
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: frame_inner_ne
- type: decal
id: WindowFrameInnerSe
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: frame_inner_se
- type: decal
id: WindowFrameInnerNw
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: frame_inner_nw
- type: decal
id: WindowFrameInnerSw
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: frame_inner_sw
- type: decal
id: WindowFrameEndN
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: frame_end_n
- type: decal
id: WindowFrameEndE
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: frame_end_e
- type: decal
id: WindowFrameEndS
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: frame_end_s
- type: decal
id: WindowFrameEndW
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: frame_end_w
- type: decal
id: WindowFrameLineN
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: frame_line_n
- type: decal
id: WindowFrameLineE
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: frame_line_e
- type: decal
id: WindowFrameLineS
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: frame_line_s
- type: decal
id: WindowFrameLineW
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: frame_line_w
- type: decal
id: WindowFrameGlassBox
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: gframe_box
- type: decal
id: WindowFrameGlassCornerNe
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: gframe_corner_ne
- type: decal
id: WindowFrameGlassCornerSe
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: gframe_corner_se
- type: decal
id: WindowFrameGlassCornerNw
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: gframe_corner_nw
- type: decal
id: WindowFrameGlassCornerSw
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: gframe_corner_sw
- type: decal
id: WindowFrameGlassInnerNe
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: gframe_inner_ne
- type: decal
id: WindowFrameGlassInnerSe
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: gframe_inner_se
- type: decal
id: WindowFrameGlassInnerNw
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: gframe_inner_nw
- type: decal
id: WindowFrameGlassInnerSw
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: gframe_inner_sw
- type: decal
id: WindowFrameGlassEndN
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: gframe_end_n
- type: decal
id: WindowFrameGlassEndE
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: gframe_end_e
- type: decal
id: WindowFrameGlassEndS
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: gframe_end_s
- type: decal
id: WindowFrameGlassEndW
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: gframe_end_w
- type: decal
id: WindowFrameGlassLineN
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: gframe_line_n
- type: decal
id: WindowFrameGlassLineE
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: gframe_line_e
- type: decal
id: WindowFrameGlassLineS
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: gframe_line_s
- type: decal
id: WindowFrameGlassLineW
tags: ["station", "markings"]
sprite:
sprite: Decals/window_frame.rsi
state: gframe_line_w

View File

@@ -8,6 +8,7 @@
storedRotation: -90
- type: HolosignProjector
- type: UseDelay
delay: 0.5
- type: ContainerContainer
containers:
cell_slot: !type:ContainerSlot

View File

@@ -402,9 +402,9 @@
id: FloorTileItemFreezer
components:
- type: Sprite
state: showroom
state: freezer
- type: Item
heldPrefix: showroom
heldPrefix: freezer
- type: FloorTile
outputs:
- Plating
@@ -1136,4 +1136,234 @@
stackType: FloorTileWoodLarge
- type: Construction
graph: TileWoodLarge
node: woodtilelarge
node: woodtilelarge
- type: entity
name: steel yellow tile
parent: FloorTileItemSteel
id: FloorTileItemSteelYellow
components:
- type: Sprite
state: steel-yellow
- type: FloorTile
outputs:
- Plating
- FloorSteelYellow
- type: entity
name: steel red tile
parent: FloorTileItemSteel
id: FloorTileItemSteelRed
components:
- type: Sprite
state: steel-red
- type: FloorTile
outputs:
- Plating
- FloorSteelRed
- type: entity
name: steel green tile
parent: FloorTileItemSteel
id: FloorTileItemSteelGreen
components:
- type: Sprite
state: steel-green
- type: FloorTile
outputs:
- Plating
- FloorSteelGreen
- type: entity
name: steel blue tile
parent: FloorTileItemSteel
id: FloorTileItemSteelBlue
components:
- type: Sprite
state: steel-blue
- type: FloorTile
outputs:
- Plating
- FloorSteelBlue
- type: entity
name: plastic yellow tile
parent: FloorTileItemSteel
id: FloorTileItemPlasticYellow
components:
- type: Sprite
state: plastic-yellow
- type: FloorTile
outputs:
- Plating
- FloorPlasticYellow
- type: entity
name: plastic red tile
parent: FloorTileItemSteel
id: FloorTileItemPlasticRed
components:
- type: Sprite
state: plastic-red
- type: FloorTile
outputs:
- Plating
- FloorPlasticRed
- type: entity
name: plastic green tile
parent: FloorTileItemSteel
id: FloorTileItemPlasticGreen
components:
- type: Sprite
state: plastic-green
- type: FloorTile
outputs:
- Plating
- FloorPlasticGreen
- type: entity
name: plastic blue tile
parent: FloorTileItemSteel
id: FloorTileItemPlasticBlue
components:
- type: Sprite
state: plastic-blue
- type: FloorTile
outputs:
- Plating
- FloorPlasticBlue
- type: entity
name: plastic dark tile
parent: FloorTileItemSteel
id: FloorTileItemPlasticDark
components:
- type: Sprite
state: plastic-dark
- type: FloorTile
outputs:
- Plating
- FloorDarkPlastic
- type: entity
name: plastic grey tile
parent: FloorTileItemSteel
id: FloorTileItemPlasticGrey
components:
- type: Sprite
state: plastic-grey
- type: FloorTile
outputs:
- Plating
- FloorPlastic
- type: entity
name: plastic white tile
parent: FloorTileItemSteel
id: FloorTileItemPlasticWhite
components:
- type: Sprite
state: plastic-white
- type: FloorTile
outputs:
- Plating
- FloorWhitePlastic
- type: entity
name: shielding floor
parent: FloorTileItemSteel
id: FloorTileItemShielding
components:
- type: Sprite
state: shielding
- type: FloorTile
outputs:
- Plating
- FloorShielding
- type: entity
name: shuttle syndie floor
parent: FloorTileItemSteel
id: FloorTileItemShuttleSyndie
components:
- type: Sprite
state: shuttlesyndie
- type: FloorTile
outputs:
- Plating
- FloorShuttleSyndie
- type: entity
name: sterile floor
parent: FloorTileItemSteel
id: FloorTileItemSterile
components:
- type: Sprite
state: sterile
- type: FloorTile
outputs:
- Plating
- FloorSterile
- type: entity
name: reinforced glass frame floor
parent: FloorTileItemSteel
id: FloorTileItemReinforcedGlassFrame
components:
- type: Sprite
state: rglass-frame
- type: FloorTile
outputs:
- Plating
- FloorReinforcedGlassFrame
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 30
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger
damage: 5
behaviors:
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
params:
volume: -5
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: entity
name: glass frame floor
parent: FloorTileItemSteel
id: FloorTileItemGlassFrame
components:
- type: Sprite
state: glass-frame
- type: FloorTile
outputs:
- Plating
- FloorGlassFrame
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 30
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger
damage: 5
behaviors:
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
params:
volume: -5
- !type:DoActsBehavior
acts: [ "Destruction" ]

View File

@@ -86,6 +86,7 @@
paper_label: !type:ContainerSlot
- type: StaticPrice
price: 50
- type: ShootBlockerContainer
- type: entity
id: BodyBagFolded

View File

@@ -451,9 +451,9 @@
description: Do not apply fire to this. Rumour says it burns easily.
components:
- type: Sprite
sprite: White/Structures/Furniture/Tables/wood.rsi
sprite: Structures/Furniture/Tables/wood.rsi
- type: Icon
sprite: White/Structures/Furniture/Tables/wood.rsi
sprite: Structures/Furniture/Tables/wood.rsi
- type: Damageable
damageModifierSet: Wood
- type: Destructible

View File

@@ -5,7 +5,7 @@
description: Mostly filled with books.
components:
- type: Sprite
sprite: White/Structures/Furniture/bookshelf.rsi
sprite: Structures/Furniture/bookshelf.rsi
snapCardinals: true
layers:
- state: base

View File

@@ -0,0 +1,444 @@
- type: entity
name: cabinet
id: CabinetBase
parent: BaseStructure
abstract: true
description: Good for storing things. Has convenient surface on which you can put something.
placement:
mode: SnapgridCenter
components:
- type: InteractionOutline
- type: PlaceableSurface
- type: Climbable
- type: Clickable
- type: Storage
maxItemSize: Huge
grid:
- 0,0,8,5
- type: Physics
bodyType: Dynamic
- type: MeleeSound
soundGroups:
Brute:
path:
"/Audio/Weapons/smash.ogg"
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.40,-0.40,0.40,0.40"
density: 100
mask:
- TableMask
layer:
- TableLayer
- type: Sprite
sprite: Structures/Furniture/chairs.rsi
noRot: true
- type: Pullable
- type: Damageable
damageContainer: StructuralInorganic
damageModifierSet: Metallic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- type: StaticPrice
price: 10
# Kitchen Furniture
- type: entity
name: kitchen countertop
id: CabinetKitchenBase
abstract: true
parent: CabinetBase
description: Good for storing kitchen utensils. Has convenient surface on which you can put something.
components:
- type: Physics
bodyType: Static
- type: Transform
anchored: true
- type: Storage
maxItemSize: Huge
grid:
- 0,0,8,5
- type: Clickable
- type: UserInterface
interfaces:
- key: enum.StorageUiKey.Key
type: StorageBoundUserInterface
- type: ContainerContainer
containers:
storagebase: !type:Container
ents: [ ]
- type: Rotatable
- type: Sprite
state: wood_kitchen
- type: entity
name: wood kitchen countertop
id: WoodCabinetKitchen
parent: CabinetKitchenBase
suffix: Base
components:
- type: Anchorable
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: wood_kitchen
noRot: true
- type: entity
name: wood kitchen countertop
id: WoodCabinetKitchenMiddle
parent: CabinetKitchenBase
suffix: Middle
components:
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: wood_kitchen_mid
noRot: true
- type: entity
name: wood kitchen countertop
id: WoodCabinetKitchenLeft
parent: CabinetKitchenBase
suffix: Left
components:
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: wood_kitchen_left
noRot: true
- type: entity
name: wood kitchen countertop
id: WoodCabinetKitchenRight
parent: CabinetKitchenBase
suffix: Right
components:
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: wood_kitchen_right
noRot: true
- type: entity
name: steel kitchen countertop
id: SteelCabinetKitchen
parent: CabinetKitchenBase
suffix: Base
components:
- type: Anchorable
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: steel_kitchen
noRot: true
- type: entity
name: steel kitchen countertop
id: SteelCabinetKitchenMiddle
parent: CabinetKitchenBase
suffix: Middle
components:
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: steel_kitchen_mid
noRot: true
- type: entity
name: steel kitchen countertop
id: SteelCabinetKitchenLeft
parent: CabinetKitchenBase
suffix: Left
components:
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: steel_kitchen_left
noRot: true
- type: entity
name: steel kitchen countertop
id: SteelCabinetKitchenRight
parent: CabinetKitchenBase
suffix: Right
components:
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: steel_kitchen_right
noRot: true
- type: entity
name: plastic kitchen countertop
id: PlasticCabinetKitchen
parent: CabinetKitchenBase
suffix: Base
components:
- type: Anchorable
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: plastic_kitchen
noRot: true
- type: entity
name: plastic kitchen countertop
id: PlasticCabinetKitchenMiddle
parent: CabinetKitchenBase
suffix: Middle
components:
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: plastic_kitchen_mid
noRot: true
- type: entity
name: plastic kitchen countertop
id: PlasticCabinetKitchenLeft
parent: CabinetKitchenBase
suffix: Left
components:
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: plastic_kitchen_left
noRot: true
- type: entity
name: plastic kitchen countertop
id: PlasticCabinetKitchenRight
parent: CabinetKitchenBase
suffix: Right
components:
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: plastic_kitchen_right
noRot: true
# Furniture corner
- type: entity
name: wood cabinet corner
id: WoodCabinetCorner
parent: CabinetBase
description: Has convenient surface on which you can put something.
suffix: Corner
components:
- type: Physics
bodyType: Static
- type: Transform
anchored: true
- type: Rotatable
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: wood_corner
noRot: true
- type: entity
name: steel cabinet corner
id: SteelCabinetCorner
parent: CabinetBase
description: Has convenient surface on which you can put something.
suffix: Corner
components:
- type: Physics
bodyType: Static
- type: Transform
anchored: true
- type: Rotatable
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: steel_corner
noRot: true
- type: entity
name: plastic cabinet corner
id: PlasticCabinetCorner
parent: CabinetBase
description: Has convenient surface on which you can put something.
suffix: Corner
components:
- type: Physics
bodyType: Static
- type: Transform
anchored: true
- type: Rotatable
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: plastic_corner
noRot: true
# Dresser Furniture
- type: entity
name: dresser
id: CabinetDresserBase
abstract: true
parent: CabinetBase
description: Good for storing things and clothes. Has convenient surface on which you can put something.
components:
- type: Physics
bodyType: Static
- type: Storage
maxItemSize: Huge
grid:
- 0,0,8,5
- type: Clickable
- type: UserInterface
interfaces:
- key: enum.StorageUiKey.Key
type: StorageBoundUserInterface
- type: ContainerContainer
containers:
storagebase: !type:Container
ents: [ ]
- type: Transform
anchored: true
- type: Rotatable
- type: Sprite
state: wood_dresser
- type: entity
name: wood dresser
id: WoodCabinetDresser
parent: CabinetDresserBase
suffix: Base
components:
- type: Anchorable
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: wood_dresser
noRot: true
- type: entity
name: wood dresser
id: WoodCabinetDresserLeft
parent: CabinetDresserBase
suffix: Left
components:
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: wood_dresser_left
noRot: true
- type: entity
name: wood dresser
id: WoodCabinetDresserRight
parent: CabinetDresserBase
suffix: Right
components:
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: wood_dresser_right
noRot: true
- type: entity
name: wood dresser
id: WoodCabinetDresserMiddle
parent: CabinetDresserBase
suffix: Middle
components:
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: wood_dresser_mid
noRot: true
- type: entity
name: steel dresser
id: SteelCabinetDresser
parent: CabinetDresserBase
suffix: Base
components:
- type: Anchorable
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: steel_dresser
noRot: true
- type: entity
name: steel dresser
id: SteelCabinetDresserLeft
parent: CabinetDresserBase
suffix: Left
components:
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: steel_dresser_left
noRot: true
- type: entity
name: steel dresser
id: SteelCabinetDresserRight
parent: CabinetDresserBase
suffix: Right
components:
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: steel_dresser_right
noRot: true
- type: entity
name: steel dresser
id: SteelCabinetDresserMiddle
parent: CabinetDresserBase
suffix: Middle
components:
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: steel_dresser_mid
noRot: true
- type: entity
name: plastic dresser
id: PlasticCabinetDresser
parent: CabinetDresserBase
suffix: Base
components:
- type: Anchorable
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: plastic_dresser
noRot: true
- type: entity
name: plastic dresser
id: PlasticCabinetDresserLeft
parent: CabinetDresserBase
suffix: Left
components:
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: plastic_dresser_left
noRot: true
- type: entity
name: plastic dresser
id: PlasticCabinetDresserRight
parent: CabinetDresserBase
suffix: Right
components:
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: plastic_dresser_right
noRot: true
- type: entity
name: plastic dresser
id: PlasticCabinetDresserMiddle
parent: CabinetDresserBase
suffix: Middle
components:
- type: Sprite
sprite: Structures/Furniture/cabinets.rsi
state: plastic_dresser_mid
noRot: true

View File

@@ -0,0 +1,551 @@
# Base
- type: entity
id: RandomPottedPlantBase
parent: PottedPlantBase
abstract: true
components:
- type: SecretStash
secretPartName: secret-stash-part-plant
maxItemSize: Tiny
- type: Sprite
offset: "0.0,2.3"
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_small_1
map: [ "pot" ]
- state: plant_small_1
map: [ "plant" ]
- state: mask_null
map: [ "overlay" ]
- state: mask_null
map: [ "decor" ]
- type: entity
name: random RANDOM potted plant spawner
id: RandomPottedPlantSpawner
parent: MarkerBase
components:
- type: Sprite
layers:
- state: green
- sprite: Structures/Furniture/random_potted_plants.rsi
state: icon_spawner
- type: RandomSpawner
prototypes:
- RandomPottedTinyPlant
- RandomPottedSmallPlant
- RandomPottedMediumPlant
offset: 0.0
# Tiny
- type: entity
parent: RandomPottedPlantBase
id: RandomPottedTinyPlant
name: Potted Plant
suffix: Tiny Base
components:
- type: Item
size: Small
storedOffset: 0,4
- type: SecretStash
secretPartName: secret-stash-part-plant
maxItemSize: Tiny
- type: InteractionOutline
- type: Sprite
offset: "0.0,2.3"
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_tiny_3
map: [ "pot" ]
- state: plant_tiny_3
map: [ "plant" ]
- state: mask_null
map: [ "overlay" ]
- state: mask_null
map: [ "decor" ]
- type: RandomSprite
available:
- pot:
pot_tiny_1: ""
pot_tiny_2: ""
pot_tiny_3: ""
pot_tiny_4: ""
pot_tiny_5: ""
pot_tiny_6: ""
pot_tiny_7: ""
plant:
plant_tiny_1: ""
plant_tiny_2: ""
plant_tiny_3: ""
plant_tiny_4: ""
plant_tiny_5: ""
plant_tiny_6: ""
plant_tiny_7: ""
plant_tiny_8: ""
plant_tiny_9: ""
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeCircle
radius: 0.15
density: 190
mask:
- Impassable
# Pot variants
- type: entity
parent: RandomPottedTinyPlant
id: RandomPottedTinyPlantPot1
name: Potted Plant
suffix: Tiny Pot 1
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_tiny_1
- state: icon_pot_tiny_1
map: [ "plant" ]
- type: entity
parent: RandomPottedTinyPlant
id: RandomPottedTinyPlantPot2
name: Potted Plant
suffix: Tiny Pot 2
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_tiny_2
- state: icon_pot_tiny_2
map: [ "plant" ]
- type: entity
parent: RandomPottedTinyPlant
id: RandomPottedTinyPlantPot3
name: Potted Plant
suffix: Tiny Pot 3
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_tiny_3
- state: icon_pot_tiny_3
map: [ "plant" ]
- type: entity
parent: RandomPottedTinyPlant
id: RandomPottedTinyPlantPot4
name: Potted Plant
suffix: Tiny Pot 4
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_tiny_4
- state: icon_pot_tiny_4
map: [ "plant" ]
- type: entity
parent: RandomPottedTinyPlant
id: RandomPottedTinyPlantPot5
name: Potted Plant
suffix: Tiny Pot 5
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_tiny_5
- state: icon_pot_tiny_5
map: [ "plant" ]
- type: entity
parent: RandomPottedTinyPlant
id: RandomPottedTinyPlantPot6
name: Potted Plant
suffix: Tiny Pot 6
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_tiny_6
- state: icon_pot_tiny_6
map: [ "plant" ]
- type: entity
parent: RandomPottedTinyPlant
id: RandomPottedTinyPlantPot7
name: Potted Plant
suffix: Tiny Pot 7
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_tiny_7
- state: icon_pot_tiny_7
map: [ "plant" ]
# Small
- type: entity
parent: RandomPottedPlantBase
id: RandomPottedSmallPlant
name: Potted Plant
suffix: Small Base
components:
- type: Item
storedOffset: 0,5
size: Normal
- type: SecretStash
secretPartName: secret-stash-part-plant
maxItemSize: Small
- type: InteractionOutline
- type: Sprite
offset: "0.0,2.3"
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_small_3
map: [ "pot" ]
- state: plant_small_15
map: [ "plant" ]
- state: mask_null
map: [ "overlay" ]
- state: mask_null
map: [ "decor" ]
- type: RandomSprite
available:
- pot:
pot_small_1: ""
pot_small_2: ""
pot_small_3: ""
pot_small_4: ""
pot_small_5: ""
pot_small_6: ""
pot_small_7: ""
pot_small_8: ""
pot_small_9: ""
pot_small_10: ""
plant:
plant_small_1: ""
plant_small_2: ""
plant_small_3: ""
plant_small_4: ""
plant_small_5: ""
plant_small_6: ""
plant_small_7: ""
plant_small_8: ""
plant_small_9: ""
plant_small_10: ""
plant_small_11: ""
plant_small_12: ""
plant_small_13: ""
plant_small_14: ""
plant_small_15: ""
plant_small_16: ""
plant_small_17: ""
plant_small_18: ""
plant_small_19: ""
plant_small_20: ""
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeCircle
radius: 0.2
density: 190
mask:
- Impassable
# Pot variants
- type: entity
parent: RandomPottedSmallPlant
id: RandomPottedSmallPlantPot1
name: Potted Plant
suffix: Small Pot 1
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_small_1
- state: icon_pot_small_1
map: [ "plant" ]
- type: entity
parent: RandomPottedSmallPlant
id: RandomPottedSmallPlantPot2
name: Potted Plant
suffix: Small Pot 2
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_small_2
- state: icon_pot_small_2
map: [ "plant" ]
- type: entity
parent: RandomPottedSmallPlant
id: RandomPottedSmallPlantPot3
name: Potted Plant
suffix: Small Pot 3
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_small_3
- state: icon_pot_small_3
map: [ "plant" ]
- type: entity
parent: RandomPottedSmallPlant
id: RandomPottedSmallPlantPot4
name: Potted Plant
suffix: Small Pot 4
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_small_4
- state: icon_pot_small_4
map: [ "plant" ]
- type: entity
parent: RandomPottedSmallPlant
id: RandomPottedSmallPlantPot5
name: Potted Plant
suffix: Small Pot 5
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_small_5
- state: icon_pot_small_5
map: [ "plant" ]
- state: mask_null
map: [ "overlay" ]
- state: mask_null
map: [ "decor" ]
- type: entity
parent: RandomPottedSmallPlant
id: RandomPottedSmallPlantPot6
name: Potted Plant
suffix: Small Pot 6
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_small_6
- state: icon_pot_small_6
map: [ "plant" ]
- type: entity
parent: RandomPottedSmallPlant
id: RandomPottedSmallPlantPot7
name: Potted Plant
suffix: Small Pot 7
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_small_7
- state: icon_pot_small_7
map: [ "plant" ]
- type: entity
parent: RandomPottedSmallPlant
id: RandomPottedSmallPlantPot8
name: Potted Plant
suffix: Small Pot 8
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_small_8
- state: icon_pot_small_8
map: [ "plant" ]
- type: entity
parent: RandomPottedSmallPlant
id: RandomPottedSmallPlantPot9
name: Potted Plant
suffix: Small Pot 9
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_small_9
- state: icon_pot_small_9
map: [ "plant" ]
- type: entity
parent: RandomPottedSmallPlant
id: RandomPottedSmallPlantPot10
name: Potted Plant
suffix: Small Pot 10
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_small_10
- state: icon_pot_small_10
map: [ "plant" ]
# Medium
- type: entity
parent: RandomPottedPlantBase
id: RandomPottedMediumPlant
name: Potted Plant
suffix: Medium Base
components:
- type: SecretStash
secretPartName: secret-stash-part-plant
maxItemSize: Normal
- type: InteractionOutline
- type: Sprite
offset: "0.0,2.3"
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_medium_2
map: [ "pot" ]
- state: plant_medium_5
map: [ "plant" ]
- state: mask_null
map: [ "overlay" ]
- state: mask_null
map: [ "decor" ]
- type: RandomSprite
available:
- pot:
pot_medium_1: ""
pot_medium_2: ""
pot_medium_3: ""
pot_medium_4: ""
pot_medium_5: ""
pot_medium_6: ""
pot_medium_7: ""
plant:
plant_medium_1: ""
plant_medium_2: ""
plant_medium_3: ""
plant_medium_4: ""
plant_medium_5: ""
plant_medium_6: ""
plant_medium_7: ""
plant_medium_8: ""
plant_medium_9: ""
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeCircle
radius: 0.3
density: 190
mask:
- Impassable
# Pot variants
- type: entity
parent: RandomPottedMediumPlant
id: RandomPottedMediumPlantPot1
name: Potted Plant
suffix: Medium Pot 1
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_medium_1
- state: icon_pot_medium_1
map: [ "plant" ]
- type: entity
parent: RandomPottedMediumPlant
id: RandomPottedMediumPlantPot2
name: Potted Plant
suffix: Medium Pot 2
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_medium_2
- state: icon_pot_medium_2
map: [ "plant" ]
- type: entity
parent: RandomPottedMediumPlant
id: RandomPottedMediumPlantPot3
name: Potted Plant
suffix: Medium Pot 3
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_medium_3
- state: icon_pot_medium_3
map: [ "plant" ]
- type: entity
parent: RandomPottedMediumPlant
id: RandomPottedMediumPlantPot4
name: Potted Plant
suffix: Medium Pot 4
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_medium_4
- state: icon_pot_medium_4
map: [ "plant" ]
- type: entity
parent: RandomPottedMediumPlant
id: RandomPottedMediumPlantPot5
name: Potted Plant
suffix: Medium Pot 5
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_medium_5
- state: icon_pot_medium_5
map: [ "plant" ]
- type: entity
parent: RandomPottedMediumPlant
id: RandomPottedMediumPlantPot6
name: Potted Plant
suffix: Medium Pot 6
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_medium_6
- state: icon_pot_medium_6
map: [ "plant" ]
- type: entity
parent: RandomPottedMediumPlant
id: RandomPottedMediumPlantPot7
name: Potted Plant
suffix: Medium Pot 7
components:
- type: Sprite
sprite: Structures/Furniture/random_potted_plants.rsi
layers:
- state: pot_medium_7
- state: icon_pot_medium_7
map: [ "plant" ]
# Big
# Pot variants
# Huge
# Pot variants

View File

@@ -1,4 +1,4 @@
- type: entity
- type: entity
parent: BaseMachinePowered
id: FaxMachineBase
name: long range fax machine
@@ -21,7 +21,7 @@
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.25,-0.25,0.25,0.25"
bounds: "-0.5,-0.5,0.5,0.5"
density: 25
mask:
- TabletopMachineMask

View File

@@ -201,6 +201,7 @@
- FlameHiderModuleRecipe
- SilencerModuleRecipe
- AcceleratorModuleRecipe
- ShinanoGrenadeBeanbagRecipe
emagDynamicRecipes:
- CartridgePistolRubber
- CartridgeMagnumRubber
@@ -373,6 +374,7 @@
- MagazineGrenadeEmpty
- GrenadeEMP
- GrenadeFlash
- ShinanoGrenadeBeanbagRecipe
- type: BluespaceStorage
- type: entity
@@ -735,6 +737,7 @@
- FlameHiderModuleRecipe
- SilencerModuleRecipe
- AcceleratorModuleRecipe
- ShinanoGrenadeBeanbagRecipe
dynamicRecipes:
- CartridgeLightRifleIncendiary
- CartridgeMagnumIncendiary
@@ -791,6 +794,9 @@
- ShuttleGunDusterCircuitboard
- ClothingHandsGlovesMagnetic
- ClothingHandsGlovesMagneticAdvanced
- ShinanoGrenadeFlashRecipe
- ShinanoGrenadeSmokeRecipe
- ShinanoGrenadeStingerRecipe
- type: EmagLatheRecipes
emagStaticRecipes:
- MagazineLightRifleBox

View File

@@ -495,7 +495,7 @@
- type: AccessReader
access: [["Atmospherics"]]
# button frames
# button frames 1
- type: entity
id: ButtonFrame
@@ -514,7 +514,7 @@
canCollide: false
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame.rsi
sprite: Structures/Wallmounts/switch_frame/f1.rsi
state: grey
- type: Rotatable
- type: Fixtures
@@ -522,49 +522,443 @@
- type: entity
id: ButtonFrameGrey
parent: ButtonFrame
suffix: grey
suffix: 1 grey
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame.rsi
sprite: Structures/Wallmounts/switch_frame/f1.rsi
state: grey
- type: entity
id: ButtonFrameCaution
parent: ButtonFrame
suffix: caution
suffix: 1 caution
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame.rsi
sprite: Structures/Wallmounts/switch_frame/f1.rsi
state: caution
- type: entity
id: ButtonFrameCautionSecurity
parent: ButtonFrame
suffix: caution
suffix: 1 caution
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame.rsi
sprite: Structures/Wallmounts/switch_frame/f1.rsi
state: caution_security
- type: entity
id: ButtonFrameExit
parent: ButtonFrame
suffix: exit
suffix: 1 exit
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame.rsi
state: exit
sprite: Structures/Wallmounts/switch_frame/f1.rsi
layers:
- state: exit
- state: exit_glow
shader: unshaded
- type: entity
id: ButtonFrameJanitor
parent: ButtonFrame
suffix: janitor
suffix: 1 janitor
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame.rsi
sprite: Structures/Wallmounts/switch_frame/f1.rsi
state: janitor
# button frames 2
- type: entity
id: ButtonFrame2
name: button frame
noSpawn: true
description: It's a frame to help distinguish switches visually.
placement:
mode: SnapgridCenter
snap:
- Wallmount
components:
- type: Clickable
- type: WallMount
arc: 360
- type: Physics
canCollide: false
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f2.rsi
state: grey
- type: Rotatable
- type: Fixtures
- type: entity
id: ButtonFrameGrey2
parent: ButtonFrame2
suffix: 2 grey
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f2.rsi
state: grey
- type: entity
id: ButtonFrameCaution2
parent: ButtonFrame2
suffix: 2 caution
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f2.rsi
state: caution
- type: entity
id: ButtonFrameCautionSecurity2
parent: ButtonFrame2
suffix: 2 caution
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f2.rsi
state: caution_security
- type: entity
id: ButtonFrameExit2
parent: ButtonFrame2
suffix: 2 exit
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f2.rsi
layers:
- state: exit
- state: exit_glow
shader: unshaded
- type: entity
id: ButtonFrameJanitor2
parent: ButtonFrame2
suffix: 2 janitor
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f2.rsi
state: janitor
# button frames 3
- type: entity
id: ButtonFrame3
name: button frame
noSpawn: true
description: It's a frame to help distinguish switches visually.
placement:
mode: SnapgridCenter
snap:
- Wallmount
components:
- type: Clickable
- type: WallMount
arc: 360
- type: Physics
canCollide: false
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f3.rsi
state: grey
- type: Rotatable
- type: Fixtures
- type: entity
id: ButtonFrameGrey3
parent: ButtonFrame3
suffix: 3 grey
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f3.rsi
state: grey
- type: entity
id: ButtonFrameCaution3
parent: ButtonFrame3
suffix: 3 caution
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f3.rsi
state: caution
- type: entity
id: ButtonFrameCautionSecurity3
parent: ButtonFrame3
suffix: 3 caution
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f3.rsi
state: caution_security
- type: entity
id: ButtonFrameExit3
parent: ButtonFrame3
suffix: 3 exit
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f3.rsi
layers:
- state: exit
- state: exit_glow
shader: unshaded
- type: entity
id: ButtonFrameJanitor3
parent: ButtonFrame3
suffix: 3 janitor
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f3.rsi
state: janitor
# button frames 4
- type: entity
id: ButtonFrame4
name: button frame
noSpawn: true
description: It's a frame to help distinguish switches visually.
placement:
mode: SnapgridCenter
snap:
- Wallmount
components:
- type: Clickable
- type: WallMount
arc: 360
- type: Physics
canCollide: false
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f4.rsi
state: grey
- type: Rotatable
- type: Fixtures
- type: entity
id: ButtonFrameGrey4
parent: ButtonFrame4
suffix: 4 grey
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f4.rsi
state: grey
- type: entity
id: ButtonFrameCaution4
parent: ButtonFrame4
suffix: 4 caution
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f4.rsi
state: caution
- type: entity
id: ButtonFrameCautionSecurity4
parent: ButtonFrame4
suffix: 4 caution
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f4.rsi
state: caution_security
- type: entity
id: ButtonFrameExit4
parent: ButtonFrame4
suffix: 4 exit
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f4.rsi
layers:
- state: exit
- state: exit_glow
shader: unshaded
- type: entity
id: ButtonFrameJanitor4
parent: ButtonFrame4
suffix: 4 janitor
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f4.rsi
state: janitor
# button frames 5
- type: entity
id: ButtonFrame5
name: button frame
noSpawn: true
description: It's a frame to help distinguish switches visually.
placement:
mode: SnapgridCenter
snap:
- Wallmount
components:
- type: Clickable
- type: WallMount
arc: 360
- type: Physics
canCollide: false
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f5.rsi
state: grey
- type: Rotatable
- type: Fixtures
- type: entity
id: ButtonFrameGrey5
parent: ButtonFrame5
suffix: 5 grey
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f5.rsi
state: grey
- type: entity
id: ButtonFrameCaution5
parent: ButtonFrame5
suffix: 5 caution
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f5.rsi
state: caution
- type: entity
id: ButtonFrameCautionSecurity5
parent: ButtonFrame5
suffix: 5 caution
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f5.rsi
state: caution_security
- type: entity
id: ButtonFrameExit5
parent: ButtonFrame5
suffix: 5 exit
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f5.rsi
layers:
- state: exit
- state: exit_glow
shader: unshaded
- type: entity
id: ButtonFrameJanitor5
parent: ButtonFrame5
suffix: 5 janitor
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f5.rsi
state: janitor
# button frames 6
- type: entity
id: ButtonFrame6
name: button frame
noSpawn: true
description: It's a frame to help distinguish switches visually.
placement:
mode: SnapgridCenter
snap:
- Wallmount
components:
- type: Clickable
- type: WallMount
arc: 360
- type: Physics
canCollide: false
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f6.rsi
state: grey
- type: Rotatable
- type: Fixtures
- type: entity
id: ButtonFrameGrey6
parent: ButtonFrame6
suffix: 6 grey
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f6.rsi
state: grey
- type: entity
id: ButtonFrameCaution6
parent: ButtonFrame6
suffix: 6 caution
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f6.rsi
state: caution
- type: entity
id: ButtonFrameCautionSecurity6
parent: ButtonFrame6
suffix: 6 caution
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f6.rsi
state: caution_security
- type: entity
id: ButtonFrameExit6
parent: ButtonFrame6
suffix: 6 exit
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f6.rsi
layers:
- state: exit
- state: exit_glow
shader: unshaded
- type: entity
id: ButtonFrameJanitor6
parent: ButtonFrame6
suffix: 6 janitor
components:
- type: Sprite
drawdepth: SmallObjects
sprite: Structures/Wallmounts/switch_frame/f6.rsi
state: janitor

View File

@@ -13,7 +13,7 @@
CaptainIDStealObjective: 1
CMOHyposprayStealObjective: 1
#CMOCrewMonitorStealObjective: 1
RDHardsuitStealObjective: 1
#RDHardsuitStealObjective: 1
NukeDiskStealObjective: 1
MagbootsStealObjective: 1
CorgiMeatStealObjective: 1
@@ -137,7 +137,7 @@
weights:
CaptainIDStealObjectiveCh: 1
CMOHyposprayStealObjectiveCh: 1
RDHardsuitStealObjectiveCh: 1
#RDHardsuitStealObjectiveCh: 1
NukeDiskStealObjectiveCh: 1
MagbootsStealObjectiveCh: 1
CorgiMeatStealObjectiveCh: 1

View File

View File

@@ -0,0 +1,32 @@
- type: palette
id: wh
name: wh
colors:
blue: "#1861d5"
red: "#951710"
pink: "#d5188d"
brown: "#a05212"
green: "#0e7f1b"
cyan: "#18a2d5"
yellow: "#d58c18"
- type: palette
id: whi
name: whi
colors:
black: "#1D1D21"
red: "#B02E26"
green: "#5E7C16"
brown: "#835432"
blue: "#3C44AA"
purple: "#8932B8"
cyan: "#169C9C"
"light gray": "#9D9D97"
gray: "#474F52"
pink: "#F38BAA"
lime: "#80C71F"
yellow: "#FED83D"
"light blue": "#3AB3DA"
magenta: "#C74EBD"
orange: "#F9801D"
white: "#F9FFFE"

View File

@@ -120,4 +120,4 @@
- material: WoodPlank
amount: 2
- node: woodtilelarge
entity: FloorTileItemWoodLarge
entity: FloorTileItemWoodLarge

View File

@@ -196,4 +196,4 @@
category: construction-category-tiles
description: "Four pieces of wooden station flooring."
icon: { sprite: Objects/Tiles/tile.rsi, state: wood-large }
objectType: Item
objectType: Item

View File

@@ -65,6 +65,9 @@
- MagazineBoxMagnumRubber
- MagazineBoxLightRifleRubber
- MagazineBoxRifleRubber
- ShinanoGrenadeFlashRecipe
- ShinanoGrenadeSmokeRecipe
- ShinanoGrenadeStingerRecipe
- type: technology
id: UraniumMunitions

View File

@@ -116,6 +116,12 @@
id: FloorSteelOffset
name: tiles-steel-floor-offset
sprite: /Textures/Tiles/steel_offset.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
@@ -242,7 +248,7 @@
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepFloor
itemDrop: FloorTileItemSteel
itemDrop: FloorTileItemPlasticGrey
heatCapacity: 10000
tileRipResistance: 80
@@ -348,6 +354,12 @@
name: tiles-white-floor-offset
sprite: /Textures/Tiles/white_offset.png
baseTurf: Plating
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
@@ -447,7 +459,7 @@
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemWhite
itemDrop: FloorTileItemPlasticWhite
heatCapacity: 10000
tileRipResistance: 80
@@ -532,6 +544,12 @@
name: tiles-dark-floor-offset
sprite: /Textures/Tiles/dark_offset.png
baseTurf: Plating
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
@@ -631,7 +649,7 @@
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepTile
itemDrop: FloorTileItemDark
itemDrop: FloorTileItemPlasticDark
heatCapacity: 10000
tileRipResistance: 50
@@ -744,6 +762,12 @@
name: tiles-blue-tile
sprite: /Textures/Tiles/blue.png
baseTurf: Plating
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
@@ -810,12 +834,216 @@
heatCapacity: 10000
tileRipResistance: 250
- type: tile
id: FloorSteelYellow
name: tiles-steel-yellow-floor
sprite: /Textures/Tiles/steel_yellow.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepFloor
itemDrop: FloorTileItemSteelYellow
heatCapacity: 10000
- type: tile
id: FloorSteelRed
name: tiles-steel-red-floor
sprite: /Textures/Tiles/steel_red.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepFloor
itemDrop: FloorTileItemSteelRed
heatCapacity: 10000
- type: tile
id: FloorSteelGreen
name: tiles-steel-green-floor
sprite: /Textures/Tiles/steel_green.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepFloor
itemDrop: FloorTileItemSteelGreen
heatCapacity: 10000
- type: tile
id: FloorSteelBlue
name: tiles-steel-blue-floor
sprite: /Textures/Tiles/steel_Blue.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepFloor
itemDrop: FloorTileItemSteelBlue
heatCapacity: 10000
- type: tile
id: FloorPlasticYellow
name: tiles-plastic-yellow-floor
sprite: /Textures/Tiles/plastic_yellow.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepFloor
itemDrop: FloorTileItemPlasticYellow
heatCapacity: 10000
- type: tile
id: FloorPlasticRed
name: tiles-plastic-red-floor
sprite: /Textures/Tiles/plastic_red.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepFloor
itemDrop: FloorTileItemPlasticRed
heatCapacity: 10000
- type: tile
id: FloorPlasticGreen
name: tiles-plastic-green-floor
sprite: /Textures/Tiles/plastic_green.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepFloor
itemDrop: FloorTileItemPlasticGreen
heatCapacity: 10000
- type: tile
id: FloorPlasticBlue
name: tiles-plastic-blue-floor
sprite: /Textures/Tiles/plastic_Blue.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepFloor
itemDrop: FloorTileItemPlasticBlue
heatCapacity: 10000
- type: tile
id: FloorShielding
name: tiles-shielding-floor
sprite: /Textures/Tiles/shielding.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepFloor
itemDrop: FloorTileItemShielding
heatCapacity: 10000
- type: tile
id: FloorReinforcedGlassFrame
name: tiles-reinforced-glass-frame-floor
sprite: /Textures/Tiles/rglass_frame.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepFloor
itemDrop: FloorTileItemReinforcedGlassFrame
heatCapacity: 10000
- type: tile
id: FloorGlassFrame
name: tiles-glass-frame-floor
sprite: /Textures/Tiles/glass_frame.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepFloor
itemDrop: FloorTileItemGlassFrame
heatCapacity: 10000
# Departamental
- type: tile
id: FloorFreezer
name: tiles-freezer
sprite: /Textures/Tiles/freezer.png
baseTurf: Plating
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
@@ -824,17 +1052,43 @@
heatCapacity: 10000
tileRipResistance: 100
- type: tile
id: FloorSterile
name: tiles-sterile
sprite: /Textures/Tiles/sterile.png
baseTurf: Plating
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepHull
itemDrop: FloorTileItemSterile
heatCapacity: 10000
- type: tile
id: FloorShowroom
name: tiles-showroom-floor
sprite: /Textures/Tiles/showroom.png
baseTurf: Plating
variants: 4
variants: 12
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
@@ -848,6 +1102,12 @@
name: tiles-hydro-floor
sprite: /Textures/Tiles/hydro.png
baseTurf: Plating
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
@@ -880,6 +1140,16 @@
name: tiles-clown-floor
sprite: /Textures/Tiles/clown.png
baseTurf: Plating
variants: 8
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
@@ -893,6 +1163,12 @@
name: tiles-mime-floor
sprite: /Textures/Tiles/mime.png
baseTurf: Plating
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
@@ -906,6 +1182,12 @@
name: tiles-kitchen-floor
sprite: /Textures/Tiles/kitchen.png
baseTurf: Plating
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
@@ -919,6 +1201,12 @@
name: tiles-laundry-floor
sprite: /Textures/Tiles/laundry.png
baseTurf: Plating
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
@@ -931,13 +1219,16 @@
id: FloorSteelDamaged
name: tiles-steel-floor
sprite: /Textures/Tiles/steel_damaged.png
variants: 5
variants: 8
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
@@ -951,10 +1242,16 @@
id: FloorSteelBurnt
name: tiles-steel-floor
sprite: /Textures/Tiles/steel_burnt.png
variants: 2
variants: 8
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
@@ -1288,11 +1585,6 @@
id: FloorShuttleWhite
name: tiles-white-shuttle-floor
sprite: /Textures/Tiles/shuttlewhite.png
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
@@ -1306,12 +1598,6 @@
id: FloorShuttleGrey
name: tiles-grey-shuttle-floor
sprite: /Textures/Tiles/shuttlegrey.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
@@ -1325,12 +1611,6 @@
id: FloorShuttleBlack
name: tiles-black-shuttle-floor
sprite: /Textures/Tiles/shuttleblack.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
@@ -1344,11 +1624,6 @@
id: FloorShuttleBlue
name: tiles-blue-shuttle-floor
sprite: /Textures/Tiles/shuttleblue.png
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
@@ -1362,11 +1637,6 @@
id: FloorShuttleOrange
name: tiles-orange-shuttle-floor
sprite: /Textures/Tiles/shuttleorange.png
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
@@ -1380,11 +1650,6 @@
id: FloorShuttlePurple
name: tiles-purple-shuttle-floor
sprite: /Textures/Tiles/shuttlepurple.png
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
@@ -1398,11 +1663,6 @@
id: FloorShuttleRed
name: tiles-red-shuttle-floor
sprite: /Textures/Tiles/shuttlered.png
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
@@ -1412,6 +1672,18 @@
heatCapacity: 10000
tileRipResistance: 4500
- type: tile
id: FloorShuttleSyndie
name: tiles-syndie-shuttle-floor
sprite: /Textures/Tiles/shuttlesyndie.png
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
footstepSounds:
collection: FootstepFloor
itemDrop: FloorTileItemShuttleSyndie
heatCapacity: 10000
# Materials
- type: tile
@@ -1444,6 +1716,12 @@
id: FloorGlass
name: tiles-glass-floor
sprite: /Textures/Tiles/glass.png
variants: 4
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Plating
isSubfloor: false
deconstructTools: [ Prying ]
@@ -1628,7 +1906,7 @@
- type: tile
id: FloorAsteroidSandDug
name: tiles-asteroid-sand
name: tiles-asteroid-sand-dug
sprite: /Textures/Tiles/Asteroid/asteroid_dug.png
baseTurf: Space
isSubfloor: true
@@ -1725,6 +2003,60 @@
heatCapacity: 10000
weather: true
- type: tile
id: FloorAsteroidCoarse
name: tiles-asteroid-coarse
sprite: /Textures/Tiles/Asteroid/asteroid_coarse.png
variants: 6
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Space
isSubfloor: true
footstepSounds:
collection: FootstepAsteroid
heatCapacity: 10000
weather: true
- type: tile
id: FloorAsteroidCoarseDug
name: tiles-asteroid-coarse-dug
sprite: /Textures/Tiles/Asteroid/asteroid_coarse_dug.png
variants: 6
placementVariants:
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
baseTurf: Space
isSubfloor: true
footstepSounds:
collection: FootstepAsteroid
heatCapacity: 10000
weather: true
- type: tile
id: FloorAsteroidGravel
name: tiles-asteroid-gravel
sprite: /Textures/Tiles/Asteroid/asteroid_gravel.png
variants: 3
placementVariants:
- 1.0
- 1.0
- 1.0
baseTurf: Space
isSubfloor: true
footstepSounds:
collection: FootstepAsteroid
heatCapacity: 10000
weather: true
# Caves
- type: tile
id: FloorCave

View File

@@ -36,6 +36,19 @@
- state: boxwide
- state: shellflare
- type: entity
name: shinano grenade stinger dispenser
parent: BaseShinanoGrenadeAmmoProvider
id: BoxShinanoGrenadeStinger
description: A dispenser box full of stinger grenade, designed for Shinano.
components:
- type: BallisticAmmoProvider
proto: ShinanoGrenadeStinger
- type: Sprite
layers:
- state: boxwide
- state: shellflare
- type: entity
name: shinano grenade beanbag dispenser
parent: BaseShinanoGrenadeAmmoProvider

View File

@@ -45,6 +45,23 @@
state: smoke
suffix: false
- type: entity
id: ShinanoGrenadeStinger
name: shinano stinger grenade
parent: BaseShinanoGrenade
components:
- type: CartridgeAmmo
proto: ShinanoBulletGrenadeStinger
- type: Sprite
sprite: Objects/Weapons/Guns/Ammunition/Explosives/explosives.rsi
layers:
- state: blast
map: ["enum.AmmoVisualLayers.Base"]
- type: Appearance
- type: SpentAmmoVisuals
state: stinger
suffix: false
- type: entity
id: ShinanoGrenadeBeanbag
name: beanbag shinano grenade

View File

@@ -49,6 +49,23 @@
- 0,0,0,0
- type: Appearance
- type: entity
parent: BaseItem
id: BaseShutterModule
abstract: true
components:
- type: Sprite
sprite: White/Objects/Weapons/modules.rsi
- type: Tag
tags:
- BaseShutterModule
- type: Item
sprite: White/Objects/Weapons/modules.rsi
size: Small
shape:
- 0,0,0,0
- type: Appearance
# modules
- type: entity
parent: BaseHandGuardModule
@@ -127,3 +144,14 @@
- type: Sprite
state: eightaim
- type: Appearance
- type: entity
parent: BaseShutterModule
id: ShinanoShutterModule
name: "modified Shinano shutter"
description: An illegal modification for the TS430 Shinano made by one of the Syndicate's contractors. It allows the use of a wide range of grenade ammunition that are in service with the Syndicate.
components:
- type: ShutterModule
value: "shinano"
module_type: "shutter_module"
tag: Grenade

View File

@@ -22,7 +22,6 @@
- ItemMask
restitution: 0.3 # fite me
friction: 0.2
- type: DeleteOnTrigger
- type: Physics
bodyType: Dynamic
- type: TimedDespawn
@@ -40,9 +39,11 @@
layers:
- state: grenade
- type: FlashOnTrigger
range: 3
range: 5
forceStun: true
- type: SpawnOnTrigger
proto: GrenadeFlashEffect
- type: DeleteOnTrigger
- type: entity
parent: BaseBulletShinanoGranade
@@ -64,6 +65,25 @@
Quantity: 50
- type: SoundOnTrigger
sound: /Audio/Items/smoke_grenade_smoke.ogg
- type: DeleteOnTrigger
- type: entity
id: ShinanoBulletGrenadeStinger
name: stinger shinano grenade
parent: BaseBulletShinanoGranade
noSpawn: true
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi
layers:
- state: grenade
- type: ClusterGrenade
fillPrototype: PelletClusterRubber
maxGrenadesCount: 30
grenadeType: enum.GrenadeType.Shoot
- type: ContainerContainer
containers:
cluster-payload: !type:Container
- type: entity
parent: [BaseBullet, BaseBulletTrail]

View File

@@ -11,6 +11,9 @@
map: ["enum.GunVisualLayers.Base"]
- type: Item
sprite: White/Objects/Weapons/Guns/Launchers/shinano-inhands.rsi
size: Large
shape:
- 0,0,2,1
- type: Clothing
sprite: White/Objects/Weapons/Guns/Launchers/shinano-inhands.rsi
slots:
@@ -35,3 +38,18 @@
soundInsert:
path: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
autoCycle: false
- type: WeaponModules
- type: ItemSlots
slots:
shutter_module:
name: Shutter Module
insertSound: /Audio/White/Gun/Modules/insertmodule.ogg
ejectSound: /Audio/White/Gun/Modules/ejectmodule.ogg
priority: 1
whitelist:
tags:
- BaseShutterModule
- type: ContainerContainer
containers:
shutter_module: !type:ContainerSlot
- type: Appearance

View File

@@ -133,3 +133,37 @@
completetime: 5
materials:
Steel: 1500
- type: latheRecipe
id: ShinanoGrenadeFlashRecipe
result: ShinanoGrenadeFlash
completetime: 3
materials:
Steel: 800
Plastic: 200
Glass: 100
Plasma: 100
- type: latheRecipe
id: ShinanoGrenadeSmokeRecipe
result: ShinanoGrenadeSmoke
completetime: 3
materials:
Steel: 800
Plastic: 200
Uranium: 200
- type: latheRecipe
id: ShinanoGrenadeStingerRecipe
result: ShinanoGrenadeStinger
completetime: 3
materials:
Steel: 800
Plastic: 800
- type: latheRecipe
id: ShinanoGrenadeBeanbagRecipe
result: ShinanoGrenadeBeanbag
completetime: 3
materials:
Steel: 800

View File

@@ -9,7 +9,7 @@
weights:
CaptainIDStealObjectiveWiz: 1
CMOHyposprayStealObjectiveWiz: 1
RDHardsuitStealObjectiveWiz: 1
#RDHardsuitStealObjectiveWiz: 1
NukeDiskStealObjectiveWiz: 1
MagbootsStealObjectiveWiz: 1
CorgiMeatStealObjectiveWiz: 1

View File

@@ -79,9 +79,15 @@
- type: Tag
id: BaseAimModule
- type: Tag
id: BaseShutterModule
- type: Tag
id: DoorjackUsable
- type: Tag
id: ShinanoGrenade
- type: Tag
id: Card

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 391 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 453 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 910 B

After

Width:  |  Height:  |  Size: 397 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 887 B

After

Width:  |  Height:  |  Size: 349 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 933 B

After

Width:  |  Height:  |  Size: 364 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 357 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 328 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 714 B

After

Width:  |  Height:  |  Size: 526 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 482 B

After

Width:  |  Height:  |  Size: 240 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 B

After

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 484 B

After

Width:  |  Height:  |  Size: 288 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 425 B

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 469 B

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 475 B

After

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 717 B

After

Width:  |  Height:  |  Size: 348 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 746 B

After

Width:  |  Height:  |  Size: 370 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 749 B

After

Width:  |  Height:  |  Size: 455 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 751 B

After

Width:  |  Height:  |  Size: 448 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 632 B

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 662 B

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 635 B

After

Width:  |  Height:  |  Size: 300 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 716 B

After

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 731 B

After

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 724 B

After

Width:  |  Height:  |  Size: 376 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 310 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 404 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 407 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 395 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 402 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 B

After

Width:  |  Height:  |  Size: 675 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 B

After

Width:  |  Height:  |  Size: 488 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 B

After

Width:  |  Height:  |  Size: 528 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 287 B

After

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 B

After

Width:  |  Height:  |  Size: 531 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 314 B

After

Width:  |  Height:  |  Size: 532 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 293 B

After

Width:  |  Height:  |  Size: 592 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 293 B

After

Width:  |  Height:  |  Size: 570 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 314 B

After

Width:  |  Height:  |  Size: 578 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 B

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 B

After

Width:  |  Height:  |  Size: 247 B

Some files were not shown because too many files have changed in this diff Show More