diff --git a/Content.IntegrationTests/Tests/_CP14/CP14CargoTest.cs b/Content.IntegrationTests/Tests/_CP14/CP14CargoTest.cs new file mode 100644 index 0000000000..b05f45d2a0 --- /dev/null +++ b/Content.IntegrationTests/Tests/_CP14/CP14CargoTest.cs @@ -0,0 +1,37 @@ +using System.Collections.Generic; +using Content.Shared._CP14.TravelingStoreShip.Prototype; +using Robust.Shared.GameObjects; +using Robust.Shared.Prototypes; + +namespace Content.IntegrationTests.Tests._CP14; + +#nullable enable + +[TestFixture] +public sealed class CP14CargoTest +{ + [Test] + public async Task CheckAllBuyPositionsUniqueCode() + { + await using var pair = await PoolManager.GetServerClient(); + var server = pair.Server; + + var compFactory = server.ResolveDependency(); + var protoManager = server.ResolveDependency(); + + await server.WaitAssertion(() => + { + Assert.Multiple(() => + { + HashSet existedCodes = new(); + + foreach (var proto in protoManager.EnumeratePrototypes()) + { + Assert.That(!existedCodes.Contains(proto.Code), $"Repeated purchasing code {proto.Code} of the {proto}"); + existedCodes.Add(proto.Code); + } + }); + }); + await pair.CleanReturnAsync(); + } +} diff --git a/Content.IntegrationTests/Tests/_CP14/CP14EntityTest.cs b/Content.IntegrationTests/Tests/_CP14/CP14EntityTest.cs new file mode 100644 index 0000000000..e1b3697774 --- /dev/null +++ b/Content.IntegrationTests/Tests/_CP14/CP14EntityTest.cs @@ -0,0 +1,41 @@ +using Robust.Shared.GameObjects; +using Robust.Shared.Prototypes; + +namespace Content.IntegrationTests.Tests._CP14; + +#nullable enable + +[TestFixture] +public sealed class CP14EntityTest +{ + [Test] + public async Task CheckAllCP14EntityHasForkFilteredCategory() + { + await using var pair = await PoolManager.GetServerClient(); + var server = pair.Server; + + var compFactory = server.ResolveDependency(); + var protoManager = server.ResolveDependency(); + + await server.WaitAssertion(() => + { + Assert.Multiple(() => + { + if (!protoManager.TryIndex("ForkFiltered", out var indexedFilter)) + return; + + foreach (var proto in protoManager.EnumeratePrototypes()) + { + if (!proto.ID.StartsWith("CP14")) + continue; + + if (proto.Abstract || proto.HideSpawnMenu) + continue; + + Assert.That(proto.Categories.Contains(indexedFilter), $"CP14 fork proto: {proto} does not marked abstract, or have a HideSpawnMenu or ForkFiltered category"); + } + }); + }); + await pair.CleanReturnAsync(); + } +} diff --git a/Content.IntegrationTests/Tests/_CP14/CP14RitualTest.cs b/Content.IntegrationTests/Tests/_CP14/CP14RitualTest.cs index e22685fa46..3a61bbe320 100644 --- a/Content.IntegrationTests/Tests/_CP14/CP14RitualTest.cs +++ b/Content.IntegrationTests/Tests/_CP14/CP14RitualTest.cs @@ -42,7 +42,7 @@ public sealed class CP14RitualTest foreach (var edge in phase.Edges) { - Assert.That(edge.Triggers.Count > 0, $"{{proto}} is ritual node, but edge to {edge.Target} has no triggers and cannot be activated."); + Assert.That(edge.Triggers.Count > 0, $"{proto} is ritual node, but edge to {edge.Target} has no triggers and cannot be activated."); } } }); diff --git a/Content.Server/_CP14/Currency/CP14CurrencySystem.cs b/Content.Server/_CP14/Currency/CP14CurrencySystem.cs index 78b0d56174..e3a9f3922d 100644 --- a/Content.Server/_CP14/Currency/CP14CurrencySystem.cs +++ b/Content.Server/_CP14/Currency/CP14CurrencySystem.cs @@ -149,11 +149,6 @@ public sealed partial class CP14CurrencySystem : CP14SharedCurrencySystem args.Verbs.Add(platinumVerb); } - public HashSet GenerateMoney(EntProtoId currencyType, int target, EntityCoordinates coordinates) - { - return GenerateMoney(currencyType, target, coordinates, out _); - } - public HashSet GenerateMoney(EntProtoId currencyType, int target, EntityCoordinates coordinates, out int remainder) { remainder = target; @@ -189,18 +184,18 @@ public sealed partial class CP14CurrencySystem : CP14SharedCurrencySystem spawns.Add(ent); remainder -= singleCurrency; - if (TryComp(ent, out var stack)) + if (TryComp(ent, out var stack) && _proto.TryIndex(stack.StackTypeId, out var indexedStack)) { - AdjustStack(ent, stack, singleCurrency, ref remainder); + AdjustStack(ent, stack, indexedStack, singleCurrency, ref remainder); } return false; } - private void AdjustStack(EntityUid ent, StackComponent stack, float singleCurrency, ref int remainder) + private void AdjustStack(EntityUid ent, StackComponent stack, StackPrototype stackProto, float singleCurrency, ref int remainder) { var singleStackCurrency = singleCurrency / stack.Count; - var stackLeftSpace = stack.MaxCountOverride - stack.Count; + var stackLeftSpace = stackProto.MaxCount - stack.Count; if (stackLeftSpace is not null) { diff --git a/Content.Server/_CP14/TravelingStoreShip/CP14CargoSystem.Shuttle.cs b/Content.Server/_CP14/TravelingStoreShip/CP14CargoSystem.Shuttle.cs index ca94a5456b..39928fd393 100644 --- a/Content.Server/_CP14/TravelingStoreShip/CP14CargoSystem.Shuttle.cs +++ b/Content.Server/_CP14/TravelingStoreShip/CP14CargoSystem.Shuttle.cs @@ -25,22 +25,25 @@ public sealed partial class CP14CargoSystem if (_timing.CurTime < ship.NextTravelTime || ship.NextTravelTime == TimeSpan.Zero) continue; - if (Transform(ship.Shuttle).MapUid == Transform(ship.TradePostMap).MapUid) + if (ship.Shuttle is null || ship.TradePostMap is null) + continue; + + if (Transform(ship.Shuttle.Value).MapUid == Transform(ship.TradePostMap.Value).MapUid) { // if landed on trade post ship.NextTravelTime = _timing.CurTime + ship.StationWaitTime; - SendShuttleToStation((uid, ship)); + SendShuttleToStation(ship.Shuttle.Value); } else { // if landed on station ship.NextTravelTime = _timing.CurTime + ship.TradePostWaitTime; - SendShuttleToTradepost((uid, ship)); + SendShuttleToTradepost(ship.Shuttle.Value, ship.TradePostMap.Value); } } } - private void SendShuttleToStation(Entity station, float startupTime = 0f) + private void SendShuttleToStation(EntityUid shuttle, float startupTime = 0f) { var targetPoints = new List(); var targetEnumerator = EntityQueryEnumerator(); //TODO - different method position location @@ -54,16 +57,16 @@ public sealed partial class CP14CargoSystem var target = _random.Pick(targetPoints); var targetXform = Transform(target); - var shuttleComp = Comp(station.Comp.Shuttle); + var shuttleComp = Comp(shuttle); - _shuttles.FTLToCoordinates(station.Comp.Shuttle, shuttleComp, targetXform.Coordinates, targetXform.LocalRotation, hyperspaceTime: 5f, startupTime: startupTime); + _shuttles.FTLToCoordinates(shuttle, shuttleComp, targetXform.Coordinates, targetXform.LocalRotation, hyperspaceTime: 5f, startupTime: startupTime); } - private void SendShuttleToTradepost(Entity station) + private void SendShuttleToTradepost(EntityUid shuttle, EntityUid tradePostMap) { - var shuttleComp = Comp(station.Comp.Shuttle); + var shuttleComp = Comp(shuttle); - _shuttles.FTLToCoordinates(station.Comp.Shuttle, shuttleComp, new EntityCoordinates(station.Comp.TradePostMap, Vector2.Zero), Angle.Zero, hyperspaceTime: 5f); + _shuttles.FTLToCoordinates(shuttle, shuttleComp, new EntityCoordinates(tradePostMap, Vector2.Zero), Angle.Zero, hyperspaceTime: 5f); } private void OnFTLCompleted(Entity ent, ref FTLCompletedEvent args) @@ -71,16 +74,23 @@ public sealed partial class CP14CargoSystem if (!TryComp(ent.Comp.Station, out var station)) return; - if (Transform(ent).MapUid == Transform(station.TradePostMap).MapUid) //Landed on tradepost + if (station.TradePostMap is not null && Transform(ent).MapUid == Transform(station.TradePostMap.Value).MapUid) //Landed on tradepost { station.OnStation = false; - SellingThings((ent.Comp.Station, station)); + var b = station.Balance; + + SellingThings((ent.Comp.Station, station)); // +balance + TopUpBalance((ent.Comp.Station, station)); //+balance + BuyToQueue((ent.Comp.Station, station)); //-balance +buyQueue + TrySpawnBuyedThings((ent.Comp.Station, station)); UpdateStorePositions((ent.Comp.Station, station)); } else //Landed on station { station.OnStation = true; + + CashOut((ent.Comp.Station, station)); } UpdateAllStores(); } diff --git a/Content.Server/_CP14/TravelingStoreShip/CP14CargoSystem.UI.cs b/Content.Server/_CP14/TravelingStoreShip/CP14CargoSystem.UI.cs index 74a692869a..dc33270c33 100644 --- a/Content.Server/_CP14/TravelingStoreShip/CP14CargoSystem.UI.cs +++ b/Content.Server/_CP14/TravelingStoreShip/CP14CargoSystem.UI.cs @@ -6,7 +6,7 @@ namespace Content.Server._CP14.TravelingStoreShip; public sealed partial class CP14CargoSystem { - public void InitializeStore() + public void InitializeUI() { SubscribeLocalEvent(OnBeforeUIOpen); } @@ -27,15 +27,17 @@ public sealed partial class CP14CargoSystem private void OnBeforeUIOpen(Entity ent, ref BeforeActivatableUIOpenEvent args) { + //TODO: If you open a store on a mapping, and initStore() it, the entity will throw an error when you try to save the grid\map. + if (ent.Comp.Station is null) TryInitStore(ent); UpdateUIProducts(ent); } - //TODO: redo private void UpdateAllStores() { + //TODO: redo var query = EntityQueryEnumerator(); while (query.MoveNext(out var uid, out var store)) { @@ -53,32 +55,30 @@ public sealed partial class CP14CargoSystem foreach (var proto in ent.Comp.Station.Value.Comp.CurrentBuyPositions) { - if (!_proto.TryIndex(proto.Key, out var indexedProto)) - continue; - var name = Loc.GetString(indexedProto.Name); + var name = Loc.GetString(proto.Key.Name); var desc = new StringBuilder(); - desc.Append(Loc.GetString(indexedProto.Desc) + "\n"); - foreach (var service in indexedProto.Services) + desc.Append(Loc.GetString(proto.Key.Desc) + "\n"); + foreach (var service in proto.Key.Services) { desc.Append(service.GetDescription(_proto, EntityManager)); } - prodBuy.Add(new CP14StoreUiProductEntry(proto.Key.Id, indexedProto.Icon, name, desc.ToString(), proto.Value)); + desc.Append("\n" + Loc.GetString("cp14-store-buy-hint", ("name", Loc.GetString(proto.Key.Name)), ("code", "#" + proto.Key.Code))); + + prodBuy.Add(new CP14StoreUiProductEntry(proto.Key.ID, proto.Key.Icon, name, desc.ToString(), proto.Value)); } foreach (var proto in ent.Comp.Station.Value.Comp.CurrentSellPositions) { - if (!_proto.TryIndex(proto.Key, out var indexedProto)) - continue; - - var name = Loc.GetString(indexedProto.Name); + var name = Loc.GetString(proto.Key.Name); var desc = new StringBuilder(); - desc.Append(Loc.GetString(indexedProto.Desc) + "\n"); - desc.Append(indexedProto.Service.GetDescription(_proto, EntityManager)); + desc.Append(Loc.GetString(proto.Key.Desc) + "\n"); + desc.Append(proto.Key.Service.GetDescription(_proto, EntityManager) + "\n"); + desc.Append("\n" + Loc.GetString("cp14-store-sell-hint", ("name", Loc.GetString(proto.Key.Name)))); - prodSell.Add(new CP14StoreUiProductEntry(proto.Key.Id, indexedProto.Icon, name, desc.ToString(), proto.Value)); + prodSell.Add(new CP14StoreUiProductEntry(proto.Key.ID, proto.Key.Icon, name, desc.ToString(), proto.Value)); } var stationComp = ent.Comp.Station.Value.Comp; diff --git a/Content.Server/_CP14/TravelingStoreShip/CP14CargoSystem.cs b/Content.Server/_CP14/TravelingStoreShip/CP14CargoSystem.cs index c6c3ac855b..a7e38c7f0f 100644 --- a/Content.Server/_CP14/TravelingStoreShip/CP14CargoSystem.cs +++ b/Content.Server/_CP14/TravelingStoreShip/CP14CargoSystem.cs @@ -5,6 +5,10 @@ using Content.Server.Station.Systems; using Content.Shared._CP14.Currency; using Content.Shared._CP14.TravelingStoreShip; using Content.Shared._CP14.TravelingStoreShip.Prototype; +using Content.Shared.Maps; +using Content.Shared.Paper; +using Content.Shared.Physics; +using Content.Shared.Storage; using Content.Shared.Storage.EntitySystems; using Robust.Server.GameObjects; using Robust.Shared.Map; @@ -28,6 +32,7 @@ public sealed partial class CP14CargoSystem : CP14SharedCargoSystem [Dependency] private readonly EntityLookupSystem _lookup = default!; [Dependency] private readonly CP14CurrencySystem _currency = default!; [Dependency] private readonly SharedStorageSystem _storage = default!; + [Dependency] private readonly TurfSystem _turf = default!; private EntityQuery _xformQuery; @@ -38,7 +43,8 @@ public sealed partial class CP14CargoSystem : CP14SharedCargoSystem public override void Initialize() { base.Initialize(); - InitializeStore(); + + InitializeUI(); InitializeShuttle(); _xformQuery = GetEntityQuery(); @@ -76,7 +82,7 @@ public sealed partial class CP14CargoSystem : CP14SharedCargoSystem var shuttle = shuttleUids[0]; station.Comp.Shuttle = shuttle; station.Comp.TradePostMap = _mapManager.GetMapEntityId(tradepostMap); - var travelingStoreShipComp = EnsureComp(station.Comp.Shuttle); + var travelingStoreShipComp = EnsureComp(station.Comp.Shuttle.Value); travelingStoreShipComp.Station = station; station.Comp.NextTravelTime = _timing.CurTime + TimeSpan.FromSeconds(10f); @@ -104,6 +110,9 @@ public sealed partial class CP14CargoSystem : CP14SharedCargoSystem } } + /// + /// Sell all the items we can, and replenish the internal balance + /// private void SellingThings(Entity station) { var shuttle = station.Comp.Shuttle; @@ -119,7 +128,7 @@ public sealed partial class CP14CargoSystem : CP14SharedCargoSystem var sentEntities = new HashSet(); - _lookup.GetEntitiesInRange(uid, 1, sentEntities, LookupFlags.Dynamic | LookupFlags.Sundries); + _lookup.GetEntitiesInRange(uid, 0.5f, sentEntities, LookupFlags.Dynamic | LookupFlags.Sundries); foreach (var ent in sentEntities) { @@ -130,56 +139,154 @@ public sealed partial class CP14CargoSystem : CP14SharedCargoSystem } } - var cash = 0; foreach (var sellPos in station.Comp.CurrentSellPositions) { - if (!_proto.TryIndex(sellPos.Key, out var indexedPos)) - continue; - - while (indexedPos.Service.TrySell(EntityManager, toSell)) + while (sellPos.Key.Service.TrySell(EntityManager, toSell)) { - cash += sellPos.Value; + station.Comp.Balance += sellPos.Value; + } + } + } + + /// + /// Take all the money from the tradebox, and credit it to the internal balance + /// + private void TopUpBalance(Entity station) + { + var tradebox = GetTradeBox(station); + + if (tradebox is null) + return; + + if (!TryComp(tradebox, out var tradeStorage)) + return; + + //Get all currency in tradebox + int cash = 0; + foreach (var stored in tradeStorage.Container.ContainedEntities) + { + var price = _currency.GetTotalCurrency(stored); + if (price > 0) + { + cash += price; + QueueDel(stored); } } - var moneyBox = GetMoneyBox(station); + station.Comp.Balance += cash; + } + + private void BuyToQueue(Entity station) + { + var tradebox = GetTradeBox(station); + + if (tradebox is null) + return; + + if (!TryComp(tradebox, out var tradeStorage)) + return; + + //Reading all papers in tradebox + List> requests = new(); + foreach (var stored in tradeStorage.Container.ContainedEntities) + { + if (!TryComp(stored, out var paper)) + continue; + + var splittedText = paper.Content.Split("#"); + foreach (var fragment in splittedText) + { + foreach (var buyPosition in station.Comp.CurrentBuyPositions) + { + if (fragment.StartsWith(buyPosition.Key.Code)) + requests.Add(buyPosition); + } + } + + QueueDel(stored); + } + + //Trying spend tradebox money to buy requested things + foreach (var request in requests) + { + if (station.Comp.Balance < request.Value) + continue; + + station.Comp.Balance -= request.Value; + station.Comp.BuyedQueue.Enqueue(request); + } + } + + //Dequeue buyed items, and spawn they on shuttle + private void TrySpawnBuyedThings(Entity station) + { + var shuttle = station.Comp.Shuttle; + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out _, out var palletXform)) + { + if (station.Comp.BuyedQueue.Count <= 0) + break; + + if (palletXform.ParentUid != shuttle || !palletXform.Anchored) + continue; + + var tileRef = palletXform.Coordinates.GetTileRef(); + if (tileRef is null) + continue; + + if (_turf.IsTileBlocked(tileRef.Value, CollisionGroup.ItemMask)) + continue; + + var buyedThing = station.Comp.BuyedQueue.Dequeue(); + Spawn(buyedThing.Key.ID, palletXform.Coordinates); + } + } + + /// + /// Transform all the accumulated balance into physical money, which we will give to the players. + /// + private void CashOut(Entity station) + { + var moneyBox = GetTradeBox(station); if (moneyBox is not null) { var coord = Transform(moneyBox.Value).Coordinates; - if (cash > 0) + if (station.Comp.Balance > 0) { - var coins = _currency.GenerateMoney(CP14SharedCurrencySystem.PP.Key, cash, coord, out var remainder); - cash = remainder; + var coins = _currency.GenerateMoney(CP14SharedCurrencySystem.PP.Key, station.Comp.Balance, coord, out var remainder); + station.Comp.Balance = remainder; foreach (var coin in coins) { _storage.Insert(moneyBox.Value, coin, out _); } } - if (cash > 0) + if (station.Comp.Balance > 0) { - var coins = _currency.GenerateMoney(CP14SharedCurrencySystem.GP.Key, cash, coord, out var remainder); - cash = remainder; + var coins = _currency.GenerateMoney(CP14SharedCurrencySystem.GP.Key, station.Comp.Balance, coord, out var remainder); + station.Comp.Balance = remainder; foreach (var coin in coins) { _storage.Insert(moneyBox.Value, coin, out _); } } - if (cash > 0) + if (station.Comp.Balance > 0) { - var coins = _currency.GenerateMoney(CP14SharedCurrencySystem.SP.Key, cash, coord, out var remainder); - cash = remainder; + var coins = _currency.GenerateMoney(CP14SharedCurrencySystem.SP.Key, station.Comp.Balance, coord, out var remainder); + station.Comp.Balance = remainder; foreach (var coin in coins) { _storage.Insert(moneyBox.Value, coin, out _); } } - if (cash > 0) + if (station.Comp.Balance > 0) { - var coins = _currency.GenerateMoney(CP14SharedCurrencySystem.CP.Key, cash, coord); + var coins = _currency.GenerateMoney(CP14SharedCurrencySystem.CP.Key, station.Comp.Balance, coord, out var remainder); + station.Comp.Balance = remainder; foreach (var coin in coins) { _storage.Insert(moneyBox.Value, coin, out _); @@ -188,7 +295,7 @@ public sealed partial class CP14CargoSystem : CP14SharedCargoSystem } } - private EntityUid? GetMoneyBox(Entity station) + private EntityUid? GetTradeBox(Entity station) { var query = EntityQueryEnumerator(); diff --git a/Content.Shared/_CP14/Currency/CP14SharedCurrencySystem.cs b/Content.Shared/_CP14/Currency/CP14SharedCurrencySystem.cs index e1efc4b15a..95e82e4b1f 100644 --- a/Content.Shared/_CP14/Currency/CP14SharedCurrencySystem.cs +++ b/Content.Shared/_CP14/Currency/CP14SharedCurrencySystem.cs @@ -37,11 +37,16 @@ public partial class CP14SharedCurrencySystem : EntitySystem return sb.ToString(); } - public int GetTotalCurrency(EntityUid uid, CP14CurrencyComponent? currency = null) + public int GetTotalCurrency(EntityUid uid) { - if (!Resolve(uid, ref currency)) + if (!TryComp(uid, out var currency)) return 0; + return GetTotalCurrency(uid, currency); + } + + public int GetTotalCurrency(EntityUid uid, CP14CurrencyComponent currency) + { var total = currency.Currency; if (TryComp(uid, out var stack)) diff --git a/Content.Shared/_CP14/TravelingStoreShip/CP14StationTravelingStoreShipTargetComponent.cs b/Content.Shared/_CP14/TravelingStoreShip/CP14StationTravelingStoreShipTargetComponent.cs index 4f8b4f9e17..393f8a2aaa 100644 --- a/Content.Shared/_CP14/TravelingStoreShip/CP14StationTravelingStoreShipTargetComponent.cs +++ b/Content.Shared/_CP14/TravelingStoreShip/CP14StationTravelingStoreShipTargetComponent.cs @@ -12,35 +12,44 @@ namespace Content.Shared._CP14.TravelingStoreShip; public sealed partial class CP14StationTravelingStoreShipTargetComponent : Component { [DataField] - public EntityUid Shuttle; + public EntityUid? Shuttle; [DataField] - public EntityUid TradePostMap; + public EntityUid? TradePostMap; [DataField] public bool OnStation; [DataField] - public ResPath ShuttlePath = new("/Maps/_CP14/Ships/balloon.yml"); + public ResPath ShuttlePath = new("/Maps/_CP14/Ships/cargo_shuttle.yml"); [DataField] public TimeSpan NextTravelTime = TimeSpan.Zero; [DataField] - public TimeSpan StationWaitTime = TimeSpan.FromMinutes(6); + public TimeSpan StationWaitTime = TimeSpan.FromMinutes(1); [DataField] - public TimeSpan TradePostWaitTime = TimeSpan.FromMinutes(4); + public TimeSpan TradePostWaitTime = TimeSpan.FromMinutes(1); [DataField] - public Dictionary, int> CurrentBuyPositions = new(); //Proto, price + public Dictionary CurrentBuyPositions = new(); //Proto, price [DataField] public MinMax SpecialBuyPositionCount = new(1, 2); [DataField] - public Dictionary, int> CurrentSellPositions = new(); //Proto, price + public Dictionary CurrentSellPositions = new(); //Proto, price [DataField] public MinMax SpecialSellPositionCount = new(1, 2); + + [DataField] + public int Balance = 0; + + /// + /// a queue of purchased items. The oldest purchases are taken out one by one to be unloaded onto the ship + /// + [DataField] + public Queue> BuyedQueue = new(); } diff --git a/Content.Shared/_CP14/TravelingStoreShip/Prototype/CP14StoreBuyPositionPrototype.cs b/Content.Shared/_CP14/TravelingStoreShip/Prototype/CP14StoreBuyPositionPrototype.cs index 9e0786741a..a335941181 100644 --- a/Content.Shared/_CP14/TravelingStoreShip/Prototype/CP14StoreBuyPositionPrototype.cs +++ b/Content.Shared/_CP14/TravelingStoreShip/Prototype/CP14StoreBuyPositionPrototype.cs @@ -26,6 +26,12 @@ public sealed partial class CP14StoreBuyPositionPrototype : IPrototype [DataField(required: true)] public LocId Name = string.Empty; + /// + /// a unique code that can be used to purchase items. + /// + [DataField(required: true)] + public string Code = string.Empty; + [DataField] public LocId Desc = string.Empty; diff --git a/Resources/Audio/_CP14/Voice/Goblin/goblin_death.ogg b/Resources/Audio/_CP14/Voice/Goblin/goblin_death.ogg index 0589b7e8d3..7644610318 100644 Binary files a/Resources/Audio/_CP14/Voice/Goblin/goblin_death.ogg and b/Resources/Audio/_CP14/Voice/Goblin/goblin_death.ogg differ diff --git a/Resources/Audio/_CP14/Voice/Goblin/goblin_laugh.ogg b/Resources/Audio/_CP14/Voice/Goblin/goblin_laugh.ogg index 154bcf933d..a20b0c0369 100644 Binary files a/Resources/Audio/_CP14/Voice/Goblin/goblin_laugh.ogg and b/Resources/Audio/_CP14/Voice/Goblin/goblin_laugh.ogg differ diff --git a/Resources/Audio/_CP14/Voice/Goblin/goblin_scream.ogg b/Resources/Audio/_CP14/Voice/Goblin/goblin_scream.ogg index 282af61a4a..fab1cae1f7 100644 Binary files a/Resources/Audio/_CP14/Voice/Goblin/goblin_scream.ogg and b/Resources/Audio/_CP14/Voice/Goblin/goblin_scream.ogg differ diff --git a/Resources/Locale/en-US/_CP14/travelingStoreship/positions_buy.ftl b/Resources/Locale/en-US/_CP14/travelingStoreship/positions_buy.ftl index a7f5c17e16..1e462c6ea3 100644 --- a/Resources/Locale/en-US/_CP14/travelingStoreship/positions_buy.ftl +++ b/Resources/Locale/en-US/_CP14/travelingStoreship/positions_buy.ftl @@ -1,2 +1,7 @@ +cp14-store-buy-hint = If you want to buy {$name}, leave your money and order in the trade box: Any paper that says {$code} on it will do. + cp14-store-buy-alchemy-normalizer-name = Solution normalizer -cp14-store-buy-alchemy-normalizer-desc = Are your alchemists making poor quality potions? Fix it with a modern technological device made by Dwarf! “Alchemical Normalizer” - will remove any residue from your potions! \ No newline at end of file +cp14-store-buy-alchemy-normalizer-desc = Are your alchemists making poor quality potions? Fix it with a modern technological device made by Dwarf! “Alchemical Normalizer” - will remove any residue from your potions! + +cp14-store-buy-alchemy-vials-name = Alchemical vials +cp14-store-buy-alchemy-vials-desc = Now the problem of shortage of potion vessels is no longer a problem! After all, for a rather modest price you can order batches of shiny vials directly from the glassblowing factory! Random alchemical devices as a gift. \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/travelingStoreship/positions_sell.ftl b/Resources/Locale/en-US/_CP14/travelingStoreship/positions_sell.ftl index c3147520a1..3bbc326301 100644 --- a/Resources/Locale/en-US/_CP14/travelingStoreship/positions_sell.ftl +++ b/Resources/Locale/en-US/_CP14/travelingStoreship/positions_sell.ftl @@ -1,3 +1,5 @@ +cp14-store-sell-hint = To sell {$name}, load the desired goods onto the selling pallets. Our people in town will sort it out, pick up the goods and leave the money in the trade box on the ship. + cp14-store-sell-goldbar-name = 10 gold bars cp14-store-sell-goldbar-desc = The mining and processing of gold ore is heavily sponsored by the empire, which uses gold as currency and material for jewelry. diff --git a/Resources/Locale/ru-RU/_CP14/travelingStoreship/positions_buy.ftl b/Resources/Locale/ru-RU/_CP14/travelingStoreship/positions_buy.ftl index 332824f182..d9f9f25921 100644 --- a/Resources/Locale/ru-RU/_CP14/travelingStoreship/positions_buy.ftl +++ b/Resources/Locale/ru-RU/_CP14/travelingStoreship/positions_buy.ftl @@ -1,2 +1,7 @@ +cp14-store-buy-hint = Если вы хотите купить {$name}, оставьте деньги и ваш заказ в торговом ящике: Подойдет любая бумага, на которой будет написано {$code} + cp14-store-buy-alchemy-normalizer-name = Нормализатор растворов -cp14-store-buy-alchemy-normalizer-desc = Ваши алхимики делают некачественные зелья? Исправьте это при помощи современного технологического устройства дворфского производства! "Алхимический нормализатор" - удалит из ваших зелий любой осадок! \ No newline at end of file +cp14-store-buy-alchemy-normalizer-desc = Ваши алхимики делают некачественные зелья? Исправьте это при помощи современного технологического устройства дворфского производства! "Алхимический нормализатор" - удалит из ваших зелий любой осадок! + +cp14-store-buy-alchemy-vials-name = Алхимические пузырьки +cp14-store-buy-alchemy-vials-desc = Теперь проблема дефицита емкостей для зелий больше не проблема! Ведь по довольно скромной цене вы можете заказывать партии блестящих склянок прямо с стеклодульного завода! Случайные алхимические приборы в подарок. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/travelingStoreship/positions_sell.ftl b/Resources/Locale/ru-RU/_CP14/travelingStoreship/positions_sell.ftl index 4a48fd16d0..8c727992b9 100644 --- a/Resources/Locale/ru-RU/_CP14/travelingStoreship/positions_sell.ftl +++ b/Resources/Locale/ru-RU/_CP14/travelingStoreship/positions_sell.ftl @@ -1,3 +1,5 @@ +cp14-store-sell-hint = Чтобы продать {$name}, погрузите необходимый товар на продающие поддоны. Наши люди в городе разберутся что к чему, заберут товар и оставят деньги в торговом ящике на корабле. + cp14-store-sell-goldbar-name = 10 золотых слитков cp14-store-sell-goldbar-desc = Добыча и обработка золотой руды активно спонсируется империей, использующей золото как валюту и материал для ювелирных украшений. diff --git a/Resources/Maps/_CP14/Ships/balloon.yml b/Resources/Maps/_CP14/Ships/cargo_shuttle.yml similarity index 66% rename from Resources/Maps/_CP14/Ships/balloon.yml rename to Resources/Maps/_CP14/Ships/cargo_shuttle.yml index 5b8a0d4bcd..f88ce05e2f 100644 --- a/Resources/Maps/_CP14/Ships/balloon.yml +++ b/Resources/Maps/_CP14/Ships/cargo_shuttle.yml @@ -3,7 +3,7 @@ meta: postmapinit: false tilemap: 0: Space - 49: CP14FloorStonebricksSmallCarved1 + 35: CP14FloorOakWoodPlanksCruciform entities: - proto: "" entities: @@ -12,25 +12,25 @@ entities: - type: MetaData name: grid - type: Transform - pos: -0.73058385,-0.60119945 + pos: -0.5393677,-0.48875555 parent: invalid - type: MapGrid chunks: 0,0: ind: 0,0 - tiles: MQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: IwAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 -1,0: ind: -1,0 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 -1,-1: ind: -1,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAA version: 6 0,-1: ind: 0,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 - type: Broadphase - type: Physics @@ -60,289 +60,416 @@ entities: - type: RadiationGridResistance - proto: C14IronCabinetCargo entities: - - uid: 50 - components: - - type: Transform - pos: 0.5,-1.5 - parent: 1 -- proto: CP14WallmountLamp - entities: - - uid: 51 + - uid: 61 components: - type: Transform rot: 3.141592653589793 rad - pos: -1.5,-3.5 + pos: 1.5,0.5 parent: 1 - - type: Fixtures - fixtures: {} - - uid: 52 +- proto: CP14BrassChest + entities: + - uid: 59 + components: + - type: Transform + pos: -0.5,-3.5 + parent: 1 +- proto: CP14ChairWooden + entities: + - uid: 56 components: - type: Transform rot: 3.141592653589793 rad - pos: 2.5,-3.5 + pos: 1.6128012,-3.351526 parent: 1 - - type: Fixtures - fixtures: {} - - uid: 53 + - uid: 57 components: - type: Transform - pos: -1.5,4.5 + rot: 1.5707963267948966 rad + pos: 0.67951775,-2.4741838 parent: 1 - - type: Fixtures - fixtures: {} - - uid: 54 + - uid: 58 components: - type: Transform - pos: 2.5,4.5 + rot: 1.5707963267948966 rad + pos: 0.66827327,-1.5855919 parent: 1 - - type: Fixtures - fixtures: {} -- proto: CP14WallStonebrick +- proto: CP14CurtainsRedOpened entities: - - uid: 2 - components: - - type: Transform - pos: -0.5,-4.5 - parent: 1 - - uid: 3 - components: - - type: Transform - pos: -1.5,-4.5 - parent: 1 - - uid: 4 - components: - - type: Transform - pos: -2.5,-4.5 - parent: 1 - - uid: 5 - components: - - type: Transform - pos: -2.5,-3.5 - parent: 1 - - uid: 6 - components: - - type: Transform - pos: -2.5,-1.5 - parent: 1 - - uid: 7 - components: - - type: Transform - pos: -2.5,-0.5 - parent: 1 - - uid: 8 - components: - - type: Transform - pos: -2.5,0.5 - parent: 1 - - uid: 11 - components: - - type: Transform - pos: -2.5,-2.5 - parent: 1 - - uid: 13 - components: - - type: Transform - pos: -2.5,4.5 - parent: 1 - - uid: 14 - components: - - type: Transform - pos: -2.5,5.5 - parent: 1 - - uid: 15 - components: - - type: Transform - pos: -1.5,5.5 - parent: 1 - - uid: 18 - components: - - type: Transform - pos: 2.5,5.5 - parent: 1 - - uid: 19 - components: - - type: Transform - pos: 3.5,5.5 - parent: 1 - - uid: 21 - components: - - type: Transform - pos: 3.5,4.5 - parent: 1 - - uid: 25 - components: - - type: Transform - pos: 3.5,0.5 - parent: 1 - - uid: 26 - components: - - type: Transform - pos: 3.5,-0.5 - parent: 1 - - uid: 27 - components: - - type: Transform - pos: 3.5,-2.5 - parent: 1 - - uid: 28 - components: - - type: Transform - pos: 3.5,-1.5 - parent: 1 - - uid: 29 - components: - - type: Transform - pos: 3.5,-3.5 - parent: 1 - - uid: 30 - components: - - type: Transform - pos: 3.5,-4.5 - parent: 1 - - uid: 31 - components: - - type: Transform - pos: 2.5,-4.5 - parent: 1 - - uid: 32 - components: - - type: Transform - pos: 1.5,-4.5 - parent: 1 - - uid: 49 - components: - - type: Transform - pos: 0.5,-0.5 - parent: 1 -- proto: CP14WindowStoneBrick - entities: - - uid: 9 - components: - - type: Transform - pos: -2.5,1.5 - parent: 1 - - uid: 10 - components: - - type: Transform - pos: -2.5,2.5 - parent: 1 - - uid: 12 - components: - - type: Transform - pos: -2.5,3.5 - parent: 1 - - uid: 16 - components: - - type: Transform - pos: 0.5,5.5 - parent: 1 - - uid: 17 - components: - - type: Transform - pos: 1.5,5.5 - parent: 1 - - uid: 20 - components: - - type: Transform - pos: -0.5,5.5 - parent: 1 - uid: 22 components: - type: Transform - pos: 3.5,3.5 + rot: -1.5707963267948966 rad + pos: 1.5,-1.5 parent: 1 - uid: 23 components: - type: Transform - pos: 3.5,2.5 + rot: -1.5707963267948966 rad + pos: 1.5,-2.5 parent: 1 - uid: 24 components: - type: Transform - pos: 3.5,1.5 + rot: 1.5707963267948966 rad + pos: -0.5,-1.5 parent: 1 -- proto: CP14WoodenPalletBuy + - uid: 25 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-2.5 + parent: 1 + - uid: 26 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-3.5 + parent: 1 +- proto: CP14FenceWoodSmallCorner entities: + - uid: 28 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,4.5 + parent: 1 + - uid: 29 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,6.5 + parent: 1 + - uid: 30 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,6.5 + parent: 1 + - uid: 31 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,4.5 + parent: 1 +- proto: CP14FenceWoodSmallStraight + entities: + - uid: 32 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,3.5 + parent: 1 - uid: 33 components: - type: Transform - pos: 1.5,4.5 + rot: -1.5707963267948966 rad + pos: -1.5,0.5 parent: 1 - uid: 34 components: - type: Transform - pos: 1.5,3.5 + rot: 1.5707963267948966 rad + pos: 2.5,0.5 parent: 1 - uid: 35 components: - type: Transform - pos: 1.5,2.5 + rot: 1.5707963267948966 rad + pos: 2.5,3.5 parent: 1 - uid: 36 components: - type: Transform - pos: 2.5,4.5 + rot: 1.5707963267948966 rad + pos: 1.5,5.5 parent: 1 - uid: 37 components: - type: Transform - pos: 2.5,3.5 + rot: -1.5707963267948966 rad + pos: -0.5,5.5 parent: 1 - uid: 38 components: - type: Transform - pos: 2.5,2.5 + rot: 3.141592653589793 rad + pos: 0.5,6.5 parent: 1 - - uid: 39 - components: - - type: Transform - pos: 1.5,1.5 - parent: 1 - - uid: 40 - components: - - type: Transform - pos: 2.5,1.5 - parent: 1 -- proto: CP14WoodenPalletSell +- proto: CP14GreenBottle entities: - - uid: 41 + - uid: 46 components: - type: Transform - pos: -0.5,4.5 + pos: 1.6018345,-1.3505682 parent: 1 - - uid: 42 + - uid: 60 components: - type: Transform - pos: -0.5,2.5 + pos: 1.344657,-1.2195666 parent: 1 - - uid: 43 +- proto: CP14PaperFolderRed + entities: + - uid: 63 components: - type: Transform - pos: -0.5,1.5 + pos: -0.34691465,6.6029224 parent: 1 + - uid: 64 + components: + - type: Transform + pos: -0.50438666,6.4117675 + parent: 1 +- proto: CP14PenFeather + entities: + - uid: 65 + components: + - type: Transform + pos: -0.34691465,6.0294585 + parent: 1 +- proto: CP14ShuttleWingBigL + entities: + - uid: 9 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 +- proto: CP14ShuttleWingBigR + entities: + - uid: 6 + components: + - type: Transform + pos: 2.5,-0.5 + parent: 1 +- proto: CP14ShuttleWingSmallL + entities: + - uid: 4 + components: + - type: Transform + pos: -1.5,-3.5 + parent: 1 + - uid: 5 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 1 +- proto: CP14ShuttleWingSmallR + entities: + - uid: 7 + components: + - type: Transform + pos: 2.5,-3.5 + parent: 1 + - uid: 8 + components: + - type: Transform + pos: 1.5,-4.5 + parent: 1 +- proto: CP14TableWooden + entities: - uid: 44 components: - type: Transform - pos: -1.5,4.5 + rot: 3.141592653589793 rad + pos: 1.5,-1.5 + parent: 1 + - uid: 55 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-2.5 + parent: 1 +- proto: CP14TableWoodenCounter + entities: + - uid: 39 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,7.5 parent: 1 - uid: 45 components: - type: Transform - pos: -1.5,3.5 + rot: 3.141592653589793 rad + pos: 2.5,0.5 parent: 1 - - uid: 46 + - uid: 51 components: - type: Transform - pos: -1.5,2.5 + rot: 3.141592653589793 rad + pos: -0.5,5.5 parent: 1 + - uid: 52 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,6.5 + parent: 1 + - uid: 53 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,5.5 + parent: 1 + - uid: 54 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,6.5 + parent: 1 +- proto: CP14WallmountLamp + entities: + - uid: 62 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,0.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 67 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-3.5 + parent: 1 + - type: Fixtures + fixtures: {} +- proto: CP14WallWooden + entities: + - uid: 2 + components: + - type: Transform + pos: -1.5,-4.5 + parent: 1 + - uid: 3 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 1 + - uid: 11 + components: + - type: Transform + pos: 1.5,-4.5 + parent: 1 + - uid: 12 + components: + - type: Transform + pos: 2.5,-4.5 + parent: 1 + - uid: 13 + components: + - type: Transform + pos: 2.5,-3.5 + parent: 1 + - uid: 14 + components: + - type: Transform + pos: -1.5,-3.5 + parent: 1 + - uid: 17 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 + - uid: 19 + components: + - type: Transform + pos: 2.5,-0.5 + parent: 1 + - uid: 27 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - uid: 66 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 1 +- proto: CP14WindowWooden + entities: + - uid: 10 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 1 + - uid: 15 + components: + - type: Transform + pos: -1.5,-2.5 + parent: 1 + - uid: 16 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 1 + - uid: 20 + components: + - type: Transform + pos: 2.5,-1.5 + parent: 1 + - uid: 21 + components: + - type: Transform + pos: 2.5,-2.5 + parent: 1 +- proto: CP14WoodenDoor + entities: + - uid: 18 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 +- proto: CP14WoodenPalletBuy + entities: - uid: 47 components: - type: Transform - pos: -1.5,1.5 + rot: 3.141592653589793 rad + pos: 2.5,3.5 parent: 1 - uid: 48 components: - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,4.5 + parent: 1 + - uid: 49 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,3.5 + parent: 1 + - uid: 50 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,4.5 + parent: 1 +- proto: CP14WoodenPalletSell + entities: + - uid: 40 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,4.5 + parent: 1 + - uid: 41 + components: + - type: Transform + rot: 3.141592653589793 rad pos: -0.5,3.5 parent: 1 + - uid: 42 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,4.5 + parent: 1 + - uid: 43 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,3.5 + parent: 1 ... diff --git a/Resources/Prototypes/_CP14/Catalog/Cargo/crates.yml b/Resources/Prototypes/_CP14/Catalog/Cargo/crates.yml new file mode 100644 index 0000000000..6f69f3721f --- /dev/null +++ b/Resources/Prototypes/_CP14/Catalog/Cargo/crates.yml @@ -0,0 +1,24 @@ +- type: entity + parent: CP14BrassChest + id: CP14BrassChestFilledAlchemy + suffix: Alchemical vials + components: + - type: StorageFill + contents: + - id: CP14VialTiny + amount: 9 + - id: CP14VialSmall + amount: 8 + #Gift + - id: CP14Dropper + prob: 0.2 + - id: CP14Mortar + prob: 0.2 + - id: CP14Pestle + prob: 0.2 + - id: CP14VialSmall + prob: 0.2 + - id: CP14VialTiny + prob: 0.2 + - id: ShardGlass #Lol. Something broken + prob: 0.2 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/flame_creation.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/flame_creation.yml index 7b6a5b9174..1b6e144602 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/flame_creation.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/flame_creation.yml @@ -61,6 +61,7 @@ - ItemHeftyBase name: artificial flame description: A magically created artificial flame burning directly into the air. Not a bad light source, or a weapon if you throw it in someone's face. + categories: [ ForkFiltered ] components: - type: Item size: Ginormous diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/flash_light.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/flash_light.yml index 43a2193df4..aa5e674c66 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/flash_light.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/flash_light.yml @@ -56,6 +56,7 @@ - type: entity id: CP14SpawnEffectFlashLight + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: /Textures/Objects/Fun/goldbikehorn.rsi diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/ice_floor.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/ice_floor.yml index c7d5741b29..97f3b1ba0a 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/ice_floor.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/ice_floor.yml @@ -60,6 +60,7 @@ parent: IceCrust name: ice crust description: It's cold and slippery. + categories: [ ForkFiltered ] components: - type: Slippery paralyzeTime: 1 diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/sphere_of_light.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/sphere_of_light.yml index 1915ab002a..0f76e01342 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/sphere_of_light.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/sphere_of_light.yml @@ -59,6 +59,7 @@ name: Sphere of light parent: BaseItem description: A lump of bright light in the shape of a sphere. + categories: [ ForkFiltered ] components: - type: TimedDespawn lifetime: 300 # 5 min diff --git a/Resources/Prototypes/_CP14/Body/Parts/human.yml b/Resources/Prototypes/_CP14/Entities/Body/Parts/human.yml similarity index 82% rename from Resources/Prototypes/_CP14/Body/Parts/human.yml rename to Resources/Prototypes/_CP14/Entities/Body/Parts/human.yml index 96760efec1..34c6dc376c 100644 --- a/Resources/Prototypes/_CP14/Body/Parts/human.yml +++ b/Resources/Prototypes/_CP14/Entities/Body/Parts/human.yml @@ -2,6 +2,7 @@ - type: entity id: CP14TorsoHuman parent: TorsoHuman + categories: [ ForkFiltered ] components: - type: Sprite sprite: _CP14/Mobs/Species/Human/parts.rsi @@ -10,6 +11,7 @@ - type: entity id: CP14HeadHuman parent: HeadHuman + categories: [ ForkFiltered ] components: - type: Sprite sprite: _CP14/Mobs/Species/Human/parts.rsi @@ -18,6 +20,7 @@ - type: entity id: CP14LeftArmHuman parent: LeftArmHuman + categories: [ ForkFiltered ] components: - type: Sprite sprite: _CP14/Mobs/Species/Human/parts.rsi @@ -25,6 +28,7 @@ - type: entity id: CP14RightArmHuman parent: RightArmHuman + categories: [ ForkFiltered ] components: - type: Sprite sprite: _CP14/Mobs/Species/Human/parts.rsi @@ -32,6 +36,7 @@ - type: entity id: CP14LeftHandHuman parent: LeftHandHuman + categories: [ ForkFiltered ] components: - type: Sprite sprite: _CP14/Mobs/Species/Human/parts.rsi @@ -39,6 +44,7 @@ - type: entity id: CP14RightHandHuman parent: RightHandHuman + categories: [ ForkFiltered ] components: - type: Sprite sprite: _CP14/Mobs/Species/Human/parts.rsi @@ -46,6 +52,7 @@ - type: entity id: CP14LeftLegHuman parent: LeftLegHuman + categories: [ ForkFiltered ] components: - type: Sprite sprite: _CP14/Mobs/Species/Human/parts.rsi @@ -53,6 +60,7 @@ - type: entity id: CP14RightLegHuman parent: RightLegHuman + categories: [ ForkFiltered ] components: - type: Sprite sprite: _CP14/Mobs/Species/Human/parts.rsi @@ -60,6 +68,7 @@ - type: entity id: CP14LeftFootHuman parent: LeftFootHuman + categories: [ ForkFiltered ] components: - type: Sprite sprite: _CP14/Mobs/Species/Human/parts.rsi @@ -67,6 +76,7 @@ - type: entity id: CP14RightFootHuman parent: RightFootHuman + categories: [ ForkFiltered ] components: - type: Sprite sprite: _CP14/Mobs/Species/Human/parts.rsi \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Body/Parts/zombie.yml b/Resources/Prototypes/_CP14/Entities/Body/Parts/zombie.yml similarity index 86% rename from Resources/Prototypes/_CP14/Body/Parts/zombie.yml rename to Resources/Prototypes/_CP14/Entities/Body/Parts/zombie.yml index 514eb42ff8..832d7efd64 100644 --- a/Resources/Prototypes/_CP14/Body/Parts/zombie.yml +++ b/Resources/Prototypes/_CP14/Entities/Body/Parts/zombie.yml @@ -1,6 +1,7 @@ - type: entity id: CP14TorsoZombie parent: CP14TorsoHuman + categories: [ ForkFiltered ] components: - type: Sprite sprite: _CP14/Mobs/Species/Zombie/parts.rsi @@ -9,6 +10,7 @@ - type: entity id: CP14HeadZombie parent: CP14HeadHuman + categories: [ ForkFiltered ] components: - type: Sprite sprite: _CP14/Mobs/Species/Zombie/parts.rsi @@ -17,6 +19,7 @@ - type: entity id: CP14LeftArmZombie parent: CP14LeftArmHuman + categories: [ ForkFiltered ] components: - type: Sprite sprite: _CP14/Mobs/Species/Zombie/parts.rsi @@ -24,6 +27,7 @@ - type: entity id: CP14RightArmZombie parent: CP14RightArmHuman + categories: [ ForkFiltered ] components: - type: Sprite sprite: _CP14/Mobs/Species/Zombie/parts.rsi @@ -31,6 +35,7 @@ - type: entity id: CP14LeftHandZombie parent: CP14LeftHandHuman + categories: [ ForkFiltered ] components: - type: Sprite sprite: _CP14/Mobs/Species/Zombie/parts.rsi @@ -38,14 +43,15 @@ - type: entity id: CP14RightHandZombie parent: CP14RightHandHuman + categories: [ ForkFiltered ] components: - type: Sprite sprite: _CP14/Mobs/Species/Zombie/parts.rsi - type: entity id: CP14LeftLegZombie - name: "left zombie leg" parent: CP14LeftLegHuman + categories: [ ForkFiltered ] components: - type: Sprite sprite: _CP14/Mobs/Species/Zombie/parts.rsi @@ -63,8 +69,8 @@ - type: entity id: CP14RightLegZombie - name: "right zombie leg" parent: CP14RightLegHuman + categories: [ ForkFiltered ] components: - type: Sprite sprite: _CP14/Mobs/Species/Zombie/parts.rsi @@ -83,6 +89,7 @@ - type: entity id: CP14LeftFootZombie parent: CP14LeftFootHuman + categories: [ ForkFiltered ] components: - type: Sprite sprite: _CP14/Mobs/Species/Zombie/parts.rsi @@ -90,6 +97,7 @@ - type: entity id: CP14RightFootZombie parent: CP14RightFootHuman + categories: [ ForkFiltered ] components: - type: Sprite sprite: _CP14/Mobs/Species/Zombie/parts.rsi diff --git a/Resources/Prototypes/_CP14/Entities/Effects/alchemy_effects.yml b/Resources/Prototypes/_CP14/Entities/Effects/alchemy_effects.yml index c0d9e35f41..b17a53b56a 100644 --- a/Resources/Prototypes/_CP14/Entities/Effects/alchemy_effects.yml +++ b/Resources/Prototypes/_CP14/Entities/Effects/alchemy_effects.yml @@ -2,6 +2,7 @@ parent: BaseFoam id: CP14Mist name: mist + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: _CP14/Effects/mist.rsi @@ -14,20 +15,4 @@ - type: SolutionContainerManager solutions: solutionArea: - maxVol: 100 - -- type: entity - parent: CP14Mist - id: CP14MistVitalExtract - components: - - type: Sprite - sprite: _CP14/Effects/mist.rsi - layers: - - state: chemmist - color: "#db2a2a" - - type: SolutionContainerManager - solutions: - solutionArea: - reagents: - - ReagentId: CP14VitalExtract - Quantity: 10 \ No newline at end of file + maxVol: 100 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Ritual/basic.yml b/Resources/Prototypes/_CP14/Entities/Ritual/basic.yml index 121a766ae1..294083e95b 100644 --- a/Resources/Prototypes/_CP14/Entities/Ritual/basic.yml +++ b/Resources/Prototypes/_CP14/Entities/Ritual/basic.yml @@ -17,6 +17,7 @@ parent: CP14BaseRitualPhase id: CP14RitualEnd name: end of ritual + categories: [ HideSpawnMenu ] components: - type: CP14MagicRitualPhase deadEnd: true \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Flora/Gatherable/base.yml b/Resources/Prototypes/_CP14/Entities/Structures/Flora/Gatherable/base.yml index 7d8cdfde77..8bb9ffe943 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Flora/Gatherable/base.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Flora/Gatherable/base.yml @@ -6,6 +6,7 @@ components: - type: Sprite snapCardinals: true + drawdepth: FloorTiles - type: Transform anchored: true - type: Physics diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Flora/Gatherable/wild.yml b/Resources/Prototypes/_CP14/Entities/Structures/Flora/Gatherable/wild.yml index 08d42f1226..2c7ca1f46f 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Flora/Gatherable/wild.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Flora/Gatherable/wild.yml @@ -176,6 +176,7 @@ id: CP14QuartzCrystal name: quartz description: Quartz is an essential mineral capable of interacting with magical energy. It is highly sought after by alchemists for extracting beneficial properties from liquids + categories: [ HideSpawnMenu ] components: - type: Sprite drawdepth: Mobs diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Flora/grasshighbush.yml b/Resources/Prototypes/_CP14/Entities/Structures/Flora/grasshighbush.yml index e2bf78daa7..8fdf54cadd 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Flora/grasshighbush.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Flora/grasshighbush.yml @@ -48,7 +48,6 @@ - FullTileMask layer: - Opaque - - type: Damageable damageContainer: Inorganic damageModifierSet: Wood @@ -98,6 +97,7 @@ id: CP14RandomBushOffsetSpawner name: random bush offset spawner parent: MarkerBase + categories: [ ForkFiltered ] components: - type: Sprite layers: diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/cabinets.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/cabinets.yml index 61eab9c206..8e835f10c2 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/cabinets.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/cabinets.yml @@ -98,7 +98,7 @@ - type: entity parent: C14IronCabinet id: C14IronCabinetCargo - name: money box + name: trade box description: An armored vault for storing money for trade with the city. City workers will unload their earnings here, or take them from here when you want to buy something. components: - type: CP14CargoMoneyBox \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Shuttle/shuttle_elements.yml b/Resources/Prototypes/_CP14/Entities/Structures/Shuttle/shuttle_elements.yml new file mode 100644 index 0000000000..a8fc75fef4 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Structures/Shuttle/shuttle_elements.yml @@ -0,0 +1,76 @@ +- type: entity + id: CP14TravelingStoreshipAnchor + name: traveling storeship anchor + categories: [ ForkFiltered ] + placement: + mode: SnapgridCenter + description: the point of adhesion of a traveling storeship to the surface. Keep your eyes to the sky so you don't get crushed! + components: + - type: Clickable + - type: Sprite + sprite: _CP14/Structures/Shuttle/traveling_storeship_anchor.rsi + state: base + drawdepth: FloorTiles + - type: Icon + sprite: _CP14/Structures/Shuttle/traveling_storeship_anchor.rsi + state: base + - type: Transform + anchored: true + - type: CP14TravelingStoreShipFTLTarget + - type: FTLSmashImmune + +- type: entity + id: CP14ShuttleWingBase + abstract: true + categories: [ ForkFiltered ] + name: airship wing + description: Giant webbed wings, capable, along with magic, of holding the heaviest objects in the air. + placement: + mode: SnapgridCenter + components: + - type: Sprite + drawdepth: FloorTiles + - type: Clickable + - type: Transform + anchored: true + +- type: entity + parent: CP14ShuttleWingBase + id: CP14ShuttleWingSmallR + suffix: Right, Small + components: + - type: Sprite + offset: 1, -0.75 + sprite: _CP14/Structures/Shuttle/wing_small.rsi + state: right + +- type: entity + parent: CP14ShuttleWingBase + id: CP14ShuttleWingSmallL + suffix: Left, Small + components: + - type: Sprite + offset: -1, -0.75 + sprite: _CP14/Structures/Shuttle/wing_small.rsi + state: left + + +- type: entity + parent: CP14ShuttleWingBase + id: CP14ShuttleWingBigL + suffix: Left, Big + components: + - type: Sprite + offset: -1.75, -1.5 + sprite: _CP14/Structures/Shuttle/wing_big.rsi + state: left + +- type: entity + parent: CP14ShuttleWingBase + id: CP14ShuttleWingBigR + suffix: Right, Big + components: + - type: Sprite + offset: 1.75, -1.5 + sprite: _CP14/Structures/Shuttle/wing_big.rsi + state: right diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/soil.yml b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/soil.yml index 025c99457b..a1f95e82c4 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/soil.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Farming/soil.yml @@ -50,7 +50,7 @@ key: walls mode: NoSprite - type: Sprite - drawdepth: FloorTiles + drawdepth: BelowFloor sprite: _CP14/Structures/Specific/Farming/seedbed.rsi layers: - state: seedbed_default diff --git a/Resources/Prototypes/_CP14/Entities/Structures/crystal.yml b/Resources/Prototypes/_CP14/Entities/Structures/crystal.yml index d6a67488ee..14cc19f25c 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/crystal.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/crystal.yml @@ -7,6 +7,7 @@ abstract: true name: sparkling quartz description: bioluminescent quartz crystals that can take on any color - a very handy light source in a deep caves. Unfortunately, the luminous properties are very hard to preserve. + categories: [ ForkFiltered ] components: - type: Sprite drawdepth: Mobs @@ -124,6 +125,7 @@ parent: BaseRock name: sparkling quartz description: bioluminescent quartz crystals that can take on any color - a very handy light source in a deep caves. Unfortunately, the luminous properties are very hard to preserve. + categories: [ ForkFiltered ] components: - type: Sprite drawdepth: Mobs diff --git a/Resources/Prototypes/_CP14/Entities/Structures/trabeling_storeship_anchor.yml b/Resources/Prototypes/_CP14/Entities/Structures/trabeling_storeship_anchor.yml deleted file mode 100644 index 4b74d6d1f0..0000000000 --- a/Resources/Prototypes/_CP14/Entities/Structures/trabeling_storeship_anchor.yml +++ /dev/null @@ -1,20 +0,0 @@ -- type: entity - id: CP14TravelingStoreshipAnchor - name: traveling storeship anchor - categories: [ ForkFiltered ] - placement: - mode: SnapgridCenter - description: the point of adhesion of a traveling storeship to the surface. Keep your eyes to the sky so you don't get crushed! - components: - - type: Clickable - - type: Sprite - sprite: _CP14/Structures/traveling_storeship_anchor.rsi - state: base - drawdepth: FloorTiles - - type: Icon - sprite: _CP14/Structures/traveling_storeship_anchor.rsi - state: base - - type: Transform - anchored: true - - type: CP14TravelingStoreShipFTLTarget - - type: FTLSmashImmune \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/keys.yml b/Resources/Prototypes/_CP14/Entities/keys.yml index dc94276647..856315a921 100644 --- a/Resources/Prototypes/_CP14/Entities/keys.yml +++ b/Resources/Prototypes/_CP14/Entities/keys.yml @@ -26,6 +26,7 @@ id: CP14BaseLockpick name: lockpick description: A thief's tool that, with proper skill and skill, allows you to pick any lock. + categories: [ ForkFiltered ] components: - type: Sprite sprite: _CP14/Objects/keys.rsi diff --git a/Resources/Prototypes/_CP14/Store/buy.yml b/Resources/Prototypes/_CP14/Store/buy.yml index 2389ebb61e..5923c56cf6 100644 --- a/Resources/Prototypes/_CP14/Store/buy.yml +++ b/Resources/Prototypes/_CP14/Store/buy.yml @@ -2,6 +2,7 @@ id: CP14AlchemyNormalizer name: cp14-store-buy-alchemy-normalizer-name desc: cp14-store-buy-alchemy-normalizer-desc + code: ALH-NRML icon: sprite: _CP14/Structures/Specific/Alchemy/normalizer.rsi state: base @@ -11,4 +12,20 @@ services: - !type:CP14BuyItemsService product: - CP14AlchemyNormalizer: 1 \ No newline at end of file + CP14AlchemyNormalizer: 1 + +- type: storePositionBuy + id: CP14AlchemyVials + name: cp14-store-buy-alchemy-vials-name + desc: cp14-store-buy-alchemy-vials-desc + code: ALH-VIAL + icon: + sprite: _CP14/Objects/Specific/Alchemy/vial_small.rsi + state: vial + price: + min: 200 + max: 300 + services: + - !type:CP14BuyItemsService + product: + CP14BrassChestFilledAlchemy: 1 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/debug.yml b/Resources/Prototypes/_CP14/debug.yml index 541ce33db9..8824f607bd 100644 --- a/Resources/Prototypes/_CP14/debug.yml +++ b/Resources/Prototypes/_CP14/debug.yml @@ -3,6 +3,7 @@ id: CP14DebugWorldSprite name: strange copper bar suffix: CP, DEBUG + categories: [ ForkFiltered ] components: # Just copy me, I am block with name Bob - type: Appearance diff --git a/Resources/Textures/_CP14/Structures/traveling_storeship_anchor.rsi/base.png b/Resources/Textures/_CP14/Structures/Shuttle/traveling_storeship_anchor.rsi/base.png similarity index 100% rename from Resources/Textures/_CP14/Structures/traveling_storeship_anchor.rsi/base.png rename to Resources/Textures/_CP14/Structures/Shuttle/traveling_storeship_anchor.rsi/base.png diff --git a/Resources/Textures/_CP14/Structures/traveling_storeship_anchor.rsi/meta.json b/Resources/Textures/_CP14/Structures/Shuttle/traveling_storeship_anchor.rsi/meta.json similarity index 100% rename from Resources/Textures/_CP14/Structures/traveling_storeship_anchor.rsi/meta.json rename to Resources/Textures/_CP14/Structures/Shuttle/traveling_storeship_anchor.rsi/meta.json diff --git a/Resources/Textures/_CP14/Structures/Shuttle/wing_big.rsi/left.png b/Resources/Textures/_CP14/Structures/Shuttle/wing_big.rsi/left.png new file mode 100644 index 0000000000..e15c8aeea7 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Shuttle/wing_big.rsi/left.png differ diff --git a/Resources/Textures/_CP14/Structures/Shuttle/wing_big.rsi/meta.json b/Resources/Textures/_CP14/Structures/Shuttle/wing_big.rsi/meta.json new file mode 100644 index 0000000000..ce3bc1502b --- /dev/null +++ b/Resources/Textures/_CP14/Structures/Shuttle/wing_big.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CLA", + "copyright": "Created by TheShuEd (Github) for CrystallPunk14", + "size": { + "x": 144, + "y": 128 + }, + "states": [ + { + "name": "left" + }, + { + "name": "right" + } + ] +} diff --git a/Resources/Textures/_CP14/Structures/Shuttle/wing_big.rsi/right.png b/Resources/Textures/_CP14/Structures/Shuttle/wing_big.rsi/right.png new file mode 100644 index 0000000000..2989bd9909 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Shuttle/wing_big.rsi/right.png differ diff --git a/Resources/Textures/_CP14/Structures/Shuttle/wing_small.rsi/left.png b/Resources/Textures/_CP14/Structures/Shuttle/wing_small.rsi/left.png new file mode 100644 index 0000000000..c8b3d7a55d Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Shuttle/wing_small.rsi/left.png differ diff --git a/Resources/Textures/_CP14/Structures/Shuttle/wing_small.rsi/meta.json b/Resources/Textures/_CP14/Structures/Shuttle/wing_small.rsi/meta.json new file mode 100644 index 0000000000..8e7f2b7c54 --- /dev/null +++ b/Resources/Textures/_CP14/Structures/Shuttle/wing_small.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CLA", + "copyright": "Created by TheShuEd (Github) for CrystallPunk14", + "size": { + "x": 96, + "y": 80 + }, + "states": [ + { + "name": "left" + }, + { + "name": "right" + } + ] +} diff --git a/Resources/Textures/_CP14/Structures/Shuttle/wing_small.rsi/right.png b/Resources/Textures/_CP14/Structures/Shuttle/wing_small.rsi/right.png new file mode 100644 index 0000000000..2d739a5284 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Shuttle/wing_small.rsi/right.png differ