diff --git a/Content.Client/PDA/PdaMenu.xaml b/Content.Client/PDA/PdaMenu.xaml
index 8f9a297afc2..c8bcee25f15 100644
--- a/Content.Client/PDA/PdaMenu.xaml
+++ b/Content.Client/PDA/PdaMenu.xaml
@@ -47,9 +47,14 @@
+
+
+
+
+
// Frontier
+ // Frontier
+ BalanceButton.OnPressed += _ =>
{
_clipboard.SetText(_balance);
};
+ ShuttleDeedButton.OnPressed += _ =>
+ {
+ _clipboard.SetText(_shuttleDeed);
+ };
+ // End Frontier
StationTimeButton.OnPressed += _ =>
{
@@ -171,6 +178,10 @@ public void UpdateState(PdaUpdateState state)
_balance = state.Balance.ToString(); // Frontier
BalanceLabel.SetMarkup(Loc.GetString("comp-pda-ui-balance", ("balance", _balance))); // Frontier
+ _shuttleDeed = state.OwnedShipName ?? ""; // Frontier
+ ShuttleDeedLabel.SetMarkup(Loc.GetString("comp-pda-ui-shuttle-deed", ("shipname", _shuttleDeed))); // Frontier
+ ShuttleDeedLabel.Visible = !string.IsNullOrEmpty(state.OwnedShipName); // Frontier
+
var stationTime = _gameTiming.CurTime.Subtract(_gameTicker.RoundStartTimeSpan);
StationTimeLabel.SetMarkup(Loc.GetString("comp-pda-ui-station-time",
diff --git a/Content.Server/Fluids/EntitySystems/AbsorbentSystem.cs b/Content.Server/Fluids/EntitySystems/AbsorbentSystem.cs
index 52afdcf8b49..cd6fc74f504 100644
--- a/Content.Server/Fluids/EntitySystems/AbsorbentSystem.cs
+++ b/Content.Server/Fluids/EntitySystems/AbsorbentSystem.cs
@@ -3,6 +3,7 @@
using Content.Server.Popups;
using Content.Shared.Chemistry.Components;
using Content.Shared.Chemistry.EntitySystems;
+using Content.Shared.Chemistry.Reagent; // Frontier
using Content.Shared.FixedPoint;
using Content.Shared.Fluids;
using Content.Shared.Fluids.Components;
@@ -30,6 +31,11 @@ public sealed class AbsorbentSystem : SharedAbsorbentSystem
[Dependency] private readonly UseDelaySystem _useDelay = default!;
[Dependency] private readonly MapSystem _mapSystem = default!;
+ private static readonly ProtoId Water = "Water"; // Frontier
+ private static readonly ProtoId Holywater = "Holywater"; // Frontier
+ public static readonly string[] MopFriendlyReagents = [Water, Holywater]; // Frontier: separate list of reagents we consider practical for use in a mop
+ // Frontier: if updating this list, consider updating PuddleSystem.EvaporationReagents
+
public override void Initialize()
{
base.Initialize();
@@ -58,13 +64,13 @@ private void UpdateAbsorbent(EntityUid uid, AbsorbentComponent component)
var oldProgress = component.Progress.ShallowClone();
component.Progress.Clear();
- var water = solution.GetTotalPrototypeQuantity(PuddleSystem.EvaporationReagents);
+ var water = solution.GetTotalPrototypeQuantity(MopFriendlyReagents); // Frontier: PuddleSystem.EvaporationReagents FixedPoint2.Zero)
{
- component.Progress[solution.GetColorWithOnly(_prototype, PuddleSystem.EvaporationReagents)] = water.Float();
+ component.Progress[solution.GetColorWithOnly(_prototype, MopFriendlyReagents)] = water.Float(); // Frontier: PuddleSystem.EvaporationReagents 0f)
@@ -181,7 +187,7 @@ private bool TryTransferFromAbsorbentToRefillable(
}
// Prioritize transferring non-evaporatives if absorbent has any
- var contaminants = _solutionContainerSystem.SplitSolutionWithout(absorbentSoln, transferAmount, PuddleSystem.EvaporationReagents);
+ var contaminants = _solutionContainerSystem.SplitSolutionWithout(absorbentSoln, transferAmount, MopFriendlyReagents); // Frontier: PuddleSystem.EvaporationReagents 0)
{
_solutionContainerSystem.TryAddSolution(refillableSoln, contaminants);
@@ -206,7 +212,7 @@ private bool TryTwoWayAbsorbentRefillableTransfer(
Entity absorbentSoln,
Entity refillableSoln)
{
- var contaminantsFromAbsorbent = _solutionContainerSystem.SplitSolutionWithout(absorbentSoln, component.PickupAmount, PuddleSystem.EvaporationReagents);
+ var contaminantsFromAbsorbent = _solutionContainerSystem.SplitSolutionWithout(absorbentSoln, component.PickupAmount, MopFriendlyReagents); // Frontier: PuddleSystem.EvaporationReagents transferMax ? transferMax : available;
- var puddleSplit = puddleSolution.SplitSolutionWithout(transferAmount, PuddleSystem.EvaporationReagents);
- var absorberSplit = absorberSolution.SplitSolutionWithOnly(puddleSplit.Volume, PuddleSystem.EvaporationReagents);
+ var puddleSplit = puddleSolution.SplitSolutionWithout(transferAmount, MopFriendlyReagents); // Frontier: PuddleSystem.EvaporationReagents(actor_uid, out var account)) // frontier
balance = account.Balance; // frontier
+ var ownedShipName = ""; // Frontier
+ if (TryComp(pda.ContainedId, out var shuttleDeedComp)) // Frontier
+ ownedShipName = ShipyardSystem.GetFullName(shuttleDeedComp); // Frontier
var state = new PdaUpdateState(
programs,
GetNetEntity(loader.ActiveProgram),
@@ -187,6 +192,7 @@ public void UpdatePdaUi(EntityUid uid, PdaComponent? pda = null, EntityUid? acto
StationAlertColor = pda.StationAlertColor
},
balance, // Frontier
+ ownedShipName, // Frontier
pda.StationName,
showUplink,
hasInstrument,
diff --git a/Content.Server/Paper/PaperSystem.cs b/Content.Server/Paper/PaperSystem.cs
index f3b1800d26e..72058ac2650 100644
--- a/Content.Server/Paper/PaperSystem.cs
+++ b/Content.Server/Paper/PaperSystem.cs
@@ -320,7 +320,7 @@ public bool TrySign(EntityUid paper, EntityUid signer, EntityUid pen, PaperCompo
info.StampedColor = crayon.Color;
// Try stamp with the info, return false if failed.
- if (!StampDelayed(pen) && TryStamp(paper, info, "paper_stamp-generic", paperComp)) // Frontier: add !StampDelayed(pen)
+ if (!StampDelayed(pen) && TryStamp(paper, info, "paper_stamp-nf-signature", paperComp)) // Frontier: add !StampDelayed(pen)
{
// Signing successful, popup time.
_popupSystem.PopupEntity(
diff --git a/Content.Server/Shipyard/Systems/ShuttleDeedSystem.cs b/Content.Server/Shipyard/Systems/ShuttleDeedSystem.cs
new file mode 100644
index 00000000000..eb47ab54cab
--- /dev/null
+++ b/Content.Server/Shipyard/Systems/ShuttleDeedSystem.cs
@@ -0,0 +1,24 @@
+using Content.Shared.Shipyard.Components;
+using Content.Shared.Examine;
+using Content.Server.Shipyard.Systems;
+
+namespace Content.Shared.Shipyard;
+
+public sealed partial class ShuttleDeedSystem : EntitySystem
+{
+ public override void Initialize()
+ {
+ base.Initialize();
+ SubscribeLocalEvent(OnExamined);
+ }
+
+ private void OnExamined(Entity ent, ref ExaminedEvent args)
+ {
+ var comp = ent.Comp;
+ if (!string.IsNullOrEmpty(comp.ShuttleName))
+ {
+ var fullName = ShipyardSystem.GetFullName(comp);
+ args.PushMarkup(Loc.GetString("shuttle-deed-examine-text", ("shipname", fullName)));
+ }
+ }
+}
diff --git a/Content.Server/Spider/SpiderSystem.cs b/Content.Server/Spider/SpiderSystem.cs
index 8004e4c7eae..bee0f344182 100644
--- a/Content.Server/Spider/SpiderSystem.cs
+++ b/Content.Server/Spider/SpiderSystem.cs
@@ -4,15 +4,12 @@
using Content.Shared.Maps;
using Robust.Server.GameObjects;
using Robust.Shared.Map;
-using Content.Shared.Nutrition.EntitySystems;
-using Content.Shared.Nutrition.Components;
namespace Content.Server.Spider;
public sealed class SpiderSystem : SharedSpiderSystem
{
[Dependency] private readonly PopupSystem _popup = default!;
- [Dependency] private readonly HungerSystem _hungerSystem = default!;
public override void Initialize()
{
@@ -25,13 +22,6 @@ private void OnSpawnNet(EntityUid uid, SpiderComponent component, SpiderWebActio
if (args.Handled)
return;
- if (TryComp(uid, out var hungerComp)
- && _hungerSystem.IsHungerBelowState(uid, HungerThreshold.Okay, hungerComp.CurrentHunger - 5, hungerComp))
- {
- _popup.PopupEntity(Loc.GetString("sericulture-failure-hunger"), args.Performer, args.Performer);
- return;
- }
-
var transform = Transform(uid);
if (transform.GridUid == null)
@@ -52,10 +42,22 @@ private void OnSpawnNet(EntityUid uid, SpiderComponent component, SpiderWebActio
result = true;
}
+ // Spawn web in other directions
+ for (var i = 0; i < 4; i++)
+ {
+ var direction = (DirectionFlag) (1 << i);
+ coords = transform.Coordinates.Offset(direction.AsDir().ToVec());
+
+ if (!IsTileBlockedByWeb(coords))
+ {
+ Spawn(component.WebPrototype, coords);
+ result = true;
+ }
+ }
+
if (result)
{
_popup.PopupEntity(Loc.GetString("spider-web-action-success"), args.Performer, args.Performer);
- _hungerSystem.ModifyHunger(uid, -5);
args.Handled = true;
}
else
@@ -72,4 +74,3 @@ private bool IsTileBlockedByWeb(EntityCoordinates coords)
return false;
}
}
-
diff --git a/Content.Server/Station/Systems/StationJobsSystem.Roundstart.cs b/Content.Server/Station/Systems/StationJobsSystem.Roundstart.cs
index e145e233e9e..8981a2c9e56 100644
--- a/Content.Server/Station/Systems/StationJobsSystem.Roundstart.cs
+++ b/Content.Server/Station/Systems/StationJobsSystem.Roundstart.cs
@@ -299,19 +299,43 @@ public void AssignOverflowJobs(
_random.Shuffle(givenStations);
+ // Frontier: get player session
+ _playerManager.TryGetSessionById(player, out var nfSession);
+ // End Frontier
+
foreach (var station in givenStations)
{
// Pick a random overflow job from that station
var overflows = GetOverflowJobs(station).ToList();
_random.Shuffle(overflows);
- // Stations with no overflow slots should simply get skipped over.
- if (overflows.Count == 0)
- continue;
+ // Frontier: check job requirements on overflow jobs
+ bool nfJobAssigned = false;
+ foreach (var overflowJob in overflows)
+ {
+ if (nfSession != null && _playTime.IsAllowed(nfSession, overflowJob))
+ {
+ assignedJobs.Add(player, (overflowJob, station));
+ nfJobAssigned = true;
+ break;
+ }
+ }
+ // No need to look at other stations, we have a job.
+ if (nfJobAssigned)
+ {
+ break;
+ }
+ // End Frontier
+
+ // Frontier: commented out the implementation below
+ // // Stations with no overflow slots should simply get skipped over.
+ // if (overflows.Count == 0)
+ // continue;
- // If the overflow exists, put them in as it.
- assignedJobs.Add(player, (overflows[0], givenStations[0]));
- break;
+ // // If the overflow exists, put them in as it.
+ // assignedJobs.Add(player, (overflows[0], givenStations[0]));
+ // break;
+ // End Frontier
}
}
}
diff --git a/Content.Server/_NF/ArachnidChaos/ArachnidChaosComponent.cs b/Content.Server/_NF/ArachnidChaos/ArachnidChaosComponent.cs
deleted file mode 100644
index cbf0ac490b2..00000000000
--- a/Content.Server/_NF/ArachnidChaos/ArachnidChaosComponent.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-
-namespace Content.Server.ArachnidChaos
-{
- [RegisterComponent]
- public sealed partial class ArachnidChaosComponent : Component
- {}
-}
diff --git a/Content.Server/_NF/ArachnidChaos/ArachnidChaosSystem.cs b/Content.Server/_NF/ArachnidChaos/ArachnidChaosSystem.cs
deleted file mode 100644
index 5867e746450..00000000000
--- a/Content.Server/_NF/ArachnidChaos/ArachnidChaosSystem.cs
+++ /dev/null
@@ -1,141 +0,0 @@
-using Content.Server.Administration.Logs;
-using Content.Shared.Verbs;
-using Content.Shared.DoAfter;
-using Content.Shared.Popups;
-using Content.Shared.Inventory;
-using Content.Shared.Nutrition.Components;
-using Content.Shared.Nutrition.EntitySystems;
-using Robust.Shared.Audio;
-using Content.Shared.Audio;
-using Content.Server.Body.Components;
-using Content.Shared.ArachnidChaos;
-using Content.Server.Nutrition.EntitySystems;
-using Robust.Shared.Player;
-using Content.Shared.Mobs.Systems;
-using Content.Server.Body.Systems;
-using Content.Server.Nutrition.Components;
-using Content.Shared.Database;
-using Robust.Shared.Audio.Systems;
-using Robust.Shared.Utility;
-
-namespace Content.Server.ArachnidChaos
-{
- public sealed class ArachnidChaosSystem : EntitySystem
- {
- [Dependency] private readonly SharedAudioSystem _audio = default!;
- [Dependency] private readonly SharedDoAfterSystem _doAfter = default!;
- [Dependency] private readonly SharedPopupSystem _popupSystem = default!;
- [Dependency] private readonly HungerSystem _hunger = default!;
- [Dependency] private readonly InventorySystem _inventorySystem = default!;
- [Dependency] private readonly MobStateSystem _mobStateSystem = default!;
- [Dependency] private readonly BloodstreamSystem _bloodstreamSystem = default!;
- [Dependency] private readonly IAdminLogManager _adminLogger = default!;
-
- public override void Initialize()
- {
- base.Initialize();
- SubscribeLocalEvent>(AddBiteVerb);
- SubscribeLocalEvent(OnDoAfter);
- }
- private void AddBiteVerb(EntityUid uid, ArachnidChaosComponent component, GetVerbsEvent args)
- {
- if (!args.CanInteract || !args.CanAccess)
- return;
-
- if (!_mobStateSystem.IsAlive(args.User))
- return;
-
- if (args.User == args.Target)
- return;
-
- if (!TryComp(args.Target, out var bloodstream))
- return;
-
- InnateVerb verb = new()
- {
- Act = () =>
- {
- if (!IsActionValid(args.User, args.Target))
- return;
-
- _popupSystem.PopupEntity(Loc.GetString("spider-biting", ("UsernameName", args.User), ("targetName", args.Target)), args.User);
- _popupSystem.PopupEntity(Loc.GetString("spider-biting"), args.User, args.User);
-
- var doAfterEventArgs = new DoAfterArgs(EntityManager, args.User, 3f, new ArachnidChaosDoAfterEvent(), uid, target: args.Target, used: uid)
- {
- BreakOnMove = true,
- BreakOnDamage = true,
- BlockDuplicate = true
- };
-
- _doAfter.TryStartDoAfter(doAfterEventArgs);
- },
- Icon = new SpriteSpecifier.Rsi(new ("Nyanotrasen/Icons/verbiconfangs.rsi"), "icon"),
- Text = Loc.GetString("action-name-spider-bite"),
- Priority = 2
- };
- args.Verbs.Add(verb);
- }
- private void OnDoAfter(EntityUid uid, ArachnidChaosComponent comp, DoAfterEvent args)
- {
- if (args.Cancelled || args.Handled || args.Args.Target == null)
- return;
-
- if (!IsActionValid(args.Args.User, args.Args.Target.Value))
- return;
-
- if (!TryComp(args.Args.User, out var hunger))
- return;
-
- if (!TryComp(args.Args.Target.Value, out var bloodstream))
- return;
-
- _bloodstreamSystem.TryModifyBloodLevel(args.Args.Target.Value, -5, bloodstream);
- _audio.PlayPvs("/Audio/Items/drink.ogg", args.Args.User, AudioHelpers.WithVariation(0.15f));
- _hunger.ModifyHunger(args.Args.User, 5, hunger);
-
- _adminLogger.Add(LogType.Action, LogImpact.Medium, $"{ToPrettyString(args.Args.User):actor} drank blood from {ToPrettyString(args.Args.Target.Value):actor}");
-
- args.Repeat = true;
- }
-
- private bool IsActionValid(EntityUid user, EntityUid target)
- {
- if (!TryComp(target, out var bloodstream))
- return false;
-
- if (bloodstream.BloodReagent == "Blood")
- {
- if (_bloodstreamSystem.GetBloodLevelPercentage(target, bloodstream) <= 0.0f)
- {
- _popupSystem.PopupEntity(Loc.GetString("no-blood-warning"), user, user, Shared.Popups.PopupType.SmallCaution);
- return false;
- }
- }
- else
- {
- _popupSystem.PopupEntity(Loc.GetString("no-good-blood"), user, user, Shared.Popups.PopupType.SmallCaution);
- return false;
- }
-
- if (!TryComp(user, out var hunger))
- return false;
-
- if (hunger.CurrentThreshold == Shared.Nutrition.Components.HungerThreshold.Overfed)
- {
- _popupSystem.PopupEntity(Loc.GetString("food-system-you-cannot-eat-any-more"), user, user, Shared.Popups.PopupType.SmallCaution);
- return false;
- }
-
- if (_inventorySystem.TryGetSlotEntity(user, "mask", out var maskUid) &&
- EntityManager.TryGetComponent(maskUid, out var blocker) &&
- blocker.Enabled)
- {
- _popupSystem.PopupEntity(Loc.GetString("hairball-mask", ("mask", maskUid)), user, user, Shared.Popups.PopupType.SmallCaution);
- return false;
- }
-
- return true;
- }
- }
-}
diff --git a/Content.Shared/Cuffs/Components/HandcuffComponent.cs b/Content.Shared/Cuffs/Components/HandcuffComponent.cs
index 9e18a72a3ba..289f587239b 100644
--- a/Content.Shared/Cuffs/Components/HandcuffComponent.cs
+++ b/Content.Shared/Cuffs/Components/HandcuffComponent.cs
@@ -9,12 +9,6 @@ namespace Content.Shared.Cuffs.Components;
[Access(typeof(SharedCuffableSystem))]
public sealed partial class HandcuffComponent : Component
{
- ///
- /// Whether or not the entity can rot when cuffed (for spooder cocoon)
- ///
- [DataField, ViewVariables(VVAccess.ReadWrite)]
- public bool NoRot = false;
-
///
/// The time it takes to cuff an entity.
///
diff --git a/Content.Shared/Fluids/SharedPuddleSystem.Evaporation.cs b/Content.Shared/Fluids/SharedPuddleSystem.Evaporation.cs
index eb9f3753079..e8c799b5a4d 100644
--- a/Content.Shared/Fluids/SharedPuddleSystem.Evaporation.cs
+++ b/Content.Shared/Fluids/SharedPuddleSystem.Evaporation.cs
@@ -1,5 +1,6 @@
using Content.Shared.Chemistry.Components;
using Content.Shared.Chemistry.Reagent;
+using Robust.Shared.Prototypes; // Frontier
namespace Content.Shared.Fluids;
@@ -8,21 +9,23 @@ public abstract partial class SharedPuddleSystem
[ValidatePrototypeId]
private const string Water = "Water";
- private const string FluorosulfuricAcid = "FluorosulfuricAcid"; // Frontier
- private const string Vomit = "Vomit"; // Frontier
- private const string InsectBlood = "InsectBlood"; // Frontier
- private const string AmmoniaBlood = "AmmoniaBlood"; // Frontier
- private const string ZombieBlood = "ZombieBlood"; // Frontier
- private const string Blood = "Blood"; // Frontier
- private const string Slime = "Slime"; // Frontier
- private const string CopperBlood = "CopperBlood"; // Frontier
- private const string Sap = "Sap"; // Frontier
- private const string Syrup = "Syrup"; // Frontier
- private const string JuiceTomato = "JuiceTomato"; // Frontier
- private const string Fiber = "Fiber"; // Frontier
- private const string Nothing = "Nothing"; // Frontier
+ private static readonly ProtoId FluorosulfuricAcid = "FluorosulfuricAcid"; // Frontier
+ private static readonly ProtoId Vomit = "Vomit"; // Frontier
+ private static readonly ProtoId Holywater = "Holywater"; // Frontier
+ private static readonly ProtoId InsectBlood = "InsectBlood"; // Frontier
+ private static readonly ProtoId AmmoniaBlood = "AmmoniaBlood"; // Frontier
+ private static readonly ProtoId ZombieBlood = "ZombieBlood"; // Frontier
+ private static readonly ProtoId Blood = "Blood"; // Frontier
+ private static readonly ProtoId Slime = "Slime"; // Frontier
+ private static readonly ProtoId CopperBlood = "CopperBlood"; // Frontier
+ private static readonly ProtoId Sap = "Sap"; // Frontier
+ private static readonly ProtoId Syrup = "Syrup"; // Frontier
+ private static readonly ProtoId JuiceTomato = "JuiceTomato"; // Frontier
+ private static readonly ProtoId Fiber = "Fiber"; // Frontier
+ private static readonly ProtoId Nothing = "Nothing"; // Frontier
- public static readonly string[] EvaporationReagents = [Water, Vomit, InsectBlood, AmmoniaBlood, ZombieBlood, Blood, Slime, CopperBlood, FluorosulfuricAcid, Sap, Syrup, JuiceTomato, Fiber, Nothing]; // Frontier
+ // Frontier: NOTE: if updating this list, keep up to date with AbsorbentSystem.EvaporationReagents
+ public static readonly string[] EvaporationReagents = [Water, Vomit, Holywater, InsectBlood, AmmoniaBlood, ZombieBlood, Blood, Slime, CopperBlood, FluorosulfuricAcid, Sap, Syrup, JuiceTomato, Fiber, Nothing]; // Frontier
public bool CanFullyEvaporate(Solution solution)
{
diff --git a/Content.Shared/PDA/PdaUpdateState.cs b/Content.Shared/PDA/PdaUpdateState.cs
index e98f0f0f64f..1c1ca0949d5 100644
--- a/Content.Shared/PDA/PdaUpdateState.cs
+++ b/Content.Shared/PDA/PdaUpdateState.cs
@@ -18,6 +18,7 @@ public sealed class PdaUpdateState : CartridgeLoaderUiState // WTF is this. what
public bool CanPlayMusic;
public string? Address;
public int Balance; // Frontier
+ public string? OwnedShipName; // Frontier
public PdaUpdateState(
List programs,
@@ -28,6 +29,7 @@ public PdaUpdateState(
bool hasBook,
PdaIdInfoText pdaOwnerInfo,
int balance, // Frontier
+ string? ownedShipName, // Frontier
string? stationName,
bool hasUplink = false,
bool canPlayMusic = false,
@@ -44,6 +46,7 @@ public PdaUpdateState(
StationName = stationName;
Address = address;
Balance = balance; // Frontier
+ OwnedShipName = ownedShipName; // Frontier
}
}
diff --git a/Content.Shared/_NF/ArachnidChaos/ArachnidChaosDoAfterEvent.cs b/Content.Shared/_NF/ArachnidChaos/ArachnidChaosDoAfterEvent.cs
deleted file mode 100644
index df106f2e773..00000000000
--- a/Content.Shared/_NF/ArachnidChaos/ArachnidChaosDoAfterEvent.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using Content.Shared.DoAfter;
-using Robust.Shared.Serialization;
-
-namespace Content.Shared.ArachnidChaos;
-
-[Serializable, NetSerializable]
-public sealed partial class ArachnidChaosDoAfterEvent : SimpleDoAfterEvent
-{
-}
diff --git a/Content.Shared/_NF/Bank/Components/MarketModifierComponent.cs b/Content.Shared/_NF/Bank/Components/MarketModifierComponent.cs
index 502bc185239..aad7a124bcc 100644
--- a/Content.Shared/_NF/Bank/Components/MarketModifierComponent.cs
+++ b/Content.Shared/_NF/Bank/Components/MarketModifierComponent.cs
@@ -3,14 +3,20 @@ namespace Content.Shared.Bank.Components;
///
/// This is used for applying a pricing modifier to things like vending machines.
/// It's used to ensure that a purchased product costs more than it is actually worth.
-/// The float is applied to the StaticPrice component in the various systems that utilize it.
///
[RegisterComponent]
public sealed partial class MarketModifierComponent : Component
{
///
- /// The amount to multiply a Static Price by
+ /// The amount to multiply an item's price by
///
- [DataField("mod", required: true)]
- public float Mod;
+ [DataField(required: true)]
+ public float Mod { get; set; } = 1.0f;
+
+ ///
+ /// True if the modifier is for purchase (e.g. on a vendor)
+ /// Currently used for examine strings.
+ ///
+ [DataField]
+ public bool Buy { get; set; } = true;
}
diff --git a/Content.Shared/_NF/Bank/MarketModifierSystem.cs b/Content.Shared/_NF/Bank/MarketModifierSystem.cs
new file mode 100644
index 00000000000..4e1ec313228
--- /dev/null
+++ b/Content.Shared/_NF/Bank/MarketModifierSystem.cs
@@ -0,0 +1,29 @@
+using Content.Shared.Examine;
+using Content.Shared.Bank.Components;
+using Content.Shared.VendingMachines;
+
+namespace Content.Shared.Bank;
+
+public sealed partial class MarketModifierSystem : EntitySystem
+{
+ public override void Initialize()
+ {
+ base.Initialize();
+
+ SubscribeLocalEvent(OnExamined);
+ }
+
+ // This code is licensed under AGPLv3. See AGPLv3.txt
+ private void OnExamined(Entity ent, ref ExaminedEvent args)
+ {
+ // If the machine is a vendor, don't print out rates
+ if (HasComp(ent))
+ return;
+
+ string locVerb = ent.Comp.Buy ? "buy" : "sell";
+ if (ent.Comp.Mod >= 1.0f)
+ args.PushMarkup(Loc.GetString($"market-modifier-{locVerb}-high", ("mod", ent.Comp.Mod)));
+ else
+ args.PushMarkup(Loc.GetString($"market-modifier-{locVerb}-low", ("mod", ent.Comp.Mod)));
+ }
+}
diff --git a/Resources/Audio/_NF/Jerma/clap.ogg b/Resources/Audio/_NF/Jerma/clap.ogg
deleted file mode 100644
index 1f99024eaad..00000000000
Binary files a/Resources/Audio/_NF/Jerma/clap.ogg and /dev/null differ
diff --git a/Resources/Audio/_NF/Jerma/didi.ogg b/Resources/Audio/_NF/Jerma/didi.ogg
deleted file mode 100644
index 3e54a8ae578..00000000000
Binary files a/Resources/Audio/_NF/Jerma/didi.ogg and /dev/null differ
diff --git a/Resources/Audio/_NF/Jerma/dididi.ogg b/Resources/Audio/_NF/Jerma/dididi.ogg
deleted file mode 100644
index 7da0da9e68f..00000000000
Binary files a/Resources/Audio/_NF/Jerma/dididi.ogg and /dev/null differ
diff --git a/Resources/Audio/_NF/Jerma/pog_in_pants.ogg b/Resources/Audio/_NF/Jerma/pog_in_pants.ogg
deleted file mode 100644
index e255c089dd0..00000000000
Binary files a/Resources/Audio/_NF/Jerma/pog_in_pants.ogg and /dev/null differ
diff --git a/Resources/Audio/_NF/Jerma/pog_moment.ogg b/Resources/Audio/_NF/Jerma/pog_moment.ogg
deleted file mode 100644
index ac14384d3c8..00000000000
Binary files a/Resources/Audio/_NF/Jerma/pog_moment.ogg and /dev/null differ
diff --git a/Resources/Audio/_NF/Jerma/pog_moment_right_there.ogg b/Resources/Audio/_NF/Jerma/pog_moment_right_there.ogg
deleted file mode 100644
index 7325d86865d..00000000000
Binary files a/Resources/Audio/_NF/Jerma/pog_moment_right_there.ogg and /dev/null differ
diff --git a/Resources/Audio/_NF/Jerma/satellite.ogg b/Resources/Audio/_NF/Jerma/satellite.ogg
deleted file mode 100644
index 40f5ef3630f..00000000000
Binary files a/Resources/Audio/_NF/Jerma/satellite.ogg and /dev/null differ
diff --git a/Resources/Audio/_NF/Jerma/soup_pizza.ogg b/Resources/Audio/_NF/Jerma/soup_pizza.ogg
deleted file mode 100644
index 5e9c266af14..00000000000
Binary files a/Resources/Audio/_NF/Jerma/soup_pizza.ogg and /dev/null differ
diff --git a/Resources/Audio/_NF/Jerma/thats_kinda_pog.ogg b/Resources/Audio/_NF/Jerma/thats_kinda_pog.ogg
deleted file mode 100644
index b440a127bb6..00000000000
Binary files a/Resources/Audio/_NF/Jerma/thats_kinda_pog.ogg and /dev/null differ
diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml
index 2425c2e6dbd..7f211ef2fa5 100644
--- a/Resources/Changelog/Changelog.yml
+++ b/Resources/Changelog/Changelog.yml
@@ -6173,3 +6173,17 @@ Entries:
each other.
id: 5184
time: '2024-08-09T18:24:00.0000000+00:00'
+- author: whatston3
+ changes:
+ - type: Add
+ message: >-
+ Bureaucracy loadout options are now available for all jobs apart from
+ NFSD and antag roles.
+ id: 5185
+ time: '2024-08-10T17:07:24.0000000+00:00'
+- author: dvir01
+ changes:
+ - type: Tweak
+ message: Arachnid genetic code match other sector closer now.
+ id: 5186
+ time: '2024-08-10T19:57:11.0000000+00:00'
diff --git a/Resources/Locale/en-US/_NF/ArachnidChaos.ftl b/Resources/Locale/en-US/_NF/ArachnidChaos.ftl
deleted file mode 100644
index bb582c88c24..00000000000
--- a/Resources/Locale/en-US/_NF/ArachnidChaos.ftl
+++ /dev/null
@@ -1,4 +0,0 @@
-action-name-spider-bite = Bite for blood
-no-blood-warning = There no blood!
-no-good-blood = You cant drink this blood!
-spider-biting = {THE($UsernameName)} start biting {THE($targetName)} for his blood!
diff --git a/Resources/Locale/en-US/_NF/bank/market.ftl b/Resources/Locale/en-US/_NF/bank/market.ftl
new file mode 100644
index 00000000000..84b13a66cc1
--- /dev/null
+++ b/Resources/Locale/en-US/_NF/bank/market.ftl
@@ -0,0 +1,5 @@
+market-modifier-buy-high = This machine charges [color=red]{$mod}x[/color] market rate.
+market-modifier-buy-low = This machine charges [color=green]{$mod}x[/color] market rate.
+
+market-modifier-sell-high = This machine pays out at [color=green]{$mod}x[/color] market rate.
+market-modifier-sell-low = This machine pays out at [color=red]{$mod}x[/color] market rate.
diff --git a/Resources/Locale/en-US/_NF/interaction/interaction-popup-component.ftl b/Resources/Locale/en-US/_NF/interaction/interaction-popup-component.ftl
index 439d1cf1135..a02fa77dc31 100644
--- a/Resources/Locale/en-US/_NF/interaction/interaction-popup-component.ftl
+++ b/Resources/Locale/en-US/_NF/interaction/interaction-popup-component.ftl
@@ -1,3 +1,7 @@
## Petting animals
-
petting-failure-mistake = Ymg' reach yog l' pet {THE($target)}, mgng ahlloig vulgtmnahor ot h'.
+
+## Patting players
+pat-success-generic = You pet {THE($target)} on {POSS-ADJ($target)} soft fluffy head.
+pat-success-generic-others = { CAPITALIZE(THE($user)) } pets {THE($target)} on {POSS-ADJ($target)} soft fluffy head.
+pat-success-generic-target = { CAPITALIZE(THE($user)) } pets your soft fluffy head.
diff --git a/Resources/Locale/en-US/_NF/job/job-supervisors.ftl b/Resources/Locale/en-US/_NF/job/job-supervisors.ftl
index e6812347eab..af088733a16 100644
--- a/Resources/Locale/en-US/_NF/job/job-supervisors.ftl
+++ b/Resources/Locale/en-US/_NF/job/job-supervisors.ftl
@@ -5,3 +5,5 @@ job-supervisors-sergeant = the sergeant
job-supervisors-cadet = all higher ranking nfsd personnel
job-supervisors-prisoner = all nfsd personnel
job-supervisors-nfsd = deputies, the bailiff, and the sheriff
+job-supervisors-pirate = the first mate and captain
+job-supervisors-nobody = nobody
diff --git a/Resources/Locale/en-US/_NF/paper/stamp-component.ftl b/Resources/Locale/en-US/_NF/paper/stamp-component.ftl
index 54c809672ca..bbbb13a2c51 100644
--- a/Resources/Locale/en-US/_NF/paper/stamp-component.ftl
+++ b/Resources/Locale/en-US/_NF/paper/stamp-component.ftl
@@ -2,6 +2,8 @@
stamp-component-signee-name = {$user}
+stamp-component-stamped-name-doctor = Doctor
+stamp-component-stamped-name-engineer = Engineer
stamp-component-stamped-name-psychologist = Psychologist
stamp-component-stamped-name-stc = Station Traffic Controller
stamp-component-stamped-name-sr = Station Representative
\ No newline at end of file
diff --git a/Resources/Locale/en-US/_NF/pda/pda-component.ftl b/Resources/Locale/en-US/_NF/pda/pda-component.ftl
index 2199713dbf8..3758d76100c 100644
--- a/Resources/Locale/en-US/_NF/pda/pda-component.ftl
+++ b/Resources/Locale/en-US/_NF/pda/pda-component.ftl
@@ -1 +1,2 @@
comp-pda-ui-balance = Balance: [color=white]{ $balance }[/color]
+comp-pda-ui-shuttle-deed = Registered Ship: [color=white]{ $shipname }[/color]
diff --git a/Resources/Locale/en-US/_NF/preferences/loadout-groups.ftl b/Resources/Locale/en-US/_NF/preferences/loadout-groups.ftl
index 79a9a45c33a..3824822afc6 100644
--- a/Resources/Locale/en-US/_NF/preferences/loadout-groups.ftl
+++ b/Resources/Locale/en-US/_NF/preferences/loadout-groups.ftl
@@ -16,4 +16,5 @@ loadout-group-contractor-fun = fun
loadout-group-contractor-trinkets = trinkets
loadout-group-contractor-survival-box = survival box
loadout-group-contractor-encryption-key = encryption keys
-loadout-group-contractor-implanter = implanters
\ No newline at end of file
+loadout-group-contractor-implanter = implanters
+loadout-group-contractor-bureaucracy = bureaucracy
\ No newline at end of file
diff --git a/Resources/Locale/en-US/_NF/shipyard/shuttle-deed-system.ftl b/Resources/Locale/en-US/_NF/shipyard/shuttle-deed-system.ftl
new file mode 100644
index 00000000000..af6ef5713f9
--- /dev/null
+++ b/Resources/Locale/en-US/_NF/shipyard/shuttle-deed-system.ftl
@@ -0,0 +1 @@
+shuttle-deed-examine-text = It contains the ship deed for [color=yellow]{ $shipname }[/color].
diff --git a/Resources/Locale/en-US/interaction/interaction-popup-component.ftl b/Resources/Locale/en-US/interaction/interaction-popup-component.ftl
index 5b2a79af11f..55be1fb3b97 100644
--- a/Resources/Locale/en-US/interaction/interaction-popup-component.ftl
+++ b/Resources/Locale/en-US/interaction/interaction-popup-component.ftl
@@ -81,8 +81,3 @@ hugging-success-generic-target = { CAPITALIZE(THE($user)) } hugs you.
petting-success-tesla = You pet {THE($target)}, violating the laws of nature and physics.
petting-failure-tesla = You reach out towards {THE($target)}, but {SUBJECT($target)} {CONJUGATE-BASIC($target, "zap", "zaps")} your hand away.
-
-## Patting players
-pat-success-generic = You pet {THE($target)} soft fluffy head.
-pat-success-generic-others = { CAPITALIZE(THE($user)) } pets {THE($target)} soft fluffy head.
-pat-success-generic-target = { CAPITALIZE(THE($user)) } pets your soft fluffy head.
diff --git a/Resources/Locale/ru-RU/_NF/bank/market.ftl b/Resources/Locale/ru-RU/_NF/bank/market.ftl
new file mode 100644
index 00000000000..6b433242f27
--- /dev/null
+++ b/Resources/Locale/ru-RU/_NF/bank/market.ftl
@@ -0,0 +1,5 @@
+market-modifier-buy-high = Этот автомат взимает [color=red]{$mod}x[/color] от рыночной цены.
+market-modifier-buy-low = Этот автомат взимает [color=green]{$mod}x[/color] от рыночной цены.
+
+market-modifier-sell-high = Этот автомат выплачивает [color=green]{$mod}x[/color] от рыночной цены.
+market-modifier-sell-low = Этот автомат выплачивает [color=red]{$mod}x[/color] от рыночной цены.
diff --git a/Resources/Locale/ru-RU/_NF/interaction/interaction-popup-component.ftl b/Resources/Locale/ru-RU/_NF/interaction/interaction-popup-component.ftl
index 1836230efeb..4c8465afa7e 100644
--- a/Resources/Locale/ru-RU/_NF/interaction/interaction-popup-component.ftl
+++ b/Resources/Locale/ru-RU/_NF/interaction/interaction-popup-component.ftl
@@ -1,3 +1,7 @@
## Petting animals
petting-failure-mistake = Фхтагн мглв'нафх { THE($target) } гладить, Й'а Й'а кхтулху фхтагн н'гха.
+
+pat-success-generic = Вы гладите { $target } по мягкой пушистой голове.
+pat-success-generic-others = { CAPITALIZE(THE($user)) } гладит { $target } по мягкой пушистой голове.
+pat-success-generic-target = { CAPITALIZE(THE($user)) } гладит вас по мягкой пушистой голове.
\ No newline at end of file
diff --git a/Resources/Locale/ru-RU/_NF/job/job-supervisors.ftl b/Resources/Locale/ru-RU/_NF/job/job-supervisors.ftl
index 09a9a79ac71..21780c81f93 100644
--- a/Resources/Locale/ru-RU/_NF/job/job-supervisors.ftl
+++ b/Resources/Locale/ru-RU/_NF/job/job-supervisors.ftl
@@ -5,3 +5,5 @@ job-supervisors-sergeant = сержанту
job-supervisors-cadet = всему вышестоящему персоналу ДСБФ
job-supervisors-prisoner = всему персоналу ДСБФ
job-supervisors-nfsd = шерифу, помощнику шерифа и капралам
+job-supervisors-pirate = боцману и капитану
+job-supervisors-nobody = никому
\ No newline at end of file
diff --git a/Resources/Locale/ru-RU/_NF/paper/stamp-component.ftl b/Resources/Locale/ru-RU/_NF/paper/stamp-component.ftl
index 92d993cbbe1..5152a2fb70f 100644
--- a/Resources/Locale/ru-RU/_NF/paper/stamp-component.ftl
+++ b/Resources/Locale/ru-RU/_NF/paper/stamp-component.ftl
@@ -4,3 +4,5 @@ stamp-component-signee-name = { $user }
stamp-component-stamped-name-psychologist = Психолог
stamp-component-stamped-name-stc = Диспетчер Аванпоста
stamp-component-stamped-name-sr = Представитель Фронтира
+stamp-component-stamped-name-doctor = Доктор
+stamp-component-stamped-name-engineer = Инженер
\ No newline at end of file
diff --git a/Resources/Locale/ru-RU/_NF/pda/pda-component.ftl b/Resources/Locale/ru-RU/_NF/pda/pda-component.ftl
index 53c272db5bf..984e13683d8 100644
--- a/Resources/Locale/ru-RU/_NF/pda/pda-component.ftl
+++ b/Resources/Locale/ru-RU/_NF/pda/pda-component.ftl
@@ -1 +1,2 @@
comp-pda-ui-balance = Баланс: [color=white]{ $balance }[/color]
+comp-pda-ui-shuttle-deed = Зарегистрированный Шаттл: [color=white]{ $shipname }[/color]
\ No newline at end of file
diff --git a/Resources/Locale/ru-RU/_NF/preferences/loadout-groups.ftl b/Resources/Locale/ru-RU/_NF/preferences/loadout-groups.ftl
index 4d2d40066ac..7b9fa2d00c7 100644
--- a/Resources/Locale/ru-RU/_NF/preferences/loadout-groups.ftl
+++ b/Resources/Locale/ru-RU/_NF/preferences/loadout-groups.ftl
@@ -17,3 +17,4 @@ loadout-group-contractor-trinkets = безделушки
loadout-group-contractor-survival-box = наборы выживания
loadout-group-contractor-encryption-key = ключи шифрования
loadout-group-contractor-implanter = импланты
+loadout-group-contractor-bureaucracy = бюрократия
\ No newline at end of file
diff --git a/Resources/Locale/ru-RU/interaction/interaction-popup-component.ftl b/Resources/Locale/ru-RU/interaction/interaction-popup-component.ftl
index fe1d1d7be8a..7b08f7cdf51 100644
--- a/Resources/Locale/ru-RU/interaction/interaction-popup-component.ftl
+++ b/Resources/Locale/ru-RU/interaction/interaction-popup-component.ftl
@@ -77,12 +77,9 @@ petting-failure-janitor-cyborg = Вы тянетесь погладить { $tar
petting-failure-medical-cyborg = Вы тянетесь погладить { $target }, но { $target } занят спасением жизней!
petting-failure-service-cyborg = Вы тянетесь погладить { $target }, но { $target } занят обслуживанием!
petting-failure-syndicate-cyborg = Вы тянетесь погладить { $target }, но предательская сущность { POSS-ADJ($target) } заставляет вас передумать.
-pat-success-generic = Вы гладите { $target } по мягкой пушистой голове.
-pat-success-generic-others = { CAPITALIZE(THE($user)) } гладит { $target } по мягкой пушистой голове.
-pat-success-generic-target = { CAPITALIZE(THE($user)) } гладит вас по мягкой пушистой голове.
hugging-success-generic = Вы обнимаете { $target }.
hugging-success-generic-others = { CAPITALIZE($user) } обнимает { $target }.
fence-rattle-success = *бдзынь*
hugging-success-generic-target = { CAPITALIZE($user) } обнимает вас.
petting-success-tesla = Вы гладите { $target }, попутно нарушая законы природы и физики.
-petting-failure-tesla = Вы тянетесь погладить { $target }, но разряд заставляет вас отдёрнуть руку.
\ No newline at end of file
+petting-failure-tesla = Вы тянетесь погладить { $target }, но разряд заставляет вас отдёрнуть руку.
diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_nf/entities/objects/fun/toys.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_nf/entities/objects/fun/toys.ftl
index 80651cc8918..7226ebe387d 100644
--- a/Resources/Locale/ru-RU/ss14-ru/prototypes/_nf/entities/objects/fun/toys.ftl
+++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/_nf/entities/objects/fun/toys.ftl
@@ -1,9 +1,7 @@
ent-PlushieJester = плюшевый шут
.desc = Маленькое сомнительное создание, затевающее пакости.
-ent-PlushieSlips = плюшевый уборщик
+ent-PlushieJanitor = плюшевый уборщик
.desc = Бесшумный пылесос, тот, который не произносит "WEH"
-ent-DBToySword = игрушечный двухклинковый меч
- .desc = { ent-ToySword.desc }
ent-PetRockCarrier = переноска для камня
.desc = Дом для вашего лучшего друга!
ent-BasePetRock = ручной камень
@@ -50,8 +48,6 @@ ent-BasePlushieVulp = плюшевый вульпканин
.desc = Очаровательный плюшевый вульпканин, которого можно обнять не боясь быть укусанным!
ent-PlushieVulp = { ent-BasePlushieVulp }
.desc = { ent-BasePlushieVulp.desc }
-ent-PlushieTrystan = плюшевый вульпицер
- .desc = Забавно вскрикивает!
ent-PlushieCorgi = плюшевый корги
.desc = Коллекция персональных Ианов!
ent-PlushieGirlyCorgi = плюшевый корги
diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_nf/entities/objects/misc/rubber_stamp.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_nf/entities/objects/misc/rubber_stamp.ftl
index 212e78574c7..dd46aea712f 100644
--- a/Resources/Locale/ru-RU/ss14-ru/prototypes/_nf/entities/objects/misc/rubber_stamp.ftl
+++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/_nf/entities/objects/misc/rubber_stamp.ftl
@@ -6,3 +6,12 @@ ent-RubberStampPsychologist = штамп психолога
ent-RubberStampStc = штамп диспетчера
.suffix = DO NOT MAP
.desc = { ent-RubberStampBase.desc }
+ent-RubberStampSheriff = штамп шерифа
+ .suffix = DO NOT MAP
+ .desc = { ent-RubberStampBase.desc }
+ent-RubberStampDoctor = штамп врача
+ .suffix = DO NOT MAP
+ .desc = { ent-RubberStampBase.desc }
+ent-RubberStampEngineer = штамп инженера
+ .suffix = DO NOT MAP
+ .desc = { ent-RubberStampBase.desc }
\ No newline at end of file
diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_nf/entities/objects/misc/stamps.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_nf/entities/objects/misc/stamps.ftl
deleted file mode 100644
index f37dd13b566..00000000000
--- a/Resources/Locale/ru-RU/ss14-ru/prototypes/_nf/entities/objects/misc/stamps.ftl
+++ /dev/null
@@ -1,5 +0,0 @@
-ent-RubberStampBaseNF = печать
- .desc = Печать из резины, для проставления печатей на важных документах.
-ent-RubberStampSheriff = печать шерифа
- .suffix = НЕ МАППИТЬ
- .desc = { ent-RubberStampBaseNF.desc }
diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_nf/entities/objects/tools/shipyard_rcd.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_nf/entities/objects/tools/tools.ftl
similarity index 100%
rename from Resources/Locale/ru-RU/ss14-ru/prototypes/_nf/entities/objects/tools/shipyard_rcd.ftl
rename to Resources/Locale/ru-RU/ss14-ru/prototypes/_nf/entities/objects/tools/tools.ftl
diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/nyanotrasen/entities/objects/devices/pda.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/nyanotrasen/entities/objects/devices/pda.ftl
index 065e711e88c..4e96bcfa9f2 100644
--- a/Resources/Locale/ru-RU/ss14-ru/prototypes/nyanotrasen/entities/objects/devices/pda.ftl
+++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/nyanotrasen/entities/objects/devices/pda.ftl
@@ -6,7 +6,7 @@ ent-GladiatorPDA = КПК гладиатора
.desc = { ent-PrisonerPDA.desc }
ent-ValetPDA = КПК камердинера
.desc = Почему он не серый?
-ent-GuardPDA = КПК тюремщика
+ent-PrisonGuardPDA = КПК тюремщика
.desc = Красный чтобы не видеть следов крови.
ent-MartialArtistPDA = КПК мастера боевых искусств
.desc = { ent-BoxerPDA.desc }
diff --git a/Resources/Maps/_NF/Test/dev_map.yml b/Resources/Maps/_NF/Test/dev_map.yml
index f18a0082526..07235eca5b4 100644
--- a/Resources/Maps/_NF/Test/dev_map.yml
+++ b/Resources/Maps/_NF/Test/dev_map.yml
@@ -32,7 +32,7 @@ entities:
version: 6
0,0:
ind: 0,0
- tiles: eQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAbAAAAAAAbAAAAAAAbAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAbAAAAAAAbAAAAAAAbAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAbAAAAAAAbAAAAAAAbAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAbAAAAAAAbAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAbAAAAAAAbAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAbAAAAAAAbAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAbAAAAAAAbAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAAAbAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAAAbAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAbAAAAAAAbAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA
+ tiles: eQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAbAAAAAAAbAAAAAAAbAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAbAAAAAAAbAAAAAAAbAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAbAAAAAAAbAAAAAAAbAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAbAAAAAAAbAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAAAbAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAAAbAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAAAbAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAAAbAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAAAbAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAbAAAAAAAbAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA
version: 6
0,-1:
ind: 0,-1
@@ -956,33 +956,21 @@ entities:
- type: Transform
pos: -2.5,-14.5
parent: 179
- - type: DeviceLinkSink
- links:
- - 1013
- uid: 697
components:
- type: Transform
pos: 1.5,-14.5
parent: 179
- - type: DeviceLinkSink
- links:
- - 1014
- uid: 698
components:
- type: Transform
pos: 1.5,-16.5
parent: 179
- - type: DeviceLinkSink
- links:
- - 1014
- uid: 984
components:
- type: Transform
pos: -2.5,-16.5
parent: 179
- - type: DeviceLinkSink
- links:
- - 1013
- proto: BluespaceMatterBinStockPart
entities:
- uid: 1254
@@ -2679,6 +2667,36 @@ entities:
- type: Transform
pos: -1.5,3.5
parent: 179
+ - uid: 1469
+ components:
+ - type: Transform
+ pos: 15.5,7.5
+ parent: 179
+ - uid: 1470
+ components:
+ - type: Transform
+ pos: 14.5,7.5
+ parent: 179
+ - uid: 1471
+ components:
+ - type: Transform
+ pos: 13.5,7.5
+ parent: 179
+ - uid: 1472
+ components:
+ - type: Transform
+ pos: 12.5,7.5
+ parent: 179
+ - uid: 1473
+ components:
+ - type: Transform
+ pos: 11.5,7.5
+ parent: 179
+ - uid: 1474
+ components:
+ - type: Transform
+ pos: 10.5,7.5
+ parent: 179
- proto: CableApcStack
entities:
- uid: 70
@@ -3965,27 +3983,18 @@ entities:
- type: Transform
pos: -2.5,-15.5
parent: 179
- - type: DeviceLinkSink
- links:
- - 699
- uid: 259
components:
- type: Transform
rot: 3.141592653589793 rad
pos: 1.5,-14.5
parent: 179
- - type: DeviceLinkSink
- links:
- - 983
- uid: 463
components:
- type: Transform
rot: 3.141592653589793 rad
pos: 1.5,-16.5
parent: 179
- - type: DeviceLinkSink
- links:
- - 983
- uid: 677
components:
- type: Transform
@@ -3997,70 +4006,46 @@ entities:
rot: -1.5707963267948966 rad
pos: -1.5,11.5
parent: 179
- - type: DeviceLinkSink
- links:
- - 722
- uid: 720
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: -0.5,11.5
parent: 179
- - type: DeviceLinkSink
- links:
- - 722
- uid: 721
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 0.5,11.5
parent: 179
- - type: DeviceLinkSink
- links:
- - 722
- uid: 985
components:
- type: Transform
rot: 3.141592653589793 rad
pos: 1.5,-13.5
parent: 179
- - type: DeviceLinkSink
- links:
- - 983
- uid: 989
components:
- type: Transform
rot: 3.141592653589793 rad
pos: 1.5,-15.5
parent: 179
- - type: DeviceLinkSink
- links:
- - 983
- uid: 990
components:
- type: Transform
pos: -2.5,-13.5
parent: 179
- - type: DeviceLinkSink
- links:
- - 699
- uid: 991
components:
- type: Transform
pos: -2.5,-16.5
parent: 179
- - type: DeviceLinkSink
- links:
- - 699
- uid: 1298
components:
- type: Transform
rot: -1.5707963267948966 rad
pos: 4.5,3.5
parent: 179
- - type: DeviceLinkSink
- links:
- - 1299
- proto: CrateEngineeringToolbox
entities:
- uid: 692
@@ -5389,9 +5374,6 @@ entities:
- type: Transform
pos: 12.5,24.5
parent: 179
- - type: DeviceLinkSink
- links:
- - 1083
- proto: MachineArtifactCrusher
entities:
- uid: 1423
@@ -6686,6 +6668,14 @@ entities:
- type: Transform
pos: 8.5,12.5
parent: 179
+- proto: SolidSecretDoor
+ entities:
+ - uid: 282
+ components:
+ - type: Transform
+ rot: -1.5707963267948966 rad
+ pos: 13.5,7.5
+ parent: 179
- proto: SpaceCash
entities:
- uid: 64
@@ -7009,8 +6999,6 @@ entities:
rot: 1.5707963267948966 rad
pos: -11.5,5.5
parent: 179
- - type: Physics
- canCollide: False
- proto: SuperCapacitorStockPart
entities:
- uid: 264
@@ -7452,6 +7440,20 @@ entities:
- type: Transform
pos: -3.5,10.5
parent: 179
+- proto: TelecomServerFilledFreelance
+ entities:
+ - uid: 1467
+ components:
+ - type: Transform
+ pos: 9.5,6.5
+ parent: 179
+- proto: TelecomServerFilledSyndicate
+ entities:
+ - uid: 1468
+ components:
+ - type: Transform
+ pos: 10.5,6.5
+ parent: 179
- proto: ThrusterNfsd
entities:
- uid: 1401
@@ -8562,7 +8564,7 @@ entities:
- uid: 339
components:
- type: Transform
- pos: 13.5,7.5
+ pos: 12.5,5.5
parent: 179
- uid: 341
components:
@@ -9387,6 +9389,21 @@ entities:
rot: 1.5707963267948966 rad
pos: -0.5,13.5
parent: 179
+ - uid: 1207
+ components:
+ - type: Transform
+ pos: 11.5,5.5
+ parent: 179
+ - uid: 1209
+ components:
+ - type: Transform
+ pos: 10.5,5.5
+ parent: 179
+ - uid: 1211
+ components:
+ - type: Transform
+ pos: 9.5,5.5
+ parent: 179
- uid: 1212
components:
- type: Transform
diff --git a/Resources/Prototypes/Actions/spider.yml b/Resources/Prototypes/Actions/spider.yml
index fc36e347372..fe37085ecab 100644
--- a/Resources/Prototypes/Actions/spider.yml
+++ b/Resources/Prototypes/Actions/spider.yml
@@ -6,7 +6,7 @@
- type: InstantAction
icon: Interface/Actions/web.png
event: !type:SpiderWebActionEvent
- useDelay: 30
+ useDelay: 25
- type: entity
id: ActionSericulture
diff --git a/Resources/Prototypes/Actions/types.yml b/Resources/Prototypes/Actions/types.yml
index 07d1a622ada..4b44b5f1e01 100644
--- a/Resources/Prototypes/Actions/types.yml
+++ b/Resources/Prototypes/Actions/types.yml
@@ -259,7 +259,7 @@
checkCanInteract: false
checkConsciousness: false
temporary: true
- icon: { sprite: Objects/Tools/multitool.rsi, state: icon }
+ icon: { sprite: _NF/Objects/Tools/multitool.rsi, state: icon } # Frontier: separate sprites (add _NF folder)
event: !type:ClearAllOverlaysEvent
- type: entity
diff --git a/Resources/Prototypes/Body/Organs/arachnid.yml b/Resources/Prototypes/Body/Organs/arachnid.yml
index 411b8de4e83..077db34e1c9 100644
--- a/Resources/Prototypes/Body/Organs/arachnid.yml
+++ b/Resources/Prototypes/Body/Organs/arachnid.yml
@@ -35,13 +35,6 @@
sprite: Mobs/Species/Arachnid/organs.rsi
state: stomach
- type: Stomach
- # specialDigestible:
- # tags:
- # - Fruit
- # - Pill
- # - BloodFood
- # - Crayon
- # - Soup
updateInterval: 1.5
- type: SolutionContainerManager
solutions:
diff --git a/Resources/Prototypes/Body/Organs/moth.yml b/Resources/Prototypes/Body/Organs/moth.yml
index 64d7690ef24..d214bb93efe 100644
--- a/Resources/Prototypes/Body/Organs/moth.yml
+++ b/Resources/Prototypes/Body/Organs/moth.yml
@@ -4,12 +4,12 @@
noSpawn: true
components:
- type: Stomach
- # specialDigestible:
- # tags:
- # - MothFood
- # - Fruit
- # - Pill
- # - Crayon
+ # specialDigestible: # Frontier
+ # tags: # Frontier
+ # - MothFood # Frontier
+ # - Fruit # Frontier
+ # - Pill # Frontier
+ # - Crayon # Frontier
- type: SolutionContainerManager
solutions:
stomach:
diff --git a/Resources/Prototypes/Body/Organs/reptilian.yml b/Resources/Prototypes/Body/Organs/reptilian.yml
index 9c350e23f32..3e3028c46a9 100644
--- a/Resources/Prototypes/Body/Organs/reptilian.yml
+++ b/Resources/Prototypes/Body/Organs/reptilian.yml
@@ -4,14 +4,14 @@
noSpawn: true
components:
- type: Stomach
- # specialDigestible:
- # tags:
- # - Fruit
- # - ReptilianFood
- # - Meat
- # - Pill
- # - Crayon
- # - Paper
+ # specialDigestible: # Frontier
+ # tags: # Frontier
+ # - Fruit # Frontier
+ # - ReptilianFood # Frontier
+ # - Meat # Frontier
+ # - Pill # Frontier
+ # - Crayon # Frontier
+ # - Paper # Frontier
- type: SolutionContainerManager
solutions:
stomach:
diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_engineering.yml b/Resources/Prototypes/Catalog/Cargo/cargo_engineering.yml
index c0408a55ad7..b34e1f02934 100644
--- a/Resources/Prototypes/Catalog/Cargo/cargo_engineering.yml
+++ b/Resources/Prototypes/Catalog/Cargo/cargo_engineering.yml
@@ -123,7 +123,7 @@
id: EngineeringRCDAmmo
abstract: true # Frontier
icon:
- sprite: Objects/Tools/rcd.rsi
+ sprite: _NF/Objects/Tools/rcd.rsi # Frontier
state: ammo
product: CrateRCDAmmo
cost: 2500
@@ -134,7 +134,7 @@
id: EngineeringRCD
abstract: true # Frontier
icon:
- sprite: Objects/Tools/rcd.rsi
+ sprite: _NF/Objects/Tools/rcd.rsi # Frontier
state: icon
product: CrateRCD
cost: 800
diff --git a/Resources/Prototypes/Catalog/Fills/Crates/armory.yml b/Resources/Prototypes/Catalog/Fills/Crates/armory.yml
index af7bfdb1429..d5aab237170 100644
--- a/Resources/Prototypes/Catalog/Fills/Crates/armory.yml
+++ b/Resources/Prototypes/Catalog/Fills/Crates/armory.yml
@@ -19,7 +19,7 @@
components:
- type: StorageFill
contents:
- - id: WeaponShotgunKammerer
+ - id: WeaponShotgunEnforcer
amount: 2
- id: BoxLethalshot
amount: 3
diff --git a/Resources/Prototypes/DeltaV/Body/Organs/vulpkanin.yml b/Resources/Prototypes/DeltaV/Body/Organs/vulpkanin.yml
index 01c60da6522..752bde43758 100644
--- a/Resources/Prototypes/DeltaV/Body/Organs/vulpkanin.yml
+++ b/Resources/Prototypes/DeltaV/Body/Organs/vulpkanin.yml
@@ -4,14 +4,6 @@
noSpawn: true
components:
- type: Stomach
- # specialDigestible:
- # tags:
- # - Fruit
- # - Meat
- # - Pill
- # - Egg
- # - Crayon
- # - Bread
- type: SolutionContainerManager
solutions:
stomach:
@@ -20,4 +12,4 @@
maxVol: 5
reagents:
- ReagentId: UncookedAnimalProteins
- Quantity: 5
+ Quantity: 5
\ No newline at end of file
diff --git a/Resources/Prototypes/DeltaV/Body/Parts/harpy.yml b/Resources/Prototypes/DeltaV/Body/Parts/harpy.yml
index 358cb1de11f..fa93f9efbbb 100644
--- a/Resources/Prototypes/DeltaV/Body/Parts/harpy.yml
+++ b/Resources/Prototypes/DeltaV/Body/Parts/harpy.yml
@@ -1,26 +1,37 @@
- type: entity
id: PartHarpy
- parent: BaseItem
+ parent: [BaseItem, BasePart] # Frontier: add BasePart, consistency with upstream
name: "harpy body part"
abstract: true
components:
- - type: Damageable
- damageContainer: Biological
- - type: BodyPart
- - type: ContainerContainer
- containers:
- bodypart: !type:Container
- ents: []
- - type: StaticPrice #DynamicPrice
- price: 100
- - type: Tag
- tags:
- - Trash
+ # Frontier: commented out lines below, inherited from BasePart
+ # - type: Damageable
+ # damageContainer: Biological
+ # - type: BodyPart
+ # - type: ContainerContainer
+ # containers:
+ # bodypart: !type:Container
+ # ents: []
+ # - type: StaticPrice #DynamicPrice
+ # price: 100
+ # - type: Tag
+ # tags:
+ # - Trash
+ # End Frontier: inherited from BasePart
+ # Frontier: added lines below, consistency with upstream
+ - type: Extractable
+ juiceSolution:
+ reagents:
+ - ReagentId: Fat
+ Quantity: 3
+ - ReagentId: Blood
+ Quantity: 10
+ # End Frontier: consistency with upstream
- type: entity
id: TorsoHarpy
name: "harpy torso"
- parent: PartHarpy
+ parent: [PartHarpy, BaseTorso] # Frontier: add BaseTorso
components:
- type: Sprite
netsync: false
@@ -29,13 +40,22 @@
- type: Icon
sprite: DeltaV/Mobs/Species/Harpy/parts.rsi
state: "torso_m"
- - type: BodyPart
- partType: Torso
+ # - type: BodyPart # Frontier: inherited from BaseTorso
+ # partType: Torso # Frontier: inherited from BaseTorso
+ # Frontier: added lines below, consistency with upstream
+ - type: Extractable
+ juiceSolution:
+ reagents:
+ - ReagentId: Fat
+ Quantity: 10
+ - ReagentId: Blood
+ Quantity: 20
+ # End Frontier: consistency with upstream
- type: entity
id: HeadHarpy
name: "harpy head"
- parent: PartHarpy
+ parent: [PartHarpy, BaseHead] # Frontier: add BaseHead
components:
- type: Sprite
netsync: false
@@ -44,21 +64,30 @@
- type: Icon
sprite: DeltaV/Mobs/Species/Harpy/parts.rsi
state: "head_m"
- - type: BodyPart
- partType: Head
- vital: true
- - type: Input
- context: "ghost"
- - type: InputMover
- - type: GhostOnMove
- - type: Tag
- tags:
- - Head
+ # - type: BodyPart # Frontier: inherited from BaseHead
+ # partType: Head # Frontier: inherited from BaseHead
+ # vital: true # Frontier: inherited from BaseHead
+ # - type: Input # Frontier: inherited from BaseHead
+ # context: "ghost" # Frontier: inherited from BaseHead
+ # - type: InputMover # Frontier: consistency with upstream (moved to the brain)
+ # - type: GhostOnMove # Frontier: consistency with upstream (added by BrainSystem)
+ # - type: Tag # Frontier: inherited from BaseHead
+ # tags: # Frontier: inherited from BaseHead
+ # - Head # Frontier: inherited from BaseHead
+ # Frontier: added lines below, consistency with upstream
+ - type: Extractable
+ juiceSolution:
+ reagents:
+ - ReagentId: Fat
+ Quantity: 5
+ - ReagentId: Blood
+ Quantity: 10
+ # End Frontier: consistency with upstream
- type: entity
id: LeftArmHarpy
name: "left harpy arm"
- parent: PartHarpy
+ parent: [PartHarpy, BaseLeftArm] # Frontier: add BaseLeftArm
components:
- type: Sprite
netsync: false
@@ -67,14 +96,14 @@
- type: Icon
sprite: DeltaV/Mobs/Species/Harpy/parts.rsi
state: "l_arm"
- - type: BodyPart
- partType: Arm
- symmetry: Left
+ # - type: BodyPart # Frontier: inherited from BaseLeftArm
+ # partType: Arm # Frontier: inherited from BaseLeftArm
+ # symmetry: Left # Frontier: inherited from BaseLeftArm
- type: entity
id: RightArmHarpy
name: "right harpy arm"
- parent: PartHarpy
+ parent: [PartHarpy, BaseRightArm] # Frontier: add BaseRightArm
components:
- type: Sprite
netsync: false
@@ -83,14 +112,14 @@
- type: Icon
sprite: DeltaV/Mobs/Species/Harpy/parts.rsi
state: "r_arm"
- - type: BodyPart
- partType: Arm
- symmetry: Right
+ # - type: BodyPart # Frontier: inherited from BaseRightArm
+ # partType: Arm # Frontier: inherited from BaseRightArm
+ # symmetry: Right # Frontier: inherited from BaseRightArm
- type: entity
id: LeftHandHarpy
name: "left harpy hand"
- parent: PartHarpy
+ parent: [PartHarpy, BaseLeftHand] # Frontier: add BaseLeftHand
components:
- type: Sprite
netsync: false
@@ -99,14 +128,14 @@
- type: Icon
sprite: DeltaV/Mobs/Species/Harpy/parts.rsi
state: "l_hand"
- - type: BodyPart
- partType: Hand
- symmetry: Left
+ # - type: BodyPart # Frontier: inherited from BaseLeftHand
+ # partType: Hand # Frontier: inherited from BaseLeftHand
+ # symmetry: Left # Frontier: inherited from BaseLeftHand
- type: entity
id: RightHandHarpy
name: "right harpy hand"
- parent: PartHarpy
+ parent: [PartHarpy, BaseRightHand] # Frontier: add BaseRightHand
components:
- type: Sprite
netsync: false
@@ -115,14 +144,14 @@
- type: Icon
sprite: DeltaV/Mobs/Species/Harpy/parts.rsi
state: "r_hand"
- - type: BodyPart
- partType: Hand
- symmetry: Right
+ # - type: BodyPart # Frontier: inherited from BaseRightHand
+ # partType: Hand # Frontier: inherited from BaseRightHand
+ # symmetry: Right # Frontier: inherited from BaseRightHand
- type: entity
id: LeftLegHarpy
name: "left harpy leg"
- parent: PartHarpy
+ parent: [PartHarpy, BaseLeftLeg] # Frontier: add BaseLeftLeg
components:
- type: Sprite
netsync: false
@@ -131,15 +160,15 @@
- type: Icon
sprite: DeltaV/Mobs/Species/Harpy/parts.rsi
state: "l_leg"
- - type: BodyPart
- partType: Leg
- symmetry: Left
- - type: MovementBodyPart
+ # - type: BodyPart # Frontier: inherited from BaseLeftLeg
+ # partType: Leg # Frontier: inherited from BaseLeftLeg
+ # symmetry: Left # Frontier: inherited from BaseLeftLeg
+ # - type: MovementBodyPart # Frontier: commented out for upstream consistency (handled elsewhere)
- type: entity
id: RightLegHarpy
name: "right harpy leg"
- parent: PartHarpy
+ parent: [PartHarpy, BaseRightLeg] # Frontier: add BaseRightLeg
components:
- type: Sprite
netsync: false
@@ -148,15 +177,15 @@
- type: Icon
sprite: DeltaV/Mobs/Species/Harpy/parts.rsi
state: "r_leg"
- - type: BodyPart
- partType: Leg
- symmetry: Right
- - type: MovementBodyPart
+ # - type: BodyPart # Frontier: inherited from BaseRightLeg
+ # partType: Leg # Frontier: inherited from BaseRightLeg
+ # symmetry: Right # Frontier: inherited from BaseRightLeg
+ # - type: MovementBodyPart # Frontier: commented out for upstream consistency (handled elsewhere)
- type: entity
id: LeftFootHarpy
name: "left harpy foot"
- parent: PartHarpy
+ parent: [PartHarpy, BaseLeftFoot] # Frontier: add BaseLeftFoot
components:
- type: Sprite
netsync: false
@@ -165,14 +194,14 @@
- type: Icon
sprite: DeltaV/Mobs/Species/Harpy/parts.rsi
state: "l_foot"
- - type: BodyPart
- partType: Foot
- symmetry: Left
+ # - type: BodyPart # Frontier: inherited from BaseLeftFoot
+ # partType: Foot # Frontier: inherited from BaseLeftFoot
+ # symmetry: Left # Frontier: inherited from BaseLeftFoot
- type: entity
id: RightFootHarpy
name: "right harpy foot"
- parent: PartHarpy
+ parent: [PartHarpy, BaseRightFoot] # Frontier: add BaseRightFoot
components:
- type: Sprite
netsync: false
@@ -181,6 +210,6 @@
- type: Icon
sprite: DeltaV/Mobs/Species/Harpy/parts.rsi
state: "r_foot"
- - type: BodyPart
- partType: Foot
- symmetry: Right
+ # - type: BodyPart # Frontier: inherited from BaseRightFoot
+ # partType: Foot # Frontier: inherited from BaseRightFoot
+ # symmetry: Right # Frontier: inherited from BaseRightFoot
\ No newline at end of file
diff --git a/Resources/Prototypes/DeltaV/Body/Parts/vulpkanin.yml b/Resources/Prototypes/DeltaV/Body/Parts/vulpkanin.yml
index a1ac59ede9d..d4257f64e4e 100644
--- a/Resources/Prototypes/DeltaV/Body/Parts/vulpkanin.yml
+++ b/Resources/Prototypes/DeltaV/Body/Parts/vulpkanin.yml
@@ -2,10 +2,25 @@
# TODO BODY: Part damage
- type: entity
id: PartVulpkanin
- parent: [BaseItem, BasePart]
+ parent: [BaseItem, BasePart] # Frontier: add BasePart, consistency with upstream
name: "vulpkanin body part"
abstract: true
components:
+ # Frontier: commented out lines below, inherited from BasePart
+ # - type: Damageable
+ # damageContainer: Biological
+ # - type: BodyPart
+ # - type: ContainerContainer
+ # containers:
+ # bodypart: !type:Container
+ # ents: []
+ # - type: StaticPrice #DynamicPrice
+ # price: 100
+ # - type: Tag
+ # tags:
+ # - Trash
+ # End Frontier: inherited from BasePart
+ # Frontier: added lines below, consistency with upstream
- type: Extractable
juiceSolution:
reagents:
@@ -13,16 +28,23 @@
Quantity: 3
- ReagentId: Blood
Quantity: 10
+ # End Frontier: consistency with upstream
- type: entity
id: TorsoVulpkanin
name: "vulpkanin torso"
- parent: [PartVulpkanin, BaseTorso]
+ parent: [PartVulpkanin, BaseTorso] # Frontier: add BaseTorso
components:
- type: Sprite
netsync: false
sprite: DeltaV/Mobs/Species/Vulpkanin/parts.rsi
state: "torso_m"
+ - type: Icon
+ sprite: DeltaV/Mobs/Species/Vulpkanin/parts.rsi
+ state: "torso_m"
+ # - type: BodyPart # Frontier: inherited from BaseTorso
+ # partType: Torso # Frontier: inherited from BaseTorso
+ # Frontier: added lines below, consistency with upstream
- type: Extractable
juiceSolution:
reagents:
@@ -30,16 +52,31 @@
Quantity: 10
- ReagentId: Blood
Quantity: 20
+ # End Frontier: consistency with upstream
- type: entity
id: HeadVulpkanin
name: "vulpkanin head"
- parent: [PartVulpkanin, BaseHead]
+ parent: [PartVulpkanin, BaseHead] # Frontier: add BaseHead
components:
- type: Sprite
netsync: false
sprite: DeltaV/Mobs/Species/Vulpkanin/parts.rsi
state: "head_m"
+ - type: Icon
+ sprite: DeltaV/Mobs/Species/Vulpkanin/parts.rsi
+ state: "head_m"
+ # - type: BodyPart # Frontier: inherited from BaseHead
+ # partType: Head # Frontier: inherited from BaseHead
+ # vital: true # Frontier: inherited from BaseHead
+ # - type: Input # Frontier: inherited from BaseHead
+ # context: "ghost" # Frontier: inherited from BaseHead
+ # - type: InputMover # Frontier: consistency with upstream (moved to the brain)
+ # - type: GhostOnMove # Frontier: consistency with upstream (added by BrainSystem)
+ # - type: Tag # Frontier: inherited from BaseHead
+ # tags: # Frontier: inherited from BaseHead
+ # - Head # Frontier: inherited from BaseHead
+ # Frontier: added lines below, consistency with upstream
- type: Extractable
juiceSolution:
reagents:
@@ -47,83 +84,134 @@
Quantity: 5
- ReagentId: Blood
Quantity: 10
+ # End Frontier: consistency with upstream
- type: entity
id: LeftArmVulpkanin
name: "left vulpkanin arm"
- parent: [PartVulpkanin, BaseLeftArm]
+ parent: [PartVulpkanin, BaseLeftArm] # Frontier: add BaseLeftArm
components:
- type: Sprite
netsync: false
sprite: DeltaV/Mobs/Species/Vulpkanin/parts.rsi
state: "l_arm"
+ - type: Icon
+ sprite: DeltaV/Mobs/Species/Vulpkanin/parts.rsi
+ state: "l_arm"
+ # - type: BodyPart # Frontier: inherited from BaseLeftArm
+ # partType: Arm # Frontier: inherited from BaseLeftArm
+ # symmetry: Left # Frontier: inherited from BaseLeftArm
- type: entity
id: RightArmVulpkanin
name: "right vulpkanin arm"
- parent: [PartVulpkanin, BaseRightArm]
+ parent: [PartVulpkanin, BaseRightArm] # Frontier: add BaseRightArm
components:
- type: Sprite
netsync: false
sprite: DeltaV/Mobs/Species/Vulpkanin/parts.rsi
state: "r_arm"
+ - type: Icon
+ sprite: DeltaV/Mobs/Species/Vulpkanin/parts.rsi
+ state: "r_arm"
+ # - type: BodyPart # Frontier: inherited from BaseRightArm
+ # partType: Arm # Frontier: inherited from BaseRightArm
+ # symmetry: Right # Frontier: inherited from BaseRightArm
- type: entity
id: LeftHandVulpkanin
- name: "left vulpkanin handpaw"
- parent: [PartVulpkanin, BaseLeftHand]
+ name: "left vulpkanin hand"
+ parent: [PartVulpkanin, BaseLeftHand] # Frontier: add BaseLeftHand
components:
- type: Sprite
netsync: false
sprite: DeltaV/Mobs/Species/Vulpkanin/parts.rsi
state: "l_hand"
+ - type: Icon
+ sprite: DeltaV/Mobs/Species/Vulpkanin/parts.rsi
+ state: "l_hand"
+ # - type: BodyPart # Frontier: inherited from BaseLeftHand
+ # partType: Hand # Frontier: inherited from BaseLeftHand
+ # symmetry: Left # Frontier: inherited from BaseLeftHand
- type: entity
id: RightHandVulpkanin
- name: "right vulpkanin handpaw"
- parent: [PartVulpkanin, BaseRightHand]
+ name: "right vulpkanin hand"
+ parent: [PartVulpkanin, BaseRightHand] # Frontier: add BaseRightHand
components:
- type: Sprite
netsync: false
sprite: DeltaV/Mobs/Species/Vulpkanin/parts.rsi
state: "r_hand"
+ - type: Icon
+ sprite: DeltaV/Mobs/Species/Vulpkanin/parts.rsi
+ state: "r_hand"
+ # - type: BodyPart # Frontier: inherited from BaseRightHand
+ # partType: Hand # Frontier: inherited from BaseRightHand
+ # symmetry: Right # Frontier: inherited from BaseRightHand
- type: entity
id: LeftLegVulpkanin
name: "left vulpkanin leg"
- parent: [PartVulpkanin, BaseLeftLeg]
+ parent: [PartVulpkanin, BaseLeftLeg] # Frontier: add BaseLeftLeg
components:
- type: Sprite
netsync: false
sprite: DeltaV/Mobs/Species/Vulpkanin/parts.rsi
state: "l_leg"
+ - type: Icon
+ sprite: DeltaV/Mobs/Species/Vulpkanin/parts.rsi
+ state: "l_leg"
+ # - type: BodyPart # Frontier: inherited from BaseLeftLeg
+ # partType: Leg # Frontier: inherited from BaseLeftLeg
+ # symmetry: Left # Frontier: inherited from BaseLeftLeg
+ # - type: MovementBodyPart # Frontier: commented out for upstream consistency (handled elsewhere)
- type: entity
id: RightLegVulpkanin
name: "right vulpkanin leg"
- parent: [PartVulpkanin, BaseRightLeg]
+ parent: [PartVulpkanin, BaseRightLeg] # Frontier: add BaseRightLeg
components:
- type: Sprite
netsync: false
sprite: DeltaV/Mobs/Species/Vulpkanin/parts.rsi
state: "r_leg"
+ - type: Icon
+ sprite: DeltaV/Mobs/Species/Vulpkanin/parts.rsi
+ state: "r_leg"
+ # - type: BodyPart # Frontier: inherited from BaseRightLeg
+ # partType: Leg # Frontier: inherited from BaseRightLeg
+ # symmetry: Right # Frontier: inherited from BaseRightLeg
+ # - type: MovementBodyPart # Frontier: commented out for upstream consistency (handled elsewhere)
- type: entity
id: LeftFootVulpkanin
- name: "left vulpkanin paw"
- parent: [PartVulpkanin, BaseLeftFoot]
+ name: "left vulpkanin foot"
+ parent: [PartVulpkanin, BaseLeftFoot] # Frontier: add BaseLeftFoot
components:
- type: Sprite
netsync: false
sprite: DeltaV/Mobs/Species/Vulpkanin/parts.rsi
state: "l_foot"
+ - type: Icon
+ sprite: DeltaV/Mobs/Species/Vulpkanin/parts.rsi
+ state: "l_foot"
+ # - type: BodyPart # Frontier: inherited from BaseLeftFoot
+ # partType: Foot # Frontier: inherited from BaseLeftFoot
+ # symmetry: Left # Frontier: inherited from BaseLeftFoot
- type: entity
id: RightFootVulpkanin
- name: "right vulpkanin paw"
- parent: [PartVulpkanin, BaseRightFoot]
+ name: "right vulpkanin foot"
+ parent: [PartVulpkanin, BaseRightFoot] # Frontier: add BaseRightFoot
components:
- type: Sprite
netsync: false
sprite: DeltaV/Mobs/Species/Vulpkanin/parts.rsi
state: "r_foot"
+ - type: Icon
+ sprite: DeltaV/Mobs/Species/Vulpkanin/parts.rsi
+ state: "r_foot"
+ # - type: BodyPart # Frontier: inherited from BaseRightFoot
+ # partType: Foot # Frontier: inherited from BaseRightFoot
+ # symmetry: Right # Frontier: inherited from BaseRightFoot
\ No newline at end of file
diff --git a/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml b/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml
index 9142ba1fdb0..45d1ed8bf45 100644
--- a/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml
+++ b/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml
@@ -30,7 +30,6 @@
amount: 5
- type: Inventory
templateId: arachnid
- - type: Carriable # Carrying system from nyanotrasen.
- type: Reactive
reactions:
- reagents: [Water]
@@ -46,10 +45,6 @@
# Damage (Self)
- type: Bloodstream
bloodReagent: CopperBlood
- - type: ArachnidChaos
- - type: Spider
- - type: IgnoreSpiderWeb
- - type: Perishable
# Damage (Others)
- type: MeleeWeapon
animation: WeaponArcBite
@@ -127,6 +122,7 @@
sprite: "Effects/creampie.rsi"
state: "creampie_arachnid"
visible: false
+ - type: Carriable # Carrying system from nyanotrasen.
- type: entity
parent: BaseSpeciesDummy
@@ -136,4 +132,4 @@
- type: HumanoidAppearance
species: Arachnid
-#88w88
+#88w88
\ No newline at end of file
diff --git a/Resources/Prototypes/Entities/Objects/Devices/chameleon_projector.yml b/Resources/Prototypes/Entities/Objects/Devices/chameleon_projector.yml
index 20e138f81a0..9b10c1bee32 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/chameleon_projector.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/chameleon_projector.yml
@@ -64,6 +64,6 @@
components:
- type: InstantAction
icon:
- sprite: Objects/Tools/wrench.rsi
+ sprite: _NF/Objects/Tools/wrench.rsi # Frontier: separate sprites (add _NF folder)
state: icon
event: !type:DisguiseToggleAnchoredEvent
diff --git a/Resources/Prototypes/Entities/Objects/Misc/pen.yml b/Resources/Prototypes/Entities/Objects/Misc/pen.yml
index 6a51fbfb626..49566cac178 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/pen.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/pen.yml
@@ -20,7 +20,7 @@
Steel: 25
- type: Stamp # Frontier
stampedColor: "#000001" # Frontier
- stampState: "paper_stamp-generic" # Frontier
+ stampState: "paper_stamp-nf-signature" # Frontier
sound: # Frontier
path: /Audio/Items/Paper/paper_scribble1.ogg # Frontier
params: # Frontier
diff --git a/Resources/Prototypes/Entities/Objects/Misc/spider_web.yml b/Resources/Prototypes/Entities/Objects/Misc/spider_web.yml
index 82f99635905..66273c6b6d1 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/spider_web.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/spider_web.yml
@@ -108,8 +108,6 @@
- type: Transform
anchored: true
- type: Slippery
- paralyzeTime: 2
- launchForwardsMultiplier: 1.5
- type: StepTrigger
intersectRatio: 0.2
- type: Physics
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml
index b7e968752f1..55da02d23c9 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml
@@ -202,19 +202,7 @@
components:
- type: Tag
tags:
- - BloodFood
- Bloodpack
- - type: Food
- requiresSpecialDigestion: true
- - type: SolutionContainerManager
- solutions:
- food:
- maxVol: 5
- reagents:
- - ReagentId: Nutriment
- Quantity: 5
- - ReagentId: Fat
- Quantity: 5
- type: Sprite
state: bloodpack
- type: Healing
@@ -232,7 +220,7 @@
stackType: Bloodpack
count: 10
- type: StackPrice
- price: 5
+ price: 5 # Frontier 10<5
- type: entity
parent: Bloodpack
@@ -299,7 +287,7 @@
stackType: Gauze
count: 10
- type: StackPrice
- price: 5
+ price: 5 # Frontier 10<5
- type: entity
id: Gauze1
@@ -990,4 +978,4 @@
maxVol: 15
reagents:
- ReagentId: Stimulants
- Quantity: 15
+ Quantity: 15
\ No newline at end of file
diff --git a/Resources/Prototypes/Entities/Objects/Tools/tools.yml b/Resources/Prototypes/Entities/Objects/Tools/tools.yml
index fd64f51f850..e392e44fefd 100644
--- a/Resources/Prototypes/Entities/Objects/Tools/tools.yml
+++ b/Resources/Prototypes/Entities/Objects/Tools/tools.yml
@@ -101,12 +101,12 @@
tags:
- Wrench
- type: Sprite
- sprite: Objects/Tools/wrench.rsi
+ sprite: _NF/Objects/Tools/wrench.rsi # Frontier: separate sprites (add _NF folder)
state: icon
- type: Item
- sprite: Objects/Tools/wrench.rsi
+ sprite: _NF/Objects/Tools/wrench.rsi # Frontier: separate sprites (add _NF folder)
storedSprite:
- sprite: Objects/Tools/wrench.rsi
+ sprite: _NF/Objects/Tools/wrench.rsi # Frontier: separate sprites (add _NF folder)
state: storage
- type: MeleeWeapon
wideAnimationRotation: 135
@@ -140,13 +140,13 @@
tags:
- Crowbar
- type: Sprite
- sprite: Objects/Tools/crowbar.rsi
+ sprite: _NF/Objects/Tools/crowbar.rsi # Frontier: separate sprites (add _NF folder)
state: icon
- type: Item
- sprite: Objects/Tools/crowbar.rsi
+ sprite: _NF/Objects/Tools/crowbar.rsi # Frontier: separate sprites (add _NF folder)
size: Small
storedSprite:
- sprite: Objects/Tools/crowbar.rsi
+ sprite: _NF/Objects/Tools/crowbar.rsi # Frontier: separate sprites (add _NF folder)
state: storage
- type: MeleeWeapon
wideAnimationRotation: -135
@@ -182,7 +182,7 @@
- type: Item
heldPrefix: red
storedSprite:
- sprite: Objects/Tools/crowbar.rsi
+ sprite: _NF/Objects/Tools/crowbar.rsi # Frontier: separate sprites (add _NF folder)
state: red-storage
- type: entity
@@ -195,14 +195,15 @@
sound:
path: /Audio/Items/multitool_drop.ogg
- type: Sprite
- sprite: Objects/Tools/multitool.rsi
+ sprite: _NF/Objects/Tools/multitool.rsi # Frontier: separate sprites (add _NF folder)
layers:
- state: icon
- state: green-unlit
+ shader: unshaded
- type: Item
size: Small
- type: Clothing
- sprite: Objects/Tools/multitool.rsi
+ sprite: _NF/Objects/Tools/multitool.rsi # Frontier: separate sprites (add _NF folder)
quickEquip: false
slots:
- Belt
@@ -371,12 +372,12 @@
charges: 30
- type: UseDelay
- type: Sprite
- sprite: Objects/Tools/rcd.rsi
+ sprite: _NF/Objects/Tools/rcd.rsi # Frontier
state: icon
- type: Item
size: Normal
- type: Clothing
- sprite: Objects/Tools/rcd.rsi
+ sprite: _NF/Objects/Tools/rcd.rsi # Frontier
quickEquip: false
slots:
- Belt
@@ -447,10 +448,10 @@
components:
- type: RCDAmmo
- type: Sprite
- sprite: Objects/Tools/rcd.rsi
+ sprite: _NF/Objects/Tools/rcd.rsi # Frontier
state: ammo
- type: Item
- sprite: Objects/Tools/rcd.rsi
+ sprite: _NF/Objects/Tools/rcd.rsi # Frontier
heldPrefix: ammo
- type: PhysicalComposition
materialComposition:
@@ -458,6 +459,7 @@
Plastic: 100
- type: StaticPrice
price: 40
+ vendPrice: 1000 # Frontier
- type: entity
name: omnitool
diff --git a/Resources/Prototypes/Entities/Structures/Decoration/banners.yml b/Resources/Prototypes/Entities/Structures/Decoration/banners.yml
index dfcb9705ac8..fee85fe10d0 100644
--- a/Resources/Prototypes/Entities/Structures/Decoration/banners.yml
+++ b/Resources/Prototypes/Entities/Structures/Decoration/banners.yml
@@ -6,7 +6,7 @@
abstract: true
components:
- type: Sprite
- sprite: Structures/Decoration/banner.rsi
+ sprite: _NF/Structures/Decoration/banner.rsi # Frontier - unique sprites
state: banner
noRot: true
- type: Transform
@@ -51,7 +51,7 @@
description: A banner displaying the Nanotrasen logo. It looks rather cheap.
components:
- type: Sprite
- sprite: Structures/Decoration/banner.rsi
+ sprite: _NF/Structures/Decoration/banner.rsi # Frontier - unique sprites
state: banner
- type: Construction # Frontier
graph: BannersGraph # Frontier
@@ -64,7 +64,7 @@
description: A banner displaying the colors of the cargo department. # Frontier - description change
components:
- type: Sprite
- sprite: Structures/Decoration/banner.rsi
+ sprite: _NF/Structures/Decoration/banner.rsi # Frontier - unique sprites
state: banner_cargo
- type: Construction # Frontier
graph: BannersGraph # Frontier
@@ -77,7 +77,7 @@
description: A banner displaying the colors of the engineering department. Scrungularty.
components:
- type: Sprite
- sprite: Structures/Decoration/banner.rsi
+ sprite: _NF/Structures/Decoration/banner.rsi # Frontier - unique sprites
state: banner_engineering
- type: Construction # Frontier
graph: BannersGraph # Frontier
@@ -90,7 +90,7 @@
description: A banner displaying the colors of the medical department. How sterile.
components:
- type: Sprite
- sprite: Structures/Decoration/banner.rsi
+ sprite: _NF/Structures/Decoration/banner.rsi # Frontier - unique sprites
state: banner_medical
- type: Construction # Frontier
graph: BannersGraph # Frontier
@@ -103,7 +103,7 @@
description: A banner displaying revolution. Viva!
components:
- type: Sprite
- sprite: Structures/Decoration/banner.rsi
+ sprite: _NF/Structures/Decoration/banner.rsi # Frontier - unique sprites
state: banner_revolution
- type: Construction # Frontier
graph: BannersGraph # Frontier
@@ -116,7 +116,7 @@
description: A banner from which, according to the syndicate, you should feel hatred for NT.
components:
- type: Sprite
- sprite: Structures/Decoration/banner.rsi
+ sprite: _NF/Structures/Decoration/banner.rsi # Frontier - unique sprites
state: banner_syndicate
- type: Construction # Frontier
graph: BannersGraph # Frontier
@@ -129,7 +129,7 @@
description: A banner displaying the colors of the science department. Where science has no bounds, and regulations are rarely followed.
components:
- type: Sprite
- sprite: Structures/Decoration/banner.rsi
+ sprite: _NF/Structures/Decoration/banner.rsi # Frontier - unique sprites
state: banner_science
- type: Construction # Frontier
graph: BannersGraph # Frontier
@@ -142,7 +142,7 @@
description: A banner displaying the colors of the security department. # Frontier - description change
components:
- type: Sprite
- sprite: Structures/Decoration/banner.rsi
+ sprite: _NF/Structures/Decoration/banner.rsi # Frontier - unique sprites
state: banner_security
- type: Construction # Frontier
graph: BannersGraph # Frontier
@@ -155,7 +155,7 @@
description: A banner displaying the color blue. Dabudidabudai.
components:
- type: Sprite
- sprite: Structures/Decoration/banner.rsi
+ sprite: _NF/Structures/Decoration/banner.rsi # Frontier - unique sprites
state: banner-blue
- type: Construction # Frontier
graph: BannersGraph # Frontier
@@ -168,7 +168,7 @@
description: A banner displaying the color red. The edgy one.
components:
- type: Sprite
- sprite: Structures/Decoration/banner.rsi
+ sprite: _NF/Structures/Decoration/banner.rsi # Frontier - unique sprites
state: banner-red
- type: Construction # Frontier
graph: BannersGraph # Frontier
@@ -181,7 +181,7 @@
description: A banner displaying the color yellow. Reminds you of ducks and lemon stands.
components:
- type: Sprite
- sprite: Structures/Decoration/banner.rsi
+ sprite: _NF/Structures/Decoration/banner.rsi # Frontier - unique sprites
state: banner-yellow
- type: Construction # Frontier
graph: BannersGraph # Frontier
@@ -194,7 +194,7 @@
description: A banner displaying the color green. Grass, leaves, guacamole.
components:
- type: Sprite
- sprite: Structures/Decoration/banner.rsi
+ sprite: _NF/Structures/Decoration/banner.rsi # Frontier - unique sprites
state: banner-green
- type: Construction # Frontier
graph: BannersGraph # Frontier
diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml
index 5daa62309ab..5d958339e0c 100644
--- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml
+++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml
@@ -138,6 +138,9 @@
- board
- type: PlacementReplacement
key: walls
+ - type: IconSmooth
+ key: walls
+ mode: NoSprite
- type: PaintableAirlock
group: Standard
department: Civilian
@@ -202,4 +205,4 @@
- type: Tag
tags:
- GlassAirlock
- # This tag is used to nagivate the Airlock construction graph. It's needed because the construction graph is shared between Airlock, AirlockGlass, and HighSecDoor
+ # This tag is used to nagivate the Airlock construction graph. It's needed because the construction graph is shared between Airlock, AirlockGlass, and HighSecDoor
\ No newline at end of file
diff --git a/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml b/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml
index 89ba86751a5..8d1e36f59e9 100644
--- a/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml
+++ b/Resources/Prototypes/Entities/Structures/Doors/MaterialDoors/material_doors.yml
@@ -55,6 +55,9 @@
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
+ - type: IconSmooth
+ key: walls
+ mode: NoSprite
- type: Occluder
- type: BlockWeather
@@ -246,4 +249,4 @@
closeSound:
path: /Audio/Effects/rustle1.ogg
openSound:
- path: /Audio/Effects/rustle2.ogg
+ path: /Audio/Effects/rustle2.ogg
\ No newline at end of file
diff --git a/Resources/Prototypes/Entities/Structures/Doors/Shutter/shutters.yml b/Resources/Prototypes/Entities/Structures/Doors/Shutter/shutters.yml
index 91404cf5191..61252cda930 100644
--- a/Resources/Prototypes/Entities/Structures/Doors/Shutter/shutters.yml
+++ b/Resources/Prototypes/Entities/Structures/Doors/Shutter/shutters.yml
@@ -72,6 +72,9 @@
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
+ - type: IconSmooth
+ key: walls
+ mode: NoSprite
- type: DoorSignalControl
- type: DeviceNetwork
deviceNetId: Wireless
@@ -233,4 +236,4 @@
layer:
- HighImpassable
- type: Transform
- noRot: true
+ noRot: true
\ No newline at end of file
diff --git a/Resources/Prototypes/Entities/Structures/Furniture/beds.yml b/Resources/Prototypes/Entities/Structures/Furniture/beds.yml
index 4207ee029dd..a01d21ab38b 100644
--- a/Resources/Prototypes/Entities/Structures/Furniture/beds.yml
+++ b/Resources/Prototypes/Entities/Structures/Furniture/beds.yml
@@ -178,17 +178,4 @@
spawn:
MaterialWoodPlank:
min: 2
- max: 2
-
-- type: entity
- parent: WebBed
- id: WebNest
- name: web nest
- description: You got webbed.
- components:
- - type: Sprite
- sprite: Structures/Web/nest.rsi
- state: icon
- - type: Construction
- graph: WebStructures
- node: nest
+ max: 2
\ No newline at end of file
diff --git a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml
index 3e9b026a307..646cff765da 100644
--- a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml
+++ b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/unary.yml
@@ -39,7 +39,7 @@
- type: Sprite
drawdepth: FloorObjects
sprite: _NF/Structures/Piping/Atmospherics/vent.rsi # Frontier
- noRot: true
+ noRot: true # Frontier
layers:
- sprite: Structures/Piping/Atmospherics/pipe.rsi
state: pipeHalf
@@ -81,7 +81,7 @@
- type: Sprite
drawdepth: FloorObjects
sprite: _NF/Structures/Piping/Atmospherics/vent.rsi # Frontier
- noRot: true
+ noRot: true # Frontier
layers:
- sprite: Structures/Piping/Atmospherics/pipe.rsi
state: pipeHalf
@@ -114,7 +114,7 @@
- type: Sprite
drawdepth: FloorObjects
sprite: _NF/Structures/Piping/Atmospherics/scrubber.rsi # Frontier
- noRot: true
+ noRot: true # Frontier
layers:
- sprite: Structures/Piping/Atmospherics/pipe.rsi
state: pipeHalf
diff --git a/Resources/Prototypes/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/Entities/Structures/Walls/walls.yml
index cdbcb29fad0..ccb05e5d6c8 100644
--- a/Resources/Prototypes/Entities/Structures/Walls/walls.yml
+++ b/Resources/Prototypes/Entities/Structures/Walls/walls.yml
@@ -46,7 +46,7 @@
- type: Occluder
- type: Airtight
- type: StaticPrice
- price: 25
+ price: 25 # Frontier 75<25
- type: RadiationBlocker
resistance: 2
- type: BlockWeather
@@ -462,8 +462,6 @@
- type: IconSmooth
key: walls
base: plastitanium
-# - type: Reflect # Frontier
-# reflectProb: 0.75 # Frontier
- type: entity
parent: WallPlastitaniumIndestructible
@@ -487,8 +485,6 @@
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
-# - type: Reflect # Frontier
-# reflectProb: 0.15 # Frontier
- type: entity
parent: WallShuttleDiagonal
@@ -511,8 +507,6 @@
- type: Icon
sprite: Structures/Walls/plastitanium_diagonal.rsi
state: state0
-# - type: Reflect # Frontier
-# reflectProb: 0.15 # Frontier
- type: entity
parent: BaseWall
@@ -569,7 +563,7 @@
5: { state: reinf_construct-5, visible: true}
- type: ReinforcedWallReplacementMarker
- type: StaticPrice
- price: 50
+ price: 50 # Frontier 150<50
- type: RadiationBlocker
resistance: 5
@@ -591,27 +585,27 @@
key: walls
base: reinf_over
-# - type: entity
- # parent: WallShuttleDiagonal
- # id: WallReinforcedDiagonal
- # name: reinforced wall
- # suffix: diagonal
- # placement:
- # mode: SnapgridCenter
- # snap:
- # - Wall
- # components:
- # - type: Sprite
- # drawdepth: Walls
- # sprite: Structures/Walls/reinforced_diagonal.rsi
- # state: state0
- # - type: IconSmooth
- # mode: Diagonal
- # key: walls
- # base: state
- # - type: Icon
- # sprite: Structures/Walls/reinforced_diagonal.rsi
- # state: state0
+- type: entity
+ parent: WallShuttleDiagonal
+ id: WallReinforcedDiagonal
+ name: reinforced wall
+ suffix: diagonal
+ placement:
+ mode: SnapgridCenter
+ snap:
+ - Wall
+ components:
+ - type: Sprite
+ drawdepth: Walls
+ sprite: _NF/Structures/Walls/reinforced_diagonal.rsi # Frontier: _NF folder
+ state: state0
+ - type: IconSmooth
+ mode: DiagonalNF # Frontier: Diagonal