diff --git a/Content.Client/Entry/EntryPoint.cs b/Content.Client/Entry/EntryPoint.cs index cb05916ee0..af85ff921f 100644 --- a/Content.Client/Entry/EntryPoint.cs +++ b/Content.Client/Entry/EntryPoint.cs @@ -1,3 +1,4 @@ +using Content.Client._CP14.Discord; using Content.Client.Administration.Managers; using Content.Client.Changelog; using Content.Client.Chat.Managers; @@ -43,6 +44,9 @@ namespace Content.Client.Entry { public sealed class EntryPoint : GameClient { + //CP14 + [Dependency] private readonly DiscordAuthManager _discordAuth = default!; + //CP14 end [Dependency] private readonly IBaseClient _baseClient = default!; [Dependency] private readonly IGameController _gameController = default!; [Dependency] private readonly IStateManager _stateManager = default!; @@ -160,7 +164,10 @@ namespace Content.Client.Entry _parallaxManager.LoadDefaultParallax(); - _overlayManager.AddOverlay(new CP14BasePostProcessOverlay()); // CP14-PostProcess + //CP14 + _overlayManager.AddOverlay(new CP14BasePostProcessOverlay()); + _discordAuth.Initialize(); + //CP14 end _overlayManager.AddOverlay(new SingularityOverlay()); _overlayManager.AddOverlay(new RadiationPulseOverlay()); _chatManager.Initialize(); diff --git a/Content.Client/IoC/ClientContentIoC.cs b/Content.Client/IoC/ClientContentIoC.cs index 370188e3c6..0756800d8d 100644 --- a/Content.Client/IoC/ClientContentIoC.cs +++ b/Content.Client/IoC/ClientContentIoC.cs @@ -1,3 +1,4 @@ +using Content.Client._CP14.Discord; using Content.Client.Administration.Managers; using Content.Client.Changelog; using Content.Client.Chat.Managers; @@ -33,6 +34,9 @@ namespace Content.Client.IoC { var collection = IoCManager.Instance!; + //CP14 + collection.Register(); + //CP14 end collection.Register(); collection.Register(); collection.Register(); diff --git a/Content.Client/_CP14/Discord/CP14DiscordAuthManager.cs b/Content.Client/_CP14/Discord/CP14DiscordAuthManager.cs new file mode 100644 index 0000000000..a627ffe2e4 --- /dev/null +++ b/Content.Client/_CP14/Discord/CP14DiscordAuthManager.cs @@ -0,0 +1,27 @@ +using Content.Shared._CP14.Discord; +using Robust.Client.State; +using Robust.Shared.Network; + +namespace Content.Client._CP14.Discord; + +public sealed class DiscordAuthManager +{ + [Dependency] private readonly IClientNetManager _netManager = default!; + [Dependency] private readonly IStateManager _stateManager = default!; + + public string AuthUrl { get; private set; } = ""; + + public void Initialize() + { + _netManager.RegisterNetMessage(); + _netManager.RegisterNetMessage(OnDiscordAuthRequired); + } + + private void OnDiscordAuthRequired(MsgDiscordAuthRequired msg) + { + if (_stateManager.CurrentState is DiscordAuthState) + return; + AuthUrl = msg.AuthUrl; + _stateManager.RequestStateChange(); + } +} diff --git a/Content.Client/_CP14/Discord/CP14DiscordAuthState.cs b/Content.Client/_CP14/Discord/CP14DiscordAuthState.cs new file mode 100644 index 0000000000..33e439dc86 --- /dev/null +++ b/Content.Client/_CP14/Discord/CP14DiscordAuthState.cs @@ -0,0 +1,36 @@ +using System.Threading; +using Content.Shared._CP14.Discord; +using Robust.Client.State; +using Robust.Client.UserInterface; +using Robust.Shared.Network; +using Timer = Robust.Shared.Timing.Timer; + +namespace Content.Client._CP14.Discord; + +public sealed class DiscordAuthState : State +{ + [Dependency] private readonly IUserInterfaceManager _userInterfaceManager = default!; + [Dependency] private readonly IClientNetManager _netManager = default!; + + private DiscordAuthGui? _gui; + private readonly CancellationTokenSource _checkTimerCancel = new(); + + protected override void Startup() + { + _gui = new DiscordAuthGui(); + _userInterfaceManager.StateRoot.AddChild(_gui); + + Timer.SpawnRepeating(TimeSpan.FromSeconds(5), + () => + { + _netManager.ClientSendMessage(new MsgDiscordAuthCheck()); + }, + _checkTimerCancel.Token); + } + + protected override void Shutdown() + { + _checkTimerCancel.Cancel(); + _gui!.Dispose(); + } +} diff --git a/Content.Client/_CP14/Discord/DiscordAuthGui.xaml b/Content.Client/_CP14/Discord/DiscordAuthGui.xaml new file mode 100644 index 0000000000..5e266d638e --- /dev/null +++ b/Content.Client/_CP14/Discord/DiscordAuthGui.xaml @@ -0,0 +1,29 @@ + + + + + + + diff --git a/Content.Client/_CP14/Workbench/CP14WorkbenchRecipeControl.xaml.cs b/Content.Client/_CP14/Workbench/CP14WorkbenchRecipeControl.xaml.cs index 5fbe8b477d..8adf468ace 100644 --- a/Content.Client/_CP14/Workbench/CP14WorkbenchRecipeControl.xaml.cs +++ b/Content.Client/_CP14/Workbench/CP14WorkbenchRecipeControl.xaml.cs @@ -3,7 +3,7 @@ * https://github.com/space-wizards/space-station-14/blob/master/LICENSE.TXT */ -using Content.Shared.Stacks; +using Content.Shared._CP14.Workbench; using Robust.Client.AutoGenerated; using Robust.Client.GameObjects; using Robust.Client.UserInterface; @@ -13,13 +13,14 @@ using Robust.Shared.Prototypes; namespace Content.Client._CP14.Workbench; [GenerateTypedNameReferences] -public sealed partial class CP14WorkbenchRecipeControl : Control +public sealed partial class CP14WorkbenchRequirementControl : Control { [Dependency] private readonly IEntityManager _entity = default!; + [Dependency] private readonly IPrototypeManager _proto = default!; private readonly SpriteSystem _sprite; - public CP14WorkbenchRecipeControl() + public CP14WorkbenchRequirementControl() { RobustXamlLoader.Load(this); IoCManager.InjectDependencies(this); @@ -27,25 +28,22 @@ public sealed partial class CP14WorkbenchRecipeControl : Control _sprite = _entity.System(); } - public CP14WorkbenchRecipeControl(EntityPrototype prototype, int count) : this() + public CP14WorkbenchRequirementControl(CP14WorkbenchCraftRequirement requirement) : this() { - var entityName = prototype.Name; - Name.Text = count <= 1 ? entityName : $"{entityName} x{count}"; + Name.Text = requirement.GetRequirementTitle(_proto); - View.Visible = false; - EntityView.SetPrototype(prototype); - } + var texture = requirement.GetRequirementTexture(_proto); + if (texture is not null) + { + View.Visible = true; + View.Texture = _sprite.Frame0(texture); + } - public CP14WorkbenchRecipeControl(StackPrototype prototype, int count) : this() - { - var entityName = Loc.GetString(prototype.Name); - Name.Text = $"{entityName} x{count}"; - - var icon = prototype.Icon; - if (icon is null) - return; - - EntityView.Visible = false; - View.Texture = _sprite.Frame0(icon); + var entityView = requirement.GetRequirementEntityView(_proto); + if (entityView is not null) + { + EntityView.Visible = true; + EntityView.SetPrototype(entityView); + } } } diff --git a/Content.Client/_CP14/Workbench/CP14WorkbenchRequirementControl.xaml b/Content.Client/_CP14/Workbench/CP14WorkbenchRequirementControl.xaml index 049b95455b..b8bc6fc966 100644 --- a/Content.Client/_CP14/Workbench/CP14WorkbenchRequirementControl.xaml +++ b/Content.Client/_CP14/Workbench/CP14WorkbenchRequirementControl.xaml @@ -1,14 +1,22 @@  - + + + + diff --git a/Content.Client/_CP14/Workbench/CP14WorkbenchRequirementControl.xaml.cs b/Content.Client/_CP14/Workbench/CP14WorkbenchRequirementControl.xaml.cs index 1ebd02ebbb..ec35e29b35 100644 --- a/Content.Client/_CP14/Workbench/CP14WorkbenchRequirementControl.xaml.cs +++ b/Content.Client/_CP14/Workbench/CP14WorkbenchRequirementControl.xaml.cs @@ -14,7 +14,7 @@ using Robust.Shared.Prototypes; namespace Content.Client._CP14.Workbench; [GenerateTypedNameReferences] -public sealed partial class CP14WorkbenchRequirementControl : Control +public sealed partial class CP14WorkbenchRecipeControl : Control { [Dependency] private readonly IEntityManager _entity = default!; [Dependency] private readonly IPrototypeManager _prototype = default!; @@ -26,7 +26,7 @@ public sealed partial class CP14WorkbenchRequirementControl : Control private readonly CP14WorkbenchRecipePrototype _recipePrototype; private readonly bool _craftable; - public CP14WorkbenchRequirementControl(CP14WorkbenchUiRecipesEntry entry) + public CP14WorkbenchRecipeControl(CP14WorkbenchUiRecipesEntry entry) { RobustXamlLoader.Load(this); IoCManager.InjectDependencies(this); diff --git a/Content.Client/_CP14/Workbench/CP14WorkbenchWindow.xaml.cs b/Content.Client/_CP14/Workbench/CP14WorkbenchWindow.xaml.cs index 44c1ba53bb..f65f793310 100644 --- a/Content.Client/_CP14/Workbench/CP14WorkbenchWindow.xaml.cs +++ b/Content.Client/_CP14/Workbench/CP14WorkbenchWindow.xaml.cs @@ -74,7 +74,7 @@ public sealed partial class CP14WorkbenchWindow : DefaultWindow if (entry.Craftable) { - var control = new CP14WorkbenchRequirementControl(entry); + var control = new CP14WorkbenchRecipeControl(entry); control.OnSelect += RecipeSelect; CraftsContainer.AddChild(control); } @@ -84,7 +84,7 @@ public sealed partial class CP14WorkbenchWindow : DefaultWindow foreach (var entry in uncraftableList) { - var control = new CP14WorkbenchRequirementControl(entry); + var control = new CP14WorkbenchRecipeControl(entry); control.OnSelect += RecipeSelect; CraftsContainer.AddChild(control); } @@ -119,14 +119,10 @@ public sealed partial class CP14WorkbenchWindow : DefaultWindow ItemDescription.Text = result.Description; ItemRequirements.RemoveAllChildren(); - foreach (var (entProtoId, count) in recipe.Entities) - { - ItemRequirements.AddChild(new CP14WorkbenchRecipeControl(_prototype.Index(entProtoId), count)); - } - foreach (var (stackProtoId, count) in recipe.Stacks) + foreach (var requirement in recipe.Requirements) { - ItemRequirements.AddChild(new CP14WorkbenchRecipeControl(_prototype.Index(stackProtoId), count)); + ItemRequirements.AddChild(new CP14WorkbenchRequirementControl(requirement)); } CraftButton.Disabled = !entry.Craftable; diff --git a/Content.IntegrationTests/Tests/EntityTest.cs b/Content.IntegrationTests/Tests/EntityTest.cs index 5dba8ac658..019a292772 100644 --- a/Content.IntegrationTests/Tests/EntityTest.cs +++ b/Content.IntegrationTests/Tests/EntityTest.cs @@ -39,6 +39,7 @@ namespace Content.IntegrationTests.Tests .Where(p => !p.Abstract) .Where(p => !pair.IsTestPrototype(p)) .Where(p => !p.Components.ContainsKey("MapGrid")) // This will smash stuff otherwise. + .Where(p => !p.Components.ContainsKey("RoomFill")) .Select(p => p.ID) .ToList(); @@ -101,6 +102,7 @@ namespace Content.IntegrationTests.Tests .Where(p => !p.Abstract) .Where(p => !pair.IsTestPrototype(p)) .Where(p => !p.Components.ContainsKey("MapGrid")) // This will smash stuff otherwise. + .Where(p => !p.Components.ContainsKey("RoomFill")) .Select(p => p.ID) .ToList(); foreach (var protoId in protoIds) @@ -341,6 +343,7 @@ namespace Content.IntegrationTests.Tests "DebugExceptionInitialize", "DebugExceptionStartup", "GridFill", + "RoomFill", "Map", // We aren't testing a map entity in this test "MapGrid", "Broadphase", diff --git a/Content.Server/Entry/EntryPoint.cs b/Content.Server/Entry/EntryPoint.cs index 3d4ea922dc..ab78636603 100644 --- a/Content.Server/Entry/EntryPoint.cs +++ b/Content.Server/Entry/EntryPoint.cs @@ -1,3 +1,4 @@ +using Content.Server._CP14.Discord; using Content.Server.Acz; using Content.Server.Administration; using Content.Server.Administration.Logs; @@ -101,6 +102,10 @@ namespace Content.Server.Entry logManager.GetSawmill("Storage").Level = LogLevel.Info; logManager.GetSawmill("db.ef").Level = LogLevel.Info; + //CP14 + IoCManager.Resolve().Initialize(); + //CP14 end + IoCManager.Resolve().Initialize(); IoCManager.Resolve().Initialize(); _dbManager.Init(); diff --git a/Content.Server/GameTicking/GameTicker.Player.cs b/Content.Server/GameTicking/GameTicker.Player.cs index f376408130..c11c5ab4f0 100644 --- a/Content.Server/GameTicking/GameTicker.Player.cs +++ b/Content.Server/GameTicking/GameTicker.Player.cs @@ -57,7 +57,7 @@ namespace Content.Server.GameTicking // Make the player actually join the game. // timer time must be > tick length - Timer.Spawn(0, () => _playerManager.JoinGame(args.Session)); + //Timer.Spawn(0, () => _playerManager.JoinGame(args.Session)); //CP14 Discord AuthManager var record = await _db.GetPlayerRecordByUserId(args.Session.UserId); var firstConnection = record != null && diff --git a/Content.Server/IoC/ServerContentIoC.cs b/Content.Server/IoC/ServerContentIoC.cs index 777e134246..95cba8c1e3 100644 --- a/Content.Server/IoC/ServerContentIoC.cs +++ b/Content.Server/IoC/ServerContentIoC.cs @@ -1,3 +1,4 @@ +using Content.Server._CP14.Discord; using Content.Server.Administration; using Content.Server.Administration.Logs; using Content.Server.Administration.Managers; @@ -36,6 +37,9 @@ namespace Content.Server.IoC { public static void Register() { + //CP14 + IoCManager.Register(); + //CP14 end IoCManager.Register(); IoCManager.Register(); IoCManager.Register(); diff --git a/Content.Server/Nutrition/EntitySystems/SmokingSystem.SmokingPipe.cs b/Content.Server/Nutrition/EntitySystems/SmokingSystem.SmokingPipe.cs index 26d86acd54..b0a9c16cac 100644 --- a/Content.Server/Nutrition/EntitySystems/SmokingSystem.SmokingPipe.cs +++ b/Content.Server/Nutrition/EntitySystems/SmokingSystem.SmokingPipe.cs @@ -74,7 +74,7 @@ namespace Content.Server.Nutrition.EntitySystems } // Convert smokable item into reagents to be smoked - private bool TryTransferReagents(Entity entity, Entity smokable) + public bool TryTransferReagents(Entity entity, Entity smokable) //CP14 make it public { if (entity.Comp.BowlSlot.Item == null) return false; diff --git a/Content.Server/Procedural/DungeonSystem.Rooms.cs b/Content.Server/Procedural/DungeonSystem.Rooms.cs index c9e3f72136..f83cce66fd 100644 --- a/Content.Server/Procedural/DungeonSystem.Rooms.cs +++ b/Content.Server/Procedural/DungeonSystem.Rooms.cs @@ -130,31 +130,31 @@ public sealed partial class DungeonSystem var finalRoomRotation = roomTransform.Rotation(); - if (clearExisting) - { - var point1 = Vector2.Transform(-room.Size / 2, roomTransform); - var point2 = Vector2.Transform(room.Size / 2, roomTransform); - - var gridBounds = GetRotatedBox(point1, point2, finalRoomRotation); - - entitySet.Clear(); - // Polygon skin moment - gridBounds = gridBounds.Enlarged(-0.05f); - _lookup.GetLocalEntitiesIntersecting(gridUid, gridBounds, entitySet, LookupFlags.Uncontained); - - foreach (var templateEnt in entitySet) - { - Del(templateEnt); - } - - if (TryComp(gridUid, out DecalGridComponent? decalGrid)) - { - foreach (var decal in _decals.GetDecalsIntersecting(gridUid, gridBounds, decalGrid)) - { - _decals.RemoveDecal(gridUid, decal.Index, decalGrid); - } - } - } + //if (clearExisting) //CP14 disable default clearExisting + //{ + // var point1 = Vector2.Transform(-room.Size / 2, roomTransform); + // var point2 = Vector2.Transform(room.Size / 2, roomTransform); +// + // var gridBounds = GetRotatedBox(point1, point2, finalRoomRotation); +// + // entitySet.Clear(); + // // Polygon skin moment + // gridBounds = gridBounds.Enlarged(-0.05f); + // _lookup.GetLocalEntitiesIntersecting(gridUid, gridBounds, entitySet, LookupFlags.Uncontained); +// + // foreach (var templateEnt in entitySet) + // { + // Del(templateEnt); + // } +// + // if (TryComp(gridUid, out DecalGridComponent? decalGrid)) + // { + // foreach (var decal in _decals.GetDecalsIntersecting(gridUid, gridBounds, decalGrid)) + // { + // _decals.RemoveDecal(gridUid, decal.Index, decalGrid); + // } + // } + //} var roomCenter = (room.Offset + room.Size / 2f) * grid.TileSize; var tileOffset = -roomCenter + grid.TileSizeHalfVector; @@ -183,14 +183,14 @@ public sealed partial class DungeonSystem _tiles.Add((rounded, tileRef.Tile)); //CP14 clearExisting variant - //if (clearExisting) - //{ - // var anchored = _maps.GetAnchoredEntities((gridUid, grid), rounded); - // foreach (var ent in anchored) - // { - // QueueDel(ent); - // } - //} + if (clearExisting) + { + var anchored = _maps.GetAnchoredEntities((gridUid, grid), rounded); + foreach (var ent in anchored) + { + QueueDel(ent); + } + } //CP14 clearExisting variant end } } diff --git a/Content.Server/_CP14/BiomeSpawner/EntitySystems/CP14BiomeSpawnerSystem.cs b/Content.Server/_CP14/BiomeSpawner/EntitySystems/CP14BiomeSpawnerSystem.cs index 9673da74f0..c6338ce8ef 100644 --- a/Content.Server/_CP14/BiomeSpawner/EntitySystems/CP14BiomeSpawnerSystem.cs +++ b/Content.Server/_CP14/BiomeSpawner/EntitySystems/CP14BiomeSpawnerSystem.cs @@ -5,7 +5,6 @@ using System.Linq; using Content.Server._CP14.BiomeSpawner.Components; -using Content.Server._CP14.RoundSeed; using Content.Server.Decals; using Content.Server.Parallax; using Content.Shared.Whitelist; @@ -13,6 +12,7 @@ using Robust.Server.GameObjects; using Robust.Shared.Map; using Robust.Shared.Map.Components; using Robust.Shared.Prototypes; +using Robust.Shared.Random; namespace Content.Server._CP14.BiomeSpawner.EntitySystems; @@ -24,12 +24,21 @@ public sealed class CP14BiomeSpawnerSystem : EntitySystem [Dependency] private readonly SharedMapSystem _maps = default!; [Dependency] private readonly DecalSystem _decals = default!; [Dependency] private readonly EntityLookupSystem _lookup = default!; - [Dependency] private readonly CP14RoundSeedSystem _roundSeed = default!; [Dependency] private readonly EntityWhitelistSystem _whitelist = default!; + [Dependency] private readonly IRobustRandom _random = default!; + private int _globalSeed = 0; public override void Initialize() { SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnRoundEnd); + + UpdateSeed(); + } + + private void OnRoundEnd(Shared.GameTicking.RoundEndMessageEvent ev) + { + UpdateSeed(); } private void OnMapInit(Entity ent, ref MapInitEvent args) @@ -38,6 +47,11 @@ public sealed class CP14BiomeSpawnerSystem : EntitySystem QueueDel(ent); } + private void UpdateSeed() + { + _globalSeed = _random.Next(int.MinValue, int.MaxValue); + } + private void SpawnBiome(Entity ent) { var biome = _proto.Index(ent.Comp.Biome); @@ -50,11 +64,9 @@ public sealed class CP14BiomeSpawnerSystem : EntitySystem if (!TryComp(gridUid, out var map)) return; - var seed = _roundSeed.GetSeed(); - var vec = _transform.GetGridOrMapTilePosition(ent); - if (!_biome.TryGetTile(vec, biome.Layers, seed, map, out var tile)) + if (!_biome.TryGetTile(vec, biome.Layers, _globalSeed, map, out var tile)) return; // Set new tile @@ -70,7 +82,7 @@ public sealed class CP14BiomeSpawnerSystem : EntitySystem } //Add decals - if (_biome.TryGetDecals(vec, biome.Layers, seed, map, out var decals)) + if (_biome.TryGetDecals(vec, biome.Layers, _globalSeed, map, out var decals)) { foreach (var decal in decals) { @@ -87,7 +99,7 @@ public sealed class CP14BiomeSpawnerSystem : EntitySystem QueueDel(entToRemove); } - if (_biome.TryGetEntity(vec, biome.Layers, tile.Value, seed, map, out var entityProto)) + if (_biome.TryGetEntity(vec, biome.Layers, tile.Value, _globalSeed, map, out var entityProto)) Spawn(entityProto, new EntityCoordinates(gridUid, tileCenterVec)); } } diff --git a/Content.Server/_CP14/Demiplane/CP14DemiplanSystem.Connections.cs b/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.Connections.cs similarity index 52% rename from Content.Server/_CP14/Demiplane/CP14DemiplanSystem.Connections.cs rename to Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.Connections.cs index 418a168517..df8ac8e26e 100644 --- a/Content.Server/_CP14/Demiplane/CP14DemiplanSystem.Connections.cs +++ b/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.Connections.cs @@ -14,20 +14,20 @@ public sealed partial class CP14DemiplaneSystem private void OnRiftInit(Entity rift, ref MapInitEvent args) { var map = Transform(rift).MapUid; - if (TryComp(map, out var demiplan)) // In demiplan + if (_demiplaneQuery.TryComp(map, out var demiplane)) // In demiplane { if (rift.Comp.TryAutoLinkToMap) rift.Comp.Demiplane = map.Value; if (rift.Comp.ActiveTeleport) - AddDemiplanRandomEntryPoint((map.Value, demiplan), rift); + AddDemiplaneRandomEntryPoint((map.Value, demiplane), rift); } - else if (rift.Comp.Demiplane is not null) //We out of demiplan + else if (rift.Comp.Demiplane is not null) //We out of demiplane { - if (TryComp(rift.Comp.Demiplane, out var riftDemiplane)) + if (_demiplaneQuery.TryComp(rift.Comp.Demiplane, out var riftDemiplane)) { if (rift.Comp.ActiveTeleport) - AddDemiplanRandomExitPoint((rift.Comp.Demiplane.Value, riftDemiplane), rift); + AddDemiplaneRandomExitPoint((rift.Comp.Demiplane.Value, riftDemiplane), rift); } } } @@ -37,38 +37,35 @@ public sealed partial class CP14DemiplaneSystem if (rift.Comp.Demiplane is null) return; - if (!TryComp(rift.Comp.Demiplane, out var riftDemiplane)) + if (!_demiplaneQuery.TryComp(rift.Comp.Demiplane, out var riftDemiplane)) return; - RemoveDemiplanRandomEntryPoint((rift.Comp.Demiplane.Value, riftDemiplane), rift); + RemoveDemiplaneRandomEntryPoint((rift.Comp.Demiplane.Value, riftDemiplane), rift); RemoveDemiplanRandomExitPoint((rift.Comp.Demiplane.Value, riftDemiplane), rift); } /// - ///Add a position in the real world where you can get out of this demiplan + ///Add a position in the real world where you can get out of this demiplane /// - private void AddDemiplanRandomExitPoint(Entity demiplan, + private void AddDemiplaneRandomExitPoint(Entity demiplane, Entity exitPoint) { - if (demiplan.Comp.ExitPoints.Contains(exitPoint)) - return; - - demiplan.Comp.ExitPoints.Add(exitPoint); - exitPoint.Comp.Demiplane = demiplan; + demiplane.Comp.ExitPoints.Add(exitPoint); + exitPoint.Comp.Demiplane = demiplane; } /// - /// Removing the demiplan exit point, one of which the player can exit to + /// Removing the demiplane exit point, one of which the player can exit to /// - private void RemoveDemiplanRandomExitPoint(Entity? demiplan, + private void RemoveDemiplanRandomExitPoint(Entity? demiplane, EntityUid exitPoint) { if (!TryComp(exitPoint, out var riftComp)) return; - if (demiplan is not null && demiplan.Value.Comp.ExitPoints.Contains(exitPoint)) + if (demiplane is not null && demiplane.Value.Comp.ExitPoints.Contains(exitPoint)) { - demiplan.Value.Comp.ExitPoints.Remove(exitPoint); + demiplane.Value.Comp.ExitPoints.Remove(exitPoint); riftComp.Demiplane = null; } @@ -77,27 +74,24 @@ public sealed partial class CP14DemiplaneSystem } /// - /// Add a position within the demiplan that can be entered into the demiplan + /// Add a position within the demiplane that can be entered into the demiplane /// - private void AddDemiplanRandomEntryPoint(Entity demiplan, + private void AddDemiplaneRandomEntryPoint(Entity demiplane, Entity entryPoint) { - if (demiplan.Comp.EntryPoints.Contains(entryPoint)) - return; - - demiplan.Comp.EntryPoints.Add(entryPoint); - entryPoint.Comp.Demiplane = demiplan; + demiplane.Comp.EntryPoints.Add(entryPoint); + entryPoint.Comp.Demiplane = demiplane; } - private void RemoveDemiplanRandomEntryPoint(Entity? demiplan, + private void RemoveDemiplaneRandomEntryPoint(Entity? demiplane, EntityUid entryPoint) { if (!TryComp(entryPoint, out var riftComp)) return; - if (demiplan is not null && demiplan.Value.Comp.EntryPoints.Contains(entryPoint)) + if (demiplane is not null && demiplane.Value.Comp.EntryPoints.Contains(entryPoint)) { - demiplan.Value.Comp.EntryPoints.Remove(entryPoint); + demiplane.Value.Comp.EntryPoints.Remove(entryPoint); riftComp.Demiplane = null; } @@ -105,26 +99,26 @@ public sealed partial class CP14DemiplaneSystem QueueDel(entryPoint); } - public bool TryGetDemiplanEntryPoint(Entity demiplan, out EntityUid? entryPoint) + public bool TryGetDemiplaneEntryPoint(Entity demiplane, out EntityUid? entryPoint) { entryPoint = null; - if (demiplan.Comp.EntryPoints.Count == 0) + if (demiplane.Comp.EntryPoints.Count == 0) return false; - entryPoint = _random.Pick(demiplan.Comp.EntryPoints); + entryPoint = _random.Pick(demiplane.Comp.EntryPoints); return true; } - public bool TryGetDemiplanExitPoint(Entity demiplan, + public bool TryGetDemiplaneExitPoint(Entity demiplane, out EntityUid? exitPoint) { exitPoint = null; - if (demiplan.Comp.ExitPoints.Count == 0) + if (demiplane.Comp.ExitPoints.Count == 0) return false; - exitPoint = _random.Pick(demiplan.Comp.ExitPoints); + exitPoint = _random.Pick(demiplane.Comp.ExitPoints); return true; } } diff --git a/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.Echoes.cs b/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.Echoes.cs new file mode 100644 index 0000000000..c93e70f2e4 --- /dev/null +++ b/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.Echoes.cs @@ -0,0 +1,34 @@ +using Content.Server.Chat.Systems; +using Robust.Shared.Random; + +namespace Content.Server._CP14.Demiplane; + +public sealed partial class CP14DemiplaneSystem +{ + [Dependency] private readonly ChatSystem _chat = default!; + + private void InitEchoes() + { + SubscribeLocalEvent(OnSpeak); + } + + private void OnSpeak(EntitySpokeEvent ev) + { + var map = Transform(ev.Source).MapUid; + + if (!_demiplaneQuery.TryComp(map, out var demiplane)) + return; + + //Get random exit, and send message there + if (demiplane.ExitPoints.Count == 0) + return; + var exit = _random.Pick(demiplane.ExitPoints); + + _chat.TrySendInGameICMessage(exit, + ev.Message, + InGameICChatType.Whisper, + ChatTransmitRange.NoGhosts, + nameOverride: Loc.GetString("cp14-demiplane-echoes"), + hideLog: true); + } +} diff --git a/Content.Server/_CP14/Demiplane/CP14DemiplanSystem.Generation.cs b/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.Generation.cs similarity index 89% rename from Content.Server/_CP14/Demiplane/CP14DemiplanSystem.Generation.cs rename to Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.Generation.cs index e091946fec..2b1c36869a 100644 --- a/Content.Server/_CP14/Demiplane/CP14DemiplanSystem.Generation.cs +++ b/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.Generation.cs @@ -2,11 +2,9 @@ using System.Linq; using System.Threading; using Content.Server._CP14.Demiplane.Components; using Content.Server._CP14.Demiplane.Jobs; -using Content.Server._CP14.RoundEnd; using Content.Server.GameTicking; using Content.Shared._CP14.Demiplane.Components; using Content.Shared._CP14.Demiplane.Prototypes; -using Content.Shared._CP14.MagicManacostModify; using Content.Shared.Examine; using Content.Shared.Interaction.Events; using Content.Shared.Verbs; @@ -112,11 +110,11 @@ public sealed partial class CP14DemiplaneSystem /// /// Generates a new random demiplane based on the specified parameters /// - public void SpawnRandomDemiplane(ProtoId location, List> modifiers, out Entity demiplan, out MapId mapId) + public void SpawnRandomDemiplane(ProtoId location, List> modifiers, out Entity? demiplane, out MapId mapId) { var mapUid = _mapSystem.CreateMap(out mapId, runMapInit: false); var demiComp = EntityManager.EnsureComponent(mapUid); - demiplan = (mapUid, demiComp); + demiplane = (mapUid, demiComp); var cancelToken = new CancellationTokenSource(); var job = new CP14SpawnRandomDemiplaneJob( @@ -141,25 +139,43 @@ public sealed partial class CP14DemiplaneSystem private void GeneratorUsedInHand(Entity generator, ref UseInHandEvent args) { - if (generator.Comp.Location is null) - return; - + //block the opening of demiplanes after the end of a round if (_gameTicker.RunLevel != GameRunLevel.InRound) { _popup.PopupEntity(Loc.GetString("cp14-demiplan-cannot-open-end-round"), generator, args.User); return; } - //We cant open demiplan in another demiplan or if parent is not Map - if (HasComp(Transform(generator).MapUid) || !HasComp(_transform.GetParentUid(args.User))) + //We cant open demiplane in another demiplane or if parent is not Map + if (_demiplaneQuery.HasComp(Transform(generator).MapUid) || !HasComp(_transform.GetParentUid(args.User))) { _popup.PopupEntity(Loc.GetString("cp14-demiplan-cannot-open", ("name", MetaData(generator).EntityName)), generator, args.User); return; } - SpawnRandomDemiplane(generator.Comp.Location.Value, generator.Comp.SelectedModifiers, out var demiplane, out var mapId); + if (generator.Comp.Location is null) + return; + + //an attempt to open demiplanes can be intercepted by other systems that substitute a map instead of generating the planned demiplane. + Entity? demiplane = null; + var ev = new CP14DemiplaneGenerationCatchAttemptEvent(); + RaiseLocalEvent(ev); + + if (ev.Demiplane is null) + { + SpawnRandomDemiplane(generator.Comp.Location.Value, generator.Comp.SelectedModifiers, out demiplane, out var mapId); + } + else + { + demiplane = ev.Demiplane; + } + + _statistic.TrackAdd(generator.Comp.Statistic, 1); + + if (demiplane is null) + return; //Admin log needed - EnsureComp(demiplane); + EnsureComp(demiplane.Value); //Ура, щиткод и магические переменные! var tempRift = EntityManager.Spawn("CP14DemiplaneTimedRadiusPassway"); @@ -169,8 +185,8 @@ public sealed partial class CP14DemiplaneSystem var connection = EnsureComp(tempRift); var connection2 = EnsureComp(tempRift2); - AddDemiplanRandomExitPoint(demiplane, (tempRift, connection)); - AddDemiplanRandomExitPoint(demiplane, (tempRift2, connection2)); + AddDemiplaneRandomExitPoint(demiplane.Value, (tempRift, connection)); + AddDemiplaneRandomExitPoint(demiplane.Value, (tempRift2, connection2)); #if !DEBUG QueueDel(generator); //wtf its crash debug build! @@ -370,3 +386,9 @@ public sealed partial class CP14DemiplaneSystem throw new InvalidOperationException($"Invalid weighted pick in CP14DemiplanSystem.Generation!"); } } + +public sealed class CP14DemiplaneGenerationCatchAttemptEvent : EntityEventArgs +{ + public bool Handled = false; + public Entity? Demiplane; +} diff --git a/Content.Server/_CP14/Demiplane/CP14DemiplanSystem.Stabilization.cs b/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.Stabilization.cs similarity index 93% rename from Content.Server/_CP14/Demiplane/CP14DemiplanSystem.Stabilization.cs rename to Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.Stabilization.cs index e1bbf33cbb..d1c3242265 100644 --- a/Content.Server/_CP14/Demiplane/CP14DemiplanSystem.Stabilization.cs +++ b/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.Stabilization.cs @@ -81,10 +81,20 @@ public sealed partial class CP14DemiplaneSystem if (TryTeleportOutDemiplane(demiplane, uid)) { if (!safe) + { + var ev = new CP14DemiplaneUnsafeExit(); + RaiseLocalEvent(uid, ev); + _body.GibBody(uid); + } } } QueueDel(demiplane); } } + +public sealed class CP14DemiplaneUnsafeExit : EntityEventArgs +{ + +} diff --git a/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.cs b/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.cs index 5e1a82e58c..e64cb94ce7 100644 --- a/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.cs +++ b/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.cs @@ -1,9 +1,12 @@ +using Content.Server._CP14.Demiplane.Components; +using Content.Server._CP14.RoundStatistic; using Content.Server.Flash; using Content.Server.Procedural; using Content.Shared._CP14.Demiplane; using Content.Shared._CP14.Demiplane.Components; using Content.Shared.Popups; using Robust.Server.Audio; +using Robust.Shared.Audio; using Robust.Shared.Map; using Robust.Shared.Prototypes; using Robust.Shared.Random; @@ -25,16 +28,45 @@ public sealed partial class CP14DemiplaneSystem : CP14SharedDemiplaneSystem [Dependency] private readonly FlashSystem _flash = default!; [Dependency] private readonly IGameTiming _timing = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly CP14RoundStatTrackerSystem _statistic = default!; + + private EntityQuery _demiplaneQuery; public override void Initialize() { base.Initialize(); + _demiplaneQuery = GetEntityQuery(); + InitGeneration(); InitConnections(); InitStabilization(); + InitEchoes(); SubscribeLocalEvent(OnDemiplanShutdown); + SubscribeLocalEvent(OnSpawnOutOfDemiplane); + } + + private void OnSpawnOutOfDemiplane(Entity ent, ref MapInitEvent args) + { + //Check if entity is in demiplane + var map = Transform(ent).MapUid; + if (!_demiplaneQuery.TryComp(map, out var demiplane)) + return; + + //Get random exit demiplane point and spawn entity there + if (demiplane.ExitPoints.Count == 0) + return; + + var exit = _random.Pick(demiplane.ExitPoints); + var coordinates = Transform(exit).Coordinates; + + var proto = ent.Comp.Proto; + + if (proto is null) + proto = MetaData(ent).EntityPrototype?.ID; + + Spawn(proto, coordinates); } public override void Update(float frameTime) @@ -51,32 +83,45 @@ public sealed partial class CP14DemiplaneSystem : CP14SharedDemiplaneSystem /// The demiplane the entity will be teleported to /// The entity to be teleported /// - public bool TryTeleportIntoDemiplane(Entity demiplane, EntityUid? entity) + public override bool TryTeleportIntoDemiplane(Entity demiplane, EntityUid? entity) { if (entity is null) return false; - if (!TryGetDemiplanEntryPoint(demiplane, out var entryPoint) || entryPoint is null) + if (!TryGetDemiplaneEntryPoint(demiplane, out var entryPoint) || entryPoint is null) { Log.Error($"{entity} cant get in demiplane {demiplane}: no active entry points!"); return false; } - var targetCoord = Transform(entryPoint.Value).Coordinates; - _flash.Flash(entity.Value, null, null, 3000f, 0.5f); - _transform.SetCoordinates(entity.Value, targetCoord); - _audio.PlayGlobal(demiplane.Comp.ArrivalSound, entity.Value); + TeleportEntityToCoordinate(entity.Value, Transform(entryPoint.Value).Coordinates, demiplane.Comp.ArrivalSound); return true; } + /// + /// Simple teleportation, with common special effects for all the game's teleportation mechanics + /// + /// + /// + /// + public void TeleportEntityToCoordinate(EntityUid? entity, EntityCoordinates coordinates, SoundSpecifier? sound = null) + { + if (entity is null) + return; + + _flash.Flash(entity.Value, null, null, 3000f, 0.5f); + _transform.SetCoordinates(entity.Value, coordinates); + _audio.PlayGlobal(sound, entity.Value); + } + /// /// Teleports an entity from the demiplane to the real world, to one of the random exit points in the real world. /// /// The demiplane from which the entity will be teleported /// An entity that will be teleported into the real world. This entity must be in the demiplane, otherwise the function will not work. /// - public bool TryTeleportOutDemiplane(Entity demiplane, EntityUid? entity) + public override bool TryTeleportOutDemiplane(Entity demiplane, EntityUid? entity) { if (entity is null) return false; @@ -84,17 +129,13 @@ public sealed partial class CP14DemiplaneSystem : CP14SharedDemiplaneSystem if (Transform(entity.Value).MapUid != demiplane.Owner) return false; - if (!TryGetDemiplanExitPoint(demiplane, out var connection) || connection is null) + if (!TryGetDemiplaneExitPoint(demiplane, out var connection) || connection is null) { Log.Error($"{entity} cant get out of demiplane {demiplane}: no active connections!"); return false; } - var targetCoord = Transform(connection.Value).Coordinates; - _flash.Flash(entity.Value, null, null, 3000f, 0.5f); - _transform.SetCoordinates(entity.Value, targetCoord); - _audio.PlayGlobal(demiplane.Comp.DepartureSound, entity.Value); - + TeleportEntityToCoordinate(entity.Value, Transform(connection.Value).Coordinates, demiplane.Comp.DepartureSound); return true; } @@ -117,7 +158,7 @@ public sealed partial class CP14DemiplaneSystem : CP14SharedDemiplaneSystem foreach (var entry in demiplane.Comp.EntryPoints) { - RemoveDemiplanRandomEntryPoint(demiplane, entry); + RemoveDemiplaneRandomEntryPoint(demiplane, entry); } } } diff --git a/Content.Server/_CP14/Demiplane/Components/CP14DemiplaneGeneratorDataComponent.cs b/Content.Server/_CP14/Demiplane/Components/CP14DemiplaneGeneratorDataComponent.cs index 06ee11f714..87bea077ba 100644 --- a/Content.Server/_CP14/Demiplane/Components/CP14DemiplaneGeneratorDataComponent.cs +++ b/Content.Server/_CP14/Demiplane/Components/CP14DemiplaneGeneratorDataComponent.cs @@ -1,4 +1,5 @@ using Content.Shared._CP14.Demiplane.Prototypes; +using Content.Shared._CP14.RoundStatistic; using Robust.Shared.Prototypes; namespace Content.Server._CP14.Demiplane.Components; @@ -22,5 +23,8 @@ public sealed partial class CP14DemiplaneGeneratorDataComponent : Component public Dictionary TiersContent = new(); [DataField(required: true)] - public Dictionary, float> Limits; + public Dictionary, float> Limits = new(); + + [DataField] + public ProtoId Statistic = "DemiplaneOpen"; } diff --git a/Content.Server/_CP14/Demiplane/Components/CP14SpawnOutOfDemiplaneComponent.cs b/Content.Server/_CP14/Demiplane/Components/CP14SpawnOutOfDemiplaneComponent.cs new file mode 100644 index 0000000000..932b02ad0e --- /dev/null +++ b/Content.Server/_CP14/Demiplane/Components/CP14SpawnOutOfDemiplaneComponent.cs @@ -0,0 +1,16 @@ +using Robust.Shared.Prototypes; + +namespace Content.Server._CP14.Demiplane.Components; + +/// +/// Creates an entity on demiplane exit points when that entity appears. +/// +[RegisterComponent] +public sealed partial class CP14SpawnOutOfDemiplaneComponent : Component +{ + /// + /// If null, the ProtoId of this entity is taken from the entity itself. + /// + [DataField] + public EntProtoId? Proto; +} diff --git a/Content.Server/_CP14/DemiplaneAdmin/CP14DemiplaneAdminSystem.cs b/Content.Server/_CP14/DemiplaneAdmin/CP14DemiplaneAdminSystem.cs new file mode 100644 index 0000000000..be7349fd39 --- /dev/null +++ b/Content.Server/_CP14/DemiplaneAdmin/CP14DemiplaneAdminSystem.cs @@ -0,0 +1,30 @@ +using Content.Server._CP14.Demiplane; +using Content.Shared._CP14.Demiplane.Components; +using Robust.Shared.Map.Components; + +namespace Content.Server._CP14.DemiplaneAdmin; + +public sealed partial class CP14DemiplaneAdminSystem : EntitySystem +{ + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnAdminDemiplaneCatch); + } + + private void OnAdminDemiplaneCatch(CP14DemiplaneGenerationCatchAttemptEvent ev) + { + if (ev.Handled) + return; + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var catcher, out var map, out var demiplane)) + { + ev.Demiplane = (uid, demiplane); + ev.Handled = true; + RemCompDeferred(uid, catcher); + return; + } + } +} diff --git a/Content.Server/_CP14/DemiplaneAdmin/CP14DemiplaneRiftCatcherComponent.cs b/Content.Server/_CP14/DemiplaneAdmin/CP14DemiplaneRiftCatcherComponent.cs new file mode 100644 index 0000000000..5939f4525e --- /dev/null +++ b/Content.Server/_CP14/DemiplaneAdmin/CP14DemiplaneRiftCatcherComponent.cs @@ -0,0 +1,9 @@ +namespace Content.Server._CP14.DemiplaneAdmin; + +/// +/// This demiplane can be added to a map by the admins, which will redirect the next opened demiplane key to that map +/// +[RegisterComponent] +public sealed partial class CP14DemiplaneRiftCatcherComponent : Component +{ +} diff --git a/Content.Server/_CP14/DemiplaneTraveling/CP14DemiplaneTravelingSystem.cs b/Content.Server/_CP14/DemiplaneTraveling/CP14DemiplaneTravelingSystem.cs index a5e7ad0f58..e5deef3203 100644 --- a/Content.Server/_CP14/DemiplaneTraveling/CP14DemiplaneTravelingSystem.cs +++ b/Content.Server/_CP14/DemiplaneTraveling/CP14DemiplaneTravelingSystem.cs @@ -1,4 +1,5 @@ using Content.Server._CP14.Demiplane; +using Content.Server._CP14.RoundEnd; using Content.Server.Interaction; using Content.Server.Mind; using Content.Server.Popups; @@ -28,13 +29,74 @@ public sealed partial class CP14DemiplaneTravelingSystem : EntitySystem base.Initialize(); SubscribeLocalEvent(RadiusMapInit); + SubscribeLocalEvent(MonolithMapInit); SubscribeLocalEvent(OnOpenRiftInteractDoAfter); } + // !!!SHITCODE WARNING!!! + // This whole module is saturated with shieldcode, code duplication and other delights. Why? Because. + //TODO: Refactor this shitcode public override void Update(float frameTime) { base.Update(frameTime); + DemiplaneTeleportUpdate(); + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var passWay)) + { + if (_timing.CurTime < passWay.NextTimeTeleport) + continue; + + passWay.NextTimeTeleport = _timing.CurTime + passWay.Delay; + + //Get all teleporting entities + HashSet teleportedEnts = new(); + var nearestEnts = _lookup.GetEntitiesInRange(uid, passWay.Radius); + foreach (var ent in nearestEnts) + { + if (HasComp(ent)) + continue; + + if (!_mind.TryGetMind(ent, out var mindId, out var mind)) + continue; + + if (!_interaction.InRangeUnobstructed(ent, uid)) + continue; + + teleportedEnts.Add(ent); + } + + while (teleportedEnts.Count > passWay.MaxEntities) + { + teleportedEnts.Remove(_random.Pick(teleportedEnts)); + } + + //Aaaand teleport it + var monoliths = EntityQueryEnumerator(); + while (monoliths.MoveNext(out var monolithUid, out var monolith)) + { + var coord = Transform(monolithUid).Coordinates; + + //Shitcode select first one + foreach (var ent in teleportedEnts) + { + if (TryComp(ent, out var puller)) + _demiplan.TeleportEntityToCoordinate(puller.Pulling, coord); + + _demiplan.TeleportEntityToCoordinate(ent, coord); + _audio.PlayPvs(passWay.ArrivalSound, ent); + } + break; + } + + _audio.PlayPvs(passWay.DepartureSound, Transform(uid).Coordinates); + QueueDel(uid); + } + } + + private void DemiplaneTeleportUpdate() + { //Radius passway var query = EntityQueryEnumerator(); while (query.MoveNext(out var uid, out var passWay, out var rift)) @@ -70,7 +132,7 @@ public sealed partial class CP14DemiplaneTravelingSystem : EntitySystem var map = Transform(uid).MapUid; if (TryComp(map, out var demiplan)) { - if (!_demiplan.TryGetDemiplanExitPoint((map.Value, demiplan), out _)) + if (!_demiplan.TryGetDemiplaneExitPoint((map.Value, demiplan), out _)) break; foreach (var ent in teleportedEnts) //We in demiplan, tp OUT @@ -87,7 +149,7 @@ public sealed partial class CP14DemiplaneTravelingSystem : EntitySystem if (rift.Demiplane is not null && TryComp(rift.Demiplane.Value, out var riftDemiplane)) { - if (!_demiplan.TryGetDemiplanEntryPoint((rift.Demiplane.Value, riftDemiplane), out _)) + if (!_demiplan.TryGetDemiplaneEntryPoint((rift.Demiplane.Value, riftDemiplane), out _)) break; foreach (var ent in teleportedEnts) //We out demiplan, tp IN @@ -111,6 +173,11 @@ public sealed partial class CP14DemiplaneTravelingSystem : EntitySystem radiusPassWay.Comp.NextTimeTeleport = _timing.CurTime + radiusPassWay.Comp.Delay; } + private void MonolithMapInit(Entity radiusPassWay, ref MapInitEvent args) + { + radiusPassWay.Comp.NextTimeTeleport = _timing.CurTime + radiusPassWay.Comp.Delay; + } + private void OnOpenRiftInteractDoAfter(Entity passWay, ref CP14DemiplanPasswayUseDoAfter args) { diff --git a/Content.Server/_CP14/Discord/DiscordAuthManager.cs b/Content.Server/_CP14/Discord/DiscordAuthManager.cs new file mode 100644 index 0000000000..9d203354a9 --- /dev/null +++ b/Content.Server/_CP14/Discord/DiscordAuthManager.cs @@ -0,0 +1,138 @@ +using System.Net; +using System.Net.Http; +using System.Net.Http.Headers; +using System.Net.Http.Json; +using System.Text.Json.Serialization; +using System.Threading; +using System.Threading.Tasks; +using Content.Shared._CP14.Discord; +using Content.Shared.CCVar; +using Robust.Server.Player; +using Robust.Shared.Configuration; +using Robust.Shared.Enums; +using Robust.Shared.Network; +using Robust.Shared.Player; +using Timer = Robust.Shared.Timing.Timer; + +namespace Content.Server._CP14.Discord; + +public sealed class DiscordAuthManager +{ + [Dependency] private readonly IServerNetManager _netMgr = default!; + [Dependency] private readonly IPlayerManager _playerMgr = default!; + [Dependency] private readonly IConfigurationManager _cfg = default!; + + private ISawmill _sawmill = default!; + private readonly HttpClient _httpClient = new(); + private bool _enabled = false; + private string _apiUrl = string.Empty; + private string _apiKey = string.Empty; + + public event EventHandler? PlayerVerified; + + public void Initialize() + { + _sawmill = Logger.GetSawmill("discordAuth"); + + _cfg.OnValueChanged(CCVars.DiscordAuthEnabled, v => _enabled = v, true); + _cfg.OnValueChanged(CCVars.DiscordAuthUrl, v => _apiUrl = v, true); + _cfg.OnValueChanged(CCVars.DiscordAuthToken, v => _apiKey = v, true); + + _netMgr.RegisterNetMessage(); + _netMgr.RegisterNetMessage(OnAuthCheck); + + _playerMgr.PlayerStatusChanged += OnPlayerStatusChanged; + PlayerVerified += OnPlayerVerified; + } + + private void OnPlayerVerified(object? obj, ICommonSession session) + { + Timer.Spawn(0, () => _playerMgr.JoinGame(session)); + } + + private async void OnAuthCheck(MsgDiscordAuthCheck msg) + { + var verified = await IsVerified(msg.MsgChannel.UserId); + if (!verified) + return; + + var session = _playerMgr.GetSessionById(msg.MsgChannel.UserId); + PlayerVerified?.Invoke(this, session); + } + + private async void OnPlayerStatusChanged(object? sender, SessionStatusEventArgs args) + { + if (args.NewStatus != SessionStatus.Connected) + return; + + if (!_enabled) + { + PlayerVerified?.Invoke(this, args.Session); + return; + } + + if (args.NewStatus == SessionStatus.Connected) + { + var verified = await IsVerified(args.Session.UserId); + if (verified) + { + PlayerVerified?.Invoke(this, args.Session); + return; + } + + var message = new MsgDiscordAuthRequired(); + message.AuthUrl = await GenerateLink(args.Session.UserId) ?? string.Empty; + args.Session.Channel.SendMessage(message); + } + } + + public async Task IsVerified(NetUserId userId, CancellationToken cancel = default) + { + _sawmill.Debug($"Player {userId} check Discord verification"); + + var requestUrl = $"{_apiUrl}/api/uuid?method=uid&id={userId}"; + _sawmill.Debug($"Auth request url:{requestUrl}"); + var request = new HttpRequestMessage(HttpMethod.Get, requestUrl); + + request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", _apiKey); + + var response = await _httpClient.SendAsync(request, cancel); + + _sawmill.Debug($"{await response.Content.ReadAsStringAsync(cancel)}"); + _sawmill.Debug($"{(int) response.StatusCode}"); + return response.StatusCode == HttpStatusCode.OK; + } + + public async Task GenerateLink(NetUserId userId, CancellationToken cancel = default) + { + _sawmill.Debug($"Generating link for {userId}"); + var requestUrl = $"{_apiUrl}/api/link?uid={userId}"; + + // try catch block to catch HttpRequestExceptions due to remote service unavailability + try + { + var response = await _httpClient.GetAsync(requestUrl, cancel); + if (!response.IsSuccessStatusCode) + return null; + + var link = await response.Content.ReadFromJsonAsync(cancel); + return link!.Link; + } + catch (HttpRequestException) + { + _sawmill.Error("Remote auth service is unreachable. Check if its online!"); + return null; + } + catch (Exception e) + { + _sawmill.Error($"Unexpected error verifying user via auth service. Error: {e.Message}. Stack: \n{e.StackTrace}"); + return null; + } + } + + sealed class DiscordLinkResponse + { + [JsonPropertyName("link")] + public string Link { get; set; } = string.Empty; + } +} diff --git a/Content.Server/_CP14/MagicSpell/CP14MagicSystem.cs b/Content.Server/_CP14/MagicSpell/CP14MagicSystem.cs index c8a451b35f..fd4d598323 100644 --- a/Content.Server/_CP14/MagicSpell/CP14MagicSystem.cs +++ b/Content.Server/_CP14/MagicSpell/CP14MagicSystem.cs @@ -57,7 +57,7 @@ public sealed partial class CP14MagicSystem : CP14SharedMagicSystem private void OnSpellSpoken(Entity ent, ref CP14VerbalAspectSpeechEvent args) { if (args.Performer is not null && args.Speech is not null) - _chat.TrySendInGameICMessage(args.Performer.Value, args.Speech, InGameICChatType.Speak, true); + _chat.TrySendInGameICMessage(args.Performer.Value, args.Speech, args.Emote ? InGameICChatType.Emote : InGameICChatType.Speak, true); } private void OnSpawnMagicVisualEffect(Entity ent, ref CP14StartCastMagicEffectEvent args) diff --git a/Content.Server/_CP14/Objectives/Components/CP14StatisticRangeConditionComponent.cs b/Content.Server/_CP14/Objectives/Components/CP14StatisticRangeConditionComponent.cs new file mode 100644 index 0000000000..d5d372b683 --- /dev/null +++ b/Content.Server/_CP14/Objectives/Components/CP14StatisticRangeConditionComponent.cs @@ -0,0 +1,26 @@ +using Content.Server._CP14.Objectives.Systems; +using Content.Shared._CP14.RoundStatistic; +using Content.Shared.Destructible.Thresholds; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Server._CP14.Objectives.Components; + +[RegisterComponent, Access(typeof(CP14StatisticRangeConditionSystem))] +public sealed partial class CP14StatisticRangeConditionComponent : Component +{ + [DataField(required: true)] + public ProtoId Statistic; + + [DataField(required: true)] + public MinMax Range; + + [DataField(required: true)] + public LocId ObjectiveText; + + [DataField(required: true)] + public LocId ObjectiveDescription; + + [DataField(required: true)] + public SpriteSpecifier? ObjectiveSprite; +} diff --git a/Content.Server/_CP14/Objectives/Components/CP14TownSendConditionComponent.cs b/Content.Server/_CP14/Objectives/Components/CP14TownSendConditionComponent.cs index 42eaba434b..6b99e4e429 100644 --- a/Content.Server/_CP14/Objectives/Components/CP14TownSendConditionComponent.cs +++ b/Content.Server/_CP14/Objectives/Components/CP14TownSendConditionComponent.cs @@ -38,5 +38,5 @@ public sealed partial class CP14TownSendConditionComponent : Component public LocId ObjectiveText; [DataField(required: true)] - public LocId DescriptionText; + public LocId ObjectiveDescription; } diff --git a/Content.Server/_CP14/Objectives/Systems/CP14StatisticRangeConditionStstem.cs b/Content.Server/_CP14/Objectives/Systems/CP14StatisticRangeConditionStstem.cs new file mode 100644 index 0000000000..ceac079e2f --- /dev/null +++ b/Content.Server/_CP14/Objectives/Systems/CP14StatisticRangeConditionStstem.cs @@ -0,0 +1,54 @@ +using Content.Server._CP14.Objectives.Components; +using Content.Server._CP14.RoundStatistic; +using Content.Shared.Objectives.Components; +using Content.Shared.Objectives.Systems; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; + +namespace Content.Server._CP14.Objectives.Systems; + +public sealed class CP14StatisticRangeConditionSystem : EntitySystem +{ + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly IPrototypeManager _proto = default!; + [Dependency] private readonly MetaDataSystem _metaData = default!; + [Dependency] private readonly SharedObjectivesSystem _objectives = default!; + [Dependency] private readonly CP14RoundStatTrackerSystem _statistic = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnAfterAssign); + SubscribeLocalEvent(OnGetProgress); + } + + private void OnAfterAssign(Entity condition, ref ObjectiveAfterAssignEvent args) + { + var title = Loc.GetString(condition.Comp.ObjectiveText, + ("min", condition.Comp.Range.Min), + ("max", condition.Comp.Range.Max)); + + var description = Loc.GetString(condition.Comp.ObjectiveDescription, + ("min", condition.Comp.Range.Min), + ("max", condition.Comp.Range.Max)); + + _metaData.SetEntityName(condition.Owner, title, args.Meta); + _metaData.SetEntityDescription(condition.Owner, description, args.Meta); + if (condition.Comp.ObjectiveSprite is not null) + _objectives.SetIcon(condition.Owner, condition.Comp.ObjectiveSprite, args.Objective); + } + + private void OnGetProgress(Entity ent, ref ObjectiveGetProgressEvent args) + { + var statValue = _statistic.GetTrack(ent.Comp.Statistic); + + if (statValue is null || statValue > ent.Comp.Range.Max || statValue < ent.Comp.Range.Min) + { + args.Progress = 0; + return; + } + + args.Progress = 1; + } +} diff --git a/Content.Server/_CP14/Objectives/Systems/CP14TownSendConditionSystem.cs b/Content.Server/_CP14/Objectives/Systems/CP14TownSendConditionSystem.cs index b1f39de9fc..e838ce016c 100644 --- a/Content.Server/_CP14/Objectives/Systems/CP14TownSendConditionSystem.cs +++ b/Content.Server/_CP14/Objectives/Systems/CP14TownSendConditionSystem.cs @@ -26,7 +26,6 @@ public sealed class CP14TownSendConditionSystem : EntitySystem _stealQuery = GetEntityQuery(); _stackQuery = GetEntityQuery(); - SubscribeLocalEvent(OnAssigned); SubscribeLocalEvent(OnAfterAssign); SubscribeLocalEvent(OnGetProgress); @@ -72,12 +71,6 @@ public sealed class CP14TownSendConditionSystem : EntitySystem } } - private void OnAssigned(Entity condition, ref ObjectiveAssignedEvent args) - { - //TODO: Add ability to create mindfree objectives to Wizden - //condition.Comp.CollectionSize = _random.Next(condition.Comp.MinCollectionSize, condition.Comp.MaxCollectionSize); - } - //Set the visual, name, icon for the objective. private void OnAfterAssign(Entity condition, ref ObjectiveAfterAssignEvent args) { @@ -86,7 +79,7 @@ public sealed class CP14TownSendConditionSystem : EntitySystem var group = _proto.Index(condition.Comp.CollectGroup); var title = Loc.GetString(condition.Comp.ObjectiveText, ("itemName", Loc.GetString(group.Name)), ("count", condition.Comp.CollectionSize)); - var description = Loc.GetString(condition.Comp.DescriptionText, ("itemName", Loc.GetString(group.Name)), ("count", condition.Comp.CollectionSize)); + var description = Loc.GetString(condition.Comp.ObjectiveDescription, ("itemName", Loc.GetString(group.Name)), ("count", condition.Comp.CollectionSize)); _metaData.SetEntityName(condition.Owner, title, args.Meta); _metaData.SetEntityDescription(condition.Owner, description, args.Meta); diff --git a/Content.Server/_CP14/RoundSeed/CP14RoundSeedComponent.cs b/Content.Server/_CP14/RoundSeed/CP14RoundSeedComponent.cs deleted file mode 100644 index fcc8ec7000..0000000000 --- a/Content.Server/_CP14/RoundSeed/CP14RoundSeedComponent.cs +++ /dev/null @@ -1,21 +0,0 @@ -/* - * All right reserved to CrystallEdge. - * - * BUT this file is sublicensed under MIT License - * - */ - -namespace Content.Server._CP14.RoundSeed; - -/// -/// This is used for round seed -/// -[RegisterComponent, Access(typeof(CP14RoundSeedSystem))] -public sealed partial class CP14RoundSeedComponent : Component -{ - [ViewVariables] - public static int MaxValue = 10000; - - [ViewVariables] - public int Seed; -} diff --git a/Content.Server/_CP14/RoundSeed/CP14RoundSeedSystem.cs b/Content.Server/_CP14/RoundSeed/CP14RoundSeedSystem.cs deleted file mode 100644 index 3d61e74629..0000000000 --- a/Content.Server/_CP14/RoundSeed/CP14RoundSeedSystem.cs +++ /dev/null @@ -1,53 +0,0 @@ -/* - * All right reserved to CrystallEdge. - * - * BUT this file is sublicensed under MIT License - * - */ - -using System.Diagnostics.CodeAnalysis; -using JetBrains.Annotations; -using Robust.Shared.Map; -using Robust.Shared.Random; - -namespace Content.Server._CP14.RoundSeed; - -/// -/// Provides a round seed for another systems -/// -public sealed class CP14RoundSeedSystem : EntitySystem -{ - [Dependency] private readonly IRobustRandom _random = default!; - - public override void Initialize() - { - SubscribeLocalEvent(OnComponentStartup); - } - - private void OnComponentStartup(Entity ent, ref ComponentStartup args) - { - ent.Comp.Seed = _random.Next(CP14RoundSeedComponent.MaxValue); - } - - private int SetupSeed() - { - return AddComp(Spawn(null, MapCoordinates.Nullspace)).Seed; - } - - /// - /// Returns the round seed if assigned, otherwise assigns the round seed itself. - /// - /// seed of the round - public int GetSeed() - { - var query = EntityQuery(); - foreach (var comp in query) - { - return comp.Seed; - } - - var seed = SetupSeed(); - Log.Warning($"Missing RoundSeed. Seed set to {seed}"); - return seed; - } -} diff --git a/Content.Server/_CP14/RoundStatistic/CP14RoundStatTrackerSystem.cs b/Content.Server/_CP14/RoundStatistic/CP14RoundStatTrackerSystem.cs new file mode 100644 index 0000000000..ced62e5461 --- /dev/null +++ b/Content.Server/_CP14/RoundStatistic/CP14RoundStatTrackerSystem.cs @@ -0,0 +1,71 @@ +using System.Text; +using Content.Server.GameTicking; +using Content.Shared._CP14.RoundStatistic; +using Content.Shared.GameTicking; +using Robust.Shared.Prototypes; + +namespace Content.Server._CP14.RoundStatistic; + +public sealed partial class CP14RoundStatTrackerSystem : EntitySystem +{ + [Dependency] private readonly IPrototypeManager _proto = default!; + + private readonly Dictionary, int> _tracking = new(); + + public override void Initialize() + { + base.Initialize(); + InitializeDemiplaneDeath(); + + SubscribeLocalEvent(OnRoundReset); + SubscribeLocalEvent(OnRoundEndTextAppend); + ClearStatistic(); + } + + private void OnRoundReset(RoundRestartCleanupEvent ev) + { + ClearStatistic(); + } + + private void OnRoundEndTextAppend(RoundEndTextAppendEvent ev) + { + //TODO: Move to separate UI Text block + var sb = new StringBuilder(); + + sb.Append($"[head=3]{Loc.GetString("cp14-tracker-header")}[/head] \n"); + foreach (var pair in _tracking) + { + if (!_proto.TryIndex(pair.Key, out var indexedTracker)) + continue; + + sb.Append($"- {Loc.GetString(indexedTracker.Text)}: {pair.Value}\n"); + } + ev.AddLine(sb.ToString()); + } + + private void ClearStatistic() + { + _tracking.Clear(); + + foreach (var statTracker in _proto.EnumeratePrototypes()) + { + _tracking.Add(statTracker.ID, 0); + } + } + + public void TrackAdd(ProtoId proto, int dif) + { + _tracking[proto] += Math.Max(dif, 0); + } + + public int? GetTrack(ProtoId proto) + { + if (!_tracking.TryGetValue(proto, out var stat)) + { + Log.Error($"Failed to get round statistic: {proto}"); + return null; + } + + return stat; + } +} diff --git a/Content.Server/_CP14/RoundStatistic/DemiplaneDeath/CP14DeathDemiplaneStatisticComponent.cs b/Content.Server/_CP14/RoundStatistic/DemiplaneDeath/CP14DeathDemiplaneStatisticComponent.cs new file mode 100644 index 0000000000..df155ac9b1 --- /dev/null +++ b/Content.Server/_CP14/RoundStatistic/DemiplaneDeath/CP14DeathDemiplaneStatisticComponent.cs @@ -0,0 +1,14 @@ +using Content.Shared._CP14.RoundStatistic; +using Robust.Shared.Prototypes; + +namespace Content.Server._CP14.RoundStatistic.DemiplaneDeath; + +/// +/// Tracks the destruction or full-blown death of this entity. +/// +[RegisterComponent] +public sealed partial class CP14DeathDemiplaneStatisticComponent : Component +{ + [DataField] + public ProtoId Statistic = "DemiplaneDeaths"; +} diff --git a/Content.Server/_CP14/RoundStatistic/DemiplaneDeath/CP14RoundStatTrackerSystem.DemiplaneDeath.cs b/Content.Server/_CP14/RoundStatistic/DemiplaneDeath/CP14RoundStatTrackerSystem.DemiplaneDeath.cs new file mode 100644 index 0000000000..744b0e1276 --- /dev/null +++ b/Content.Server/_CP14/RoundStatistic/DemiplaneDeath/CP14RoundStatTrackerSystem.DemiplaneDeath.cs @@ -0,0 +1,35 @@ +using Content.Server._CP14.Demiplane; +using Content.Server._CP14.RoundStatistic.DemiplaneDeath; +using Content.Shared._CP14.Demiplane.Components; +using Content.Shared.GameTicking; + +namespace Content.Server._CP14.RoundStatistic; + +public sealed partial class CP14RoundStatTrackerSystem +{ + private void InitializeDemiplaneDeath() + { + SubscribeLocalEvent(OnSpawnComplete); + SubscribeLocalEvent(OnEntityTerminated); + SubscribeLocalEvent(OnDemiplaneUnsafeExit); + } + + private void OnSpawnComplete(PlayerSpawnCompleteEvent ev) + { + EnsureComp(ev.Mob); + } + + private void OnDemiplaneUnsafeExit(Entity ent, ref CP14DemiplaneUnsafeExit args) + { + TrackAdd(ent.Comp.Statistic, 1); + } + + //For round remove variants, like gibs or chasm falls + private void OnEntityTerminated(Entity ent, ref EntityTerminatingEvent args) + { + if (!HasComp(Transform(ent).MapUid)) + return; + + TrackAdd(ent.Comp.Statistic, 1); + } +} diff --git a/Content.Server/_CP14/Temperature/CP14FireSpreadSystem.cs b/Content.Server/_CP14/Temperature/CP14FireSpreadSystem.cs index 631ffa4df0..9143aa8d0d 100644 --- a/Content.Server/_CP14/Temperature/CP14FireSpreadSystem.cs +++ b/Content.Server/_CP14/Temperature/CP14FireSpreadSystem.cs @@ -2,10 +2,12 @@ using System.Linq; using System.Numerics; using Content.Server.Atmos.Components; using Content.Server.Atmos.EntitySystems; -using Content.Server.DoAfter; +using Content.Server.Nutrition.Components; +using Content.Server.Nutrition.EntitySystems; using Content.Shared._CP14.Temperature; -using Content.Shared.Interaction; using Content.Shared.Maps; +using Content.Shared.Nutrition.Components; +using Content.Shared.Smoking; using Content.Shared.Weapons.Melee.Events; using Robust.Shared.Map; using Robust.Shared.Map.Components; @@ -25,6 +27,7 @@ public sealed partial class CP14FireSpreadSystem : CP14SharedFireSpreadSystem [Dependency] private readonly SharedMapSystem _mapSystem = default!; [Dependency] private readonly TileSystem _tile = default!; [Dependency] private readonly ITileDefinitionManager _tileDef = default!; + [Dependency] private readonly SmokingSystem _smoking = default!; private readonly EntProtoId _fireProto = "CP14Fire"; @@ -35,6 +38,8 @@ public sealed partial class CP14FireSpreadSystem : CP14SharedFireSpreadSystem base.Initialize(); SubscribeLocalEvent(OnFlammableIgnited); + SubscribeLocalEvent(OnDelayedIgnite); + SubscribeLocalEvent(OnDelayedPipeIgnite); SubscribeLocalEvent(OnFlammableMeleeHit); } @@ -59,6 +64,22 @@ public sealed partial class CP14FireSpreadSystem : CP14SharedFireSpreadSystem args.Handled = true; } + //For smokable cigars + private void OnDelayedIgnite(Entity ent, ref CP14IgnitionDoAfter args) + { + _smoking.SetSmokableState(ent, SmokableState.Lit, ent.Comp); + } + + //For smokable pipes + private void OnDelayedPipeIgnite(Entity pipe, ref CP14IgnitionDoAfter args) + { + if (!TryComp(pipe, out var smokable)) + return; + + if (_smoking.TryTransferReagents(pipe, (pipe.Owner, smokable))) + _smoking.SetSmokableState(pipe, SmokableState.Lit, smokable); + } + public override void Update(float frameTime) { base.Update(frameTime); diff --git a/Content.Server/_CP14/Workbench/CP14WorkbenchSystem.UI.cs b/Content.Server/_CP14/Workbench/CP14WorkbenchSystem.UI.cs index d4c9bac480..4609cb6780 100644 --- a/Content.Server/_CP14/Workbench/CP14WorkbenchSystem.UI.cs +++ b/Content.Server/_CP14/Workbench/CP14WorkbenchSystem.UI.cs @@ -30,11 +30,11 @@ public sealed partial class CP14WorkbenchSystem if (!_proto.TryIndex(recipeId, out var indexedRecipe)) continue; - if (indexedRecipe.KnowledgeRequired is not null) - { - if (!_knowledge.HasKnowledge(user, indexedRecipe.KnowledgeRequired.Value)) - continue; - } + //if (indexedRecipe.KnowledgeRequired is not null) + //{ + // if (!_knowledge.HasKnowledge(user, indexedRecipe.KnowledgeRequired.Value)) + // continue; + //} var entry = new CP14WorkbenchUiRecipesEntry(recipeId, CanCraftRecipe(indexedRecipe, placedEntities, user)); diff --git a/Content.Server/_CP14/Workbench/CP14WorkbenchSystem.cs b/Content.Server/_CP14/Workbench/CP14WorkbenchSystem.cs index e6ec9ba3f2..450728ce64 100644 --- a/Content.Server/_CP14/Workbench/CP14WorkbenchSystem.cs +++ b/Content.Server/_CP14/Workbench/CP14WorkbenchSystem.cs @@ -87,99 +87,16 @@ public sealed partial class CP14WorkbenchSystem : SharedCP14WorkbenchSystem return; } - if (recipe.KnowledgeRequired is not null) - _knowledge.UseKnowledge(args.User, recipe.KnowledgeRequired.Value); - var resultEntities = new HashSet(); for (int i = 0; i < recipe.ResultCount; i++) { var resultEntity = Spawn(recipe.Result); - resultEntities.Add(resultEntity); - - if (recipe.TryMergeSolutions) - { - _solutionContainer.TryGetSolution(resultEntity, recipe.Solution, out var resultSolution, out _); - - if (resultSolution is not null) - { - resultSolution.Value.Comp.Solution.MaxVolume = 0; - _solutionContainer.RemoveAllSolution(resultSolution - .Value); //If we combine ingredient solutions, we do not use the default solution prescribed in the entity. - } - } } - foreach (var requiredIngredient in recipe.Entities) + foreach (var req in recipe.Requirements) { - var requiredCount = requiredIngredient.Value; - foreach (var placedEntity in placedEntities) - { - if (!TryComp(placedEntity, out var metaData)) - continue; - - if (metaData.EntityPrototype is null) - continue; - - var placedProto = metaData.EntityPrototype.ID; - if (placedProto == requiredIngredient.Key && requiredCount > 0) - { - // Trying merge solutions - if (recipe.TryMergeSolutions) - { - _solutionContainer.TryGetSolution(placedEntity, - recipe.Solution, - out var ingredientSoln, - out var ingredientSolution); - - if (ingredientSoln is not null && - ingredientSolution is not null) - { - var splitted = _solutionContainer.SplitSolution(ingredientSoln.Value, - ingredientSolution.Volume / recipe.ResultCount); - - foreach (var resultEntity in resultEntities) - { - _solutionContainer.TryGetSolution(resultEntity, - recipe.Solution, - out var resultSolution, - out _); - if (resultSolution is not null) - { - resultSolution.Value.Comp.Solution.MaxVolume += - ingredientSoln.Value.Comp.Solution.MaxVolume / recipe.ResultCount; - _solutionContainer.TryAddSolution(resultSolution.Value, splitted); - } - } - } - } - - requiredCount--; - Del(placedEntity); - } - } - } - - foreach (var requiredStack in recipe.Stacks) - { - var requiredCount = requiredStack.Value; - foreach (var placedEntity in placedEntities) - { - if (!_stackQuery.TryGetComponent(placedEntity, out var stack)) - continue; - - if (stack.StackTypeId != requiredStack.Key) - continue; - - var count = (int)MathF.Min(requiredCount, stack.Count); - - if (stack.Count - count <= 0) - Del(placedEntity); - else - _stack.SetCount(placedEntity, stack.Count - count, stack); - - requiredCount -= count; - } + req.PostCraft(EntityManager, placedEntities, args.User); } //We teleport result to workbench AFTER craft. @@ -219,56 +136,12 @@ public sealed partial class CP14WorkbenchSystem : SharedCP14WorkbenchSystem private bool CanCraftRecipe(CP14WorkbenchRecipePrototype recipe, HashSet entities, EntityUid user) { - //Knowledge check - if (recipe.KnowledgeRequired is not null && !_knowledge.HasKnowledge(user, recipe.KnowledgeRequired.Value)) - return false; - - //Ingredients check - var indexedIngredients = IndexIngredients(entities); - foreach (var requiredIngredient in recipe.Entities) + foreach (var req in recipe.Requirements) { - if (!indexedIngredients.TryGetValue(requiredIngredient.Key, out var availableQuantity) || - availableQuantity < requiredIngredient.Value) - return false; - } - - foreach (var (key, value) in recipe.Stacks) - { - var count = 0; - foreach (var ent in entities) - { - if (_stackQuery.TryGetComponent(ent, out var stack)) - { - if (stack.StackTypeId != key) - continue; - - count += stack.Count; - } - } - - if (count < value) + if (!req.CheckRequirement(EntityManager, _proto, entities, user)) return false; } return true; } - - private Dictionary IndexIngredients(HashSet ingredients) - { - var indexedIngredients = new Dictionary(); - - foreach (var ingredient in ingredients) - { - var protoId = _metaQuery.GetComponent(ingredient).EntityPrototype?.ID; - if (protoId == null) - continue; - - if (indexedIngredients.ContainsKey(protoId)) - indexedIngredients[protoId]++; - else - indexedIngredients[protoId] = 1; - } - - return indexedIngredients; - } } diff --git a/Content.Shared/Content.Shared.csproj b/Content.Shared/Content.Shared.csproj index 4cca399b28..078fd170d6 100644 --- a/Content.Shared/Content.Shared.csproj +++ b/Content.Shared/Content.Shared.csproj @@ -16,6 +16,7 @@ false + false diff --git a/Content.Shared/_CP14/CCvar/CCvars.CP14DiscordAuth.cs b/Content.Shared/_CP14/CCvar/CCvars.CP14DiscordAuth.cs new file mode 100644 index 0000000000..14db786211 --- /dev/null +++ b/Content.Shared/_CP14/CCvar/CCvars.CP14DiscordAuth.cs @@ -0,0 +1,15 @@ +using Robust.Shared.Configuration; + +namespace Content.Shared.CCVar; + +public sealed partial class CCVars +{ + public static readonly CVarDef DiscordAuthEnabled = + CVarDef.Create("cp14.discord_auth_enabled", false, CVar.SERVERONLY); + + public static readonly CVarDef DiscordAuthUrl = + CVarDef.Create("cp14.discord_auth_url", "http://localhost:8000/sponsors", CVar.SERVERONLY | CVar.CONFIDENTIAL); + + public static readonly CVarDef DiscordAuthToken = + CVarDef.Create("cp14.discord_auth_token", "token", CVar.SERVERONLY | CVar.CONFIDENTIAL); +} diff --git a/Content.Shared/_CP14/CCvar/CCvars.CP14JoinQueue.cs b/Content.Shared/_CP14/CCvar/CCvars.CP14JoinQueue.cs new file mode 100644 index 0000000000..39d89c6215 --- /dev/null +++ b/Content.Shared/_CP14/CCvar/CCvars.CP14JoinQueue.cs @@ -0,0 +1,9 @@ +using Robust.Shared.Configuration; + +namespace Content.Shared.CCVar; + +public sealed partial class CCVars +{ + public static readonly CVarDef QueueEnabled = + CVarDef.Create("cp14.join_queue_enabled", true, CVar.SERVERONLY); +} diff --git a/Content.Shared/_CP14/CCvar/CCvars.CP14Sponsors.cs b/Content.Shared/_CP14/CCvar/CCvars.CP14Sponsors.cs new file mode 100644 index 0000000000..f9e3d21e9a --- /dev/null +++ b/Content.Shared/_CP14/CCvar/CCvars.CP14Sponsors.cs @@ -0,0 +1,12 @@ +using Robust.Shared.Configuration; + +namespace Content.Shared.CCVar; + +public sealed partial class CCVars +{ + public static readonly CVarDef SponsorsApiUrl = + CVarDef.Create("cp14.sponsor_api_url", "http://localhost:8000/sponsors", CVar.SERVERONLY | CVar.CONFIDENTIAL); + + public static readonly CVarDef SponsorsApiKey = + CVarDef.Create("cp14.sponsor_api_key", "token", CVar.SERVERONLY | CVar.CONFIDENTIAL); +} diff --git a/Content.Shared/_CP14/Demiplane/CP14SharedDemiplanSytem.cs b/Content.Shared/_CP14/Demiplane/CP14SharedDemiplanSytem.cs index caeedfffc6..13d3fcf7ab 100644 --- a/Content.Shared/_CP14/Demiplane/CP14SharedDemiplanSytem.cs +++ b/Content.Shared/_CP14/Demiplane/CP14SharedDemiplanSytem.cs @@ -14,10 +14,10 @@ public abstract partial class CP14SharedDemiplaneSystem : EntitySystem { base.Initialize(); - SubscribeLocalEvent(OnDemiplanPasswayInteract); + SubscribeLocalEvent(OnDemiplanePasswayInteract); } - private void OnDemiplanPasswayInteract(Entity passway, ref InteractHandEvent args) + private void OnDemiplanePasswayInteract(Entity passway, ref InteractHandEvent args) { _doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, args.User, @@ -33,6 +33,16 @@ public abstract partial class CP14SharedDemiplaneSystem : EntitySystem MovementThreshold = 0.2f, }); } + + public virtual bool TryTeleportIntoDemiplane(Entity demiplane, EntityUid? entity) + { + return true; + } + + public virtual bool TryTeleportOutDemiplane(Entity demiplane, EntityUid? entity) + { + return true; + } } [Serializable, NetSerializable] diff --git a/Content.Shared/_CP14/DemiplaneTraveling/CP14MonolithTimedPasswayComponent.cs b/Content.Shared/_CP14/DemiplaneTraveling/CP14MonolithTimedPasswayComponent.cs new file mode 100644 index 0000000000..f12cb8944a --- /dev/null +++ b/Content.Shared/_CP14/DemiplaneTraveling/CP14MonolithTimedPasswayComponent.cs @@ -0,0 +1,29 @@ +using Robust.Shared.Audio; + +namespace Content.Shared._CP14.DemiplaneTraveling; + +/// +/// teleports a certain number of entities to coordinate with a delay +/// +[RegisterComponent, AutoGenerateComponentPause] +public sealed partial class CP14MonolithTimedPasswayComponent : Component +{ + [DataField] + public int MaxEntities = 3; + + [DataField] + public TimeSpan Delay = TimeSpan.FromSeconds(10f); + + [DataField] + public float Radius = 3f; + + [DataField] + [AutoPausedField] + public TimeSpan NextTimeTeleport = TimeSpan.Zero; + + [DataField("arrivalSound")] + public SoundSpecifier ArrivalSound = new SoundPathSpecifier("/Audio/Effects/teleport_arrival.ogg"); + + [DataField("departureSound")] + public SoundSpecifier DepartureSound = new SoundPathSpecifier("/Audio/Effects/teleport_departure.ogg"); +} diff --git a/Content.Shared/_CP14/Discord/MsgDiscordAuthCheck.cs b/Content.Shared/_CP14/Discord/MsgDiscordAuthCheck.cs new file mode 100644 index 0000000000..eb4cd692ed --- /dev/null +++ b/Content.Shared/_CP14/Discord/MsgDiscordAuthCheck.cs @@ -0,0 +1,18 @@ +using Lidgren.Network; +using Robust.Shared.Network; +using Robust.Shared.Serialization; + +namespace Content.Shared._CP14.Discord; + +public sealed class MsgDiscordAuthCheck : NetMessage +{ + public override MsgGroups MsgGroup => MsgGroups.Command; + + public override void ReadFromBuffer(NetIncomingMessage buffer, IRobustSerializer serializer) + { + } + + public override void WriteToBuffer(NetOutgoingMessage buffer, IRobustSerializer serializer) + { + } +} diff --git a/Content.Shared/_CP14/Discord/MsgDiscordAuthRequired.cs b/Content.Shared/_CP14/Discord/MsgDiscordAuthRequired.cs new file mode 100644 index 0000000000..e65099881f --- /dev/null +++ b/Content.Shared/_CP14/Discord/MsgDiscordAuthRequired.cs @@ -0,0 +1,21 @@ +using Lidgren.Network; +using Robust.Shared.Network; +using Robust.Shared.Serialization; + +namespace Content.Shared._CP14.Discord; + +public sealed class MsgDiscordAuthRequired : NetMessage +{ + public override MsgGroups MsgGroup => MsgGroups.Command; + public string AuthUrl { get; set; } = string.Empty; + + public override void ReadFromBuffer(NetIncomingMessage buffer, IRobustSerializer serializer) + { + AuthUrl = buffer.ReadString(); + } + + public override void WriteToBuffer(NetOutgoingMessage buffer, IRobustSerializer serializer) + { + buffer.Write(AuthUrl); + } +} diff --git a/Content.Shared/_CP14/MagicSpell/CP14SharedMagicSystem.Checks.cs b/Content.Shared/_CP14/MagicSpell/CP14SharedMagicSystem.Checks.cs index 24380e5e90..3b59127edf 100644 --- a/Content.Shared/_CP14/MagicSpell/CP14SharedMagicSystem.Checks.cs +++ b/Content.Shared/_CP14/MagicSpell/CP14SharedMagicSystem.Checks.cs @@ -95,7 +95,8 @@ public abstract partial class CP14SharedMagicSystem var ev = new CP14VerbalAspectSpeechEvent { Performer = args.Performer, - Speech = ent.Comp.StartSpeech, + Speech = Loc.GetString(ent.Comp.StartSpeech), + Emote = ent.Comp.Emote }; RaiseLocalEvent(ent, ref ev); } @@ -108,7 +109,8 @@ public abstract partial class CP14SharedMagicSystem var ev = new CP14VerbalAspectSpeechEvent { Performer = args.Performer, - Speech = ent.Comp.EndSpeech, + Speech = Loc.GetString(ent.Comp.EndSpeech), + Emote = ent.Comp.Emote }; RaiseLocalEvent(ent, ref ev); } diff --git a/Content.Shared/_CP14/MagicSpell/Components/CP14MagicEffectVerbalAspectComponent.cs b/Content.Shared/_CP14/MagicSpell/Components/CP14MagicEffectVerbalAspectComponent.cs index 8afa40ca6e..9d2dd25cb1 100644 --- a/Content.Shared/_CP14/MagicSpell/Components/CP14MagicEffectVerbalAspectComponent.cs +++ b/Content.Shared/_CP14/MagicSpell/Components/CP14MagicEffectVerbalAspectComponent.cs @@ -7,10 +7,13 @@ namespace Content.Shared._CP14.MagicSpell.Components; public sealed partial class CP14MagicEffectVerbalAspectComponent : Component { [DataField] - public string StartSpeech = string.Empty; + public string StartSpeech = string.Empty; //Not LocId! [DataField] - public string EndSpeech = string.Empty; + public string EndSpeech = string.Empty; //Not LocId! + + [DataField] + public bool Emote = false; } /// @@ -22,4 +25,6 @@ public sealed class CP14VerbalAspectSpeechEvent : EntityEventArgs public EntityUid? Performer { get; init; } public string? Speech { get; init; } + + public bool Emote { get; init; } } diff --git a/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellDemiplaneInfiltration.cs b/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellDemiplaneInfiltration.cs new file mode 100644 index 0000000000..6a87d5fa67 --- /dev/null +++ b/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellDemiplaneInfiltration.cs @@ -0,0 +1,26 @@ +using Content.Shared._CP14.Demiplane; +using Content.Shared._CP14.Demiplane.Components; + +namespace Content.Shared._CP14.MagicSpell.Spells; + +public sealed partial class CP14SpellDemiplaneInfiltration : CP14SpellEffect +{ + public override void Effect(EntityManager entManager, CP14SpellEffectBaseArgs args) + { + if (args.User is null) + return; + + if (!entManager.TryGetComponent(args.Target, out var rift)) + return; + + if (rift.Demiplane is null) + return; + + if (!entManager.TryGetComponent(rift.Demiplane.Value, out var demiplane)) + return; + + var demiplaneSystem = entManager.System(); + + demiplaneSystem.TryTeleportIntoDemiplane((rift.Demiplane.Value, demiplane), args.User.Value); + } +} diff --git a/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellThrowFromUser.cs b/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellThrowFromUser.cs new file mode 100644 index 0000000000..d0d9b9c413 --- /dev/null +++ b/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellThrowFromUser.cs @@ -0,0 +1,31 @@ +using Content.Shared.Throwing; + +namespace Content.Shared._CP14.MagicSpell.Spells; + +public sealed partial class CP14SpellThrowFromUser : CP14SpellEffect +{ + [DataField] + public float ThrowPower = 10f; + + public override void Effect(EntityManager entManager, CP14SpellEffectBaseArgs args) + { + if (args.Target is null) + return; + + var targetEntity = args.Target.Value; + + var throwing = entManager.System(); + var xfom = entManager.System(); + + if (!entManager.TryGetComponent(args.User, out var userTransform)) + return; + + if (!entManager.TryGetComponent(targetEntity, out var targetTransform)) + return; + + var worldPos = xfom.GetWorldPosition(args.User.Value); + var foo = xfom.GetWorldPosition(args.Target.Value) - worldPos; + + throwing.TryThrow(targetEntity, foo * 2.5f, ThrowPower, args.User, doSpin: true); + } +} diff --git a/Content.Shared/_CP14/Material/CP14MaterialComponent.cs b/Content.Shared/_CP14/Material/CP14MaterialComponent.cs new file mode 100644 index 0000000000..19aa955754 --- /dev/null +++ b/Content.Shared/_CP14/Material/CP14MaterialComponent.cs @@ -0,0 +1,11 @@ +using Content.Shared.Materials; +using Robust.Shared.Prototypes; + +namespace Content.Shared._CP14.Material; + +[RegisterComponent] +public sealed partial class CP14MaterialComponent : Component +{ + [DataField(required: true)] + public Dictionary, int> Materials = new(); +} diff --git a/Content.Shared/_CP14/Material/CP14MaterialSystem.cs b/Content.Shared/_CP14/Material/CP14MaterialSystem.cs new file mode 100644 index 0000000000..f8bba75221 --- /dev/null +++ b/Content.Shared/_CP14/Material/CP14MaterialSystem.cs @@ -0,0 +1,39 @@ +using System.Text; +using Content.Shared.Examine; +using Content.Shared.Stacks; +using Robust.Shared.Prototypes; + +namespace Content.Shared._CP14.Material; + +public sealed partial class CP14MaterialSystem : EntitySystem +{ + [Dependency] private readonly IPrototypeManager _proto = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnMaterialExamined); + } + + private void OnMaterialExamined(Entity ent, ref ExaminedEvent args) + { + TryComp(ent, out var stack); + + var sb = new StringBuilder(); + + sb.Append($"{Loc.GetString("cp14-material-examine")}\n"); + foreach (var material in ent.Comp.Materials) + { + if (!_proto.TryIndex(material.Key, out var indexedMaterial)) + continue; + + var count = material.Value; + if (stack is not null) + count *= stack.Count; + + sb.Append($"[color={indexedMaterial.Color.ToHex()}]{Loc.GetString(indexedMaterial.Name)}[/color] ({count})\n"); + } + args.PushMarkup(sb.ToString()); + } + +} diff --git a/Content.Shared/_CP14/ModularCraft/Prototypes/CP14ModularCraftPartPrototype.cs b/Content.Shared/_CP14/ModularCraft/Prototypes/CP14ModularCraftPartPrototype.cs index d35e9895df..8d91214999 100644 --- a/Content.Shared/_CP14/ModularCraft/Prototypes/CP14ModularCraftPartPrototype.cs +++ b/Content.Shared/_CP14/ModularCraft/Prototypes/CP14ModularCraftPartPrototype.cs @@ -20,7 +20,7 @@ public sealed partial class CP14ModularCraftPartPrototype : IPrototype public EntProtoId? SourcePart; [DataField] - public float DestroyProb = 0.25f; + public float DestroyProb = 0.0f; [DataField(serverOnly: true)] public List Modifiers = new(); diff --git a/Content.Shared/_CP14/RoundStatistic/CP14RoundStatTrackerPrototype.cs b/Content.Shared/_CP14/RoundStatistic/CP14RoundStatTrackerPrototype.cs new file mode 100644 index 0000000000..9da3be1582 --- /dev/null +++ b/Content.Shared/_CP14/RoundStatistic/CP14RoundStatTrackerPrototype.cs @@ -0,0 +1,12 @@ +using Robust.Shared.Prototypes; + +namespace Content.Shared._CP14.RoundStatistic; + +[Prototype("statisticTracker")] +public sealed partial class CP14RoundStatTrackerPrototype : IPrototype +{ + [IdDataField] public string ID { get; } = default!; + + [DataField(required: true)] + public LocId Text; +} diff --git a/Content.Shared/_CP14/Workbench/Prototypes/CP14WorkbenchRecipePrototype.cs b/Content.Shared/_CP14/Workbench/Prototypes/CP14WorkbenchRecipePrototype.cs index 2f1c88b1b6..9e1c9009c9 100644 --- a/Content.Shared/_CP14/Workbench/Prototypes/CP14WorkbenchRecipePrototype.cs +++ b/Content.Shared/_CP14/Workbench/Prototypes/CP14WorkbenchRecipePrototype.cs @@ -3,8 +3,6 @@ * https://github.com/space-wizards/space-station-14/blob/master/LICENSE.TXT */ -using Content.Shared._CP14.Knowledge.Prototypes; -using Content.Shared.Stacks; using Content.Shared.Tag; using Robust.Shared.Audio; using Robust.Shared.Prototypes; @@ -26,27 +24,12 @@ public sealed class CP14WorkbenchRecipePrototype : IPrototype [DataField] public SoundSpecifier? OverrideCraftSound; - [DataField] - public Dictionary Entities = new(); - - [DataField] - public Dictionary, int> Stacks = new(); + [DataField(required: true)] + public List Requirements = new(); [DataField(required: true)] public EntProtoId Result; [DataField] public int ResultCount = 1; - - [DataField] - public bool TryMergeSolutions = false; - - [DataField] - public string Solution = "food"; - - /// - /// If the player does not have this knowledge, the recipe will not be displayed in the workbench. - /// - [DataField] - public ProtoId? KnowledgeRequired; } diff --git a/Content.Shared/_CP14/Workbench/Requirements/KnowledgeRequired.cs b/Content.Shared/_CP14/Workbench/Requirements/KnowledgeRequired.cs new file mode 100644 index 0000000000..02d71cbd8b --- /dev/null +++ b/Content.Shared/_CP14/Workbench/Requirements/KnowledgeRequired.cs @@ -0,0 +1,48 @@ +using Content.Shared._CP14.Knowledge; +using Content.Shared._CP14.Knowledge.Prototypes; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Shared._CP14.Workbench.Requirements; + +public sealed partial class KnowledgeRequired : CP14WorkbenchCraftRequirement +{ + /// + /// If the player does not have this knowledge, the recipe will not be displayed in the workbench. + /// + [DataField(required: true)] + public ProtoId Knowledge; + + public override bool CheckRequirement(EntityManager entManager, + IPrototypeManager protoManager, + HashSet placedEntities, + EntityUid user) + { + var knowledgeSystem = entManager.System(); + + return knowledgeSystem.HasKnowledge(user, Knowledge); + } + + public override void PostCraft(EntityManager entManager, HashSet placedEntities, EntityUid user) + { + var knowledgeSystem = entManager.System(); + knowledgeSystem.UseKnowledge(user, Knowledge); + } + + public override string GetRequirementTitle(IPrototypeManager protoManager) + { + return !protoManager.TryIndex(Knowledge, out var indexedKnowledge) + ? "Error knowledge" + : $"{Loc.GetString("cp14-knowledge")}: {Loc.GetString(indexedKnowledge.Name)}"; + } + + public override EntityPrototype? GetRequirementEntityView(IPrototypeManager protoManager) + { + return null; + } + + public override SpriteSpecifier? GetRequirementTexture(IPrototypeManager protoManager) + { + return new SpriteSpecifier.Texture(new("/Textures/Interface/students-cap.svg.192dpi.png")); + } +} diff --git a/Content.Shared/_CP14/Workbench/Requirements/MaterialResource.cs b/Content.Shared/_CP14/Workbench/Requirements/MaterialResource.cs new file mode 100644 index 0000000000..2b46e412ea --- /dev/null +++ b/Content.Shared/_CP14/Workbench/Requirements/MaterialResource.cs @@ -0,0 +1,112 @@ +/* + * This file is sublicensed under MIT License + * https://github.com/space-wizards/space-station-14/blob/master/LICENSE.TXT + */ + +using Content.Shared._CP14.Material; +using Content.Shared.Materials; +using Content.Shared.Stacks; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Shared._CP14.Workbench.Requirements; + +public sealed partial class MaterialResource : CP14WorkbenchCraftRequirement +{ + [DataField(required: true)] + public ProtoId Material; + + [DataField] + public int Count = 1; + + public override bool CheckRequirement(EntityManager entManager, IPrototypeManager protoManager, HashSet placedEntities, EntityUid user) + { + var count = 0; + foreach (var ent in placedEntities) + { + if (!entManager.TryGetComponent(ent, out var material)) + continue; + + entManager.TryGetComponent(ent, out var stack); + + foreach (var (key, value) in material.Materials) + { + if (key != Material) + continue; + + if (stack is null) + { + count += value; + } + else + { + count += value * stack.Count; + } + } + } + + if (count < Count) + return false; + + return true; + } + + public override void PostCraft(EntityManager entManager, HashSet placedEntities, EntityUid user) + { + var stackSystem = entManager.System(); + + var requiredCount = Count; + foreach (var placedEntity in placedEntities) + { + if (!entManager.TryGetComponent(placedEntity, out var material)) + continue; + + entManager.TryGetComponent(placedEntity, out var stack); + + foreach (var mat in material.Materials) + { + if (mat.Key != Material) + continue; + + if (stack is null) + { + var value = (int)MathF.Min(requiredCount, mat.Value); + requiredCount -= value; + entManager.DeleteEntity(placedEntity); + continue; + } + else + { + var materialValue = mat.Value * stack.Count; + var countToRemove = (int)MathF.Min(requiredCount, materialValue); + var newStackCount = (int)MathF.Ceiling((materialValue - countToRemove) / (float)mat.Value); + + if (newStackCount <= 0) + entManager.DeleteEntity(placedEntity); + else + stackSystem.SetCount(placedEntity, newStackCount, stack); + + requiredCount -= countToRemove; + } + } + } + } + + public override string GetRequirementTitle(IPrototypeManager protoManager) + { + if (!protoManager.TryIndex(Material, out var indexedMaterial)) + return "Error material"; + + return $"{Loc.GetString(indexedMaterial.Name)} x{Count}"; + } + + public override EntityPrototype? GetRequirementEntityView(IPrototypeManager protoManager) + { + return null; + } + + public override SpriteSpecifier? GetRequirementTexture(IPrototypeManager protoManager) + { + return !protoManager.TryIndex(Material, out var indexedMaterial) ? null : indexedMaterial.Icon; + } +} diff --git a/Content.Shared/_CP14/Workbench/Requirements/ProtoIdResource.cs b/Content.Shared/_CP14/Workbench/Requirements/ProtoIdResource.cs new file mode 100644 index 0000000000..912547812d --- /dev/null +++ b/Content.Shared/_CP14/Workbench/Requirements/ProtoIdResource.cs @@ -0,0 +1,94 @@ +/* + * This file is sublicensed under MIT License + * https://github.com/space-wizards/space-station-14/blob/master/LICENSE.TXT + */ + +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Shared._CP14.Workbench.Requirements; + +public sealed partial class ProtoIdResource : CP14WorkbenchCraftRequirement +{ + [DataField(required: true)] + public EntProtoId ProtoId; + + [DataField] + public int Count = 1; + + public override bool CheckRequirement(EntityManager entManager, + IPrototypeManager protoManager, + HashSet placedEntities, + EntityUid user) + { + var indexedIngredients = IndexIngredients(entManager, placedEntities); + + return indexedIngredients.TryGetValue(ProtoId, out var availableQuantity) && availableQuantity >= Count; + } + + public override void PostCraft(EntityManager entManager, + HashSet placedEntities, + EntityUid user) + { + var requiredCount = Count; + + foreach (var placedEntity in placedEntities) + { + if (!entManager.TryGetComponent(placedEntity, out var metaData)) + continue; + + if (metaData.EntityPrototype is null) + continue; + + var placedProto = metaData.EntityPrototype.ID; + if (placedProto != ProtoId || requiredCount <= 0) + continue; + + requiredCount--; + entManager.DeleteEntity(placedEntity); + } + } + + public override string GetRequirementTitle(IPrototypeManager protoManager) + { + if (!protoManager.TryIndex(ProtoId, out var indexedProto)) + return "Error entity"; + + return $"{indexedProto.Name} x{Count}"; + } + + public override EntityPrototype? GetRequirementEntityView(IPrototypeManager protoManager) + { + if (!protoManager.TryIndex(ProtoId, out var indexedProto)) + return null; + + return indexedProto; + } + + public override SpriteSpecifier? GetRequirementTexture(IPrototypeManager protoManager) + { + return null; + } + + private Dictionary IndexIngredients(EntityManager entManager, HashSet ingredients) + { + var indexedIngredients = new Dictionary(); + + foreach (var ingredient in ingredients) + { + if (!entManager.TryGetComponent(ingredient, out var metaData)) + continue; + + var protoId = metaData.EntityPrototype?.ID; + if (protoId == null) + continue; + + if (indexedIngredients.ContainsKey(protoId)) + indexedIngredients[protoId]++; + else + indexedIngredients[protoId] = 1; + } + + return indexedIngredients; + } +} diff --git a/Content.Shared/_CP14/Workbench/Requirements/StackResource.cs b/Content.Shared/_CP14/Workbench/Requirements/StackResource.cs new file mode 100644 index 0000000000..814c381c0a --- /dev/null +++ b/Content.Shared/_CP14/Workbench/Requirements/StackResource.cs @@ -0,0 +1,86 @@ +/* + * This file is sublicensed under MIT License + * https://github.com/space-wizards/space-station-14/blob/master/LICENSE.TXT + */ + +using Content.Shared.Stacks; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Shared._CP14.Workbench.Requirements; + +public sealed partial class StackResource : CP14WorkbenchCraftRequirement +{ + [DataField(required: true)] + public ProtoId Stack; + + [DataField] + public int Count = 1; + + public override bool CheckRequirement(EntityManager entManager, + IPrototypeManager protoManager, + HashSet placedEntities, + EntityUid user) + { + var count = 0; + foreach (var ent in placedEntities) + { + if (!entManager.TryGetComponent(ent, out var stack)) + continue; + + if (stack.StackTypeId != Stack) + continue; + + count += stack.Count; + } + + if (count < Count) + return false; + + return true; + } + + public override void PostCraft(EntityManager entManager, + HashSet placedEntities, + EntityUid user) + { + var stackSystem = entManager.System(); + + var requiredCount = Count; + foreach (var placedEntity in placedEntities) + { + if (!entManager.TryGetComponent(placedEntity, out var stack)) + continue; + + if (stack.StackTypeId != Stack) + continue; + + var count = (int)MathF.Min(requiredCount, stack.Count); + + if (stack.Count - count <= 0) + entManager.DeleteEntity(placedEntity); + else + stackSystem.SetCount(placedEntity, stack.Count - count, stack); + + requiredCount -= count; + } + } + + public override string GetRequirementTitle(IPrototypeManager protoManager) + { + if (!protoManager.TryIndex(Stack, out var indexedStack)) + return "Error stack"; + + return $"{Loc.GetString(indexedStack.Name)} x{Count}"; + } + + public override EntityPrototype? GetRequirementEntityView(IPrototypeManager protoManager) + { + return null; + } + + public override SpriteSpecifier? GetRequirementTexture(IPrototypeManager protoManager) + { + return !protoManager.TryIndex(Stack, out var indexedStack) ? null : indexedStack.Icon; + } +} diff --git a/Content.Shared/_CP14/Workbench/WorkbenchCraftRequirement.cs b/Content.Shared/_CP14/Workbench/WorkbenchCraftRequirement.cs new file mode 100644 index 0000000000..f9a9cba01a --- /dev/null +++ b/Content.Shared/_CP14/Workbench/WorkbenchCraftRequirement.cs @@ -0,0 +1,46 @@ +/* + * This file is sublicensed under MIT License + * https://github.com/space-wizards/space-station-14/blob/master/LICENSE.TXT + */ + +using JetBrains.Annotations; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Shared._CP14.Workbench; + +[ImplicitDataDefinitionForInheritors] +[MeansImplicitUse] +public abstract partial class CP14WorkbenchCraftRequirement +{ + /// + /// Here a check is made that the recipe as a whole can be fulfilled at the current moment. Do not add anything that affects gameplay here, and only perform checks here. + /// + /// + public abstract bool CheckRequirement(EntityManager entManager, + IPrototypeManager protoManager, + HashSet placedEntities, + EntityUid user); + + /// + /// An event that is triggered after crafting. This is the place to put important things like removing items, spending stacks or other things. + /// + public abstract void PostCraft(EntityManager entManager, + HashSet placedEntities, + EntityUid user); + + /// + /// This text will be displayed in the description of the craft recipe. Write something like ‘Wooden planks: х10’ here + /// + public abstract string GetRequirementTitle(IPrototypeManager protoManager); + + /// + /// You can specify an icon generated from an entity. It will support layering, colour changes and other layer options. Return null to disable. + /// + public abstract EntityPrototype? GetRequirementEntityView(IPrototypeManager protoManager); + + /// + /// You can specify the texture directly. Return null to disable. + /// + public abstract SpriteSpecifier? GetRequirementTexture(IPrototypeManager protoManager); +} diff --git a/Resources/Audio/_CP14/Animals/attributions.yml b/Resources/Audio/_CP14/Animals/attributions.yml index c31c70aeef..40e12e1430 100644 --- a/Resources/Audio/_CP14/Animals/attributions.yml +++ b/Resources/Audio/_CP14/Animals/attributions.yml @@ -58,8 +58,12 @@ copyright: 'by egomassive of Freesound.org.' source: "https://freesound.org/people/egomassive/sounds/536728/" - - files: ["ghost_ambi.ogg"] license: "CC0-1.0" copyright: 'by Litruv of Freesound.org.' source: "https://freesound.org/people/Litruv/sounds/175944/" + +- files: ["frog1.ogg, frog2.ogg, frog3.ogg"] + license: "CC-BY-4.0" + copyright: 'by iainmccurdy of Freesound.org. Cropped and mixed from stereo to mono.' + source: "https://freesound.org/people/iainmccurdy/sounds/743820/" diff --git a/Resources/Audio/_CP14/Animals/frog1.ogg b/Resources/Audio/_CP14/Animals/frog1.ogg new file mode 100644 index 0000000000..6354ece308 Binary files /dev/null and b/Resources/Audio/_CP14/Animals/frog1.ogg differ diff --git a/Resources/Audio/_CP14/Animals/frog2.ogg b/Resources/Audio/_CP14/Animals/frog2.ogg new file mode 100644 index 0000000000..c791d0a72b Binary files /dev/null and b/Resources/Audio/_CP14/Animals/frog2.ogg differ diff --git a/Resources/Audio/_CP14/Animals/frog3.ogg b/Resources/Audio/_CP14/Animals/frog3.ogg new file mode 100644 index 0000000000..5f4e5a72ed Binary files /dev/null and b/Resources/Audio/_CP14/Animals/frog3.ogg differ diff --git a/Resources/ConfigPresets/_CP14/Dev.toml b/Resources/ConfigPresets/_CP14/Dev.toml index d35100ff19..829aaf87e5 100644 --- a/Resources/ConfigPresets/_CP14/Dev.toml +++ b/Resources/ConfigPresets/_CP14/Dev.toml @@ -15,9 +15,10 @@ max_connections = 100 [game] hostname = "⚔️ CrystallEdge Alpha ⚔️ " -desc = "History of the City of Sword and Magic. A social economic sandbox reinventing the Space Station 14 concept in" +desc = "History of the City of Sword and Magic. A social economic sandbox reinventing the Space Station 14 concept in fantasy style" lobbyenabled = true soft_max_players = 40 +lobbyduration = 300 [server] rules_file = "CP14SandboxRU" @@ -50,4 +51,11 @@ deadmin_on_join = true flavor_text = true [tips] -dataset = "CP14Tips" \ No newline at end of file +dataset = "CP14Tips" + +[ooc] +show_ooc_patron_color = false +enable_during_round = true + +[cp14] +discord_auth_enabled = true diff --git a/Resources/Locale/en-US/_CP14/connection_messages.ftl b/Resources/Locale/en-US/_CP14/connection_messages.ftl new file mode 100644 index 0000000000..c2a409b667 --- /dev/null +++ b/Resources/Locale/en-US/_CP14/connection_messages.ftl @@ -0,0 +1,6 @@ +cp14-discord-info = To play on the server you need to go to our server in discord to authorise your account. +cp14-discord-auth-quit-btn = Exit +cp14-discord-auth-title = Authorisation +cp14-discord-auth-link = https://discord.com/invite/Sud2DMfhCC +cp14-discord-auth-browser-btn = Discord Server +cp14-discord-auth-text = Authorize \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/demiplane/demiplane.ftl b/Resources/Locale/en-US/_CP14/demiplane/demiplane.ftl index 23c7f24fe0..595630ca8f 100644 --- a/Resources/Locale/en-US/_CP14/demiplane/demiplane.ftl +++ b/Resources/Locale/en-US/_CP14/demiplane/demiplane.ftl @@ -7,3 +7,6 @@ cp14-round-end-monolith-50 = The demiplane link crystal is half discharged. cp14-round-end-monolith-discharged = You feel the connection to the other worlds begin to break.... The demiplane link crystal power will run out in { $time } { $units } if you don't charge it with mana completely... cp14-round-end-monolith-recharged = Contact with the other worlds is being re-established. The demiplane link crystal is fully charged. cp14-round-end = The demiplane link crystal was completely discharged. The connection to the other worlds has been severed. The "interesting" part of the story is over here.... + + +cp14-demiplane-echoes = Echoes of voices \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/discord/queue.ftl b/Resources/Locale/en-US/_CP14/discord/queue.ftl new file mode 100644 index 0000000000..ea332ad7ca --- /dev/null +++ b/Resources/Locale/en-US/_CP14/discord/queue.ftl @@ -0,0 +1,5 @@ +queue-title = Queue +queue-quit = Disconnect +queue-position = Position +queue-total = Total +queue-priority-join = Priority join \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/knowledge/knowledge-ui.ftl b/Resources/Locale/en-US/_CP14/knowledge/knowledge-ui.ftl index 74396f70d2..e5db00f043 100644 --- a/Resources/Locale/en-US/_CP14/knowledge/knowledge-ui.ftl +++ b/Resources/Locale/en-US/_CP14/knowledge/knowledge-ui.ftl @@ -1 +1,2 @@ -cp14-knowledge-info-title = Character knowledge \ No newline at end of file +cp14-knowledge-info-title = Character knowledge +cp14-knowledge = Knowledge \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/loadouts/loadout.ftl b/Resources/Locale/en-US/_CP14/loadouts/loadout.ftl index 458d4230cc..367aa8e994 100644 --- a/Resources/Locale/en-US/_CP14/loadouts/loadout.ftl +++ b/Resources/Locale/en-US/_CP14/loadouts/loadout.ftl @@ -42,6 +42,15 @@ cp14-loadout-guard-spells = Guard's spells cp14-loadout-bank-head = Bank employee hat cp14-loadout-commandant-head = Commandant's hat cp14-loadout-commandant-cloak = Commandant's cloak +cp14-loadout-banker-outer = Banker's waistcoat cp14-loadout-bank-shirt = Bank Employee shirt cp14-loadout-bank-pants = Bank Employee pants cp14-loadout-bank-shoes = Bank Employee shoes + +# Guildmaster + +cp14-loadout-guildmaster-cloak = Guildmaster cloak +cp14-loadout-guildmaster-shirt = Guildmaster shirt +cp14-loadout-guildmaster-pants = Guildmaster pants +cp14-loadout-guildmaster-shoes = Guildmaster shoes +cp14-loadout-guildmaster-spells = Guildmaster spells \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/lockKey/locks-types.ftl b/Resources/Locale/en-US/_CP14/lockKey/locks-types.ftl index b824cefb87..bf30536c06 100644 --- a/Resources/Locale/en-US/_CP14/lockKey/locks-types.ftl +++ b/Resources/Locale/en-US/_CP14/lockKey/locks-types.ftl @@ -14,9 +14,11 @@ cp14-lock-shape-tavern-dorm5 = tavern room №5 cp14-lock-shape-alchemist1 = alchemist's lab №1 cp14-lock-shape-alchemist2 = alchemist's lab №2 +cp14-lock-shape-alchemist3 = alchemist's lab №3 cp14-lock-shape-blacksmith1 = forge №1 cp14-lock-shape-blacksmith2 = forge №2 +cp14-lock-shape-blacksmith3 = forge №3 cp14-lock-shape-personalhouse1 = house №1 cp14-lock-shape-personalhouse2 = house №2 @@ -33,9 +35,12 @@ cp14-lock-shape-personalhouse12 = house №12 cp14-lock-shape-personalhouse13 = house №13 cp14-lock-shape-personalhouse14 = house №14 cp14-lock-shape-personalhouse15 = house №15 +cp14-lock-shape-personalhouse16 = house №16 cp14-lock-shaper-guard-entrance = barracks, entrance cp14-lock-shaper-guard-staff = barracks cp14-lock-shaper-guard-commander = guardhouse cp14-lock-shaper-guard-weapon-storage = weapons storage -cp14-lock-shape-guildmaster = guildmaster \ No newline at end of file + +cp14-lock-shape-guildmaster = guildmaster +cp14-lock-shape-demiplane-crystal = demiplane crystal \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/magicSpells/speech.ftl b/Resources/Locale/en-US/_CP14/magicSpells/speech.ftl new file mode 100644 index 0000000000..20c3db8510 --- /dev/null +++ b/Resources/Locale/en-US/_CP14/magicSpells/speech.ftl @@ -0,0 +1 @@ +cp14-kick-emote = makes a strong kick \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/magicTypes/magic.ftl b/Resources/Locale/en-US/_CP14/magicTypes/magic.ftl index fb43c247a9..d10e75a3e5 100644 --- a/Resources/Locale/en-US/_CP14/magicTypes/magic.ftl +++ b/Resources/Locale/en-US/_CP14/magicTypes/magic.ftl @@ -2,10 +2,9 @@ cp14-magic-type-fire = Fire cp14-magic-type-water = Water cp14-magic-type-earth = Earth cp14-magic-type-healing = Healing -cp14-magic-type-light-darkness = Light and darkness +cp14-magic-type-light = Light +cp14-magic-type-darkness = Darkness cp14-magic-type-meta = Metamagic -cp14-magic-type-gate = Gate -cp14-magic-type-movement = Movement cp14-magic-type-necro = Necromancy cp14-magic-manacost = Manacost diff --git a/Resources/Locale/en-US/_CP14/materials/materials.ftl b/Resources/Locale/en-US/_CP14/materials/materials.ftl index bdc4a69060..a50d8d7177 100644 --- a/Resources/Locale/en-US/_CP14/materials/materials.ftl +++ b/Resources/Locale/en-US/_CP14/materials/materials.ftl @@ -1,3 +1,5 @@ +cp14-material-examine = Consists of materials: + cp14-material-wooden-planks = wooden planks cp14-material-dirt-block = dirt cp14-material-stone-block = stone diff --git a/Resources/Locale/en-US/_CP14/objectives/condition/empire-order.ftl b/Resources/Locale/en-US/_CP14/objectives/condition/empire-order.ftl index 3c34fbddf8..b7b9a14086 100644 --- a/Resources/Locale/en-US/_CP14/objectives/condition/empire-order.ftl +++ b/Resources/Locale/en-US/_CP14/objectives/condition/empire-order.ftl @@ -4,4 +4,7 @@ cp14-objective-town-send-title = Extract { $count } { $itemName } cp14-objective-town-send-desc = Your task is to mine and ship { $count } { $itemName } to the city on a merchant ship. cp14-objective-bank-earning-title = Accumulate in the vault{ $coins } -cp14-objective-bank-earning-desc = There must be at least{ $coins } in the bank vault. You can use any methods of earning money that do not violate the law. \ No newline at end of file +cp14-objective-bank-earning-desc = There must be at least{ $coins } in the bank vault. You can use any methods of earning money that do not violate the law. + +cp14-objective-no-demiplane-death-title = Prevent deaths in the demiplanes +cp14-objective-no-demiplane-death-desc = I need to control the work of the adventurers so they don't die in the demiplanes. No more {$max} deaths! \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/stamp/stamp.ftl b/Resources/Locale/en-US/_CP14/stamp/stamp.ftl index dadbd410f5..ada48b177f 100644 --- a/Resources/Locale/en-US/_CP14/stamp/stamp.ftl +++ b/Resources/Locale/en-US/_CP14/stamp/stamp.ftl @@ -3,4 +3,5 @@ cp14-stamp-salary = Intendant of the Guard cp14-stamp-denied = Denied cp14-stamp-approved = Approved cp14-stamp-bank = Commandant -cp14-stamp-guard-commander = Guard commander \ No newline at end of file +cp14-stamp-guard-commander = Guard commander +cp14-stamp-guildmaster = Guildmaster \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/statisticTracker/trackers.ftl b/Resources/Locale/en-US/_CP14/statisticTracker/trackers.ftl new file mode 100644 index 0000000000..4e29ccb2a0 --- /dev/null +++ b/Resources/Locale/en-US/_CP14/statisticTracker/trackers.ftl @@ -0,0 +1,4 @@ +cp14-tracker-header = Round statistic: + +cp14-tracker-demiplane-open = Demiplanes opened +cp14-tracker-demiplane-deaths = Players died in demiplanes \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/worldEdge/world-edge.ftl b/Resources/Locale/en-US/_CP14/worldEdge/world-edge.ftl deleted file mode 100644 index 1f5165df6a..0000000000 --- a/Resources/Locale/en-US/_CP14/worldEdge/world-edge.ftl +++ /dev/null @@ -1,2 +0,0 @@ -cp14-world-edge-pre-remove-message = [color=red]CAUTION![/color] You are leaving the game zone! If you do not return within [color=red]{$second}[/color] seconds, you will be permanently removed from the round! -cp14-world-edge-cancel-removing-message = The exit round has been canceled. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/_PROTO/entities/entities.ftl b/Resources/Locale/ru-RU/_CP14/_PROTO/entities/entities.ftl index e78190976c..d16fce0c29 100644 --- a/Resources/Locale/ru-RU/_CP14/_PROTO/entities/entities.ftl +++ b/Resources/Locale/ru-RU/_CP14/_PROTO/entities/entities.ftl @@ -427,6 +427,9 @@ ent-CP14ClothingCloakGuardBlue = { ent-CP14ClothingCloakGuardBase } ent-CP14ClothingCloakGuardCommander = бронированный плащ командира гвардии .desc = Это чрезвычайно прочная и легкая накидка, разработанная специально для командиров Имперской гвардии. +ent-CP14ClothingCloakFurCoat = Меховая шуба + .desc = Тепло под дождем, тепло под снегом, тепло на ветру. Славно. + ent-CP14ClothingEyesMonocle = монокль .desc = Аристократично и красиво. diff --git a/Resources/Locale/ru-RU/_CP14/connection_messages.ftl b/Resources/Locale/ru-RU/_CP14/connection_messages.ftl new file mode 100644 index 0000000000..a786d341ce --- /dev/null +++ b/Resources/Locale/ru-RU/_CP14/connection_messages.ftl @@ -0,0 +1,6 @@ +cp14-discord-info = Для игры на сервере вам необходимо пройти на наш сервер в дискорд для авторизации вашего аккаунта. +cp14-discord-auth-quit-btn = Выход +cp14-discord-auth-title = Авторизация +cp14-discord-auth-link = https://discord.com/invite/Sud2DMfhCC +cp14-discord-auth-browser-btn = Сервер Discord +cp14-discord-auth-text = Авторизоваться \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/demiplane/demiplane.ftl b/Resources/Locale/ru-RU/_CP14/demiplane/demiplane.ftl index b3100ab263..58ad6f2b2d 100644 --- a/Resources/Locale/ru-RU/_CP14/demiplane/demiplane.ftl +++ b/Resources/Locale/ru-RU/_CP14/demiplane/demiplane.ftl @@ -7,3 +7,6 @@ cp14-round-end-monolith-50 = Кристалл связи с демипланам cp14-round-end-monolith-discharged = Вы чувствуете, что связь с другими мирами начинает рваться... Сила кристалла связи иссякнет через { $time } { $units }, если не запитать его маной полностью... cp14-round-end-monolith-recharged = Связь с другими мирами восстанавливается. Энергия кристалла связи восстановлена. cp14-round-end = Кристалл связи с демипланами окончательно разрядился. Связь с другими мирами оборвалась. "Интересная" часть этой истории окончена... + + +cp14-demiplane-echoes = Эхо голосов \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/discord/queue.ftl b/Resources/Locale/ru-RU/_CP14/discord/queue.ftl new file mode 100644 index 0000000000..6ec384c530 --- /dev/null +++ b/Resources/Locale/ru-RU/_CP14/discord/queue.ftl @@ -0,0 +1,5 @@ +queue-title = Очередь +queue-quit = Отключиться +queue-position = Позиция +queue-total = Всего +queue-priority-join = Приоритетный вход \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/knowledge/knowledge-ui.ftl b/Resources/Locale/ru-RU/_CP14/knowledge/knowledge-ui.ftl index 7b4d3ffbf1..3e47e30f2d 100644 --- a/Resources/Locale/ru-RU/_CP14/knowledge/knowledge-ui.ftl +++ b/Resources/Locale/ru-RU/_CP14/knowledge/knowledge-ui.ftl @@ -1 +1,2 @@ -cp14-knowledge-info-title = Знания персонажа \ No newline at end of file +cp14-knowledge-info-title = Знания персонажа +cp14-knowledge = Знания \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/loadouts/loadout.ftl b/Resources/Locale/ru-RU/_CP14/loadouts/loadout.ftl index 2e4f90b396..7289919e0a 100644 --- a/Resources/Locale/ru-RU/_CP14/loadouts/loadout.ftl +++ b/Resources/Locale/ru-RU/_CP14/loadouts/loadout.ftl @@ -44,6 +44,15 @@ cp14-loadout-guard-spells = Заклинания стражи cp14-loadout-bank-head = Шляпа работника банка cp14-loadout-commandant-head = Шляпа коменданта cp14-loadout-commandant-cloak = Накидка коменданта +cp14-loadout-banker-outer = Жилет банкира cp14-loadout-bank-shirt = Рубашка работника банка cp14-loadout-bank-pants = Штаны работника банка cp14-loadout-bank-shoes = Ботинки работника банка + +# Guildmaster + +cp14-loadout-guildmaster-cloak = Накидка гильдмастера +cp14-loadout-guildmaster-shirt = Рубашка гильдмастера +cp14-loadout-guildmaster-pants = Штаны гильдмастера +cp14-loadout-guildmaster-shoes = Ботинки гильдмастера +cp14-loadout-guildmaster-spells = Заклинания гильдмастера \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/lockKey/locks-types.ftl b/Resources/Locale/ru-RU/_CP14/lockKey/locks-types.ftl index 61a6fb67c3..b9f8c01846 100644 --- a/Resources/Locale/ru-RU/_CP14/lockKey/locks-types.ftl +++ b/Resources/Locale/ru-RU/_CP14/lockKey/locks-types.ftl @@ -14,9 +14,11 @@ cp14-lock-shape-tavern-dorm5 = комната таверны №5 cp14-lock-shape-alchemist1 = лаборатория алхимика №1 cp14-lock-shape-alchemist2 = лаборатория алхимика №2 +cp14-lock-shape-alchemist3 = лаборатория алхимика №3 cp14-lock-shape-blacksmith1 = кузня №1 cp14-lock-shape-blacksmith2 = кузня №2 +cp14-lock-shape-blacksmith3 = кузня №3 cp14-lock-shape-personalhouse1 = дом №1 cp14-lock-shape-personalhouse2 = дом №2 @@ -33,9 +35,12 @@ cp14-lock-shape-personalhouse12 = дом №12 cp14-lock-shape-personalhouse13 = дом №13 cp14-lock-shape-personalhouse14 = дом №14 cp14-lock-shape-personalhouse15 = дом №15 +cp14-lock-shape-personalhouse16 = дом №16 cp14-lock-shaper-guard-entrance = казармы, вход cp14-lock-shaper-guard-staff = казармы cp14-lock-shaper-guard-commander = дом главы стражи cp14-lock-shaper-guard-weapon-storage = хранилище оружия -cp14-lock-shape-guildmaster = гильдмастер \ No newline at end of file + +cp14-lock-shape-guildmaster = гильдмастер +cp14-lock-shape-demiplane-crystal = кристалл демиплана \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/magicSpells/speech.ftl b/Resources/Locale/ru-RU/_CP14/magicSpells/speech.ftl new file mode 100644 index 0000000000..8b7586c54c --- /dev/null +++ b/Resources/Locale/ru-RU/_CP14/magicSpells/speech.ftl @@ -0,0 +1 @@ +cp14-kick-emote = совершает сильный пинок \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/magicTypes/magic.ftl b/Resources/Locale/ru-RU/_CP14/magicTypes/magic.ftl index fe1b308257..3766d6d9da 100644 --- a/Resources/Locale/ru-RU/_CP14/magicTypes/magic.ftl +++ b/Resources/Locale/ru-RU/_CP14/magicTypes/magic.ftl @@ -2,10 +2,9 @@ cp14-magic-type-fire = Огонь cp14-magic-type-water = Вода cp14-magic-type-earth = Земля cp14-magic-type-healing = Исцеление -cp14-magic-type-light-darkness = Свет и тьма +cp14-magic-type-light = Свет +cp14-magic-type-darkness = Тьма cp14-magic-type-meta = Метамагия -cp14-magic-type-gate = Пространство -cp14-magic-type-movement = Движение cp14-magic-type-necro = Некромантия cp14-magic-manacost = Затраты маны diff --git a/Resources/Locale/ru-RU/_CP14/materials/materials.ftl b/Resources/Locale/ru-RU/_CP14/materials/materials.ftl index 29c63edad8..8531c12330 100644 --- a/Resources/Locale/ru-RU/_CP14/materials/materials.ftl +++ b/Resources/Locale/ru-RU/_CP14/materials/materials.ftl @@ -1,3 +1,5 @@ +cp14-material-examine = Состоит из материалов: + cp14-material-wooden-planks = деревянные доски cp14-material-dirt-block = земля cp14-material-stone-block = камень diff --git a/Resources/Locale/ru-RU/_CP14/objectives/condition/empire-order.ftl b/Resources/Locale/ru-RU/_CP14/objectives/condition/empire-order.ftl index a94ad1a577..cd8595b870 100644 --- a/Resources/Locale/ru-RU/_CP14/objectives/condition/empire-order.ftl +++ b/Resources/Locale/ru-RU/_CP14/objectives/condition/empire-order.ftl @@ -4,4 +4,7 @@ cp14-objective-town-send-title = Добыть { $count } { $itemName } cp14-objective-town-send-desc = Ваша задача - добыть и отправить { $count } { $itemName } в город на торговом корабле. cp14-objective-bank-earning-title = Накопить в хранилище{ $coins } -cp14-objective-bank-earning-desc = В банковском хранилище должно находиться не меньше{ $coins }. Вы можете использовать любые методы заработка, не нарушающие закон. \ No newline at end of file +cp14-objective-bank-earning-desc = В банковском хранилище должно находиться не меньше{ $coins }. Вы можете использовать любые методы заработка, не нарушающие закон. + +cp14-objective-no-demiplane-death-title = Не допустить смертей в демипланах +cp14-objective-no-demiplane-death-desc = Мне нужно контролировать работу авантюристов, чтобы они не погибали в демипланах. Не больше {$max} смертей! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/stamp/stamp.ftl b/Resources/Locale/ru-RU/_CP14/stamp/stamp.ftl index 6f003ae829..d47c8dc709 100644 --- a/Resources/Locale/ru-RU/_CP14/stamp/stamp.ftl +++ b/Resources/Locale/ru-RU/_CP14/stamp/stamp.ftl @@ -3,4 +3,5 @@ cp14-stamp-salary = Интендант гвардии cp14-stamp-denied = Отказано cp14-stamp-approved = Утверждено cp14-stamp-bank = Комендант -cp14-stamp-guard-commander = Командир стражи \ No newline at end of file +cp14-stamp-guard-commander = Командир стражи +cp14-stamp-guildmaster = Гильдмастер \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/statisticTracker/trackers.ftl b/Resources/Locale/ru-RU/_CP14/statisticTracker/trackers.ftl new file mode 100644 index 0000000000..b225a1072b --- /dev/null +++ b/Resources/Locale/ru-RU/_CP14/statisticTracker/trackers.ftl @@ -0,0 +1,4 @@ +cp14-tracker-header = Статистика раунда: + +cp14-tracker-demiplane-open = Открыто демипланов +cp14-tracker-demiplane-deaths = Умерло игроков в демипланах \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/worldEdge/world-edge.ftl b/Resources/Locale/ru-RU/_CP14/worldEdge/world-edge.ftl deleted file mode 100644 index 9d8d0676a7..0000000000 --- a/Resources/Locale/ru-RU/_CP14/worldEdge/world-edge.ftl +++ /dev/null @@ -1,2 +0,0 @@ -cp14-world-edge-pre-remove-message = [color=red]ВНИМАНИЕ![/color] Вы покидаете игровую зону! Если вы не вернетесь назад в течении [color=red]{$second}[/color] секунд, вы будете окончательно удалены из раунда! -cp14-world-edge-cancel-removing-message = Выход из раунда отменен. \ No newline at end of file diff --git a/Resources/Maps/_CP14/comoss.yml b/Resources/Maps/_CP14/comoss.yml index edcf83d3b8..9ab268fa62 100644 --- a/Resources/Maps/_CP14/comoss.yml +++ b/Resources/Maps/_CP14/comoss.yml @@ -14,6 +14,9 @@ tilemap: 28: CP14FloorGrass 29: CP14FloorGrassLight 30: CP14FloorGrassTall + 31: CP14FloorIce + 26: CP14FloorLucensWoodPlanksCruciform + 27: CP14FloorLucensWoodPlanksStairways 14: CP14FloorMarble 5: CP14FloorOakWoodPlanks 19: CP14FloorOakWoodPlanksBig @@ -98,7 +101,7 @@ entities: version: 6 -1,-1: ind: -1,-1 - tiles: BQAAAAABBQAAAAAABAAAAAAIFgAAAAABGAAAAAAFFwAAAAADBAAAAAABBQAAAAABBQAAAAACBQAAAAACBQAAAAABBQAAAAACBQAAAAAABQAAAAACBQAAAAAABAAAAAAMBQAAAAADBQAAAAABBAAAAAAEFgAAAAADGAAAAAADFwAAAAADBAAAAAAEBQAAAAAABQAAAAAABQAAAAABBQAAAAAABQAAAAABBQAAAAABBQAAAAABBQAAAAABBAAAAAABBAAAAAAMBAAAAAAKBAAAAAACFgAAAAAAFgAAAAAAFwAAAAABBAAAAAACBAAAAAALBAAAAAANBAAAAAAHBAAAAAAGBQAAAAACBAAAAAANBAAAAAAJBAAAAAACBAAAAAACBAAAAAAIGAAAAAAFGAAAAAADFgAAAAABFgAAAAAAFgAAAAAEFgAAAAADFgAAAAACBQAAAAABBQAAAAAABQAAAAAABQAAAAADBQAAAAABBAAAAAANFwAAAAAAFwAAAAABFwAAAAAAGAAAAAAAFgAAAAAAFgAAAAACFgAAAAACGAAAAAAAGAAAAAAAGAAAAAABBAAAAAABBQAAAAABBQAAAAACBQAAAAABBQAAAAADBAAAAAAJFwAAAAADGQAAAAAFFwAAAAAAGAAAAAAFFgAAAAAAGAAAAAAFGAAAAAACFwAAAAABFwAAAAADFwAAAAABBAAAAAAJBAAAAAAMBAAAAAABBAAAAAABBAAAAAALBAAAAAADFwAAAAAEGQAAAAABFwAAAAABFwAAAAABGAAAAAABFwAAAAAFFwAAAAAFFwAAAAAFFwAAAAAAFwAAAAABFwAAAAAFFwAAAAABFwAAAAAEFwAAAAADFwAAAAABFwAAAAADFwAAAAAAGQAAAAACFwAAAAACFwAAAAACGAAAAAAEFwAAAAABFwAAAAAEFwAAAAAABAAAAAADBAAAAAABBAAAAAANBAAAAAAHBAAAAAABBAAAAAAHBAAAAAAFBAAAAAAMFwAAAAAEGQAAAAAIBAAAAAAIBAAAAAACBAAAAAADBAAAAAAEBAAAAAAGFwAAAAABBAAAAAAIBgAAAAACBwAAAAACBgAAAAAABwAAAAADBQAAAAABBQAAAAADBAAAAAAJFwAAAAAFGQAAAAAGBQAAAAABBQAAAAABBQAAAAABBQAAAAABBAAAAAAGFwAAAAAEBAAAAAAEBQAAAAACBgAAAAADBwAAAAADBgAAAAAABgAAAAABBwAAAAADBAAAAAAIFwAAAAACGQAAAAAFBQAAAAABBQAAAAADBQAAAAACBQAAAAABBAAAAAAMFwAAAAABBAAAAAAIBQAAAAADBwAAAAACBgAAAAADBwAAAAABBwAAAAADBgAAAAADBAAAAAALFwAAAAAEGQAAAAABBAAAAAAJBAAAAAAKBQAAAAADBAAAAAAMBAAAAAAEFwAAAAACBAAAAAABBgAAAAADBwAAAAAABQAAAAABBAAAAAAJBAAAAAAGBAAAAAAHBAAAAAAGFwAAAAAEGQAAAAADBAAAAAANBQAAAAACBQAAAAAABQAAAAAAFwAAAAAFFwAAAAAEBAAAAAAIBwAAAAABBgAAAAACBQAAAAACBQAAAAAAFwAAAAAFFwAAAAABFwAAAAAAFwAAAAAFGQAAAAAHBAAAAAABBQAAAAADBQAAAAAABQAAAAADFwAAAAAAFwAAAAAEBAAAAAANBAAAAAAFBAAAAAAGBAAAAAAJBAAAAAADFwAAAAAAFwAAAAADGQAAAAAAGQAAAAADGQAAAAAHFwAAAAACFwAAAAABFwAAAAABFwAAAAADFwAAAAACFwAAAAACFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAADFwAAAAAEFwAAAAABGQAAAAAHGQAAAAACGQAAAAAGGQAAAAADFwAAAAADFwAAAAAEFwAAAAAAFwAAAAABFwAAAAAFFwAAAAADBAAAAAAABAAAAAAFBAAAAAAFBAAAAAAAGAAAAAACGAAAAAAFGQAAAAAFGQAAAAAGGQAAAAAIGQAAAAAD + tiles: BQAAAAABBQAAAAAABAAAAAAIFgAAAAABGAAAAAAFBAAAAAAABAAAAAABBQAAAAABBQAAAAACGgAAAAAAGwAAAAAAGwAAAAAAGgAAAAAAGwAAAAAAGwAAAAAABAAAAAAMBQAAAAADBQAAAAABBAAAAAAEFgAAAAADGAAAAAADFwAAAAADFgAAAAAAFgAAAAAABAAAAAAAGgAAAAAAGgAAAAAAGgAAAAAAGgAAAAAAGgAAAAAAGgAAAAAABAAAAAABBAAAAAAMBAAAAAAKBAAAAAACFgAAAAAAFgAAAAAAFwAAAAABFgAAAAAAFgAAAAAABAAAAAANBAAAAAAHBAAAAAAGGgAAAAAABAAAAAANBAAAAAAJBAAAAAACBAAAAAACBAAAAAAIGAAAAAAFGAAAAAADFgAAAAABFgAAAAAAFgAAAAAEFgAAAAADFgAAAAACGgAAAAAAGgAAAAAAGgAAAAAAGgAAAAAAGgAAAAAABAAAAAANFwAAAAAAFwAAAAABFwAAAAAAGAAAAAAAFgAAAAAAFgAAAAACFgAAAAACGAAAAAAAGAAAAAAAGAAAAAABBAAAAAABGgAAAAAAGgAAAAAAGgAAAAAAGgAAAAAABAAAAAAJFwAAAAADGQAAAAAFFwAAAAAAGAAAAAAFFgAAAAAAGAAAAAAFGAAAAAACFwAAAAABFwAAAAADFwAAAAABBAAAAAAJBAAAAAAMBAAAAAABBAAAAAABBAAAAAALBAAAAAADFwAAAAAEGQAAAAABFwAAAAABFwAAAAABGAAAAAABFwAAAAAFFwAAAAAFFwAAAAAFFwAAAAAAFwAAAAABFwAAAAAFFwAAAAABFwAAAAAEFwAAAAADFwAAAAABFwAAAAADFwAAAAAAGQAAAAACFwAAAAACFwAAAAACGAAAAAAEFwAAAAABFwAAAAAEFwAAAAAABAAAAAADBAAAAAABBAAAAAANBAAAAAAHBAAAAAABBAAAAAAHBAAAAAAFBAAAAAAMFwAAAAAEGQAAAAAIBAAAAAAIBAAAAAACBAAAAAADBAAAAAAEBAAAAAAGFwAAAAABBAAAAAAIBgAAAAACBwAAAAACBgAAAAAABwAAAAADBQAAAAABBQAAAAADBAAAAAAJFwAAAAAFGQAAAAAGBQAAAAABBQAAAAABBQAAAAABBQAAAAABBAAAAAAGFwAAAAAEBAAAAAAEBQAAAAACBgAAAAADBwAAAAADBgAAAAAABgAAAAABBwAAAAADBAAAAAAIFwAAAAACGQAAAAAFBQAAAAABBQAAAAADBQAAAAACBQAAAAABBAAAAAAMFwAAAAABBAAAAAAIBQAAAAADBwAAAAACBgAAAAADBwAAAAABBwAAAAADBgAAAAADBAAAAAALFwAAAAAEGQAAAAABBAAAAAAJBAAAAAAKBQAAAAADBAAAAAAMBAAAAAAEFwAAAAACBAAAAAABBgAAAAADBwAAAAAABQAAAAABBAAAAAAJBAAAAAAGBAAAAAAHBAAAAAAGFwAAAAAEGQAAAAADBAAAAAANBQAAAAACBQAAAAAABQAAAAAAFwAAAAAFFwAAAAAEBAAAAAAIBwAAAAABBgAAAAACBQAAAAACBQAAAAAAFwAAAAAFFwAAAAABFwAAAAAAFwAAAAAFGQAAAAAHBAAAAAABBQAAAAADBQAAAAAABQAAAAADFwAAAAAAFwAAAAAEBAAAAAANBAAAAAAFBAAAAAAGBAAAAAAJBAAAAAADFwAAAAAAFwAAAAADGQAAAAAAGQAAAAADGQAAAAAHFwAAAAACFwAAAAABFwAAAAABFwAAAAADFwAAAAACFwAAAAACFwAAAAAAFwAAAAAAFwAAAAAAFwAAAAADFwAAAAAEFwAAAAABGQAAAAAHGQAAAAACGQAAAAAGGQAAAAADFwAAAAADFwAAAAAEFwAAAAAAFwAAAAABFwAAAAAFFwAAAAADBAAAAAAABAAAAAAFBAAAAAAFBAAAAAAAGAAAAAACGAAAAAAFGQAAAAAFGQAAAAAGGQAAAAAIGQAAAAAD version: 6 -1,0: ind: -1,0 @@ -106,7 +109,7 @@ entities: version: 6 -1,-2: ind: -1,-2 - tiles: BwAAAAADBAAAAAAAAgAAAAAKCQAAAAAMAgAAAAAPAgAAAAALBAAAAAACBQAAAAADBgAAAAACBQAAAAADBgAAAAACBwAAAAACBgAAAAABBAAAAAAMFwAAAAAEGQAAAAAHBQAAAAAABAAAAAACBAAAAAAABAAAAAAMBAAAAAAKCQAAAAAABAAAAAAJBgAAAAACBQAAAAACBQAAAAABBAAAAAABBgAAAAABBwAAAAADBAAAAAAHFwAAAAAFGQAAAAAHBwAAAAAABwAAAAAABQAAAAAABQAAAAAABAAAAAAJFwAAAAAABAAAAAACBAAAAAABBAAAAAAEBAAAAAACBAAAAAAFBQAAAAAABAAAAAAJBAAAAAAGFwAAAAADGQAAAAAABQAAAAADBgAAAAADBgAAAAADBQAAAAAABAAAAAALFwAAAAADFwAAAAADFwAAAAABFwAAAAAEFwAAAAAFFwAAAAACGAAAAAAEFwAAAAAAFwAAAAACFwAAAAACGQAAAAABBwAAAAAABgAAAAABBgAAAAACBQAAAAAABQAAAAADGAAAAAADGQAAAAABGQAAAAADGQAAAAAIGQAAAAAAGQAAAAAEGQAAAAAAGQAAAAABGQAAAAADGQAAAAABGQAAAAAGBAAAAAAGBAAAAAAGBAAAAAAMBAAAAAAEBAAAAAAEFwAAAAAAGQAAAAAHGQAAAAAFGQAAAAAEGQAAAAABGQAAAAAGGQAAAAAEGQAAAAACGQAAAAAFGQAAAAAHGQAAAAABFwAAAAADFwAAAAADFwAAAAAEFwAAAAAAFwAAAAAFFwAAAAABFwAAAAADGAAAAAAEFgAAAAAEFwAAAAACFwAAAAAAFwAAAAACFwAAAAAFFwAAAAAEFwAAAAABFwAAAAABBAAAAAAGBAAAAAAEBAAAAAANBAAAAAAIBAAAAAAEBAAAAAAHBAAAAAALBAAAAAAJBAAAAAALBAAAAAAHBAAAAAAFBAAAAAAIBAAAAAALBAAAAAACBAAAAAADBAAAAAADBQAAAAADBQAAAAADBQAAAAACBQAAAAAABAAAAAAKBQAAAAADBQAAAAADBgAAAAADBgAAAAADBgAAAAAABQAAAAADBgAAAAAABgAAAAABBgAAAAADBQAAAAADBAAAAAAEBQAAAAABBQAAAAACBQAAAAAABgAAAAADBgAAAAADBgAAAAACBQAAAAADBgAAAAABBgAAAAADBgAAAAADBQAAAAABBgAAAAAABgAAAAADBgAAAAADBgAAAAADBgAAAAAABQAAAAAABQAAAAAABQAAAAAABgAAAAACBgAAAAAABgAAAAACBQAAAAAABQAAAAAABQAAAAAABQAAAAABBQAAAAABBQAAAAACBQAAAAAABQAAAAADBgAAAAABBgAAAAADBQAAAAACBQAAAAADBQAAAAACBQAAAAACBwAAAAABBQAAAAACBwAAAAACBwAAAAABBQAAAAABBwAAAAABBwAAAAABBwAAAAADBwAAAAACBQAAAAABBQAAAAABBAAAAAAABQAAAAADBQAAAAADBQAAAAABBQAAAAABBQAAAAABBQAAAAAABwAAAAABBwAAAAAABQAAAAABBwAAAAABBwAAAAAABwAAAAAABwAAAAABBQAAAAAABQAAAAABBAAAAAAHBQAAAAADBAAAAAAMBAAAAAAABAAAAAAKBAAAAAAEBAAAAAADDQAAAAAADQAAAAAABAAAAAABBAAAAAAMDQAAAAAADQAAAAAABAAAAAAGDQAAAAAABAAAAAAKBAAAAAAJBQAAAAABBQAAAAACBAAAAAADFgAAAAACGAAAAAAEBAAAAAAJBAAAAAACBAAAAAAGBAAAAAAHBQAAAAACBQAAAAAABQAAAAAABQAAAAADBQAAAAAABQAAAAABBAAAAAAHBQAAAAACBQAAAAADBAAAAAALFgAAAAADGAAAAAABFwAAAAABBAAAAAAIBQAAAAABBQAAAAABBQAAAAADBQAAAAADBQAAAAACBQAAAAADBQAAAAABBQAAAAADBAAAAAAC + tiles: BwAAAAADBAAAAAAAAgAAAAAKCQAAAAAMBAAAAAAABQAAAAAABAAAAAACBQAAAAADBgAAAAACBQAAAAADBgAAAAACBwAAAAACBgAAAAABBAAAAAAMFwAAAAAEGQAAAAAHBQAAAAAABAAAAAACBAAAAAAABAAAAAAMBAAAAAAKBAAAAAAABAAAAAAJBgAAAAACBQAAAAACBQAAAAABBAAAAAABBgAAAAABBwAAAAADBAAAAAAHFwAAAAAFGQAAAAAHBwAAAAAABwAAAAAABQAAAAAABQAAAAAABAAAAAAJFwAAAAAABAAAAAACBAAAAAABBAAAAAAEBAAAAAACBAAAAAAFBQAAAAAABAAAAAAJBAAAAAAGFwAAAAADGQAAAAAABQAAAAADBgAAAAADBgAAAAADBQAAAAAABAAAAAALFwAAAAADFwAAAAADFwAAAAABFwAAAAAEFwAAAAAFFwAAAAACGAAAAAAEFwAAAAAAFwAAAAACFwAAAAACGQAAAAABBwAAAAAABgAAAAABBgAAAAACBQAAAAAABQAAAAADGAAAAAADGQAAAAABGQAAAAADGQAAAAAIGQAAAAAAGQAAAAAEGQAAAAAAGQAAAAABGQAAAAADGQAAAAABGQAAAAAGBAAAAAAGBAAAAAAGBAAAAAAMBAAAAAAEBAAAAAAEFwAAAAAAGQAAAAAHGQAAAAAFGQAAAAAEGQAAAAABGQAAAAAGGQAAAAAEGQAAAAACGQAAAAAFGQAAAAAHGQAAAAABFwAAAAADFwAAAAADFwAAAAAEFwAAAAAAFwAAAAAFFwAAAAABFwAAAAADGAAAAAAEFgAAAAAEFwAAAAACFwAAAAAAFwAAAAACFwAAAAAFFwAAAAAEFwAAAAABFwAAAAABBAAAAAAGBAAAAAAEBAAAAAANBAAAAAAIBAAAAAAEBAAAAAAHBAAAAAALBAAAAAAJBAAAAAALBAAAAAAHBAAAAAAFBAAAAAAIBAAAAAALBAAAAAACBAAAAAADBAAAAAADBQAAAAADBQAAAAADBQAAAAACBQAAAAAABAAAAAAKBQAAAAADBQAAAAADBgAAAAADBgAAAAADBgAAAAAABQAAAAADBgAAAAAABgAAAAABBgAAAAADBQAAAAADBAAAAAAEBQAAAAABBQAAAAACBQAAAAAABgAAAAADBgAAAAADBgAAAAACBQAAAAADBgAAAAABBgAAAAADBgAAAAADBQAAAAABBgAAAAAABgAAAAADBgAAAAADBgAAAAADBgAAAAAABQAAAAAABQAAAAAABQAAAAAABgAAAAACBgAAAAAABgAAAAACBQAAAAAABQAAAAAABQAAAAAABQAAAAABBQAAAAABBQAAAAACBQAAAAAABQAAAAADBgAAAAABBgAAAAADBQAAAAACBQAAAAADBQAAAAACBQAAAAACBwAAAAABBQAAAAACBwAAAAACBwAAAAABBQAAAAABBwAAAAABBwAAAAABBwAAAAADBwAAAAACBQAAAAABBQAAAAABBAAAAAAABQAAAAADBQAAAAADBQAAAAABBQAAAAABBQAAAAABBQAAAAAABwAAAAABBwAAAAAABQAAAAABBwAAAAABBwAAAAAABwAAAAAABwAAAAABBQAAAAAABQAAAAABBAAAAAAHBQAAAAADBAAAAAAMBAAAAAAABAAAAAAKBAAAAAAEBAAAAAADAwAAAAAAAwAAAAAABQAAAAAABAAAAAAMDQAAAAAADQAAAAAABAAAAAAGDQAAAAAABAAAAAAKBAAAAAAJBQAAAAABBQAAAAACBAAAAAADFgAAAAACGAAAAAAEBAAAAAAJAwAAAAAAAwAAAAAABQAAAAAAGgAAAAAAGgAAAAAAGgAAAAAAGgAAAAAAGgAAAAAAGgAAAAAABAAAAAAHBQAAAAACBQAAAAADBAAAAAALFgAAAAADGAAAAAABBAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAGgAAAAAAGwAAAAAAGwAAAAAAGgAAAAAAGwAAAAAAGwAAAAAABAAAAAAC version: 6 0,-2: ind: 0,-2 @@ -138,7 +141,7 @@ entities: version: 6 1,1: ind: 1,1 - tiles: GAAAAAAFBAAAAAAGBAAAAAAKBAAAAAAKBwAAAAACBQAAAAADBQAAAAABBAAAAAAIHAAAAAACBAAAAAANAwAAAAAEAwAAAAAGAwAAAAAHDQAAAAAADQAAAAAADQAAAAAAFwAAAAAAFwAAAAAAFwAAAAACBwAAAAABBwAAAAACBQAAAAADBgAAAAAABAAAAAAHHAAAAAABBAAAAAAKAwAAAAACAwAAAAAEAwAAAAACBAAAAAANBAAAAAAEBAAAAAANFwAAAAAAFwAAAAADFwAAAAAEBAAAAAAHBAAAAAAHBAAAAAACBAAAAAAIBAAAAAAEHAAAAAAEBAAAAAANBAAAAAABBAAAAAAEBAAAAAALBAAAAAAGFwAAAAAFFwAAAAACFwAAAAACFwAAAAAAFwAAAAAFFwAAAAABFwAAAAABFwAAAAAEFwAAAAAAFwAAAAAFFwAAAAADCQAAAAADCQAAAAAJCQAAAAAJCQAAAAAGCQAAAAAICQAAAAAKCQAAAAABFwAAAAAEFwAAAAAAFwAAAAABFwAAAAABFwAAAAAEFwAAAAAEFwAAAAABFwAAAAACCQAAAAAKCQAAAAAMCQAAAAAKCQAAAAAGCQAAAAAICQAAAAAHCQAAAAAGCQAAAAACHAAAAAADFwAAAAADFwAAAAAEFwAAAAABFwAAAAAAFwAAAAABFwAAAAAFFwAAAAAACQAAAAABCQAAAAADCQAAAAAICQAAAAAKCQAAAAAKCQAAAAAICQAAAAADCQAAAAALHAAAAAAAHgAAAAAAFwAAAAABAgAAAAAGAgAAAAAKFwAAAAADFwAAAAAECQAAAAAICQAAAAACCQAAAAALCQAAAAALCQAAAAACCQAAAAALCQAAAAAJCQAAAAANCQAAAAAKHAAAAAABFwAAAAAEAgAAAAAFAgAAAAABAgAAAAAFAgAAAAAPFwAAAAADCQAAAAAICQAAAAADCQAAAAADCQAAAAAICQAAAAAJCQAAAAAKCQAAAAAACQAAAAAMCQAAAAABGAAAAAABGAAAAAADAgAAAAABAgAAAAAGAgAAAAAOAgAAAAAHFwAAAAAECQAAAAAICQAAAAACCQAAAAADCQAAAAABCQAAAAAHCQAAAAAGCQAAAAABCQAAAAAECQAAAAANFwAAAAAFCQAAAAADFwAAAAAFAgAAAAABAgAAAAABFwAAAAABFwAAAAAACQAAAAAKCQAAAAAHCQAAAAABCQAAAAAJCQAAAAACCQAAAAABCQAAAAAICQAAAAABCQAAAAABCQAAAAAIHAAAAAAFHAAAAAACFwAAAAAAFwAAAAAFFwAAAAAAHAAAAAAECQAAAAAKCQAAAAAECQAAAAANCQAAAAAFCQAAAAAJCQAAAAAMCQAAAAAECQAAAAAKCQAAAAAECQAAAAAKCQAAAAANCQAAAAAECQAAAAAFFwAAAAAAHAAAAAACHAAAAAAFCQAAAAAJCQAAAAADCQAAAAAFCQAAAAABCQAAAAAMCQAAAAAACQAAAAABCQAAAAAGCQAAAAAKCQAAAAAICQAAAAAFCQAAAAAGCQAAAAADCQAAAAANFwAAAAAFHAAAAAACCQAAAAAJCQAAAAAJCQAAAAAMCQAAAAAECQAAAAANCQAAAAAECQAAAAAMCQAAAAADCQAAAAAKCQAAAAAFCQAAAAAMCQAAAAAACQAAAAANCQAAAAAGCQAAAAACFwAAAAAACQAAAAAJCQAAAAALCQAAAAALCQAAAAACCQAAAAANCQAAAAAHCQAAAAANCQAAAAAJCQAAAAALCQAAAAAHCQAAAAABCQAAAAANCQAAAAAGCQAAAAAGCQAAAAAHCQAAAAAECQAAAAAKCQAAAAAGCQAAAAAJCQAAAAANCQAAAAACCQAAAAANCQAAAAAMCQAAAAAFCQAAAAAFCQAAAAAACQAAAAABCQAAAAAMCQAAAAALCQAAAAAMCQAAAAAKCQAAAAAKCQAAAAADCQAAAAADCQAAAAADCQAAAAAGCQAAAAAHCQAAAAACCQAAAAAFCQAAAAAMCQAAAAAN + tiles: GAAAAAAFBAAAAAAGBAAAAAAKBAAAAAAKBwAAAAACBQAAAAADBQAAAAABBAAAAAAIHAAAAAACBAAAAAANAwAAAAAEAwAAAAAGAwAAAAAHDQAAAAAADQAAAAAADQAAAAAAFwAAAAAAFwAAAAAAFwAAAAACBwAAAAABBwAAAAACBQAAAAADBgAAAAAABAAAAAAHHAAAAAABBAAAAAAKAwAAAAACAwAAAAAEAwAAAAACBAAAAAANBAAAAAAEBAAAAAANFwAAAAAAFwAAAAADFwAAAAAEBAAAAAAHBAAAAAAHBAAAAAACBAAAAAAIBAAAAAAEHAAAAAAEBAAAAAANBAAAAAABBAAAAAAEBAAAAAALBAAAAAAGFwAAAAAFFwAAAAACFwAAAAACFwAAAAAAFwAAAAAFFwAAAAABFwAAAAABFwAAAAAEFwAAAAAAFwAAAAAFFwAAAAADCQAAAAADCQAAAAAJCQAAAAAJCQAAAAAGCQAAAAAICQAAAAAKCQAAAAABFwAAAAAEFwAAAAAAFwAAAAABFwAAAAABFwAAAAAEFwAAAAAEFwAAAAABFwAAAAACCQAAAAAKCQAAAAAMCQAAAAAKCQAAAAAGCQAAAAAICQAAAAAHCQAAAAAGCQAAAAACGAAAAAAAFwAAAAADFwAAAAAEHwAAAAAAHwAAAAAAFwAAAAABFwAAAAAFFwAAAAAACQAAAAABCQAAAAADCQAAAAAICQAAAAAKCQAAAAAKCQAAAAAICQAAAAADCQAAAAALGAAAAAAAGAAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAFwAAAAAECQAAAAAICQAAAAACCQAAAAALCQAAAAALCQAAAAACCQAAAAALCQAAAAAJCQAAAAANCQAAAAAKGAAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAFwAAAAADCQAAAAAICQAAAAADCQAAAAADCQAAAAAICQAAAAAJCQAAAAAKCQAAAAAACQAAAAAMCQAAAAABGAAAAAABGAAAAAADHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAACQAAAAAICQAAAAACCQAAAAADCQAAAAABCQAAAAAHCQAAAAAGCQAAAAABCQAAAAAECQAAAAANFwAAAAAFGAAAAAAAGAAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAFwAAAAAACQAAAAAKCQAAAAAHCQAAAAABCQAAAAAJCQAAAAACCQAAAAABCQAAAAAICQAAAAABCQAAAAABCQAAAAAIGAAAAAAAGAAAAAAAFwAAAAAAFwAAAAAFFwAAAAAAGAAAAAAACQAAAAAKCQAAAAAECQAAAAANCQAAAAAFCQAAAAAJCQAAAAAMCQAAAAAECQAAAAAKCQAAAAAECQAAAAAKCQAAAAANCQAAAAAECQAAAAAFFwAAAAAAGAAAAAAAGAAAAAAACQAAAAAJCQAAAAADCQAAAAAFCQAAAAABCQAAAAAMCQAAAAAACQAAAAABCQAAAAAGCQAAAAAKCQAAAAAICQAAAAAFCQAAAAAGCQAAAAADCQAAAAANFwAAAAAFHAAAAAACCQAAAAAJCQAAAAAJCQAAAAAMCQAAAAAECQAAAAANCQAAAAAECQAAAAAMCQAAAAADCQAAAAAKCQAAAAAFCQAAAAAMCQAAAAAACQAAAAANCQAAAAAGCQAAAAACFwAAAAAACQAAAAAJCQAAAAALCQAAAAALCQAAAAACCQAAAAANCQAAAAAHCQAAAAANCQAAAAAJCQAAAAALCQAAAAAHCQAAAAABCQAAAAANCQAAAAAGCQAAAAAGCQAAAAAHCQAAAAAECQAAAAAKCQAAAAAGCQAAAAAJCQAAAAANCQAAAAACCQAAAAANCQAAAAAMCQAAAAAFCQAAAAAFCQAAAAAACQAAAAABCQAAAAAMCQAAAAALCQAAAAAMCQAAAAAKCQAAAAAKCQAAAAADCQAAAAADCQAAAAADCQAAAAAGCQAAAAAHCQAAAAACCQAAAAAFCQAAAAAMCQAAAAAN version: 6 0,1: ind: 0,1 @@ -190,7 +193,7 @@ entities: version: 6 -1,-3: ind: -1,-3 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAEAQAAAAAEAQAAAAACFwAAAAADFwAAAAADFwAAAAABFwAAAAACFwAAAAABFwAAAAADFwAAAAAFFwAAAAABGQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAACAQAAAAAAAQAAAAAEFwAAAAADFwAAAAAAFwAAAAAFFwAAAAABFwAAAAADFwAAAAAAFwAAAAAEFwAAAAAAGQAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAACQAAAAAEFwAAAAABFwAAAAADFgAAAAABGAAAAAADGAAAAAADGAAAAAAFFwAAAAAEFwAAAAADFwAAAAAFGQAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAABCQAAAAADBAAAAAAHBAAAAAAJBAAAAAAGBAAAAAAFBAAAAAAMBAAAAAAABAAAAAALBAAAAAACFwAAAAAAGQAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAECQAAAAAICQAAAAACBAAAAAAHBQAAAAACBwAAAAABBwAAAAAABQAAAAABBgAAAAACBQAAAAAABAAAAAAHFwAAAAAFGQAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAABCQAAAAAECQAAAAAGBAAAAAABBQAAAAADBwAAAAACBgAAAAABBgAAAAACBgAAAAABBgAAAAABBAAAAAAAFwAAAAABGQAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAABCQAAAAAMCQAAAAAFBAAAAAAFBQAAAAADBwAAAAAABQAAAAACBQAAAAADBwAAAAACBwAAAAACBAAAAAALFwAAAAACGQAAAAACAAAAAAAAAAAAAAAAAQAAAAACAQAAAAABCQAAAAAGCQAAAAAIBAAAAAAIBAAAAAANBAAAAAALBgAAAAAABQAAAAACBwAAAAABBQAAAAACBAAAAAAJFwAAAAABGQAAAAAIAAAAAAAAAAAAAAAAAQAAAAACFwAAAAABFwAAAAACCQAAAAALFgAAAAAEFgAAAAADBwAAAAABBwAAAAABBQAAAAAABgAAAAABBQAAAAACBQAAAAACGAAAAAADGQAAAAABAAAAAAAAAQAAAAACAQAAAAADFwAAAAAEFwAAAAACCQAAAAAKFgAAAAAAFgAAAAADBAAAAAAFBwAAAAAABwAAAAADBQAAAAAABQAAAAAABAAAAAALFwAAAAACGQAAAAAIAQAAAAAEAQAAAAAEFwAAAAAAFwAAAAAFFwAAAAADFwAAAAAAFwAAAAADFgAAAAAEBAAAAAAIBAAAAAAIBAAAAAAIBAAAAAAGBAAAAAABBAAAAAAHFwAAAAAFGQAAAAAHAQAAAAAAFwAAAAAAFwAAAAADFwAAAAAEFwAAAAACFwAAAAAEFwAAAAAEFwAAAAAAAgAAAAALFwAAAAABFwAAAAACFwAAAAACFwAAAAAEFwAAAAAEFwAAAAADGQAAAAAHFwAAAAACFwAAAAAAFwAAAAACAgAAAAAOBAAAAAANBAAAAAAABAAAAAAJBAAAAAAJBAAAAAAEBAAAAAAGBAAAAAAMBAAAAAANBAAAAAAMBAAAAAAIFwAAAAAEGQAAAAAHFwAAAAAFFwAAAAABCQAAAAAKAgAAAAAHBQAAAAACBQAAAAABBQAAAAAABQAAAAADBQAAAAABBQAAAAAABQAAAAADBgAAAAAABQAAAAAABAAAAAAHFwAAAAADGQAAAAAFBAAAAAAKBAAAAAAFAgAAAAAAAgAAAAAJBAAAAAALBQAAAAAABQAAAAAABQAAAAADBQAAAAACBQAAAAADBgAAAAADBQAAAAAABQAAAAABBAAAAAAJFwAAAAABGQAAAAAGBgAAAAACBQAAAAAAAgAAAAAGAgAAAAAGBAAAAAAABAAAAAAJBAAAAAAFBQAAAAAABQAAAAABBQAAAAAABAAAAAAKBgAAAAAABwAAAAADBAAAAAAHFwAAAAAAGQAAAAAG + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAEAQAAAAAEAQAAAAACFwAAAAADFwAAAAADFwAAAAABFwAAAAACFwAAAAABFwAAAAADFwAAAAAFFwAAAAABGQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAACAQAAAAAAAQAAAAAEFwAAAAADFwAAAAAAFwAAAAAFFwAAAAABFwAAAAADFwAAAAAAFwAAAAAEFwAAAAAAGQAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAACQAAAAAEFwAAAAABFwAAAAADFgAAAAABGAAAAAADGAAAAAADGAAAAAAFFwAAAAAEFwAAAAADFwAAAAAFGQAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAABCQAAAAADBAAAAAAHBAAAAAAJBAAAAAAGBAAAAAAFBAAAAAAMBAAAAAAABAAAAAALBAAAAAACFwAAAAAAGQAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAECQAAAAAICQAAAAACBAAAAAAHBQAAAAACBwAAAAABBwAAAAAABQAAAAABBgAAAAACBQAAAAAABAAAAAAHFwAAAAAFGQAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAABCQAAAAAECQAAAAAGBAAAAAABBQAAAAADBwAAAAACBgAAAAABBgAAAAACBgAAAAABBgAAAAABBAAAAAAAFwAAAAABGQAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAABCQAAAAAMCQAAAAAFBAAAAAAFBQAAAAADBwAAAAAABQAAAAACBQAAAAADBwAAAAACBwAAAAACBAAAAAALFwAAAAACGQAAAAACAAAAAAAAAAAAAAAAAQAAAAACAQAAAAABCQAAAAAGCQAAAAAIBAAAAAAIBAAAAAANBAAAAAALBgAAAAAABQAAAAACBwAAAAABBQAAAAACBAAAAAAJFwAAAAABGQAAAAAIAAAAAAAAAAAAAAAAAQAAAAACFwAAAAABFwAAAAACCQAAAAALFgAAAAAEFgAAAAADBwAAAAABBwAAAAABBQAAAAAABgAAAAABBQAAAAACBQAAAAACGAAAAAADGQAAAAABAAAAAAAAAQAAAAACAQAAAAADFwAAAAAEFwAAAAACCQAAAAAKFgAAAAAAFgAAAAADBAAAAAAFBwAAAAAABwAAAAADBQAAAAAABQAAAAAABAAAAAALFwAAAAACGQAAAAAIAQAAAAAEAQAAAAAEFwAAAAAAFwAAAAAFFwAAAAADFwAAAAAAFwAAAAADFgAAAAAEBAAAAAAIBAAAAAAIBAAAAAAIBAAAAAAGBAAAAAABBAAAAAAHFwAAAAAFGQAAAAAHAQAAAAAAFwAAAAAAFwAAAAADFwAAAAAEFwAAAAACFwAAAAAEFwAAAAAEFwAAAAAAAgAAAAALFwAAAAABFwAAAAACFwAAAAACFwAAAAAEFwAAAAAEFwAAAAADGQAAAAAHFwAAAAACFwAAAAAAFwAAAAACAgAAAAAOBAAAAAANBAAAAAAABAAAAAAJBAAAAAAJBAAAAAAEBAAAAAAGBAAAAAAMBAAAAAANBAAAAAAMBAAAAAAIFwAAAAAEGQAAAAAHFwAAAAAFFwAAAAABCQAAAAAKAgAAAAAHBQAAAAACBQAAAAABBQAAAAAABQAAAAADBQAAAAABBQAAAAAABQAAAAADBgAAAAAABQAAAAAABAAAAAAHFwAAAAADGQAAAAAFBAAAAAAKBAAAAAAFAgAAAAAAAgAAAAAJBAAAAAALBQAAAAAABQAAAAAABQAAAAADBQAAAAACBQAAAAADBgAAAAADBQAAAAAABQAAAAABBAAAAAAJFwAAAAABGQAAAAAGBgAAAAACBQAAAAAAAgAAAAAGAgAAAAAGBAAAAAAABQAAAAAABAAAAAAFBQAAAAAABQAAAAABBQAAAAAABAAAAAAKBgAAAAAABwAAAAADBAAAAAAHFwAAAAAAGQAAAAAG version: 6 0,-3: ind: 0,-3 @@ -712,14 +715,14 @@ entities: 125: 19,-45 193: -11,-20 194: -8,-20 - 195: -9,-20 - 196: -10,-20 197: -7,-20 198: -6,-20 199: -5,-20 200: -4,-20 202: -2,-20 203: -3,-20 + 204: -10,-20 + 205: -9,-20 - node: color: '#FFFFFFFF' id: CP14BrickTileStoneLineS @@ -2878,6 +2881,64 @@ entities: chunkSize: 4 - type: GasTileOverlay - type: RadiationGridResistance +- proto: ActionToggleBlock + entities: + - uid: 13977 + components: + - type: Transform + parent: 13336 + - type: InstantAction + originalIconColor: '#FFFFFFFF' + container: 13336 + - uid: 13978 + components: + - type: Transform + parent: 13876 + - type: InstantAction + originalIconColor: '#FFFFFFFF' + container: 13876 + - uid: 13979 + components: + - type: Transform + parent: 13335 + - type: InstantAction + originalIconColor: '#FFFFFFFF' + container: 13335 + - uid: 13980 + components: + - type: Transform + parent: 619 + - type: InstantAction + originalIconColor: '#FFFFFFFF' + container: 619 + - uid: 13982 + components: + - type: Transform + parent: 13981 + - type: InstantAction + originalIconColor: '#FFFFFFFF' + container: 13981 + - uid: 13984 + components: + - type: Transform + parent: 13983 + - type: InstantAction + originalIconColor: '#FFFFFFFF' + container: 13983 + - uid: 13986 + components: + - type: Transform + parent: 13985 + - type: InstantAction + originalIconColor: '#FFFFFFFF' + container: 13985 + - uid: 13988 + components: + - type: Transform + parent: 13987 + - type: InstantAction + originalIconColor: '#FFFFFFFF' + container: 13987 - proto: CP14AlchemyFurnace entities: - uid: 936 @@ -2910,6 +2971,90 @@ entities: - type: ItemPlacer placedEntities: - 15363 +- proto: CP14Arrow + entities: + - uid: 13955 + components: + - type: Transform + pos: -0.8673811,-17.455278 + parent: 2 + - uid: 13957 + components: + - type: Transform + pos: -1.9140058,-15.633688 + parent: 2 + - uid: 13964 + components: + - type: Transform + parent: 13960 + - type: Physics + canCollide: False + - uid: 13965 + components: + - type: Transform + parent: 13960 + - type: Physics + canCollide: False + - uid: 13966 + components: + - type: Transform + parent: 13960 + - type: Physics + canCollide: False + - uid: 13967 + components: + - type: Transform + parent: 13960 + - type: Physics + canCollide: False + - uid: 13968 + components: + - type: Transform + parent: 13960 + - type: Physics + canCollide: False + - uid: 13969 + components: + - type: Transform + parent: 13960 + - type: Physics + canCollide: False + - uid: 13970 + components: + - type: Transform + parent: 13960 + - type: Physics + canCollide: False + - uid: 13971 + components: + - type: Transform + parent: 13960 + - type: Physics + canCollide: False + - uid: 13972 + components: + - type: Transform + parent: 13960 + - type: Physics + canCollide: False + - uid: 13973 + components: + - type: Transform + parent: 13960 + - type: Physics + canCollide: False + - uid: 13974 + components: + - type: Transform + parent: 13960 + - type: Physics + canCollide: False + - uid: 13975 + components: + - type: Transform + parent: 13960 + - type: Physics + canCollide: False - proto: CP14BankStorageMarker entities: - uid: 1269 @@ -3126,6 +3271,11 @@ entities: - type: Transform pos: 14.454906,-37.17427 parent: 2 + - uid: 13959 + components: + - type: Transform + pos: -1.346062,-16.465773 + parent: 2 - proto: CP14BaseLockpick entities: - uid: 12912 @@ -3272,9 +3422,17 @@ entities: - uid: 619 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.3470995,-24.278017 - parent: 2 + parent: 13976 + - type: Blocking + blockingToggleActionEntity: 13980 + - type: Physics + canCollide: False + - type: ActionsContainer + - type: ContainerContainer + containers: + actions: !type:Container + ents: + - 13980 - uid: 7861 components: - type: Transform @@ -3314,21 +3472,101 @@ entities: - uid: 13335 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.7409906,-24.244284 - parent: 2 + parent: 13976 + - type: Blocking + blockingToggleActionEntity: 13979 + - type: Physics + canCollide: False + - type: ActionsContainer + - type: ContainerContainer + containers: + actions: !type:Container + ents: + - 13979 - uid: 13336 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.538418,-24.457928 - parent: 2 + parent: 13976 + - type: Blocking + blockingToggleActionEntity: 13977 + - type: Physics + canCollide: False + - type: ActionsContainer + - type: ContainerContainer + containers: + actions: !type:Container + ents: + - 13977 - uid: 13876 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.9885783,-24.457928 - parent: 2 + parent: 13976 + - type: Blocking + blockingToggleActionEntity: 13978 + - type: Physics + canCollide: False + - type: ActionsContainer + - type: ContainerContainer + containers: + actions: !type:Container + ents: + - 13978 + - uid: 13981 + components: + - type: Transform + parent: 13976 + - type: Blocking + blockingToggleActionEntity: 13982 + - type: Physics + canCollide: False + - type: ActionsContainer + - type: ContainerContainer + containers: + actions: !type:Container + ents: + - 13982 + - uid: 13983 + components: + - type: Transform + parent: 13976 + - type: Blocking + blockingToggleActionEntity: 13984 + - type: Physics + canCollide: False + - type: ActionsContainer + - type: ContainerContainer + containers: + actions: !type:Container + ents: + - 13984 + - uid: 13985 + components: + - type: Transform + parent: 13976 + - type: Blocking + blockingToggleActionEntity: 13986 + - type: Physics + canCollide: False + - type: ActionsContainer + - type: ContainerContainer + containers: + actions: !type:Container + ents: + - 13986 + - uid: 13987 + components: + - type: Transform + parent: 13976 + - type: Blocking + blockingToggleActionEntity: 13988 + - type: Physics + canCollide: False + - type: ActionsContainer + - type: ContainerContainer + containers: + actions: !type:Container + ents: + - 13988 - proto: CP14BaseTombstone entities: - uid: 461 @@ -42546,6 +42784,24 @@ entities: rot: 3.141592653589793 rad pos: 12.802945,-33.41739 parent: 2 + - uid: 13961 + components: + - type: Transform + parent: 13960 + - type: Physics + canCollide: False + - uid: 13962 + components: + - type: Transform + parent: 13960 + - type: Physics + canCollide: False + - uid: 13963 + components: + - type: Transform + parent: 13960 + - type: Physics + canCollide: False - proto: CP14BrassChest entities: - uid: 687 @@ -42583,6 +42839,13 @@ entities: - type: Transform pos: 20.5,-45.5 parent: 2 +- proto: CP14BrassChestFilledDemiplanes + entities: + - uid: 8558 + components: + - type: Transform + pos: -3.5,-14.5 + parent: 2 - proto: CP14BrassChestFilledFarmSeeds entities: - uid: 7083 @@ -42696,6 +42959,11 @@ entities: parent: 2 - proto: CP14CashConverter entities: + - uid: 979 + components: + - type: Transform + pos: -6.5,-14.5 + parent: 2 - uid: 1498 components: - type: Transform @@ -42719,11 +42987,6 @@ entities: rot: 1.5707963267948966 rad pos: -9.5,17.5 parent: 2 - - uid: 8652 - components: - - type: Transform - pos: -7.5,-14.5 - parent: 2 - proto: CP14Cauldron entities: - uid: 15363 @@ -43167,6 +43430,16 @@ entities: parent: 2 - proto: CP14ClothingBeltQuiver entities: + - uid: 5537 + components: + - type: Transform + pos: -1.7395523,-16.53324 + parent: 2 + - uid: 5539 + components: + - type: Transform + pos: -1.5383277,-16.33084 + parent: 2 - uid: 17925 components: - type: Transform @@ -43403,13 +43676,6 @@ entities: - type: Transform pos: 22.188015,-45.08068 parent: 2 -- proto: CP14CrayonGreen - entities: - - uid: 4657 - components: - - type: Transform - pos: -9.245207,-33.204025 - parent: 2 - proto: CP14CrayonRed entities: - uid: 3626 @@ -43426,6 +43692,18 @@ entities: parent: 2 - proto: CP14Crossbolt entities: + - uid: 2062 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.7061898,-15.397556 + parent: 2 + - uid: 5540 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.728699,-15.599956 + parent: 2 - uid: 7785 components: - type: Transform @@ -43651,52 +43929,78 @@ entities: rot: -1.5707963267948966 rad pos: 12.32648,-37.455616 parent: 2 -- proto: CP14CrystalAmethystsMedium - entities: - - uid: 1786 - components: - - type: Transform - pos: 22.636328,24.536194 - parent: 2 - - uid: 1800 + - uid: 13954 components: - type: Transform rot: -1.5707963267948966 rad - pos: 20.254408,24.226461 + pos: -1.751207,-15.22889 parent: 2 -- proto: CP14CrystalAmethystsSmall + - uid: 13956 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.7061898,-15.465022 + parent: 2 + - uid: 13958 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.773715,-15.127691 + parent: 2 + - uid: 13990 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.7399523,-15.296357 + parent: 2 + - uid: 13991 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.751207,-15.734887 + parent: 2 + - uid: 13992 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.751207,-15.858576 + parent: 2 +- proto: CP14CrystalElementalElectricBig entities: - - uid: 1780 + - uid: 12936 components: - type: Transform - pos: 22.658825,23.186869 + rot: -1.5707963267948966 rad + pos: 0.38306594,20.636196 parent: 2 - - uid: 4151 + - uid: 12937 components: - type: Transform - pos: 16.530275,20.53926 + rot: -1.5707963267948966 rad + pos: 5.5089397,23.222403 parent: 2 -- proto: CP14CrystalDiamondsBig +- proto: CP14CrystalElementalElectricSmall entities: - - uid: 9112 + - uid: 8018 components: - type: Transform - pos: 13.551556,43.51112 + rot: -1.5707963267948966 rad + pos: -1.439316,22.62645 parent: 2 -- proto: CP14CrystalEmeraldsBig + - uid: 8019 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.4403806,21.389568 + parent: 2 +- proto: CP14CrystalElementalHealingBig entities: - uid: 1772 components: - type: Transform pos: 19.470413,26.68387 parent: 2 - - uid: 1799 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 19.759497,23.765442 - parent: 2 -- proto: CP14CrystalEmeraldsMedium +- proto: CP14CrystalElementalHealingMedium entities: - uid: 569 components: @@ -43708,14 +44012,21 @@ entities: - type: Transform pos: 21.506302,28.437994 parent: 2 -- proto: CP14CrystalEmeraldsSmall +- proto: CP14CrystalElementalHealingSmall entities: - uid: 1787 components: - type: Transform pos: 16.422209,24.940992 parent: 2 -- proto: CP14CrystalSapphiresBig +- proto: CP14CrystalElementalLightBig + entities: + - uid: 9112 + components: + - type: Transform + pos: 13.551556,43.51112 + parent: 2 +- proto: CP14CrystalElementalWaterBig entities: - uid: 4615 components: @@ -43734,7 +44045,7 @@ entities: rot: -1.5707963267948966 rad pos: 9.563785,-43.047474 parent: 2 -- proto: CP14CrystalSapphiresMedium +- proto: CP14CrystalElementalWaterMedium entities: - uid: 12930 components: @@ -43742,7 +44053,7 @@ entities: rot: -1.5707963267948966 rad pos: 16.559088,-40.410233 parent: 2 -- proto: CP14CrystalSapphiresSmall +- proto: CP14CrystalElementalWaterSmall entities: - uid: 1584 components: @@ -43782,48 +44093,6 @@ entities: - type: Transform pos: 10.65302,5.011636 parent: 2 -- proto: CP14CrystalTopazesBig - entities: - - uid: 12936 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 0.38306594,20.636196 - parent: 2 - - uid: 12937 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 5.5089397,23.222403 - parent: 2 -- proto: CP14CrystalTopazesSmall - entities: - - uid: 8018 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -1.439316,22.62645 - parent: 2 - - uid: 8019 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 4.4403806,21.389568 - parent: 2 -- proto: CP14CurtainsBlue - entities: - - uid: 600 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -8.5,-15.5 - parent: 2 - - uid: 12988 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -8.5,-14.5 - parent: 2 - proto: CP14CurtainsBlueOpened entities: - uid: 599 @@ -44414,50 +44683,55 @@ entities: parent: 2 - proto: CP14DemiplaneKeyT1 entities: - - uid: 5537 + - uid: 981 components: - type: Transform - pos: -17.757793,26.57975 + pos: -5.841518,-14.157722 parent: 2 - - uid: 5539 + - uid: 8583 components: - type: Transform - pos: -17.525335,26.377352 + pos: -5.5601673,-14.180212 parent: 2 - - uid: 5540 + - uid: 8652 components: - type: Transform - pos: -17.757793,26.2799 + pos: -5.2563095,-14.180212 parent: 2 - - uid: 5541 + - uid: 9157 components: - type: Transform - pos: -17.562828,26.09999 + pos: -5.6839614,-14.337633 parent: 2 - - uid: 5542 + - uid: 10691 components: - type: Transform - pos: -17.27788,26.144968 + pos: -5.3688498,-14.348878 parent: 2 - - uid: 5543 + - uid: 12075 components: - type: Transform - pos: -17.247885,26.399841 + pos: -5.8527718,-14.472566 parent: 2 - - uid: 5544 + - uid: 12988 components: - type: Transform - pos: -17.810284,25.98005 + pos: -5.4701347,-14.495055 parent: 2 - - uid: 5545 + - uid: 13341 components: - type: Transform - pos: -17.525335,25.815132 + pos: -5.1662765,-14.517543 parent: 2 - - uid: 5546 + - uid: 13342 components: - type: Transform - pos: -17.307873,25.845118 + pos: -5.1100073,-14.360122 + parent: 2 + - uid: 13352 + components: + - type: Transform + pos: -5.9540577,-14.337633 parent: 2 - proto: CP14DemiplaneKeyT2 entities: @@ -44514,6 +44788,13 @@ entities: rot: 3.141592653589793 rad pos: -18.5,24.5 parent: 2 +- proto: CP14FenceIronGrilleGateDemiplaneCrystal + entities: + - uid: 975 + components: + - type: Transform + pos: -8.5,-18.5 + parent: 2 - proto: CP14FenceIronGrilleGateGuard entities: - uid: 1701 @@ -44608,6 +44889,11 @@ entities: rot: 1.5707963267948966 rad pos: -2.5,23.5 parent: 2 + - uid: 4657 + components: + - type: Transform + pos: -9.5,-18.5 + parent: 2 - uid: 7744 components: - type: Transform @@ -45572,11 +45858,6 @@ entities: - type: Transform pos: -10.5,5.5 parent: 2 - - uid: 1353 - components: - - type: Transform - pos: -10.5,-30.5 - parent: 2 - uid: 1632 components: - type: Transform @@ -45882,66 +46163,6 @@ entities: rot: -1.5707963267948966 rad pos: -19.5,-11.5 parent: 2 - - uid: 970 - components: - - type: Transform - pos: 19.5,23.5 - parent: 2 - - uid: 971 - components: - - type: Transform - pos: 19.5,24.5 - parent: 2 - - uid: 972 - components: - - type: Transform - pos: 20.5,23.5 - parent: 2 - - uid: 973 - components: - - type: Transform - pos: 20.5,24.5 - parent: 2 - - uid: 974 - components: - - type: Transform - pos: 20.5,25.5 - parent: 2 - - uid: 975 - components: - - type: Transform - pos: 21.5,24.5 - parent: 2 - - uid: 976 - components: - - type: Transform - pos: 19.5,25.5 - parent: 2 - - uid: 977 - components: - - type: Transform - pos: 18.5,24.5 - parent: 2 - - uid: 978 - components: - - type: Transform - pos: 18.5,23.5 - parent: 2 - - uid: 979 - components: - - type: Transform - pos: 19.5,22.5 - parent: 2 - - uid: 980 - components: - - type: Transform - pos: 20.5,22.5 - parent: 2 - - uid: 981 - components: - - type: Transform - pos: 21.5,23.5 - parent: 2 - uid: 1300 components: - type: Transform @@ -46147,6 +46368,11 @@ entities: - type: Transform pos: -14.461581,-16.665932 parent: 2 + - uid: 970 + components: + - type: Transform + pos: -1.3481102,-15.798591 + parent: 2 - uid: 13350 components: - type: Transform @@ -46171,6 +46397,11 @@ entities: parent: 2 - proto: CP14FoodBreadBun entities: + - uid: 971 + components: + - type: Transform + pos: -8.455805,-4.242589 + parent: 2 - uid: 13847 components: - type: Transform @@ -46183,6 +46414,16 @@ entities: parent: 2 - proto: CP14FoodBreadSlice entities: + - uid: 13359 + components: + - type: Transform + pos: -14.618983,5.757293 + parent: 2 + - uid: 13360 + components: + - type: Transform + pos: -14.427665,5.521161 + parent: 2 - uid: 13939 components: - type: Transform @@ -46207,11 +46448,6 @@ entities: - type: Transform pos: 5.6847034,-30.44728 parent: 2 - - uid: 5565 - components: - - type: Transform - pos: -9.696621,-33.186497 - parent: 2 - uid: 5754 components: - type: Transform @@ -46645,6 +46881,11 @@ entities: - type: Transform pos: -0.36587298,17.584122 parent: 2 + - uid: 13403 + components: + - type: Transform + pos: -1.7351644,-16.072481 + parent: 2 - proto: CP14GreenBottle entities: - uid: 1803 @@ -46796,6 +47037,12 @@ entities: parent: 2 - proto: CP14IronDoorGuardGuildmaster entities: + - uid: 974 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-16.5 + parent: 2 - uid: 13381 components: - type: Transform @@ -46950,25 +47197,31 @@ entities: rot: 1.5707963267948966 rad pos: 81.5,41.5 parent: 2 + - uid: 5519 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-17.5 + parent: 2 + - uid: 5542 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-16.5 + parent: 2 - uid: 8091 components: - type: Transform pos: 16.5,40.5 parent: 2 - - uid: 13359 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -8.5,-18.5 - parent: 2 - - uid: 13360 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -9.5,-18.5 - parent: 2 - proto: CP14LaddersDownWoodAutoLink entities: + - uid: 601 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-31.5 + parent: 2 - uid: 7925 components: - type: Transform @@ -47241,6 +47494,51 @@ entities: - type: Transform pos: -45.5,-74.5 parent: 2 + - uid: 13976 + components: + - type: Transform + pos: -1.5,-14.5 + parent: 2 + - type: Storage + storedItems: + 13336: + position: 0,0 + _rotation: South + 13876: + position: 2,0 + _rotation: South + 13335: + position: 4,0 + _rotation: South + 619: + position: 6,0 + _rotation: South + 13981: + position: 0,2 + _rotation: South + 13983: + position: 2,2 + _rotation: South + 13985: + position: 4,2 + _rotation: South + 13987: + position: 6,2 + _rotation: South + - type: ContainerContainer + containers: + storagebase: !type:Container + showEnts: False + occludes: True + ents: + - 13336 + - 13876 + - 13335 + - 619 + - 13981 + - 13983 + - 13985 + - 13987 - proto: CP14LargeWoodenCrateFilled entities: - uid: 479 @@ -47249,6 +47547,11 @@ entities: rot: 1.5707963267948966 rad pos: 13.5,27.5 parent: 2 + - uid: 600 + components: + - type: Transform + pos: -8.5,-14.5 + parent: 2 - uid: 629 components: - type: Transform @@ -47346,22 +47649,12 @@ entities: - type: Transform pos: 7.5,-37.5 parent: 2 - - uid: 5566 - components: - - type: Transform - pos: -10.5,-31.5 - parent: 2 - uid: 8374 components: - type: Transform rot: 3.141592653589793 rad pos: 22.5,19.5 parent: 2 - - uid: 8806 - components: - - type: Transform - pos: -1.5,-14.5 - parent: 2 - uid: 12914 components: - type: Transform @@ -47682,15 +47975,15 @@ entities: - uid: 2075 components: - type: Transform - rot: 3.141592653589793 rad - pos: 4.2602825,-24.31175 - parent: 2 + parent: 8982 + - type: Physics + canCollide: False - uid: 2124 components: - type: Transform - rot: 3.141592653589793 rad - pos: 4.091472,-24.390461 - parent: 2 + parent: 8982 + - type: Physics + canCollide: False - uid: 12504 components: - type: Transform @@ -47706,8 +47999,9 @@ entities: - uid: 1083 components: - type: Transform - pos: 5.7233057,-24.266773 - parent: 2 + parent: 8982 + - type: Physics + canCollide: False - uid: 12065 components: - type: Transform @@ -47718,8 +48012,9 @@ entities: - uid: 1135 components: - type: Transform - pos: 5.45321,-24.31175 - parent: 2 + parent: 8982 + - type: Physics + canCollide: False - uid: 8874 components: - type: Transform @@ -47738,6 +48033,18 @@ entities: - type: Transform pos: 14.230516,45.45195 parent: 2 + - uid: 10700 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.3688526,-17.002651 + parent: 2 + - uid: 13993 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.2338047,-17.339983 + parent: 2 - proto: CP14ModularIronShovel entities: - uid: 583 @@ -47763,23 +48070,23 @@ entities: - uid: 617 components: - type: Transform - rot: 3.141592653589793 rad - pos: 3.6975818,-24.345484 - parent: 2 + parent: 8982 + - type: Physics + canCollide: False - proto: CP14ModularIronSpear entities: - uid: 2065 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 4.9917946,-24.165573 - parent: 2 + parent: 8982 + - type: Physics + canCollide: False - uid: 2151 components: - type: Transform - rot: 3.141592653589793 rad - pos: 5.0143023,-24.547882 - parent: 2 + parent: 8982 + - type: Physics + canCollide: False - uid: 7860 components: - type: Transform @@ -47848,7 +48155,7 @@ entities: rot: 1.5707963267948966 rad pos: 11.675974,-34.404755 parent: 2 -- proto: CP14Nail10 +- proto: CP14Nail20 entities: - uid: 12047 components: @@ -47865,15 +48172,45 @@ entities: - type: Transform pos: 7.6940155,1.5639436 parent: 2 -- proto: CP14OreGold +- proto: CP14OreGold1 entities: - uid: 1522 components: - type: Transform pos: -19.350714,26.635136 parent: 2 + - uid: 5541 + components: + - type: Transform + pos: -17.570698,26.43613 + parent: 2 + - uid: 8394 + components: + - type: Transform + pos: -13.326466,22.911493 + parent: 2 + - uid: 8802 + components: + - type: Transform + pos: -14.368698,16.498537 + parent: 2 + - uid: 8806 + components: + - type: Transform + pos: -28.378479,18.575125 + parent: 2 - proto: CP14Paper entities: + - uid: 654 + components: + - type: Transform + pos: -4.593895,-18.351065 + parent: 2 + - uid: 656 + components: + - type: Transform + pos: -4.41383,-18.418531 + parent: 2 - uid: 891 components: - type: Transform @@ -48094,6 +48431,12 @@ entities: parent: 2 - proto: CP14PaperFolderRed entities: + - uid: 1353 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.4090066,-15.326327 + parent: 2 - uid: 1431 components: - type: Transform @@ -48114,6 +48457,12 @@ entities: - type: Transform pos: -13.647471,24.511906 parent: 2 + - uid: 1785 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.4990387,-15.450015 + parent: 2 - uid: 1854 components: - type: Transform @@ -48138,6 +48487,16 @@ entities: rot: 3.141592653589793 rad pos: -16.625248,-6.326728 parent: 2 + - uid: 972 + components: + - type: Transform + pos: -1.5506823,-15.674903 + parent: 2 + - uid: 1333 + components: + - type: Transform + pos: -1.3414826,-15.674903 + parent: 2 - uid: 1670 components: - type: Transform @@ -48233,11 +48592,6 @@ entities: - type: Transform pos: -20.5,-21.5 parent: 2 - - uid: 5519 - components: - - type: Transform - pos: 21.5,22.5 - parent: 2 - proto: CP14PlantTomatoes entities: - uid: 2024 @@ -48286,13 +48640,6 @@ entities: parent: 2 - proto: CP14RoofStone entities: - - uid: 601 - components: - - type: Transform - pos: -9.5,-13.5 - parent: 2 - - type: Fixtures - fixtures: {} - uid: 614 components: - type: Transform @@ -50183,20 +50530,6 @@ entities: parent: 2 - type: Fixtures fixtures: {} - - uid: 13352 - components: - - type: Transform - pos: -8.5,-14.5 - parent: 2 - - type: Fixtures - fixtures: {} - - uid: 13406 - components: - - type: Transform - pos: -9.5,-14.5 - parent: 2 - - type: Fixtures - fixtures: {} - uid: 13407 components: - type: Transform @@ -52001,13 +52334,6 @@ entities: parent: 2 - type: Fixtures fixtures: {} - - uid: 13885 - components: - - type: Transform - pos: -8.5,-13.5 - parent: 2 - - type: Fixtures - fixtures: {} - uid: 13886 components: - type: Transform @@ -82794,6 +83120,13 @@ entities: rot: 1.5707963267948966 rad pos: -19.5,28.5 parent: 2 +- proto: CP14ScrapCopper + entities: + - uid: 13374 + components: + - type: Transform + pos: 7.7062325,2.3277578 + parent: 2 - proto: CP14SeedbedWooden entities: - uid: 1411 @@ -82956,11 +83289,6 @@ entities: - type: Transform pos: -20.5,-22.5 parent: 2 - - uid: 5518 - components: - - type: Transform - pos: 21.5,22.5 - parent: 2 - uid: 6088 components: - type: Transform @@ -83043,6 +83371,47 @@ entities: rot: -1.5707963267948966 rad pos: -12.5,-5.5 parent: 2 + - uid: 8982 + components: + - type: Transform + pos: -1.5,-17.5 + parent: 2 + - type: Storage + storedItems: + 2124: + position: 0,2 + _rotation: South + 2075: + position: 3,3 + _rotation: South + 617: + position: 2,3 + _rotation: South + 2151: + position: 1,2 + _rotation: South + 2065: + position: 4,2 + _rotation: South + 1135: + position: 5,3 + _rotation: South + 1083: + position: 0,4 + _rotation: South + - type: ContainerContainer + containers: + storagebase: !type:Container + showEnts: False + occludes: True + ents: + - 2124 + - 2075 + - 617 + - 2151 + - 2065 + - 1135 + - 1083 - uid: 9785 components: - type: Transform @@ -83055,6 +83424,79 @@ entities: rot: -1.5707963267948966 rad pos: 104.5,61.5 parent: 2 + - uid: 13960 + components: + - type: Transform + pos: -2.5,-14.5 + parent: 2 + - type: Storage + storedItems: + 13961: + position: 0,0 + _rotation: South + 13962: + position: 2,0 + _rotation: South + 13963: + position: 4,0 + _rotation: South + 13972: + position: 2,2 + _rotation: South + 13971: + position: 1,2 + _rotation: South + 13964: + position: 0,2 + _rotation: South + 13965: + position: 0,4 + _rotation: South + 13966: + position: 1,4 + _rotation: South + 13967: + position: 2,4 + _rotation: South + 13968: + position: 3,4 + _rotation: South + 13969: + position: 4,4 + _rotation: South + 13970: + position: 5,4 + _rotation: South + 13973: + position: 3,2 + _rotation: South + 13974: + position: 4,2 + _rotation: South + 13975: + position: 5,2 + _rotation: South + - type: ContainerContainer + containers: + storagebase: !type:Container + showEnts: False + occludes: True + ents: + - 13961 + - 13962 + - 13963 + - 13965 + - 13966 + - 13967 + - 13968 + - 13969 + - 13970 + - 13964 + - 13971 + - 13972 + - 13973 + - 13974 + - 13975 - proto: CP14SmallWoodenCrateFilled entities: - uid: 451 @@ -83119,6 +83561,16 @@ entities: - type: Transform pos: 19.5,27.5 parent: 2 + - uid: 977 + components: + - type: Transform + pos: -9.5,-14.5 + parent: 2 + - uid: 980 + components: + - type: Transform + pos: -8.5,-13.5 + parent: 2 - uid: 986 components: - type: Transform @@ -83247,11 +83699,6 @@ entities: - type: Transform pos: -12.5,-15.5 parent: 2 - - uid: 5507 - components: - - type: Transform - pos: -10.5,-14.5 - parent: 2 - uid: 8049 components: - type: Transform @@ -83275,16 +83722,6 @@ entities: rot: 1.5707963267948966 rad pos: -11.5,-8.5 parent: 2 - - uid: 8802 - components: - - type: Transform - pos: -2.5,-14.5 - parent: 2 - - uid: 8982 - components: - - type: Transform - pos: -1.5,-17.5 - parent: 2 - uid: 12915 components: - type: Transform @@ -85054,16 +85491,6 @@ entities: - type: Transform pos: -39.5,-9.5 parent: 2 - - uid: 9157 - components: - - type: Transform - pos: -1.5,-16.5 - parent: 2 - - uid: 10691 - components: - - type: Transform - pos: -1.5,-15.5 - parent: 2 - proto: CP14SpawnMobMonsterMole entities: - uid: 3608 @@ -85331,14 +85758,6 @@ entities: - type: Transform pos: -23.505562,23.334337 parent: 2 -- proto: CP14StatueGobRuinedVines - entities: - - uid: 1785 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 20.5,26.5 - parent: 2 - proto: CP14SteelBeerMug entities: - uid: 1585 @@ -85920,6 +86339,11 @@ entities: parent: 2 - proto: CP14TableWoodenCounter entities: + - uid: 978 + components: + - type: Transform + pos: -5.5,-14.5 + parent: 2 - uid: 1220 components: - type: Transform @@ -86077,11 +86501,6 @@ entities: - type: Transform pos: 3.5,-24.5 parent: 2 - - uid: 2062 - components: - - type: Transform - pos: 2.5,-24.5 - parent: 2 - uid: 2149 components: - type: Transform @@ -86150,21 +86569,6 @@ entities: - type: Transform pos: -6.5,-14.5 parent: 2 - - uid: 8403 - components: - - type: Transform - pos: -7.5,-14.5 - parent: 2 - - uid: 8558 - components: - - type: Transform - pos: -8.5,-14.5 - parent: 2 - - uid: 8583 - components: - - type: Transform - pos: -8.5,-15.5 - parent: 2 - uid: 8584 components: - type: Transform @@ -86347,6 +86751,12 @@ entities: - type: Transform pos: -14.5,-20.5 parent: 2 + - uid: 13989 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-17.5 + parent: 2 - proto: CP14TableWoodenFrame entities: - uid: 1599 @@ -86369,11 +86779,11 @@ entities: rot: -1.5707963267948966 rad pos: 2.5,20.5 parent: 2 - - uid: 2331 + - uid: 5545 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,-33.5 + rot: -1.5707963267948966 rad + pos: -3.5,-11.5 parent: 2 - uid: 5753 components: @@ -88067,6 +88477,53 @@ entities: parent: 2 - type: Fixtures fixtures: {} +- proto: CP14WallmountFlagTavern + entities: + - uid: 639 + components: + - type: Transform + pos: -6.5,-25.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 1800 + components: + - type: Transform + pos: -7.5,-19.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 5518 + components: + - type: Transform + pos: -1.5,-25.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 5565 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-13.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 5566 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-10.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8403 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-24.5 + parent: 2 + - type: Fixtures + fixtures: {} - proto: CP14WallmountGarlandBlue entities: - uid: 5419 @@ -89662,6 +90119,21 @@ entities: parent: 2 - type: Fixtures fixtures: {} + - uid: 5546 + components: + - type: Transform + pos: -8.5,-16.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8380 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-12.5 + parent: 2 + - type: Fixtures + fixtures: {} - uid: 8795 components: - type: Transform @@ -89678,13 +90150,6 @@ entities: parent: 2 - type: Fixtures fixtures: {} - - uid: 10700 - components: - - type: Transform - pos: -5.5,-11.5 - parent: 2 - - type: Fixtures - fixtures: {} - uid: 12122 components: - type: Transform @@ -89724,13 +90189,6 @@ entities: parent: 2 - type: Fixtures fixtures: {} - - uid: 13914 - components: - - type: Transform - pos: -7.5,-19.5 - parent: 2 - - type: Fixtures - fixtures: {} - proto: CP14WallpaperGreen entities: - uid: 2039 @@ -100586,11 +101044,6 @@ entities: - type: Transform pos: -5.5,-13.5 parent: 2 - - uid: 639 - components: - - type: Transform - pos: -8.5,-13.5 - parent: 2 - uid: 640 components: - type: Transform @@ -100634,17 +101087,7 @@ entities: - uid: 652 components: - type: Transform - pos: -9.5,-17.5 - parent: 2 - - uid: 654 - components: - - type: Transform - pos: -8.5,-17.5 - parent: 2 - - uid: 656 - components: - - type: Transform - pos: -9.5,-16.5 + pos: -9.5,-15.5 parent: 2 - uid: 879 components: @@ -101051,6 +101494,21 @@ entities: - type: Transform pos: 13.5,-17.5 parent: 2 + - uid: 1780 + components: + - type: Transform + pos: -7.5,-14.5 + parent: 2 + - uid: 1786 + components: + - type: Transform + pos: -7.5,-18.5 + parent: 2 + - uid: 1799 + components: + - type: Transform + pos: -7.5,-15.5 + parent: 2 - uid: 1808 components: - type: Transform @@ -101101,6 +101559,11 @@ entities: - type: Transform pos: 17.5,-13.5 parent: 2 + - uid: 2240 + components: + - type: Transform + pos: -7.5,-17.5 + parent: 2 - uid: 2300 components: - type: Transform @@ -101111,6 +101574,11 @@ entities: - type: Transform pos: -9.5,0.5 parent: 2 + - uid: 2331 + components: + - type: Transform + pos: -10.5,-16.5 + parent: 2 - uid: 2344 components: - type: Transform @@ -101131,6 +101599,11 @@ entities: - type: Transform pos: 18.5,-13.5 parent: 2 + - uid: 4151 + components: + - type: Transform + pos: -10.5,-15.5 + parent: 2 - uid: 4157 components: - type: Transform @@ -101151,6 +101624,11 @@ entities: - type: Transform pos: 23.5,-20.5 parent: 2 + - uid: 5507 + components: + - type: Transform + pos: -8.5,-15.5 + parent: 2 - uid: 5707 components: - type: Transform @@ -101456,16 +101934,6 @@ entities: - type: Transform pos: -0.5,-13.5 parent: 2 - - uid: 13341 - components: - - type: Transform - pos: -7.5,-17.5 - parent: 2 - - uid: 13342 - components: - - type: Transform - pos: -7.5,-18.5 - parent: 2 - uid: 13344 components: - type: Transform @@ -101486,11 +101954,6 @@ entities: - type: Transform pos: -2.5,-13.5 parent: 2 - - uid: 13374 - components: - - type: Transform - pos: -9.5,-13.5 - parent: 2 - uid: 13422 components: - type: Transform @@ -102705,6 +103168,16 @@ entities: layers: - sprite: _CP14/Structures/Wallpaper/wallpaper_green.rsi state: bottom + - uid: 973 + components: + - type: Transform + pos: -11.5,-31.5 + parent: 2 + - uid: 976 + components: + - type: Transform + pos: -10.5,-30.5 + parent: 2 - uid: 1015 components: - type: Transform @@ -102960,15 +103433,6 @@ entities: state: bottom - sprite: _CP14/Structures/Wallpaper/wallpaper_green.rsi state: right - - uid: 1333 - components: - - type: Transform - pos: -10.5,-32.5 - parent: 2 - - type: CP14WallpaperHolder - layers: - - sprite: _CP14/Structures/Wallpaper/wallpaper_green.rsi - state: bottom - uid: 1335 components: - type: Transform @@ -104764,16 +105228,6 @@ entities: rot: 1.5707963267948966 rad pos: 33.5,13.5 parent: 2 - - uid: 13403 - components: - - type: Transform - pos: -9.5,-14.5 - parent: 2 - - uid: 13404 - components: - - type: Transform - pos: -9.5,-15.5 - parent: 2 - proto: CP14WindowWooden entities: - uid: 455 @@ -105309,6 +105763,11 @@ entities: - type: Transform pos: -3.5,-7.5 parent: 2 + - uid: 5543 + components: + - type: Transform + pos: -4.5,-11.5 + parent: 2 - uid: 6081 components: - type: Transform @@ -105329,11 +105788,6 @@ entities: - type: Transform pos: 14.5,-16.5 parent: 2 - - uid: 8380 - components: - - type: Transform - pos: -3.5,-11.5 - parent: 2 - uid: 8617 components: - type: Transform @@ -105364,11 +105818,6 @@ entities: - type: Transform pos: 102.5,61.5 parent: 2 - - uid: 12075 - components: - - type: Transform - pos: -8.5,-32.5 - parent: 2 - proto: CP14WoodenBeerMug entities: - uid: 1545 @@ -105516,11 +105965,6 @@ entities: rot: 1.5707963267948966 rad pos: 18.5,13.5 parent: 2 - - uid: 8378 - components: - - type: Transform - pos: -4.5,-11.5 - parent: 2 - uid: 8631 components: - type: Transform @@ -105547,11 +105991,6 @@ entities: rot: 1.5707963267948966 rad pos: 12.5,4.5 parent: 2 - - uid: 2240 - components: - - type: Transform - pos: -10.5,-33.5 - parent: 2 - proto: CP14WoodenCabinetBanker entities: - uid: 1365 @@ -105643,6 +106082,13 @@ entities: - type: Transform pos: 20.5,-40.5 parent: 2 +- proto: CP14WoodenCabinetGuildmaster + entities: + - uid: 8378 + components: + - type: Transform + pos: -5.5,-11.5 + parent: 2 - proto: CP14WoodenChest entities: - uid: 9784 @@ -105734,11 +106180,6 @@ entities: rot: 1.5707963267948966 rad pos: 18.5,14.5 parent: 2 - - uid: 8394 - components: - - type: Transform - pos: -6.5,-11.5 - parent: 2 - uid: 8914 components: - type: Transform @@ -105851,6 +106292,13 @@ entities: - type: Transform pos: 17.5,-14.5 parent: 2 +- proto: CP14WoodenClosetGuildmasterFilled + entities: + - uid: 5544 + components: + - type: Transform + pos: -6.5,-11.5 + parent: 2 - proto: CP14WoodenDoor entities: - uid: 2374 @@ -106338,6 +106786,48 @@ entities: rot: -1.5707963267948966 rad pos: 6.5,-7.5 parent: 2 +- proto: DeskBell + entities: + - uid: 13404 + components: + - type: Transform + pos: -5.0221357,-18.365133 + parent: 2 + - uid: 13406 + components: + - type: Transform + pos: -4.1443224,-32.36918 + parent: 2 + - uid: 13885 + components: + - type: Transform + pos: 11.297916,-28.345606 + parent: 2 + - uid: 13914 + components: + - type: Transform + pos: 15.760235,5.7842155 + parent: 2 + - uid: 13950 + components: + - type: Transform + pos: 28.263111,13.671432 + parent: 2 + - uid: 13951 + components: + - type: Transform + pos: -17.249964,16.594639 + parent: 2 + - uid: 13952 + components: + - type: Transform + pos: -6.193482,1.8160825 + parent: 2 + - uid: 13953 + components: + - type: Transform + pos: -11.280857,-22.228916 + parent: 2 - proto: DrinkBeerGrowler entities: - uid: 12946 @@ -106504,4 +106994,4 @@ entities: parent: 2 - type: WarpPoint location: Dungeon -... \ No newline at end of file +... diff --git a/Resources/Maps/_CP14/comoss_d.yml b/Resources/Maps/_CP14/comoss_d.yml index 3a49c2aad6..19afb99992 100644 --- a/Resources/Maps/_CP14/comoss_d.yml +++ b/Resources/Maps/_CP14/comoss_d.yml @@ -66,7 +66,7 @@ entities: version: 6 -1,-1: ind: -1,-1 - tiles: CQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAAMQAAAAAAMQAAAAAAMgAAAAAAMQAAAAAAMQAAAAAACQAAAAAECQAAAAAJMQAAAAAAMQAAAAAACQAAAAAGCQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAAMQAAAAAAMQAAAAAACQAAAAAACQAAAAAACQAAAAALCQAAAAAHCQAAAAANCQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAMCQAAAAALCQAAAAANCQAAAAAACQAAAAADCQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAANCQAAAAADCQAAAAAMMQAAAAAAMQAAAAAAMQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAHCQAAAAAJCQAAAAAFMQAAAAAAMQAAAAAADQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAADCQAAAAABCQAAAAAFMQAAAAAADQAAAAAADQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAIMQAAAAAAMQAAAAAADQAAAAAACQAAAAADCQAAAAAMCQAAAAALCQAAAAAKAQAAAAAAAQAAAAAAAQAAAAAACQAAAAABAQAAAAAAAQAAAAAAAQAAAAAACQAAAAAACQAAAAAEMQAAAAAAMQAAAAAAMQAAAAAACQAAAAAICQAAAAAMCQAAAAAECQAAAAAEAQAAAAAAAQAAAAAAAQAAAAAACQAAAAALMwAAAAAAAQAAAAAAAQAAAAAACQAAAAAACQAAAAAHCQAAAAAACQAAAAAACQAAAAAGCQAAAAACCQAAAAAGCQAAAAADMwAAAAAAAQAAAAAAAQAAAAAAAQAAAAAACQAAAAALAQAAAAAAAQAAAAAAAQAAAAAACQAAAAAACQAAAAADCQAAAAAACQAAAAAACQAAAAAICQAAAAABCQAAAAAGCQAAAAAKCQAAAAANCQAAAAADCQAAAAANCQAAAAAMCQAAAAAACQAAAAADCQAAAAAMCQAAAAALCQAAAAANCQAAAAAICQAAAAAACQAAAAAACQAAAAABCQAAAAAJCQAAAAANCQAAAAAFCQAAAAABCQAAAAAMCQAAAAAGCQAAAAAECQAAAAAICQAAAAALCQAAAAAACQAAAAANCQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAFCQAAAAANCQAAAAAJCQAAAAAACQAAAAAJCQAAAAAACQAAAAAJCQAAAAABCQAAAAAACQAAAAAGCQAAAAAECQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAICQAAAAANCQAAAAAICQAAAAALCQAAAAACCQAAAAAACQAAAAAKCQAAAAAACQAAAAAKCQAAAAANCQAAAAALCQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAJCQAAAAANCQAAAAAGCQAAAAAICQAAAAAFCQAAAAABCQAAAAAACQAAAAAACQAAAAAACQAAAAAKCQAAAAAICQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAABCQAAAAANCQAAAAAICQAAAAAICQAAAAANAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAACQAAAAACCQAAAAAECQAAAAALCQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAECQAAAAAH + tiles: CQAAAAAACQAAAAAACQAAAAAACQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMgAAAAAAMQAAAAAAMQAAAAAACQAAAAAECQAAAAAJMQAAAAAAMQAAAAAACQAAAAAGCQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAACQAAAAAACQAAAAAACQAAAAALCQAAAAAHCQAAAAANCQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAMCQAAAAALCQAAAAANCQAAAAAACQAAAAADMQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAANCQAAAAADCQAAAAAMMQAAAAAAMQAAAAAAMQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAHCQAAAAAJCQAAAAAFMQAAAAAAMQAAAAAADQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAADCQAAAAABCQAAAAAFMQAAAAAADQAAAAAADQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAIMQAAAAAAMQAAAAAADQAAAAAACQAAAAADCQAAAAAMCQAAAAALCQAAAAAKAQAAAAAAAQAAAAAAAQAAAAAACQAAAAABAQAAAAAAAQAAAAAAAQAAAAAACQAAAAAACQAAAAAEMQAAAAAAMQAAAAAAMQAAAAAACQAAAAAICQAAAAAMCQAAAAAECQAAAAAEAQAAAAAAAQAAAAAAAQAAAAAACQAAAAALMwAAAAAAAQAAAAAAAQAAAAAACQAAAAAACQAAAAAHCQAAAAAACQAAAAAACQAAAAAGCQAAAAACCQAAAAAGCQAAAAADMwAAAAAAAQAAAAAAAQAAAAAAAQAAAAAACQAAAAALAQAAAAAAAQAAAAAAAQAAAAAACQAAAAAACQAAAAADCQAAAAAACQAAAAAACQAAAAAICQAAAAABCQAAAAAGCQAAAAAKCQAAAAANCQAAAAADCQAAAAANCQAAAAAMCQAAAAAACQAAAAADCQAAAAAMCQAAAAALCQAAAAANCQAAAAAICQAAAAAACQAAAAAACQAAAAABCQAAAAAJCQAAAAANCQAAAAAFCQAAAAABCQAAAAAMCQAAAAAGCQAAAAAECQAAAAAICQAAAAALCQAAAAAACQAAAAANCQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAFCQAAAAANCQAAAAAJCQAAAAAACQAAAAAJCQAAAAAACQAAAAAJCQAAAAABCQAAAAAACQAAAAAGCQAAAAAECQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAICQAAAAANCQAAAAAICQAAAAALCQAAAAACCQAAAAAACQAAAAAKCQAAAAAACQAAAAAKCQAAAAANCQAAAAALCQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAJCQAAAAANCQAAAAAGCQAAAAAICQAAAAAFCQAAAAABCQAAAAAACQAAAAAACQAAAAAACQAAAAAKCQAAAAAICQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAABCQAAAAANCQAAAAAICQAAAAAICQAAAAANAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAACQAAAAACCQAAAAAECQAAAAALCQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAECQAAAAAH version: 6 -1,0: ind: -1,0 @@ -98,7 +98,7 @@ entities: version: 6 -1,-2: ind: -1,-2 - tiles: CQAAAAAACQAAAAAAAwAAAAAAAwAAAAAACQAAAAAACQAAAAACCQAAAAAJCQAAAAAACQAAAAADCQAAAAADCQAAAAAMCQAAAAAJCQAAAAABCQAAAAALCQAAAAAGCQAAAAAICQAAAAAHCQAAAAAMAwAAAAAAAwAAAAAACQAAAAALCQAAAAAGCQAAAAAACQAAAAAJCQAAAAANCQAAAAADCQAAAAAJCQAAAAACCQAAAAAECQAAAAAHCQAAAAALCQAAAAAKCQAAAAAKCQAAAAAHMwAAAAAAAwAAAAAACQAAAAALCQAAAAAHCQAAAAAECQAAAAALCQAAAAAKCQAAAAAICQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAFCQAAAAAJCQAAAAABCQAAAAAFCQAAAAAJCQAAAAAECQAAAAAFCQAAAAAMCQAAAAACCQAAAAAJCQAAAAAACQAAAAAACQAAAAALCQAAAAAACQAAAAAACQAAAAAICQAAAAABCQAAAAAJCQAAAAALCQAAAAAFCQAAAAANCQAAAAAMCQAAAAADCQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAFCQAAAAAFCQAAAAACCQAAAAABCQAAAAAFCQAAAAAACQAAAAAECQAAAAAMCQAAAAAHCQAAAAANCQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAABCQAAAAAGCQAAAAABCQAAAAABCQAAAAAFCQAAAAALCQAAAAADCQAAAAACCQAAAAALCQAAAAAECQAAAAAACQAAAAAFCQAAAAACCQAAAAAJCQAAAAAGCQAAAAADCQAAAAAACQAAAAAACQAAAAACCQAAAAADCQAAAAANCQAAAAAFCQAAAAACCQAAAAADCQAAAAAKCQAAAAAECQAAAAAACQAAAAALCQAAAAADCQAAAAANCQAAAAADCQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAACCQAAAAAACQAAAAAHCQAAAAAMCQAAAAAJCQAAAAAFCQAAAAAFCQAAAAAMCQAAAAAJCQAAAAAICQAAAAAMCQAAAAAFCQAAAAACCQAAAAALCQAAAAAJCQAAAAAACQAAAAAACQAAAAAFCQAAAAAMCQAAAAAHCQAAAAAFCQAAAAAHCQAAAAAJCQAAAAADCQAAAAACCQAAAAAECQAAAAABCQAAAAABCQAAAAANCQAAAAAGCQAAAAAMCQAAAAAACQAAAAADCQAAAAABCQAAAAAECQAAAAANCQAAAAAKCQAAAAAHCQAAAAAFCQAAAAAACQAAAAAICQAAAAAKCQAAAAANCQAAAAAMCQAAAAAICQAAAAAHCQAAAAAKCQAAAAAACQAAAAAFCQAAAAADCQAAAAACCQAAAAADCQAAAAAKCQAAAAAMCQAAAAAFCQAAAAAICQAAAAADCQAAAAAACQAAAAACCQAAAAABHAAAAAAACQAAAAALCQAAAAAMCQAAAAAAHAAAAAAAHAAAAAAACQAAAAALCQAAAAAKCQAAAAABCQAAAAAMCQAAAAANCQAAAAALCQAAAAAMCQAAAAALCQAAAAAMCQAAAAANCQAAAAAKCQAAAAAGCQAAAAAEHQAAAAAAHAAAAAAACQAAAAAFCQAAAAAECQAAAAABCQAAAAAKCQAAAAAGCQAAAAAECQAAAAACMwAAAAAAMwAAAAAACQAAAAACHQAAAAAACQAAAAAJHAAAAAAAHQAAAAAAHAAAAAAACQAAAAAACQAAAAAJCQAAAAAACQAAAAADCQAAAAAMCQAAAAAHCQAAAAANCQAAAAAJMQAAAAAAMQAAAAAAMgAAAAAACQAAAAAMCQAAAAAMHAAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAALCQAAAAAFCQAAAAAECQAAAAANCQAAAAADCQAAAAAHCQAAAAAKMQAAAAAAMQAAAAAAMgAAAAAAMQAAAAAACQAAAAAMCQAAAAABMQAAAAAAMQAAAAAACQAAAAAMCQAAAAAD + tiles: CQAAAAAACQAAAAAAAwAAAAAAAwAAAAAACQAAAAAAMwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAACQAAAAADCQAAAAAMCQAAAAAJCQAAAAABCQAAAAALCQAAAAAGCQAAAAAICQAAAAAHCQAAAAAMAwAAAAAAAwAAAAAACQAAAAALAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAACQAAAAADCQAAAAAJCQAAAAACCQAAAAAECQAAAAAHCQAAAAALCQAAAAAKCQAAAAAKCQAAAAAHMwAAAAAAAwAAAAAACQAAAAALAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAACQAAAAAICQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAFCQAAAAAJCQAAAAABCQAAAAAFCQAAAAAJCQAAAAAECQAAAAAFCQAAAAAMCQAAAAACCQAAAAAJCQAAAAAACQAAAAAACQAAAAALCQAAAAAACQAAAAAACQAAAAAICQAAAAABCQAAAAAJCQAAAAALCQAAAAAFCQAAAAANCQAAAAAMCQAAAAADCQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAAFCQAAAAAFCQAAAAACCQAAAAABCQAAAAAFCQAAAAAACQAAAAAECQAAAAAMCQAAAAAHCQAAAAANCQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAABCQAAAAAGCQAAAAABCQAAAAABCQAAAAAFCQAAAAALCQAAAAADCQAAAAACCQAAAAALCQAAAAAECQAAAAAACQAAAAAFCQAAAAACCQAAAAAJCQAAAAAGCQAAAAADCQAAAAAACQAAAAAACQAAAAACCQAAAAADCQAAAAANCQAAAAAFCQAAAAACCQAAAAADCQAAAAAKCQAAAAAECQAAAAAACQAAAAALCQAAAAADCQAAAAANCQAAAAADCQAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAACCQAAAAAACQAAAAAHCQAAAAAMCQAAAAAJCQAAAAAFCQAAAAAFCQAAAAAMCQAAAAAJCQAAAAAICQAAAAAMCQAAAAAFCQAAAAACCQAAAAALCQAAAAAJCQAAAAAACQAAAAAACQAAAAAFCQAAAAAMCQAAAAAHCQAAAAAFCQAAAAAHCQAAAAAJCQAAAAADCQAAAAACCQAAAAAECQAAAAABCQAAAAABCQAAAAANCQAAAAAGCQAAAAAMCQAAAAAACQAAAAADCQAAAAABCQAAAAAECQAAAAANCQAAAAAKCQAAAAAHCQAAAAAFCQAAAAAACQAAAAAICQAAAAAKCQAAAAANCQAAAAAMCQAAAAAICQAAAAAHCQAAAAAKCQAAAAAACQAAAAAFCQAAAAADCQAAAAACCQAAAAADCQAAAAAKCQAAAAAMCQAAAAAFCQAAAAAICQAAAAADCQAAAAAACQAAAAACCQAAAAABHAAAAAAACQAAAAALCQAAAAAMCQAAAAAAHAAAAAAAHAAAAAAACQAAAAALCQAAAAAKCQAAAAABCQAAAAAMMQAAAAAAMQAAAAAAMQAAAAAAHQAAAAAACQAAAAAACQAAAAANCQAAAAAKCQAAAAAGCQAAAAAEHQAAAAAAHAAAAAAACQAAAAAFCQAAAAAECQAAAAABCQAAAAAKCQAAAAAGMQAAAAAAMQAAAAAACQAAAAAAMQAAAAAACQAAAAAAHQAAAAAACQAAAAAJHAAAAAAAHQAAAAAAHAAAAAAACQAAAAAACQAAAAAJCQAAAAAACQAAAAADCQAAAAAMCQAAAAAHMQAAAAAAMQAAAAAAMwAAAAAAMQAAAAAAMgAAAAAACQAAAAAMCQAAAAAMHAAAAAAACQAAAAAACQAAAAAACQAAAAAACQAAAAALCQAAAAAFCQAAAAAECQAAAAANCQAAAAADMQAAAAAAMQAAAAAAMwAAAAAAMQAAAAAAMgAAAAAAMQAAAAAACQAAAAAMCQAAAAABMQAAAAAAMQAAAAAACQAAAAAMCQAAAAAD version: 6 0,-2: ind: 0,-2 @@ -5612,11 +5612,6 @@ entities: - type: Transform pos: 4.5,-20.5 parent: 2 - - uid: 654 - components: - - type: Transform - pos: 4.5,-19.5 - parent: 2 - uid: 655 components: - type: Transform @@ -5637,11 +5632,6 @@ entities: - type: Transform pos: 2.5,-0.5 parent: 2 - - uid: 662 - components: - - type: Transform - pos: 4.5,-18.5 - parent: 2 - uid: 663 components: - type: Transform @@ -5829,21 +5819,6 @@ entities: - type: Transform pos: 3.5,-22.5 parent: 2 - - uid: 716 - components: - - type: Transform - pos: 3.5,-21.5 - parent: 2 - - uid: 717 - components: - - type: Transform - pos: 3.5,-20.5 - parent: 2 - - uid: 718 - components: - - type: Transform - pos: 3.5,-19.5 - parent: 2 - uid: 719 components: - type: Transform @@ -5854,11 +5829,6 @@ entities: - type: Transform pos: 2.5,-40.5 parent: 2 - - uid: 722 - components: - - type: Transform - pos: 0.5,-22.5 - parent: 2 - uid: 724 components: - type: Transform @@ -5954,11 +5924,6 @@ entities: - type: Transform pos: 2.5,-34.5 parent: 2 - - uid: 746 - components: - - type: Transform - pos: 2.5,-21.5 - parent: 2 - uid: 748 components: - type: Transform @@ -6044,11 +6009,6 @@ entities: - type: Transform pos: 1.5,-34.5 parent: 2 - - uid: 766 - components: - - type: Transform - pos: 2.5,-22.5 - parent: 2 - uid: 767 components: - type: Transform @@ -6069,11 +6029,6 @@ entities: - type: Transform pos: 0.5,-29.5 parent: 2 - - uid: 774 - components: - - type: Transform - pos: 1.5,-22.5 - parent: 2 - uid: 776 components: - type: Transform @@ -6254,11 +6209,6 @@ entities: - type: Transform pos: -0.5,-25.5 parent: 2 - - uid: 813 - components: - - type: Transform - pos: -0.5,-22.5 - parent: 2 - uid: 815 components: - type: Transform @@ -6584,11 +6534,6 @@ entities: - type: Transform pos: -2.5,-23.5 parent: 2 - - uid: 889 - components: - - type: Transform - pos: -2.5,-22.5 - parent: 2 - uid: 890 components: - type: Transform @@ -6634,11 +6579,6 @@ entities: - type: Transform pos: -18.5,36.5 parent: 2 - - uid: 902 - components: - - type: Transform - pos: -1.5,-22.5 - parent: 2 - uid: 904 components: - type: Transform @@ -12963,11 +12903,6 @@ entities: - type: Transform pos: -12.5,-22.5 parent: 2 - - uid: 2481 - components: - - type: Transform - pos: -12.5,-21.5 - parent: 2 - uid: 2482 components: - type: Transform @@ -12998,16 +12933,6 @@ entities: - type: Transform pos: -3.5,-33.5 parent: 2 - - uid: 2495 - components: - - type: Transform - pos: -12.5,-20.5 - parent: 2 - - uid: 2496 - components: - - type: Transform - pos: -12.5,-19.5 - parent: 2 - uid: 2497 components: - type: Transform @@ -13038,16 +12963,6 @@ entities: - type: Transform pos: 14.5,17.5 parent: 2 - - uid: 2505 - components: - - type: Transform - pos: -11.5,-21.5 - parent: 2 - - uid: 2506 - components: - - type: Transform - pos: -11.5,-20.5 - parent: 2 - uid: 2507 components: - type: Transform @@ -13068,21 +12983,6 @@ entities: - type: Transform pos: -3.5,-32.5 parent: 2 - - uid: 2511 - components: - - type: Transform - pos: -12.5,-18.5 - parent: 2 - - uid: 2512 - components: - - type: Transform - pos: -12.5,-16.5 - parent: 2 - - uid: 2513 - components: - - type: Transform - pos: -12.5,-15.5 - parent: 2 - uid: 2514 components: - type: Transform @@ -13143,11 +13043,6 @@ entities: - type: Transform pos: -3.5,-27.5 parent: 2 - - uid: 2528 - components: - - type: Transform - pos: -12.5,-17.5 - parent: 2 - uid: 2529 components: - type: Transform @@ -13158,11 +13053,6 @@ entities: - type: Transform pos: -13.5,-25.5 parent: 2 - - uid: 2531 - components: - - type: Transform - pos: -3.5,-22.5 - parent: 2 - uid: 2533 components: - type: Transform @@ -13214,41 +13104,6 @@ entities: - type: Transform pos: -13.5,-22.5 parent: 2 - - uid: 2543 - components: - - type: Transform - pos: -13.5,-21.5 - parent: 2 - - uid: 2544 - components: - - type: Transform - pos: -13.5,-20.5 - parent: 2 - - uid: 2545 - components: - - type: Transform - pos: -13.5,-19.5 - parent: 2 - - uid: 2546 - components: - - type: Transform - pos: -13.5,-18.5 - parent: 2 - - uid: 2547 - components: - - type: Transform - pos: -13.5,-17.5 - parent: 2 - - uid: 2556 - components: - - type: Transform - pos: -13.5,-16.5 - parent: 2 - - uid: 2557 - components: - - type: Transform - pos: -13.5,-15.5 - parent: 2 - uid: 2559 components: - type: Transform @@ -13279,12 +13134,6 @@ entities: - type: Transform pos: -5.5,-26.5 parent: 2 - - uid: 2575 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,-13.5 - parent: 2 - uid: 2579 components: - type: Transform @@ -13325,22 +13174,6 @@ entities: - type: Transform pos: -6.5,-24.5 parent: 2 - - uid: 2588 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,-16.5 - parent: 2 - - uid: 2589 - components: - - type: Transform - pos: -6.5,-28.5 - parent: 2 - - uid: 2594 - components: - - type: Transform - pos: -4.5,-22.5 - parent: 2 - uid: 2597 components: - type: Transform @@ -13411,11 +13244,6 @@ entities: - type: Transform pos: -6.5,-23.5 parent: 2 - - uid: 2611 - components: - - type: Transform - pos: -6.5,-22.5 - parent: 2 - uid: 2612 components: - type: Transform @@ -13441,18 +13269,6 @@ entities: - type: Transform pos: -9.5,-25.5 parent: 2 - - uid: 2618 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,-14.5 - parent: 2 - - uid: 2619 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,-15.5 - parent: 2 - uid: 2620 components: - type: Transform @@ -13463,11 +13279,6 @@ entities: - type: Transform pos: -5.5,-23.5 parent: 2 - - uid: 2622 - components: - - type: Transform - pos: -5.5,-22.5 - parent: 2 - uid: 2625 components: - type: Transform @@ -13538,11 +13349,6 @@ entities: - type: Transform pos: -20.5,6.5 parent: 2 - - uid: 2655 - components: - - type: Transform - pos: -7.5,-28.5 - parent: 2 - uid: 2658 components: - type: Transform @@ -13558,21 +13364,11 @@ entities: - type: Transform pos: -10.5,-22.5 parent: 2 - - uid: 2663 - components: - - type: Transform - pos: -10.5,-21.5 - parent: 2 - uid: 2664 components: - type: Transform pos: -9.5,-22.5 parent: 2 - - uid: 2665 - components: - - type: Transform - pos: -9.5,-20.5 - parent: 2 - uid: 2667 components: - type: Transform @@ -13623,21 +13419,11 @@ entities: - type: Transform pos: -7.5,-23.5 parent: 2 - - uid: 2678 - components: - - type: Transform - pos: -7.5,-22.5 - parent: 2 - uid: 2679 components: - type: Transform pos: -8.5,-22.5 parent: 2 - - uid: 2680 - components: - - type: Transform - pos: -8.5,-21.5 - parent: 2 - uid: 2681 components: - type: Transform @@ -13648,16 +13434,6 @@ entities: - type: Transform pos: -10.5,-25.5 parent: 2 - - uid: 2683 - components: - - type: Transform - pos: -10.5,-20.5 - parent: 2 - - uid: 2685 - components: - - type: Transform - pos: -9.5,-21.5 - parent: 2 - uid: 2692 components: - type: Transform @@ -13683,16 +13459,6 @@ entities: - type: Transform pos: -7.5,-24.5 parent: 2 - - uid: 2697 - components: - - type: Transform - pos: -7.5,-21.5 - parent: 2 - - uid: 2699 - components: - - type: Transform - pos: -8.5,-20.5 - parent: 2 - uid: 2701 components: - type: Transform @@ -15881,11 +15647,6 @@ entities: - type: Transform pos: 7.5,-11.5 parent: 2 - - uid: 3372 - components: - - type: Transform - pos: 4.5,-12.5 - parent: 2 - uid: 3373 components: - type: Transform @@ -15916,16 +15677,6 @@ entities: - type: Transform pos: 5.5,-5.5 parent: 2 - - uid: 3399 - components: - - type: Transform - pos: 4.5,-13.5 - parent: 2 - - uid: 3400 - components: - - type: Transform - pos: 4.5,-14.5 - parent: 2 - uid: 3408 components: - type: Transform @@ -16324,16 +16075,6 @@ entities: - type: Transform pos: -13.5,-10.5 parent: 2 - - uid: 3564 - components: - - type: Transform - pos: -13.5,-13.5 - parent: 2 - - uid: 3565 - components: - - type: Transform - pos: -13.5,-14.5 - parent: 2 - uid: 3568 components: - type: Transform @@ -17549,11 +17290,6 @@ entities: - type: Transform pos: 38.5,-35.5 parent: 2 - - uid: 4026 - components: - - type: Transform - pos: -12.5,-14.5 - parent: 2 - uid: 4027 components: - type: Transform @@ -17615,11 +17351,6 @@ entities: - type: Transform pos: -11.5,18.5 parent: 2 - - uid: 4050 - components: - - type: Transform - pos: -12.5,-13.5 - parent: 2 - uid: 4051 components: - type: Transform @@ -18119,29 +17850,11 @@ entities: - type: Transform pos: 7.5,6.5 parent: 2 - - uid: 4183 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,-18.5 - parent: 2 - uid: 4184 components: - type: Transform pos: 7.5,-1.5 parent: 2 - - uid: 4186 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,-19.5 - parent: 2 - - uid: 4187 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,-17.5 - parent: 2 - uid: 4192 components: - type: Transform @@ -21487,11 +21200,6 @@ entities: - type: Transform pos: 24.5,-15.5 parent: 2 - - uid: 5094 - components: - - type: Transform - pos: 4.5,-17.5 - parent: 2 - uid: 5095 components: - type: Transform @@ -21522,11 +21230,6 @@ entities: - type: Transform pos: 5.5,-20.5 parent: 2 - - uid: 5101 - components: - - type: Transform - pos: 4.5,-16.5 - parent: 2 - uid: 5102 components: - type: Transform @@ -21547,11 +21250,6 @@ entities: - type: Transform pos: 6.5,-16.5 parent: 2 - - uid: 5107 - components: - - type: Transform - pos: 4.5,-15.5 - parent: 2 - uid: 5108 components: - type: Transform @@ -31781,12 +31479,6 @@ entities: - type: Transform pos: 36.5,20.5 parent: 2 - - uid: 8146 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -10.5,-28.5 - parent: 2 - uid: 8147 components: - type: Transform @@ -31811,126 +31503,12 @@ entities: rot: 1.5707963267948966 rad pos: -12.5,-27.5 parent: 2 - - uid: 8159 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -10.5,-30.5 - parent: 2 - - uid: 8160 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -10.5,-31.5 - parent: 2 - - uid: 8161 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -10.5,-29.5 - parent: 2 - - uid: 8162 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,-28.5 - parent: 2 - - uid: 8163 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,-29.5 - parent: 2 - - uid: 8164 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,-30.5 - parent: 2 - - uid: 8165 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,-31.5 - parent: 2 - - uid: 8166 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -8.5,-28.5 - parent: 2 - - uid: 8167 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -8.5,-31.5 - parent: 2 - - uid: 8168 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -8.5,-30.5 - parent: 2 - - uid: 8169 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -8.5,-29.5 - parent: 2 - - uid: 8170 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,-29.5 - parent: 2 - - uid: 8171 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,-30.5 - parent: 2 - - uid: 8172 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,-32.5 - parent: 2 - uid: 8173 components: - type: Transform rot: 1.5707963267948966 rad pos: -7.5,-33.5 parent: 2 - - uid: 8174 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -6.5,-29.5 - parent: 2 - - uid: 8175 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -6.5,-30.5 - parent: 2 - - uid: 8176 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -6.5,-31.5 - parent: 2 - - uid: 8177 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -6.5,-32.5 - parent: 2 - - uid: 8178 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,-31.5 - parent: 2 - uid: 8179 components: - type: Transform @@ -31985,24 +31563,6 @@ entities: rot: 1.5707963267948966 rad pos: -4.5,-30.5 parent: 2 - - uid: 8188 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -8.5,-32.5 - parent: 2 - - uid: 8189 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -10.5,-32.5 - parent: 2 - - uid: 8190 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,-32.5 - parent: 2 - uid: 8191 components: - type: Transform @@ -95943,7 +95503,45 @@ entities: - type: Transform pos: -18.5,-7.5 parent: 2 -- proto: CP14CrystalAmethystsBig +- proto: CP14CrateCoffin + entities: + - uid: 2697 + components: + - type: Transform + pos: -7.5,-30.5 + parent: 2 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 2699 + - 3340 + - 3372 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - uid: 4050 + components: + - type: Transform + pos: -7.5,-29.5 + parent: 2 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 4127 + - 4154 + - 4175 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: CP14CrystalElementalDarknessBig entities: - uid: 526 components: @@ -95962,7 +95560,7 @@ entities: - type: Transform pos: -4.4530544,-12.664821 parent: 2 -- proto: CP14CrystalAmethystsMedium +- proto: CP14CrystalElementalDarknessMedium entities: - uid: 4189 components: @@ -95976,7 +95574,7 @@ entities: rot: 3.141592653589793 rad pos: -70.47718,27.537062 parent: 2 -- proto: CP14CrystalAmethystsSmall +- proto: CP14CrystalElementalDarknessSmall entities: - uid: 676 components: @@ -96005,63 +95603,7 @@ entities: - type: Transform pos: -6.4675236,-14.508899 parent: 2 -- proto: CP14CrystalDiamondsSmall - entities: - - uid: 15225 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -55.453403,-5.6048665 - parent: 2 -- proto: CP14CrystalEmeraldsBig - entities: - - uid: 18698 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 38.46467,38.340416 - parent: 2 -- proto: CP14CrystalEmeraldsMedium - entities: - - uid: 440 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -59.91631,-3.0338006 - parent: 2 -- proto: CP14CrystalLampBlueEmpty - entities: - - uid: 8973 - components: - - type: Transform - parent: 8971 - - type: Physics - canCollide: False - - type: InsideEntityStorage -- proto: CP14CrystalLampOrangeEmpty - entities: - - uid: 8972 - components: - - type: Transform - parent: 8971 - - type: Physics - canCollide: False - - type: InsideEntityStorage -- proto: CP14CrystalRubiesMedium - entities: - - uid: 437 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -54.41131,-14.440628 - parent: 2 - - uid: 18692 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 30.503544,54.41658 - parent: 2 -- proto: CP14CrystalTopazesBig +- proto: CP14CrystalElementalElectricBig entities: - uid: 9902 components: @@ -96111,7 +95653,7 @@ entities: - type: Transform pos: -35.17431,19.706465 parent: 2 -- proto: CP14CrystalTopazesMedium +- proto: CP14CrystalElementalElectricMedium entities: - uid: 11355 components: @@ -96154,7 +95696,7 @@ entities: rot: -1.5707963267948966 rad pos: -56.54992,-10.055402 parent: 2 -- proto: CP14CrystalTopazesSmall +- proto: CP14CrystalElementalElectricSmall entities: - uid: 11401 components: @@ -96177,6 +95719,62 @@ entities: rot: 3.141592653589793 rad pos: 12.46924,50.596863 parent: 2 +- proto: CP14CrystalElementalFireMedium + entities: + - uid: 437 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.41131,-14.440628 + parent: 2 + - uid: 18692 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.503544,54.41658 + parent: 2 +- proto: CP14CrystalElementalHealingBig + entities: + - uid: 18698 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.46467,38.340416 + parent: 2 +- proto: CP14CrystalElementalHealingMedium + entities: + - uid: 440 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -59.91631,-3.0338006 + parent: 2 +- proto: CP14CrystalElementalLightSmall + entities: + - uid: 15225 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.453403,-5.6048665 + parent: 2 +- proto: CP14CrystalLampBlueEmpty + entities: + - uid: 8973 + components: + - type: Transform + parent: 8971 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: CP14CrystalLampOrangeEmpty + entities: + - uid: 8972 + components: + - type: Transform + parent: 8971 + - type: Physics + canCollide: False + - type: InsideEntityStorage - proto: CP14CurtainsBlue entities: - uid: 1951 @@ -96206,10 +95804,9 @@ entities: parent: 2 - proto: CP14DemiplaneLinkCrystal entities: - - uid: 4154 + - uid: 8159 components: - type: Transform - rot: -1.5707963267948966 rad pos: -0.5,-10.5 parent: 2 - proto: CP14DirtBlock1 @@ -96299,9 +95896,9 @@ entities: - type: Physics canCollide: False - type: InsideEntityStorage -- proto: CP14FenceIronGrilleGateGuildmaster +- proto: CP14FenceIronGrilleGateDemiplaneCrystal entities: - - uid: 659 + - uid: 8160 components: - type: Transform pos: -0.5,-12.5 @@ -96400,6 +95997,12 @@ entities: - type: Transform pos: -1.5,-12.5 parent: 2 + - uid: 8167 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-15.5 + parent: 2 - uid: 23474 components: - type: Transform @@ -96420,6 +96023,12 @@ entities: rot: -1.5707963267948966 rad pos: -12.5,-29.5 parent: 2 + - uid: 4026 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-31.5 + parent: 2 - uid: 4490 components: - type: Transform @@ -96443,6 +96052,17 @@ entities: rot: 1.5707963267948966 rad pos: -7.5,-38.5 parent: 2 + - uid: 8163 + components: + - type: Transform + pos: -9.5,-15.5 + parent: 2 + - uid: 8343 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,-18.5 + parent: 2 - proto: CP14FloorWater entities: - uid: 728 @@ -96740,12 +96360,6 @@ entities: rot: -1.5707963267948966 rad pos: -4.5,-18.5 parent: 2 - - uid: 4636 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -5.5,-18.5 - parent: 2 - uid: 4656 components: - type: Transform @@ -100120,11 +99734,27 @@ entities: parent: 2 - proto: CP14HeadSkeleton entities: + - uid: 4127 + components: + - type: Transform + parent: 4050 + - type: Physics + canCollide: False + - type: InsideEntityStorage - uid: 18696 components: - type: Transform pos: 36.87656,39.29631 parent: 2 +- proto: CP14HeadZombie + entities: + - uid: 3372 + components: + - type: Transform + parent: 2697 + - type: Physics + canCollide: False + - type: InsideEntityStorage - proto: CP14Inkwell entities: - uid: 4020 @@ -100790,7 +100420,7 @@ entities: - type: Transform pos: 10.158333,-34.388634 parent: 2 -- proto: CP14OreCopper +- proto: CP14OreCopper1 entities: - uid: 9023 components: @@ -100820,7 +100450,7 @@ entities: - type: Physics canCollide: False - type: InsideEntityStorage -- proto: CP14OreIron +- proto: CP14OreIron1 entities: - uid: 9024 components: @@ -101063,6 +100693,24 @@ entities: - type: Transform pos: 36.9571,38.752686 parent: 2 +- proto: CP14RightLegSkeleton + entities: + - uid: 4154 + components: + - type: Transform + parent: 4050 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: CP14RightLegZombie + entities: + - uid: 2699 + components: + - type: Transform + parent: 2697 + - type: Physics + canCollide: False + - type: InsideEntityStorage - proto: CP14RockBig entities: - uid: 475 @@ -106903,6 +106551,34 @@ entities: fixtures: {} - proto: CP14RoofWooden entities: + - uid: 2547 + components: + - type: Transform + pos: -7.5,-31.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 2619 + components: + - type: Transform + pos: -9.5,-28.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 3399 + components: + - type: Transform + pos: -10.5,-30.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 3400 + components: + - type: Transform + pos: -10.5,-29.5 + parent: 2 + - type: Fixtures + fixtures: {} - uid: 3763 components: - type: Transform @@ -106951,6 +106627,20 @@ entities: parent: 2 - type: Fixtures fixtures: {} + - uid: 3943 + components: + - type: Transform + pos: -10.5,-32.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 3970 + components: + - type: Transform + pos: -10.5,-31.5 + parent: 2 + - type: Fixtures + fixtures: {} - uid: 4972 components: - type: Transform @@ -106967,6 +106657,90 @@ entities: parent: 2 - type: Fixtures fixtures: {} + - uid: 8161 + components: + - type: Transform + pos: -9.5,-31.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8162 + components: + - type: Transform + pos: -9.5,-29.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8164 + components: + - type: Transform + pos: -9.5,-30.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8165 + components: + - type: Transform + pos: -8.5,-32.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8166 + components: + - type: Transform + pos: -8.5,-31.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8175 + components: + - type: Transform + pos: -7.5,-28.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8176 + components: + - type: Transform + pos: -8.5,-28.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8177 + components: + - type: Transform + pos: -7.5,-29.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8178 + components: + - type: Transform + pos: -7.5,-30.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8188 + components: + - type: Transform + pos: -7.5,-32.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8189 + components: + - type: Transform + pos: -8.5,-30.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8190 + components: + - type: Transform + pos: -8.5,-29.5 + parent: 2 + - type: Fixtures + fixtures: {} - uid: 8316 components: - type: Transform @@ -107167,6 +106941,55 @@ entities: parent: 2 - type: Fixtures fixtures: {} + - uid: 8345 + components: + - type: Transform + pos: -6.5,-32.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8347 + components: + - type: Transform + pos: -9.5,-32.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8348 + components: + - type: Transform + pos: -10.5,-28.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8351 + components: + - type: Transform + pos: -6.5,-31.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8352 + components: + - type: Transform + pos: -6.5,-30.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8353 + components: + - type: Transform + pos: -6.5,-29.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8354 + components: + - type: Transform + pos: -6.5,-28.5 + parent: 2 + - type: Fixtures + fixtures: {} - uid: 8389 components: - type: Transform @@ -110511,10 +110334,15 @@ entities: - type: Transform pos: 17.5,26.5 parent: 2 - - uid: 2646 + - uid: 2663 components: - type: Transform - pos: -6.5,-18.5 + pos: -7.5,-17.5 + parent: 2 + - uid: 2665 + components: + - type: Transform + pos: -7.5,-14.5 parent: 2 - uid: 2706 components: @@ -110987,11 +110815,6 @@ entities: rot: 1.5707963267948966 rad pos: 24.5,18.5 parent: 2 - - uid: 1329 - components: - - type: Transform - pos: -8.5,-14.5 - parent: 2 - uid: 1406 components: - type: Transform @@ -111035,6 +110858,11 @@ entities: rot: 1.5707963267948966 rad pos: -20.5,-13.5 parent: 2 + - uid: 3833 + components: + - type: Transform + pos: -7.5,-31.5 + parent: 2 - uid: 4120 components: - type: Transform @@ -111047,6 +110875,16 @@ entities: rot: -1.5707963267948966 rad pos: -11.5,-10.5 parent: 2 + - uid: 4183 + components: + - type: Transform + pos: -9.5,-31.5 + parent: 2 + - uid: 4186 + components: + - type: Transform + pos: -8.5,-31.5 + parent: 2 - uid: 4204 components: - type: Transform @@ -111141,6 +110979,12 @@ entities: rot: -1.5707963267948966 rad pos: -16.5,-8.5 parent: 2 + - uid: 8344 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-14.5 + parent: 2 - uid: 8967 components: - type: Transform @@ -111290,11 +111134,27 @@ entities: parent: 2 - proto: CP14TorsoSkeleton entities: + - uid: 4175 + components: + - type: Transform + parent: 4050 + - type: Physics + canCollide: False + - type: InsideEntityStorage - uid: 18685 components: - type: Transform pos: 36.87656,39.215775 parent: 2 +- proto: CP14TorsoZombie + entities: + - uid: 3340 + components: + - type: Transform + parent: 2697 + - type: Physics + canCollide: False + - type: InsideEntityStorage - proto: CP14VialSmall entities: - uid: 9524 @@ -111853,12 +111713,6 @@ entities: rot: 3.141592653589793 rad pos: -2.5,-20.5 parent: 2 - - uid: 5694 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -5.5,-19.5 - parent: 2 - uid: 5699 components: - type: Transform @@ -111939,37 +111793,6 @@ entities: parent: 2 - proto: CP14WallmountGarlandPurple entities: - - uid: 2563 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,-17.5 - parent: 2 - - type: Fixtures - fixtures: {} - - uid: 2564 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,-15.5 - parent: 2 - - type: Fixtures - fixtures: {} - - uid: 2565 - components: - - type: Transform - pos: -7.5,-15.5 - parent: 2 - - type: Fixtures - fixtures: {} - - uid: 2568 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -7.5,-17.5 - parent: 2 - - type: Fixtures - fixtures: {} - uid: 2623 components: - type: Transform @@ -111992,6 +111815,20 @@ entities: parent: 2 - type: Fixtures fixtures: {} + - uid: 2678 + components: + - type: Transform + pos: -8.5,-18.5 + parent: 2 + - type: Fixtures + fixtures: {} + - uid: 8174 + components: + - type: Transform + pos: -8.5,-15.5 + parent: 2 + - type: Fixtures + fixtures: {} - proto: CP14WallmountLamp entities: - uid: 5037 @@ -112308,10 +112145,10 @@ entities: fixtures: {} - proto: CP14WallmountPaintingSkull entities: - - uid: 3833 + - uid: 8346 components: - type: Transform - pos: -8.5,-14.5 + pos: -10.5,-14.5 parent: 2 - type: Fixtures fixtures: {} @@ -112363,6 +112200,13 @@ entities: parent: 2 - type: Fixtures fixtures: {} + - uid: 8168 + components: + - type: Transform + pos: -11.5,-15.5 + parent: 2 + - type: Fixtures + fixtures: {} - proto: CP14WallSkulls entities: - uid: 3938 @@ -112377,11 +112221,26 @@ entities: - type: Transform pos: -3.5,-7.5 parent: 2 + - uid: 654 + components: + - type: Transform + pos: 4.5,-19.5 + parent: 2 - uid: 658 components: - type: Transform pos: 1.5,-7.5 parent: 2 + - uid: 659 + components: + - type: Transform + pos: 4.5,-18.5 + parent: 2 + - uid: 662 + components: + - type: Transform + pos: 3.5,-21.5 + parent: 2 - uid: 668 components: - type: Transform @@ -112402,16 +112261,41 @@ entities: - type: Transform pos: 11.5,-39.5 parent: 2 + - uid: 716 + components: + - type: Transform + pos: 3.5,-20.5 + parent: 2 + - uid: 717 + components: + - type: Transform + pos: 3.5,-19.5 + parent: 2 + - uid: 718 + components: + - type: Transform + pos: 0.5,-22.5 + parent: 2 - uid: 720 components: - type: Transform pos: 3.5,-14.5 parent: 2 + - uid: 722 + components: + - type: Transform + pos: 2.5,-21.5 + parent: 2 - uid: 723 components: - type: Transform pos: -5.5,-21.5 parent: 2 + - uid: 746 + components: + - type: Transform + pos: 2.5,-22.5 + parent: 2 - uid: 747 components: - type: Transform @@ -112422,11 +112306,21 @@ entities: - type: Transform pos: 3.5,-16.5 parent: 2 + - uid: 766 + components: + - type: Transform + pos: 1.5,-22.5 + parent: 2 - uid: 769 components: - type: Transform pos: 2.5,-18.5 parent: 2 + - uid: 774 + components: + - type: Transform + pos: -0.5,-22.5 + parent: 2 - uid: 775 components: - type: Transform @@ -112437,6 +112331,11 @@ entities: - type: Transform pos: 3.5,-18.5 parent: 2 + - uid: 813 + components: + - type: Transform + pos: -2.5,-22.5 + parent: 2 - uid: 814 components: - type: Transform @@ -112457,6 +112356,11 @@ entities: - type: Transform pos: 13.5,-39.5 parent: 2 + - uid: 889 + components: + - type: Transform + pos: -1.5,-22.5 + parent: 2 - uid: 892 components: - type: Transform @@ -112467,6 +112371,11 @@ entities: - type: Transform pos: -3.5,-21.5 parent: 2 + - uid: 902 + components: + - type: Transform + pos: -13.5,-21.5 + parent: 2 - uid: 903 components: - type: Transform @@ -112717,6 +112626,71 @@ entities: - type: Transform pos: 12.5,-50.5 parent: 2 + - uid: 2495 + components: + - type: Transform + pos: -12.5,-21.5 + parent: 2 + - uid: 2505 + components: + - type: Transform + pos: -11.5,-21.5 + parent: 2 + - uid: 2513 + components: + - type: Transform + pos: -3.5,-22.5 + parent: 2 + - uid: 2516 + components: + - type: Transform + pos: -13.5,-20.5 + parent: 2 + - uid: 2528 + components: + - type: Transform + pos: -13.5,-19.5 + parent: 2 + - uid: 2531 + components: + - type: Transform + pos: -13.5,-18.5 + parent: 2 + - uid: 2543 + components: + - type: Transform + pos: -13.5,-17.5 + parent: 2 + - uid: 2544 + components: + - type: Transform + pos: -13.5,-16.5 + parent: 2 + - uid: 2545 + components: + - type: Transform + pos: -13.5,-15.5 + parent: 2 + - uid: 2546 + components: + - type: Transform + pos: -13.5,-14.5 + parent: 2 + - uid: 2552 + components: + - type: Transform + pos: -7.5,-22.5 + parent: 2 + - uid: 2556 + components: + - type: Transform + pos: -4.5,-22.5 + parent: 2 + - uid: 2557 + components: + - type: Transform + pos: -6.5,-22.5 + parent: 2 - uid: 2558 components: - type: Transform @@ -112727,11 +112701,26 @@ entities: - type: Transform pos: 66.5,32.5 parent: 2 + - uid: 2563 + components: + - type: Transform + pos: -11.5,-13.5 + parent: 2 + - uid: 2565 + components: + - type: Transform + pos: -5.5,-22.5 + parent: 2 - uid: 2566 components: - type: Transform pos: -1.5,-21.5 parent: 2 + - uid: 2575 + components: + - type: Transform + pos: -8.5,-21.5 + parent: 2 - uid: 2576 components: - type: Transform @@ -112747,6 +112736,11 @@ entities: - type: Transform pos: 66.5,33.5 parent: 2 + - uid: 2589 + components: + - type: Transform + pos: -6.5,-21.5 + parent: 2 - uid: 2590 components: - type: Transform @@ -112757,26 +112751,61 @@ entities: - type: Transform pos: 0.5,-21.5 parent: 2 + - uid: 2594 + components: + - type: Transform + pos: -9.5,-21.5 + parent: 2 - uid: 2595 components: - type: Transform pos: -0.5,-21.5 parent: 2 + - uid: 2611 + components: + - type: Transform + pos: -10.5,-21.5 + parent: 2 + - uid: 2618 + components: + - type: Transform + pos: -7.5,-21.5 + parent: 2 + - uid: 2622 + components: + - type: Transform + pos: 4.5,-12.5 + parent: 2 + - uid: 2635 + components: + - type: Transform + pos: 4.5,-13.5 + parent: 2 - uid: 2640 components: - type: Transform pos: 2.5,-20.5 parent: 2 + - uid: 2643 + components: + - type: Transform + pos: 4.5,-14.5 + parent: 2 + - uid: 2644 + components: + - type: Transform + pos: -12.5,-13.5 + parent: 2 + - uid: 2646 + components: + - type: Transform + pos: -13.5,-13.5 + parent: 2 - uid: 2649 components: - type: Transform pos: 66.5,34.5 parent: 2 - - uid: 2654 - components: - - type: Transform - pos: -6.5,-21.5 - parent: 2 - uid: 2656 components: - type: Transform @@ -112797,6 +112826,21 @@ entities: - type: Transform pos: -7.5,-11.5 parent: 2 + - uid: 2680 + components: + - type: Transform + pos: 4.5,-17.5 + parent: 2 + - uid: 2683 + components: + - type: Transform + pos: 4.5,-16.5 + parent: 2 + - uid: 2685 + components: + - type: Transform + pos: 4.5,-15.5 + parent: 2 - uid: 2689 components: - type: Transform @@ -113177,11 +113221,6 @@ entities: - type: Transform pos: 8.5,-38.5 parent: 2 - - uid: 3340 - components: - - type: Transform - pos: -6.5,-20.5 - parent: 2 - uid: 3430 components: - type: Transform @@ -113297,11 +113336,6 @@ entities: - type: Transform pos: 3.5,-15.5 parent: 2 - - uid: 4841 - components: - - type: Transform - pos: -7.5,-20.5 - parent: 2 - uid: 4852 components: - type: Transform @@ -113869,6 +113903,11 @@ entities: - type: Transform pos: 44.5,-19.5 parent: 2 + - uid: 1329 + components: + - type: Transform + pos: -12.5,-20.5 + parent: 2 - uid: 1396 components: - type: Transform @@ -113929,35 +113968,55 @@ entities: - type: Transform pos: 52.5,-19.5 parent: 2 - - uid: 2516 + - uid: 2481 components: - type: Transform - pos: -7.5,-14.5 + pos: -11.5,-20.5 parent: 2 - - uid: 2552 + - uid: 2496 components: - type: Transform - pos: -7.5,-19.5 + pos: -12.5,-19.5 + parent: 2 + - uid: 2506 + components: + - type: Transform + pos: -12.5,-17.5 + parent: 2 + - uid: 2511 + components: + - type: Transform + pos: -12.5,-16.5 + parent: 2 + - uid: 2512 + components: + - type: Transform + pos: -12.5,-18.5 + parent: 2 + - uid: 2564 + components: + - type: Transform + pos: -11.5,-14.5 + parent: 2 + - uid: 2588 + components: + - type: Transform + pos: -10.5,-20.5 parent: 2 - uid: 2614 components: - type: Transform - pos: -10.5,-17.5 + pos: -8.5,-20.5 parent: 2 - - uid: 2635 + - uid: 2654 components: - type: Transform - pos: -8.5,-19.5 + pos: -12.5,-15.5 parent: 2 - - uid: 2643 + - uid: 2655 components: - type: Transform - pos: -10.5,-19.5 - parent: 2 - - uid: 2644 - components: - - type: Transform - pos: -9.5,-19.5 + pos: -12.5,-14.5 parent: 2 - uid: 2705 components: @@ -113984,21 +114043,11 @@ entities: - type: Transform pos: 19.5,-16.5 parent: 2 - - uid: 3943 - components: - - type: Transform - pos: -10.5,-15.5 - parent: 2 - uid: 3958 components: - type: Transform pos: 20.5,-16.5 parent: 2 - - uid: 3970 - components: - - type: Transform - pos: -10.5,-16.5 - parent: 2 - uid: 3984 components: - type: Transform @@ -114019,11 +114068,6 @@ entities: - type: Transform pos: -7.5,-13.5 parent: 2 - - uid: 4127 - components: - - type: Transform - pos: -6.5,-19.5 - parent: 2 - uid: 4155 components: - type: Transform @@ -114044,11 +114088,6 @@ entities: - type: Transform pos: -2.5,-12.5 parent: 2 - - uid: 4175 - components: - - type: Transform - pos: -10.5,-14.5 - parent: 2 - uid: 4266 components: - type: Transform @@ -114119,11 +114158,6 @@ entities: - type: Transform pos: -2.5,7.5 parent: 2 - - uid: 4672 - components: - - type: Transform - pos: -7.5,-18.5 - parent: 2 - uid: 4680 components: - type: Transform @@ -114134,11 +114168,6 @@ entities: - type: Transform pos: 1.5,4.5 parent: 2 - - uid: 4714 - components: - - type: Transform - pos: -10.5,-18.5 - parent: 2 - uid: 4722 components: - type: Transform @@ -114259,6 +114288,36 @@ entities: - type: Transform pos: 16.5,-15.5 parent: 2 + - uid: 8169 + components: + - type: Transform + pos: -8.5,-14.5 + parent: 2 + - uid: 8170 + components: + - type: Transform + pos: -7.5,-20.5 + parent: 2 + - uid: 8171 + components: + - type: Transform + pos: -6.5,-20.5 + parent: 2 + - uid: 8172 + components: + - type: Transform + pos: -9.5,-20.5 + parent: 2 + - uid: 8349 + components: + - type: Transform + pos: -8.5,-17.5 + parent: 2 + - uid: 8350 + components: + - type: Transform + pos: -8.5,-16.5 + parent: 2 - uid: 8865 components: - type: Transform @@ -124614,11 +124673,21 @@ entities: - type: Transform pos: -15.5,-7.5 parent: 2 + - uid: 2553 + components: + - type: Transform + pos: -10.5,-32.5 + parent: 2 - uid: 2554 components: - type: Transform pos: -15.5,-6.5 parent: 2 + - uid: 2568 + components: + - type: Transform + pos: -10.5,-28.5 + parent: 2 - uid: 2577 components: - type: Transform @@ -124994,6 +125063,11 @@ entities: - type: Transform pos: 7.5,-6.5 parent: 2 + - uid: 4187 + components: + - type: Transform + pos: -9.5,-28.5 + parent: 2 - uid: 4190 components: - type: Transform @@ -125124,6 +125198,11 @@ entities: - type: Transform pos: -8.5,2.5 parent: 2 + - uid: 4636 + components: + - type: Transform + pos: -8.5,-28.5 + parent: 2 - uid: 4637 components: - type: Transform @@ -125159,6 +125238,11 @@ entities: - type: Transform pos: -12.5,-10.5 parent: 2 + - uid: 4660 + components: + - type: Transform + pos: -6.5,-28.5 + parent: 2 - uid: 4670 components: - type: Transform @@ -125169,11 +125253,21 @@ entities: - type: Transform pos: -5.5,-5.5 parent: 2 + - uid: 4672 + components: + - type: Transform + pos: -9.5,-32.5 + parent: 2 - uid: 4678 components: - type: Transform pos: -4.5,-6.5 parent: 2 + - uid: 4714 + components: + - type: Transform + pos: -8.5,-32.5 + parent: 2 - uid: 4716 components: - type: Transform @@ -125184,6 +125278,11 @@ entities: - type: Transform pos: -6.5,-9.5 parent: 2 + - uid: 4841 + components: + - type: Transform + pos: -7.5,-32.5 + parent: 2 - uid: 4881 components: - type: Transform @@ -125209,6 +125308,21 @@ entities: - type: Transform pos: 23.5,15.5 parent: 2 + - uid: 5094 + components: + - type: Transform + pos: -6.5,-32.5 + parent: 2 + - uid: 5101 + components: + - type: Transform + pos: -7.5,-28.5 + parent: 2 + - uid: 5107 + components: + - type: Transform + pos: -6.5,-29.5 + parent: 2 - uid: 5138 components: - type: Transform @@ -125283,6 +125397,11 @@ entities: layers: - sprite: _CP14/Structures/Wallpaper/wallpaper_yellow.rsi state: left + - uid: 5694 + components: + - type: Transform + pos: -6.5,-31.5 + parent: 2 - uid: 5712 components: - type: Transform @@ -125503,6 +125622,11 @@ entities: layers: - sprite: _CP14/Structures/Wallpaper/wallpaper_yellow.rsi state: right + - uid: 8146 + components: + - type: Transform + pos: -6.5,-30.5 + parent: 2 - uid: 8148 components: - type: Transform @@ -125573,12 +125697,6 @@ entities: rot: -1.5707963267948966 rad pos: -3.3085613,-17.70248 parent: 2 - - uid: 2553 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -5.0641885,-18.72572 - parent: 2 - uid: 2555 components: - type: Transform @@ -125800,6 +125918,13 @@ entities: - type: Transform pos: 81.5,30.5 parent: 2 +- proto: CP14WoodenCabinetAlchemist + entities: + - uid: 3564 + components: + - type: Transform + pos: -10.5,-29.5 + parent: 2 - proto: CP14WoodenCabinetBanker entities: - uid: 5135 @@ -125892,6 +126017,11 @@ entities: parent: 2 - proto: CP14WoodenClosetAlchemyFilled entities: + - uid: 3565 + components: + - type: Transform + pos: -9.5,-29.5 + parent: 2 - uid: 13267 components: - type: Transform @@ -126068,11 +126198,6 @@ entities: - type: Transform pos: -2.5,-16.5 parent: 2 - - uid: 4660 - components: - - type: Transform - pos: -0.5,-13.5 - parent: 2 - uid: 4781 components: - type: Transform @@ -126093,4 +126218,4 @@ entities: - type: Transform pos: 0.5,-11.5 parent: 2 -... \ No newline at end of file +... diff --git a/Resources/Prototypes/_CP14/Catalog/Cargo/Store/buy.yml b/Resources/Prototypes/_CP14/Catalog/Cargo/Store/buy.yml index ebf8b97c36..3342956e4c 100644 --- a/Resources/Prototypes/_CP14/Catalog/Cargo/Store/buy.yml +++ b/Resources/Prototypes/_CP14/Catalog/Cargo/Store/buy.yml @@ -140,8 +140,8 @@ sprite: _CP14/Objects/Materials/copper_bar.rsi state: bar_3 price: - min: 40 - max: 60 + min: 200 + max: 300 services: - !type:CP14BuyItemsService product: diff --git a/Resources/Prototypes/_CP14/Catalog/Cargo/Store/sell.yml b/Resources/Prototypes/_CP14/Catalog/Cargo/Store/sell.yml index e3ee736205..06402dce02 100644 --- a/Resources/Prototypes/_CP14/Catalog/Cargo/Store/sell.yml +++ b/Resources/Prototypes/_CP14/Catalog/Cargo/Store/sell.yml @@ -6,8 +6,8 @@ sprite: _CP14/Objects/Materials/copper_bar.rsi state: bar_3 price: - min: 20 - max: 30 + min: 100 + max: 150 service: !type:CP14SellStackService stackId: CP14CopperBar count: 10 diff --git a/Resources/Prototypes/_CP14/Catalog/Fills/closets.yml b/Resources/Prototypes/_CP14/Catalog/Fills/closets.yml index 7bc3ed4ac5..d5277eb77b 100644 --- a/Resources/Prototypes/_CP14/Catalog/Fills/closets.yml +++ b/Resources/Prototypes/_CP14/Catalog/Fills/closets.yml @@ -80,6 +80,7 @@ - id: CP14StampDenied - id: CP14StampApproved - id: CP14StampCommandant + - id: CP14PaperFolderBlue - type: entity parent: CP14SafeVault @@ -132,19 +133,16 @@ - type: StorageFill contents: - id: CP14Rope - - id: CP14Rope - - id: Bola + amount: 2 - id: Bola + amount: 2 - id: CP14ModularGuardHalberd - id: CP14BaseShield - id: CP14ModularGripIronLongGuard - - id: CP14ModularGripIronLongGuard + amount: 2 - id: CP14BaseLightCrossbow - id: CP14Crossbolt - - id: CP14Crossbolt - - id: CP14Crossbolt - - id: CP14Crossbolt - - id: CP14Crossbolt + amount: 5 - id: CP14EnergyCrystalSmall - id: CP14CrystalLampBlueEmpty - id: CP14BookImperialLawsHandBook @@ -157,14 +155,33 @@ - type: StorageFill contents: - id: CP14Rope - - id: CP14Rope + amount: 2 - id: Bola - id: Bola - id: CP14ModularGuardHalberd - id: CP14BaseShield - id: CP14ModularGripIronLongGuard - - id: CP14ModularGripIronLongGuard + amount: 2 - id: CP14EnergyCrystalSmall - id: CP14CrystalLampBlueEmpty - id: CP14StampGuardCommander - - id: CP14BookImperialLawsHandBook \ No newline at end of file + - id: CP14BookImperialLawsHandBook + +- type: entity + parent: CP14WoodenCloset + id: CP14WoodenClosetGuildmasterFilled + suffix: Guildmaster, Filled + components: + - type: StorageFill + contents: + - id: CP14StampGuildmaster + - id: HandLabeler #TODO custom cp14 labeler + - id: CP14StampDenied + - id: CP14StampApproved + - id: CP14PaperFolderBlue + - id: CP14SpellscrollSignalLightBlue + amount: 4 + - id: CP14SpellscrollSignalLightYellow + amount: 4 + - id: CP14SpellscrollSignalLightRed + amount: 4 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Catalog/Fills/crates.yml b/Resources/Prototypes/_CP14/Catalog/Fills/crates.yml index 97d1a93241..56f4c6eb0c 100644 --- a/Resources/Prototypes/_CP14/Catalog/Fills/crates.yml +++ b/Resources/Prototypes/_CP14/Catalog/Fills/crates.yml @@ -75,7 +75,7 @@ - id: CP14CrystalLampBlueEmpty - id: CP14CrystalLampOrangeEmpty - id: CP14Rope - - id: CP14Nail10 + - id: CP14Nail20 - id: CP14EnergyCrystalSmall - id: CP14CopperCoin5 weight: 0.5 diff --git a/Resources/Prototypes/_CP14/Catalog/Fills/dresser.yml b/Resources/Prototypes/_CP14/Catalog/Fills/dresser.yml index 06dd451e46..1db7a171fa 100644 --- a/Resources/Prototypes/_CP14/Catalog/Fills/dresser.yml +++ b/Resources/Prototypes/_CP14/Catalog/Fills/dresser.yml @@ -94,4 +94,18 @@ - id: CP14ClothingShirtGuardsChainmailShirtB prob: 0.7 - id: CP14ClothingCloakGuardCommander - prob: 1 \ No newline at end of file + prob: 1 + +- type: entity + parent: CP14WoodenCabinet + id: CP14WoodenCabinetGuildmaster + suffix: Guildmaster, Filled + components: + - type: StorageFill + contents: + - id: CP14ClothingCloakGuildmasterCape + prob: 1 + - id: CP14ClothingShirtGuildmasterVest + prob: 0.6 + - id: CP14ClothingShirtGuildmasterVest2 + prob: 0.6 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Darkness/T0_demiplane_infiltration.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Darkness/T0_demiplane_infiltration.yml new file mode 100644 index 0000000000..d26139fa77 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Darkness/T0_demiplane_infiltration.yml @@ -0,0 +1,63 @@ +- type: entity + id: CP14ActionSpellDemiplaneInfiltration + name: Demiplane infiltration + description: You get inside the demiplane of your choice. + components: + - type: Sprite + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: rift_arrow + - type: CP14MagicEffectManaCost + manaCost: 50 + - type: CP14MagicEffect + magicType: Darkness + telegraphyEffects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ImpactEffectShadowStep + effects: + - !type:CP14SpellDemiplaneInfiltration + - type: CP14MagicEffectVerbalAspect + startSpeech: "Ego intrabo et..." + endSpeech: "salvabo socios meos" + - type: CP14MagicEffectCastingVisual + proto: CP14RuneDemiplaneInfiltration + - type: EntityTargetAction + whitelist: + components: + - CP14DemiplaneRift + canTargetSelf: false + checkCanAccess: true + range: 3 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/rumble.ogg + icon: + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: rift_arrow + event: !type:CP14DelayedEntityTargetActionEvent + cooldown: 50 + castDelay: 5 + entityDistance: 3 + breakOnMove: true + +- type: entity + id: CP14RuneDemiplaneInfiltration + parent: CP14BaseMagicRune + categories: [ HideSpawnMenu ] + components: + - type: PointLight + color: "#5e427e" + - type: Sprite + layers: + - state: sun + color: "#5e427e" + shader: unshaded + +- type: entity + parent: CP14BaseSpellScrollDarkness + id: CP14SpellScrollDemiplaneInfiltration + name: demiplane infiltration spell scroll + components: + - type: CP14SpellStorage + spells: + - CP14ActionSpellDemiplaneInfiltration \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Darkness/T0_monolith_warp.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Darkness/T0_monolith_warp.yml new file mode 100644 index 0000000000..5a5857c21c --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Darkness/T0_monolith_warp.yml @@ -0,0 +1,75 @@ +- type: entity + id: CP14ActionSpellMonolithWarp + name: Monolith warp + description: You open a dimensional rift that transports the creatures around it to the demiplane link crystal + components: + - type: Sprite + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: demi_arrow + - type: CP14MagicEffectManaCost + manaCost: 50 + - type: CP14MagicEffect + magicType: Darkness + telegraphyEffects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ImpactEffectShadowStep + effects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14GuildmaterTimedTeleport + - type: CP14MagicEffectVerbalAspect + startSpeech: "Crystal, ego..." + endSpeech: "vado ad vos" + - type: CP14MagicEffectCastingVisual + proto: CP14RuneDemiplaneInfiltration + - type: EntityWorldTargetAction + range: 7 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/rumble.ogg + icon: + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: demi_arrow + event: !type:CP14DelayedEntityWorldTargetActionEvent + cooldown: 50 + +- type: entity + id: CP14GuildmaterTimedTeleport + categories: [ ForkFiltered ] + name: pulsating demiplane rift + description: This rift is gaining strength, and will trap all nearby creatures in a demiplane in a second! + components: + - type: Transform + anchored: True + - type: Clickable + - type: Physics + canCollide: false + bodyType: Static + - type: Sprite + drawdepth: Effects + sprite: /Textures/_CP14/Structures/Dungeon/demiplan_rift.rsi + layers: + - state: pulse + shader: unshaded + - type: PointLight + radius: 8 + color: "#5e427e" + - type: SingularityDistortion + falloffPower: 1.5 + intensity: 50 + - type: AmbientSound + volume: -3 + range: 7 + sound: + path: /Audio/Ambience/Objects/gravity_gen_hum.ogg + - type: CP14MonolithTimedPassway + +- type: entity + parent: CP14BaseSpellScrollDarkness + id: CP14SpellScrollMonolithWarp + name: demiplane link spell scroll + components: + - type: CP14SpellStorage + spells: + - CP14ActionSpellMonolithWarp \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Movement/T0_shadow_grab.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Darkness/T1_shadow_grab.yml similarity index 94% rename from Resources/Prototypes/_CP14/Entities/Actions/Spells/Movement/T0_shadow_grab.yml rename to Resources/Prototypes/_CP14/Entities/Actions/Spells/Darkness/T1_shadow_grab.yml index 81424f1577..4aab7668fb 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Movement/T0_shadow_grab.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Darkness/T1_shadow_grab.yml @@ -9,7 +9,7 @@ - type: CP14MagicEffectManaCost manaCost: 10 - type: CP14MagicEffect - magicType: Movement + magicType: Darkness telegraphyEffects: - !type:CP14SpellSpawnEntityOnTarget spawns: @@ -29,7 +29,6 @@ components: - Item canTargetSelf: false - checkCanAccess: false range: 10 itemIconStyle: BigAction sound: !type:SoundPathSpecifier @@ -54,7 +53,7 @@ color: "#5e427e" - type: entity - parent: CP14BaseSpellScrollMovement + parent: CP14BaseSpellScrollDarkness id: CP14SpellScrollShadowGrab name: shadow grab spell scroll components: diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Gate/T2_shadow_step.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Darkness/T2_shadow_step.yml similarity index 94% rename from Resources/Prototypes/_CP14/Entities/Actions/Spells/Gate/T2_shadow_step.yml rename to Resources/Prototypes/_CP14/Entities/Actions/Spells/Darkness/T2_shadow_step.yml index aa17fe2d74..a08a333114 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Gate/T2_shadow_step.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Darkness/T2_shadow_step.yml @@ -11,7 +11,7 @@ - type: CP14MagicEffectManaCost manaCost: 20 - type: CP14MagicEffect - magicType: Gate + magicType: Darkness telegraphyEffects: - !type:CP14SpellSpawnEntityOnTarget spawns: @@ -23,7 +23,6 @@ - type: CP14MagicEffectSomaticAspect - type: EntityWorldTargetAction range: 7 - checkCanAccess: false itemIconStyle: BigAction sound: !type:SoundPathSpecifier path: /Audio/Magic/rumble.ogg @@ -46,7 +45,7 @@ color: "#5e427e" - type: entity - parent: CP14BaseSpellScrollGate + parent: CP14BaseSpellScrollDarkness id: CP14SpellScrollShadowStep name: shadow step spell scroll components: diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/LightDarkness/T0_sphere_of_light.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Light/T0_sphere_of_light.yml similarity index 97% rename from Resources/Prototypes/_CP14/Entities/Actions/Spells/LightDarkness/T0_sphere_of_light.yml rename to Resources/Prototypes/_CP14/Entities/Actions/Spells/Light/T0_sphere_of_light.yml index 994dbcc39d..f47919e0a5 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/LightDarkness/T0_sphere_of_light.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Light/T0_sphere_of_light.yml @@ -9,7 +9,7 @@ - type: CP14MagicEffectManaCost manaCost: 10 - type: CP14MagicEffect - magicType: LightDarkness + magicType: Light effects: - !type:CP14SpellSpawnEntityOnTarget spawns: @@ -120,7 +120,7 @@ volume: -12 - type: entity - parent: CP14BaseSpellScrollLightDarkness + parent: CP14BaseSpellScrollLight id: CP14SpellScrollSphereOfLight name: sphere of light spell scroll components: diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/LightDarkness/T1_flash_light.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Light/T1_flash_light.yml similarity index 97% rename from Resources/Prototypes/_CP14/Entities/Actions/Spells/LightDarkness/T1_flash_light.yml rename to Resources/Prototypes/_CP14/Entities/Actions/Spells/Light/T1_flash_light.yml index 4552c73499..4e4f4ac1d2 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/LightDarkness/T1_flash_light.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Light/T1_flash_light.yml @@ -9,7 +9,7 @@ - type: CP14MagicEffectManaCost manaCost: 10 - type: CP14MagicEffect - magicType: LightDarkness + magicType: Light telegraphyEffects: - !type:CP14SpellSpawnEntityOnTarget spawns: @@ -92,7 +92,7 @@ lifetime: 0.5 - type: entity - parent: CP14BaseSpellScrollLightDarkness + parent: CP14BaseSpellScrollLight id: CP14SpellScrollFlashLight name: flash light spell scroll components: diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Light/T1_signal_light.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Light/T1_signal_light.yml new file mode 100644 index 0000000000..4bd683cc24 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Light/T1_signal_light.yml @@ -0,0 +1,249 @@ +- type: entity + id: CP14ActionSpellSignalLightBase + abstract: true + components: + - type: Sprite + sprite: _CP14/Effects/Magic/spells_icons.rsi + - type: CP14MagicEffectManaCost + manaCost: 5 + - type: CP14MagicEffect + magicType: Light + - type: CP14MagicEffectSomaticAspect + - type: InstantAction + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/rumble.ogg + event: !type:CP14DelayedInstantActionEvent + cooldown: 10 + castDelay: 0.5 + breakOnMove: false + +# RED + +- type: entity + id: CP14ActionSpellSignalLightRed + parent: CP14ActionSpellSignalLightBase + name: Red signal Light + description: You launch a hovering ball of light, briefly emitting a bright glow of red. This glow is able to penetrate the real world even from the demiplane. + components: + - type: Sprite + state: signal_light_red + - type: CP14MagicEffect + effects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14SignalLightRed + - type: CP14MagicEffectCastingVisual + proto: CP14RuneSignalLightRed + - type: InstantAction + icon: + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: signal_light_red + +- type: entity + id: CP14RuneSignalLightRed + parent: CP14BaseMagicRune + categories: [ HideSpawnMenu ] + components: + - type: PointLight + color: "#db1616" + - type: Sprite + layers: + - state: sun + color: "#db1616" + shader: unshaded + +- type: entity + parent: CP14BaseSpellScrollLight + id: CP14SpellscrollSignalLightRed + name: red signal light spell scroll + components: + - type: CP14SpellStorage + spells: + - CP14ActionSpellSignalLightRed + +# YELLOW + +- type: entity + id: CP14ActionSpellSignalLightYellow + parent: CP14ActionSpellSignalLightBase + name: Yellow signal Light + description: You launch a hovering ball of light, briefly emitting a bright glow of yellow. This glow is able to penetrate the real world even from the demiplane. + components: + - type: Sprite + state: signal_light_yellow + - type: CP14MagicEffect + effects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14SignalLightYellow + - type: CP14MagicEffectCastingVisual + proto: CP14RuneSignalLightYellow + - type: InstantAction + icon: + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: signal_light_yellow + +- type: entity + id: CP14RuneSignalLightYellow + parent: CP14BaseMagicRune + categories: [ HideSpawnMenu ] + components: + - type: PointLight + color: "#ebc942" + - type: Sprite + layers: + - state: sun + color: "#ebc942" + shader: unshaded + +- type: entity + parent: CP14BaseSpellScrollLight + id: CP14SpellscrollSignalLightYellow + name: yellow signal light spell scroll + components: + - type: CP14SpellStorage + spells: + - CP14ActionSpellSignalLightYellow + +# BLUE + +- type: entity + id: CP14ActionSpellSignalLightBlue + parent: CP14ActionSpellSignalLightBase + name: Blue signal Light + description: You launch a hovering ball of light, briefly emitting a bright glow of blue. This glow is able to penetrate the real world even from the demiplane. + components: + - type: Sprite + state: signal_light_blue + - type: CP14MagicEffect + effects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14SignalLightBlue + - type: CP14MagicEffectCastingVisual + proto: CP14RuneSignalLightBlue + - type: InstantAction + icon: + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: signal_light_blue + +- type: entity + id: CP14RuneSignalLightBlue + parent: CP14BaseMagicRune + categories: [ HideSpawnMenu ] + components: + - type: PointLight + color: "#42aaeb" + - type: Sprite + layers: + - state: sun + color: "#42aaeb" + shader: unshaded + +- type: entity + parent: CP14BaseSpellScrollLight + id: CP14SpellscrollSignalLightBlue + name: blue signal light spell scroll + components: + - type: CP14SpellStorage + spells: + - CP14ActionSpellSignalLightBlue + +# Signals + +- type: entity + id: CP14SignalLightBase + abstract: true + categories: [ ForkFiltered ] + name: signal light + components: + - type: TimedDespawn + lifetime: 12 + - type: Sprite + sprite: _CP14/Effects/Magic/sphere_of_light.rsi + noRot: true + layers: + - state: icon + shader: unshaded + - type: PointLight + radius: 20.0 + energy: 1 + netsync: false + mask: /Textures/_CP14/Effects/LightMasks/lighthouse_cone.png + - type: EmitSoundOnSpawn + sound: + path: /Audio/Items/Flare/flare_on.ogg + - type: AmbientSound + enabled: true + volume: -5 + range: 5 + sound: + path: /Audio/Items/Flare/flare_burn.ogg #TODO sound redesign + - type: CP14SpawnOutOfDemiplane + +- type: entity + id: CP14SignalLightRed + parent: CP14SignalLightBase + suffix: Red + components: + - type: Sprite + color: "#db1616" + - type: PointLight + color: "#db1616" + - type: LightBehaviour + behaviours: + - !type:PulseBehaviour + interpolate: Cubic + maxDuration: 2 + minValue: 1.0 + maxValue: 60.0 + property: Energy + isLooped: true + enabled: true + - type: RotatingLight + speed: 80 + +- type: entity + id: CP14SignalLightYellow + parent: CP14SignalLightBase + suffix: Yellow + components: + - type: Sprite + color: "#ebc942" + - type: PointLight + color: "#ebc942" + - type: LightBehaviour + behaviours: + - !type:PulseBehaviour + interpolate: Cubic + maxDuration: 3 + minValue: 1.0 + maxValue: 60.0 + property: Energy + isLooped: true + enabled: true + - type: RotatingLight + speed: 30 + +- type: entity + id: CP14SignalLightBlue + parent: CP14SignalLightBase + suffix: Blue + components: + - type: Sprite + color: "#42aaeb" + - type: PointLight + color: "#42aaeb" + - type: LightBehaviour + behaviours: + - !type:PulseBehaviour + interpolate: Cubic + maxDuration: 4 + minValue: 1.0 + maxValue: 60.0 + property: Energy + isLooped: true + enabled: true + - type: RotatingLight + speed: 50 diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Physical/T0_Kick.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Physical/T0_Kick.yml new file mode 100644 index 0000000000..f1e0cb953d --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Physical/T0_Kick.yml @@ -0,0 +1,42 @@ +- type: entity + id: CP14ActionSpellKick + name: Kick + description: You perform an epic leg kick at your chosen object, pushing it away from you. + components: + - type: Sprite + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: kick + - type: CP14MagicEffectCastSlowdown + speedMultiplier: 0.4 + - type: CP14MagicEffectStaminaCost + stamina: 40 + - type: CP14MagicEffect + effects: + - !type:CP14SpellApplyEntityEffect + effects: + - !type:Paralyze + paralyzeTime: 1 + - !type:CP14SpellThrowFromUser + throwPower: 9 + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14DustEffect + - type: CP14MagicEffectVerbalAspect + endSpeech: cp14-kick-emote + emote: true + - type: EntityTargetAction + canTargetSelf: false + range: 1 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Effects/hit_kick.ogg + params: + pitch: 2 + icon: + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: kick + event: !type:CP14DelayedEntityTargetActionEvent + cooldown: 5 + castDelay: 1 + entityDistance: 1 + breakOnMove: false \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/T0_freeze.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/T0_freeze.yml new file mode 100644 index 0000000000..8e0106f654 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/T0_freeze.yml @@ -0,0 +1,76 @@ +- type: entity + id: CP14ActionSpellFreeze + name: Freeze + description: You begin to severely cool down the target, slowing its movement speed. + components: + - type: Sprite + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: freeze + - type: CP14MagicEffectCastSlowdown + speedMultiplier: 0.8 + - type: CP14MagicEffectManaCost + manaCost: 7 + - type: CP14MagicEffect + magicType: Water + effects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ImpactEffectFreeze + - !type:CP14SpellApplyEntityEffect + effects: + - !type:MovespeedModifier + walkSpeedModifier: 0.5 + sprintSpeedModifier: 0.5 + statusLifetime: 2 + - !type:AdjustTemperature + amount: -12000 + - type: CP14MagicEffectVerbalAspect + startSpeech: "Vos adepto frigus..." + - type: CP14MagicEffectCastingVisual + proto: CP14RunePlantFreeze + - type: EntityTargetAction + range: 10 + interactOnMiss: false + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/rumble.ogg + icon: + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: freeze + event: !type:CP14ToggleableEntityTargetActionEvent + cooldown: 15 + castTime: 10 + breakOnMove: false + +- type: entity + id: CP14ImpactEffectFreeze + parent: CP14BaseMagicImpact + categories: [ HideSpawnMenu ] + components: + - type: Sprite + layers: + - state: circle_decrease + color: "#5eabeb" + shader: unshaded + +- type: entity + id: CP14RunePlantFreeze + parent: CP14BaseMagicRune + categories: [ HideSpawnMenu ] + components: + - type: PointLight + color: "#5eabeb" + - type: Sprite + layers: + - state: medium_circle + color: "#5eabeb" + shader: unshaded + +- type: entity + parent: CP14BaseSpellScrollWater + id: CP14SpellScrollFreeze + name: freeze spell scroll + components: + - type: CP14SpellStorage + spells: + - CP14ActionSpellFreeze \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/base.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/base.yml index 4b80f39d08..2d265a0036 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/base.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/base.yml @@ -34,4 +34,5 @@ - type: Sprite drawdepth: Effects sprite: _CP14/Effects/Magic/cast_impact.rsi - noRot: true \ No newline at end of file + noRot: true + - type: CP14SpawnOutOfDemiplane \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/scrolls.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/scrolls.yml index e0be9de88b..a6e07394bd 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/scrolls.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/scrolls.yml @@ -87,18 +87,6 @@ shader: unshaded color: "#d9741c" -- type: entity - abstract: true - id: CP14BaseSpellScrollGate - parent: CP14BaseSpellScroll - components: - - type: Sprite - layers: - - state: paper_filled - - state: magic - shader: unshaded - color: "#32597d" - - type: entity abstract: true id: CP14BaseSpellScrollHealing @@ -113,7 +101,7 @@ - type: entity abstract: true - id: CP14BaseSpellScrollLightDarkness + id: CP14BaseSpellScrollLight parent: CP14BaseSpellScroll components: - type: Sprite @@ -137,7 +125,7 @@ - type: entity abstract: true - id: CP14BaseSpellScrollMovement + id: CP14BaseSpellScrollDarkness parent: CP14BaseSpellScroll components: - type: Sprite @@ -145,7 +133,7 @@ - state: paper_filled - state: magic shader: unshaded - color: "#63ceff" + color: "#5e427e" - type: entity abstract: true diff --git a/Resources/Prototypes/_CP14/Entities/Clothing/Back/satchels.yml b/Resources/Prototypes/_CP14/Entities/Clothing/Back/satchels.yml new file mode 100644 index 0000000000..65156f801c --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Clothing/Back/satchels.yml @@ -0,0 +1,28 @@ +- type: entity + abstract: true + parent: CP14ClothingBackpackBase + id: CP14ClothingSatchelBase + categories: [ ForkFiltered ] + components: + - type: Storage + grid: + - 0,0,1,3 + - 3,0,6,3 + - 8,0,9,3 + +- type: entity + parent: CP14ClothingSatchelBase + id: CP14ClothingSatchelLeather + name: leather satchel + description: You wear this on your back and put items into it. + components: + - type: Sprite + sprite: _CP14/Clothing/Back/Satchel/leather_satchel.rsi + state: icon + - type: Foldable + canFoldInsideContainer: true + unfoldVerbText: fold-flip-verb + foldVerbText: fold-flip-verb + - type: FoldableClothing + foldedEquippedPrefix: flipped + foldedHeldPrefix: flipped \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Clothing/Cloak/Roles/bank.yml b/Resources/Prototypes/_CP14/Entities/Clothing/Cloak/Roles/bank.yml index 3f65902585..20f965aeb4 100644 --- a/Resources/Prototypes/_CP14/Entities/Clothing/Cloak/Roles/bank.yml +++ b/Resources/Prototypes/_CP14/Entities/Clothing/Cloak/Roles/bank.yml @@ -1,12 +1,11 @@ - type: entity parent: - CP14ClothingCloakBase - - ClothingSlotBase - id: CP14ClothingCloakCommandantJacket - name: commandant's jacket - description: the colors white and gold tell you that you're looking at a higher power. + id: CP14ClothingCloakCommandantJacket #TODO: Rename from Jacket to Cape + name: commandant's cape + description: The colors white and gold tell you that you're looking at a higher power. components: - type: Sprite - sprite: _CP14/Clothing/Cloak/Roles/Bank/commandant_jacket.rsi + sprite: _CP14/Clothing/Cloak/Roles/Bank/commandant_cape.rsi - type: Clothing - sprite: _CP14/Clothing/Cloak/Roles/Bank/commandant_jacket.rsi \ No newline at end of file + sprite: _CP14/Clothing/Cloak/Roles/Bank/commandant_cape.rsi \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Clothing/Cloak/Roles/general.yml b/Resources/Prototypes/_CP14/Entities/Clothing/Cloak/Roles/general.yml index cc897a966d..9799d8c984 100644 --- a/Resources/Prototypes/_CP14/Entities/Clothing/Cloak/Roles/general.yml +++ b/Resources/Prototypes/_CP14/Entities/Clothing/Cloak/Roles/general.yml @@ -62,4 +62,15 @@ - type: Sprite sprite: _CP14/Clothing/Cloak/Roles/General/blue.rsi - type: Clothing - sprite: _CP14/Clothing/Cloak/Roles/General/blue.rsi \ No newline at end of file + sprite: _CP14/Clothing/Cloak/Roles/General/blue.rsi + +- type: entity + parent: CP14ClothingCloakBase + id: CP14ClothingCloakFurCoat + name: fur coat + description: Warm in the rain, warm in the snow, warm in the wind. Nice. + components: + - type: Sprite + sprite: _CP14/Clothing/Cloak/Roles/General/fur_coat.rsi + - type: Clothing + sprite: _CP14/Clothing/Cloak/Roles/General/fur_coat.rsi \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Clothing/Cloak/Roles/guard_commander.yml b/Resources/Prototypes/_CP14/Entities/Clothing/Cloak/Roles/guard_commander.yml index 1303433161..69bbf90b28 100644 --- a/Resources/Prototypes/_CP14/Entities/Clothing/Cloak/Roles/guard_commander.yml +++ b/Resources/Prototypes/_CP14/Entities/Clothing/Cloak/Roles/guard_commander.yml @@ -7,14 +7,4 @@ - type: Sprite sprite: _CP14/Clothing/Cloak/Roles/Guard/guard_commander_cloak.rsi - type: Clothing - sprite: _CP14/Clothing/Cloak/Roles/Guard/guard_commander_cloak.rsi - - type: Armor - modifiers: - coefficients: - Blunt: 0.6 - Slash: 0.6 - Piercing: 0.6 - Heat: 0.7 - - type: ClothingSpeedModifier - walkModifier: 0.9 - sprintModifier: 0.9 \ No newline at end of file + sprite: _CP14/Clothing/Cloak/Roles/Guard/guard_commander_cloak.rsi \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Clothing/Cloak/Roles/guildmaster.yml b/Resources/Prototypes/_CP14/Entities/Clothing/Cloak/Roles/guildmaster.yml new file mode 100644 index 0000000000..4bead421c5 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Clothing/Cloak/Roles/guildmaster.yml @@ -0,0 +1,11 @@ +- type: entity + parent: + - CP14ClothingCloakBase + id: CP14ClothingCloakGuildmasterCape + name: guildmaster cape + description: The colors green and gold tell you that you're looking at a higher power. + components: + - type: Sprite + sprite: _CP14/Clothing/Cloak/Roles/Mercenary/guildmaster_cape.rsi + - type: Clothing + sprite: _CP14/Clothing/Cloak/Roles/Mercenary/guildmaster_cape.rsi \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Clothing/OuterClothing/Roles/banker.yml b/Resources/Prototypes/_CP14/Entities/Clothing/OuterClothing/Roles/banker.yml new file mode 100644 index 0000000000..107467bf77 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Clothing/OuterClothing/Roles/banker.yml @@ -0,0 +1,22 @@ +- type: entity + parent: + - ClothingSlotBase + - CP14ClothingOuterClothingBase + id: CP14ClothingOuterClothingBankerWaistCoat + name: "banker's waistcoat" + description: Stylish waistcoat made of expensive leather. A special uniform for bank employees that makes customers feel like beggars. + components: + - type: Sprite + sprite: _CP14/Clothing/OuterClothing/Roles/Bank/vest_banker.rsi + - type: Clothing + sprite: _CP14/Clothing/OuterClothing/Roles/Bank/vest_banker.rsi + +- type: entity + parent: CP14ClothingOuterClothingBankerWaistCoat + id: CP14ClothingOuterClothingBankerWaistCoatOpen + name: "open banker's waistcoat" + components: + - type: Sprite + sprite: _CP14/Clothing/OuterClothing/Roles/Bank/vest_banker_open.rsi + - type: Clothing + sprite: _CP14/Clothing/OuterClothing/Roles/Bank/vest_banker_open.rsi \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Clothing/Shirt/Roles/general.yml b/Resources/Prototypes/_CP14/Entities/Clothing/Shirt/Roles/general.yml index 2c482787f1..880b45ad9d 100644 --- a/Resources/Prototypes/_CP14/Entities/Clothing/Shirt/Roles/general.yml +++ b/Resources/Prototypes/_CP14/Entities/Clothing/Shirt/Roles/general.yml @@ -147,25 +147,6 @@ - type: Clothing sprite: _CP14/Clothing/Shirt/Roles/General/white_collar.rsi -- type: entity - parent: CP14ClothingShirtBase - id: CP14ClothingShirtCottonWhiteGreenVest - name: cotton white green vest shirt - components: - - type: Sprite - sprite: _CP14/Clothing/Shirt/Roles/General/white_green_vest.rsi - - type: Clothing - sprite: _CP14/Clothing/Shirt/Roles/General/white_green_vest.rsi - -- type: entity - parent: CP14ClothingShirtCottonWhiteGreenVest - id: CP14ClothingShirtCottonWhiteGreenVest2 - components: - - type: Sprite - sprite: _CP14/Clothing/Shirt/Roles/General/white_green_vest2.rsi - - type: Clothing - sprite: _CP14/Clothing/Shirt/Roles/General/white_green_vest2.rsi - - type: entity parent: CP14ClothingShirtBase id: CP14ClothingShirtCottonYellow diff --git a/Resources/Prototypes/_CP14/Entities/Clothing/Shirt/Roles/guildmaster.yml b/Resources/Prototypes/_CP14/Entities/Clothing/Shirt/Roles/guildmaster.yml new file mode 100644 index 0000000000..81c2e9893c --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Clothing/Shirt/Roles/guildmaster.yml @@ -0,0 +1,18 @@ +- type: entity + parent: CP14ClothingShirtBase + id: CP14ClothingShirtGuildmasterVest + name: cotton white green vest shirt + components: + - type: Sprite + sprite: _CP14/Clothing/Shirt/Roles/Mercenary/guildmaster_vest.rsi + - type: Clothing + sprite: _CP14/Clothing/Shirt/Roles/Mercenary/guildmaster_vest.rsi + +- type: entity + parent: CP14ClothingShirtGuildmasterVest + id: CP14ClothingShirtGuildmasterVest2 + components: + - type: Sprite + sprite: _CP14/Clothing/Shirt/Roles/Mercenary/guildmaster_vest2.rsi + - type: Clothing + sprite: _CP14/Clothing/Shirt/Roles/Mercenary/guildmaster_vest2.rsi \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/demiplane.yml b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/demiplane.yml index e5db1f2943..722c8c0c83 100644 --- a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/demiplane.yml +++ b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/demiplane.yml @@ -39,8 +39,8 @@ - id: CP14SpellScrollPlantGrowth - id: CP14EnergyCrystalSmallEmpty - id: CP14BaseSharpeningStone - - id: CP14GlassShard - - id: CP14Paper + - id: CP14ScrapCopper + - id: CP14ScrapIron # Rare - !type:GroupSelector weight: 25 @@ -54,10 +54,6 @@ - id: CP14VialSmallBlueAmanita - id: CP14VialTinyChromiumSlime - id: CP14VialTinyLumiMushroom - - !type:GroupSelector - children: - - id: CP14BookKnowledgeClothingSewing - - id: CP14BookKnowledgeWallpaperCraft - id: CP14BaseLockpick - id: CP14EnergyCrystalMediumEmpty - id: CP14DemiplaneKeyT1 @@ -96,20 +92,17 @@ # T1 loot chance - !type:NestedSelector tableId: CP14TableDemiplaneLootT1 - weight: 0.25 + weight: 2 #Temp (small amount T2 loot) - !type:GroupSelector children: - id: CP14SpellScrollShadowStep - id: CP14SpellScrollFireball - id: CP14SpellScrollBeerCreation weight: 0.2 - - !type:GroupSelector - children: - - id: CP14BookKnowledgeAdvancedClothingSewing - - id: CP14BookKnowledgeMetallMelting - - id: CP14BookKnowledgeMetallForging - - id: CP14BookKnowledgeGlasswork - id: CP14EnergyCrystalMediumEmpty + - id: CP14ScrapGold + - id: CP14ScrapMithril + weight: 0.5 # Rare - !type:GroupSelector weight: 25 diff --git a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/jobs.yml b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/jobs.yml index 13bcf2713b..64ea6930eb 100644 --- a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/jobs.yml +++ b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/jobs.yml @@ -96,8 +96,7 @@ - type: Sprite layers: - state: green - - state: adventurer #TODO - color: red + - state: guildmaster # Artisans diff --git a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/mobs.yml b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/mobs.yml index 1c4f463059..8dcf60616b 100644 --- a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/mobs.yml +++ b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/mobs.yml @@ -73,6 +73,22 @@ prototypes: - CP14MobBoar +- type: entity + name: frog spawner + id: CP14SpawnMobFrog + parent: MarkerBase + categories: [ ForkFiltered ] + components: + - type: Sprite + layers: + - sprite: Markers/cross.rsi + state: green + - sprite: _CP14/Mobs/Animals/frog.rsi + state: frog + - type: ConditionalSpawner + prototypes: + - CP14MobFrog + # Dino - type: entity diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/animals.yml b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/animals.yml index 330ed7489b..3796718bbb 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/animals.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/animals.yml @@ -209,3 +209,109 @@ path: /Audio/Animals/pig_oink.ogg - type: StealTarget stealGroup: CP14Boar + +- type: entity + name: frog + parent: SimpleMobBase + id: CP14MobFrog + description: Green and constantly jumping frog, and perhaps thanks to it mosquitoes have not completely filled the marshes. + categories: [ ForkFiltered ] + components: + - type: NpcFactionMember + factions: + - CP14Neutrals + - type: MovementSpeedModifier + baseWalkSpeed: 3 + baseSprintSpeed: 5 + - type: Sprite + drawdepth: SmallMobs + layers: + - map: ["enum.DamageStateVisualLayers.Base", "movement"] + sprite: _CP14/Mobs/Animals/frog.rsi + state: frog + - type: Clothing + quickEquip: false + sprite: _CP14/Mobs/Animals/frog_helmet.rsi + equippedPrefix: 0 + slots: + - HEAD + - type: SpriteMovement + movementLayers: + movement: + state: frog_moving + noMovementLayers: + movement: + state: frog_blinks + - type: Item + size: Normal + - type: FireVisuals + sprite: Mobs/Effects/onfire.rsi + normalState: Mouse_burning + - type: Speech + speechVerb: SmallMob + - type: Appearance + - type: Physics + - type: FloorOcclusion + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.2 + density: 5 + mask: + - SmallMobMask + layer: + - SmallMobLayer + - type: MobThresholds + thresholds: + 0: Alive + 10: Dead + - type: DamageStateVisuals + states: + Alive: + Base: frog + Dead: + Base: frog_dead + - type: Butcherable + butcherDelay: 2 + spawned: + - id: CP14FoodMeatFrogLeg + amount: 2 + - type: MeleeWeapon + angle: 0 + animation: WeaponArcBite + damage: + types: + Slash: 0 + - type: InteractionPopup + successChance: 0.6 + interactSuccessString: petting-success-frog + interactFailureString: petting-failure-generic + interactSuccessSpawn: EffectHearts + interactSuccessSound: + path: /Audio/Animals/frog_ribbit.ogg + - type: CanEscapeInventory + - type: Bloodstream + bloodMaxVolume: 30 + bloodReagent: CP14Blood + - type: Tag + tags: + - CP14Mosquito + - type: Destructible + thresholds: + - trigger: + !type:DamageTypeTrigger + damageType: Blunt + damage: 60 + behaviors: + - !type:GibBehavior { } + - type: SpamEmitSound + minInterval: 10 + maxInterval: 20 + sound: + collection: CP14Frog + params: + volume: -8 + variation: 0.125 + - type: SoundWhileAlive diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Species/base.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Species/base.yml index 9cbbd0374d..e496d90e0d 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/Species/base.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Species/base.yml @@ -234,6 +234,11 @@ weightlessFriction: 2 weightlessModifier: 0.6 - type: CP14DamageableByMap + - type: Hunger + starvationDamage: + types: + Cold: 0.25 + Bloodloss: 0.25 - type: entity @@ -337,15 +342,24 @@ - map: [ "enum.HumanoidVisualLayers.LArm" ] - map: [ "enum.HumanoidVisualLayers.RLeg" ] - map: [ "enum.HumanoidVisualLayers.LLeg" ] - - map: [ "shirt" ] - - map: [ "pants" ] + - shader: StencilClear + sprite: _CP14/Mobs/Species/Human/parts.rsi + state: l_leg + - shader: StencilMask + map: [ "enum.HumanoidVisualLayers.StencilMask" ] + sprite: Mobs/Customization/masking_helpers.rsi + state: unisex_full + visible: false - map: [ "enum.HumanoidVisualLayers.LFoot" ] - map: [ "enum.HumanoidVisualLayers.RFoot" ] + - map: [ "shoes" ] + - map: [ "shirt" ] + - map: [ "pants" ] - map: [ "enum.HumanoidVisualLayers.LHand" ] - map: [ "enum.HumanoidVisualLayers.RHand" ] - map: [ "gloves" ] - - map: [ "shoes" ] - map: [ "ears" ] + - map: [ "outerClothing" ] - map: [ "cloak" ] - map: [ "eyes" ] - map: [ "belt1" ] diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Species/dwarf.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Species/dwarf.yml index 108f5ca807..06349c5930 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/Species/dwarf.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Species/dwarf.yml @@ -7,6 +7,10 @@ - type: HumanoidAppearance species: CP14Dwarf - type: Hunger + starvationDamage: + types: + Cold: 0.25 + Bloodloss: 0.25 - type: Icon sprite: _CP14/Mobs/Species/Dwarf/parts.rsi state: full diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Species/elf.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Species/elf.yml index 532ee368cd..fa9a8ac705 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/Species/elf.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Species/elf.yml @@ -7,6 +7,10 @@ - type: HumanoidAppearance species: CP14Elf - type: Hunger + starvationDamage: + types: + Cold: 0.25 + Bloodloss: 0.25 - type: Icon sprite: _CP14/Mobs/Species/Elf/parts.rsi state: full diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Species/goblin.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Species/goblin.yml index 7e297b3540..719d5dc742 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/Species/goblin.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Species/goblin.yml @@ -7,6 +7,10 @@ - type: HumanoidAppearance species: CP14Goblin - type: Hunger + starvationDamage: + types: + Cold: 0.25 + Bloodloss: 0.25 - type: Icon sprite: _CP14/Mobs/Species/Goblin/parts.rsi state: full diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Species/human.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Species/human.yml index 699add7587..b0dfe08ca4 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/Species/human.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Species/human.yml @@ -7,6 +7,10 @@ - type: HumanoidAppearance species: CP14Human - type: Hunger + starvationDamage: + types: + Cold: 0.25 + Bloodloss: 0.25 - type: Icon sprite: _CP14/Mobs/Species/Human/parts.rsi state: full diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Species/silva.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Species/silva.yml index 58951ba2ed..a50f2a4f0e 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/Species/silva.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Species/silva.yml @@ -56,6 +56,10 @@ - type: HumanoidAppearance species: CP14Silva - type: Hunger + starvationDamage: + types: + Cold: 0.25 + Bloodloss: 0.25 - type: Icon sprite: _CP14/Mobs/Species/Elf/parts.rsi #TODO state: full @@ -132,17 +136,18 @@ sprite: Mobs/Customization/masking_helpers.rsi state: unisex_full visible: false - - map: [ "shirt" ] - - map: [ "pants" ] - map: [ "enum.HumanoidVisualLayers.LFoot" ] - map: [ "enum.HumanoidVisualLayers.RFoot" ] + - map: [ "shoes" ] + - map: [ "shirt" ] + - map: [ "pants" ] - map: [ "enum.HumanoidVisualLayers.LHand" ] - map: [ "enum.HumanoidVisualLayers.RHand" ] - map: [ "enum.HumanoidVisualLayers.HeadSide" ] # Bark Before clothing - map: [ "enum.HumanoidVisualLayers.HeadTop" ] # Bark Before clothing - map: [ "gloves" ] - - map: [ "shoes" ] - map: [ "ears" ] + - map: [ "outerClothing" ] - map: [ "cloak" ] - map: [ "eyes" ] - map: [ "belt1" ] diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Species/tiefling.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Species/tiefling.yml index 2c7c1d6ab2..0466bca324 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/Species/tiefling.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Species/tiefling.yml @@ -7,6 +7,10 @@ - type: HumanoidAppearance species: CP14Tiefling - type: Hunger + starvationDamage: + types: + Cold: 0.25 + Bloodloss: 0.25 - type: Icon sprite: _CP14/Mobs/Species/Tiefling/parts.rsi state: full diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Bureaucracy/stamps.yml b/Resources/Prototypes/_CP14/Entities/Objects/Bureaucracy/stamps.yml index f3ac073999..fa3062c94b 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Bureaucracy/stamps.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Bureaucracy/stamps.yml @@ -69,4 +69,17 @@ stampedColor: "#436a92" stampState: "guard_on_paper" - type: Sprite - state: guard \ No newline at end of file + state: guard + +- type: entity + id: CP14StampGuildmaster + parent: CP14StampBase + name: guildmaster stamp + suffix: DO NOT MAP + components: + - type: Stamp + stampedName: cp14-stamp-guildmaster + stampedColor: "#115c41" + stampState: "guildmaster_on_paper" + - type: Sprite + state: guildmaster \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/meat.yml b/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/meat.yml index 7b1e111896..2ab761c114 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/meat.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/meat.yml @@ -163,7 +163,7 @@ id: CP14FoodMeatLambCutlet parent: CP14FoodMeatSliceBase name: lamb cutlet - description: the result of mixing sliced lamb and egg - a raw round cutlet. + description: The result of mixing sliced lamb and egg - a raw round cutlet. components: - type: Sprite sprite: _CP14/Objects/Consumable/Food/meat.rsi @@ -210,4 +210,52 @@ - type: CP14TemperatureTransformation entries: - temperatureRange: 400, 500 - transformTo: CP14Ash1 \ No newline at end of file + transformTo: CP14Ash1 + +- type: entity + id: CP14FoodMeatFrogLeg + parent: CP14FoodMeatBase + name: frog leg + description: They say they eat it somewhere. + components: + - type: Sprite + sprite: _CP14/Objects/Consumable/Food/meat.rsi + state: frog_leg + - type: Item + size: Tiny + - type: SolutionContainerManager + solutions: + food: + maxVol: 5 + reagents: + - ReagentId: Nutriment + Quantity: 3 + - ReagentId: UncookedAnimalProteins + Quantity: 1 + - type: CP14TemperatureTransformation + entries: + - temperatureRange: 400, 500 + transformTo: CP14FoodMeatFrogLegCooked + +- type: entity + id: CP14FoodMeatFrogLegCooked + parent: CP14FoodMeatFrogLeg + name: cooked frog leg + description: It even seems edible. + components: + - type: Sprite + sprite: _CP14/Objects/Consumable/Food/meat.rsi + state: frog_leg_cooked + - type: SolutionContainerManager + solutions: + food: + maxVol: 5 + reagents: + - ReagentId: Nutriment + Quantity: 3 + - ReagentId: Protein + Quantity: 1 + - type: CP14TemperatureTransformation + entries: + - temperatureRange: 400, 500 + transformTo: CP14Ash1 diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/pie.yml b/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/pie.yml index dd0fedf36d..668808026f 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/pie.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/pie.yml @@ -215,3 +215,73 @@ entries: - temperatureRange: 400, 500 transformTo: CP14Ash1 + +- type: entity + name: raw pumpkin pie + parent: CP14FoodPieBaseRaw + id: CP14FoodPiePumpkinRaw + description: Raw dough with pumpkin, can be a satisfyingly flavorful dish. + components: + - type: FlavorProfile + flavors: + - raw dough + - pumpkin + - type: Sprite + layers: + - state: tin + - state: pumpkin_raw + - type: SolutionContainerManager + solutions: + food: + maxVol: 20 + reagents: + - ReagentId: Nutriment + Quantity: 6 + - ReagentId: UncookedAnimalProteins + Quantity: 2 + - ReagentId: PumpkinFlesh + Quantity: 5 + - ReagentId: Vitamin + Quantity: 4 + - type: Tag + tags: + - Fruit + - type: CP14TemperatureTransformation + entries: + - temperatureRange: 400, 500 + transformTo: CP14FoodPiePumpkin + +- type: entity + name: pumpkin pie + parent: CP14FoodPieBase + id: CP14FoodPiePumpkin + description: Delicious pumpkin pie, with a toasted crust on the outside. + components: + - type: FlavorProfile + flavors: + - pumpkin + - type: Sprite + layers: + - state: tin + - state: pumpkin + - type: SolutionContainerManager + solutions: + food: + maxVol: 20 + reagents: + - ReagentId: Nutriment + Quantity: 6 + - ReagentId: Protein + Quantity: 2 + - ReagentId: PumpkinFlesh + Quantity: 5 + - ReagentId: Vitamin + Quantity: 4 + - type: Tag + tags: + - Fruit + - Pie + - type: CP14TemperatureTransformation + entries: + - temperatureRange: 400, 500 + transformTo: CP14Ash1 diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/produce.yml b/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/produce.yml index 4bf46143d1..fd7a4921f5 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/produce.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Food/produce.yml @@ -136,7 +136,7 @@ food: maxVol: 6 # 1/5 pumpkin reagents: - - ReagentId: Nutriment + - ReagentId: PumpkinFlesh Quantity: 4 - ReagentId: Vitamin Quantity: 1 diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Smokeables/Pipes/pipe.yml b/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Smokeables/Pipes/pipe.yml new file mode 100644 index 0000000000..0070306e24 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Objects/Consumable/Smokeables/Pipes/pipe.yml @@ -0,0 +1,64 @@ +- type: entity + id: CP14SmokingPipe + parent: BaseSmokingPipe + name: pipe + description: A comfortable and practical smoking pipe, the latest fashion in the Empire. + categories: [ ForkFiltered ] + components: + - type: Sprite + sprite: _CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi + state: unlit-icon + - type: Clothing + sprite: _CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi + slots: [ mask ] + equippedPrefix: unlit + - type: Item + size: Tiny + sprite: _CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi + - type: Appearance + - type: BurnStateVisuals + unlitIcon: unlit-icon + +- type: entity + id: CP14SmokingPipeFilledTobacco + parent: CP14SmokingPipe + suffix: Tobacco + categories: [ ForkFiltered ] + components: + - type: ContainerContainer + containers: + bowl_slot: !type:ContainerSlot + - type: ItemSlots + - type: SmokingPipe + bowl_slot: + name: smoking-pipe-slot-component-slot-name-bowl + startingItem: CP14GroundTobacco + whitelist: + tags: + - Smokable + insertSound: + path: /Audio/Weapons/Guns/Empty/empty.ogg + ejectSound: + path: /Audio/Weapons/Guns/Empty/empty.ogg + +- type: entity + id: CP14SmokingPipeFilledSage + parent: CP14SmokingPipe + suffix: Sage + categories: [ ForkFiltered ] + components: + - type: ContainerContainer + containers: + bowl_slot: !type:ContainerSlot + - type: ItemSlots + - type: SmokingPipe + bowl_slot: + name: smoking-pipe-slot-component-slot-name-bowl + startingItem: CP14GroundSage + whitelist: + tags: + - Smokable + insertSound: + path: /Audio/Weapons/Guns/Empty/empty.ogg + ejectSound: + path: /Audio/Weapons/Guns/Empty/empty.ogg diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Keys/guildmaster.yml b/Resources/Prototypes/_CP14/Entities/Objects/Keys/guildmaster.yml new file mode 100644 index 0000000000..2d040c6671 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Objects/Keys/guildmaster.yml @@ -0,0 +1,15 @@ +- type: entity + parent: CP14BaseKey + id: CP14KeyGuildmaster + suffix: Guildmaster + components: + - type: CP14Key + autoGenerateShape: Guildmaster + +- type: entity + parent: CP14BaseKey + id: CP14KeyDemiplaneCrystal + suffix: Demiplane Crystal + components: + - type: CP14Key + autoGenerateShape: DemiplaneCrystal \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Keys/keyrings.yml b/Resources/Prototypes/_CP14/Entities/Objects/Keys/keyrings.yml index 9d7c0ccd22..9536cd6ea2 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Keys/keyrings.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Keys/keyrings.yml @@ -124,3 +124,13 @@ - id: CP14KeyGuard - id: CP14KeyGuardCommander #- id: CP14KeyGuardWeaponStorage + +- type: entity + parent: CP14BaseKeyRing + id: CP14KeyRingGuildmaster + suffix: Guildmaster + components: + - type: StorageFill + contents: + - id: CP14KeyGuildmaster + - id: CP14KeyDemiplaneCrystal diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Keys/personalHouse.yml b/Resources/Prototypes/_CP14/Entities/Objects/Keys/personalHouse.yml index 7338fbff78..1331ab2fd1 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Keys/personalHouse.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Keys/personalHouse.yml @@ -89,4 +89,52 @@ suffix: PersonalHouse10 components: - type: CP14Key - autoGenerateShape: PersonalHouse10 \ No newline at end of file + autoGenerateShape: PersonalHouse10 + +- type: entity + parent: CP14BaseKey + id: CP14KeyPersonalHouse11 + suffix: PersonalHouse11 + components: + - type: CP14Key + autoGenerateShape: PersonalHouse11 + +- type: entity + parent: CP14BaseKey + id: CP14KeyPersonalHouse12 + suffix: PersonalHouse12 + components: + - type: CP14Key + autoGenerateShape: PersonalHouse12 + +- type: entity + parent: CP14BaseKey + id: CP14KeyPersonalHouse13 + suffix: PersonalHouse13 + components: + - type: CP14Key + autoGenerateShape: PersonalHouse13 + +- type: entity + parent: CP14BaseKey + id: CP14KeyPersonalHouse14 + suffix: PersonalHouse14 + components: + - type: CP14Key + autoGenerateShape: PersonalHouse14 + +- type: entity + parent: CP14BaseKey + id: CP14KeyPersonalHouse15 + suffix: PersonalHouse15 + components: + - type: CP14Key + autoGenerateShape: PersonalHouse15 + +- type: entity + parent: CP14BaseKey + id: CP14KeyPersonalHouse16 + suffix: PersonalHouse16 + components: + - type: CP14Key + autoGenerateShape: PersonalHouse16 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Materials/bars.yml b/Resources/Prototypes/_CP14/Entities/Objects/Materials/bars.yml index edcc9a1d46..a88bee5596 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Materials/bars.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Materials/bars.yml @@ -23,6 +23,9 @@ - bar_2 - bar_3 - type: Material + #- type: CP14Material + # materials: + # CP14Copper: 10 - type: entity id: CP14CopperBar5 @@ -67,6 +70,9 @@ - bar_2 - bar_3 - type: Material + #- type: CP14Material + # materials: + # CP14Iron: 10 - type: entity id: CP14IronBar5 @@ -110,6 +116,9 @@ - bar_2 - bar_3 - type: Material + #- type: CP14Material + # materials: + # CP14Gold: 10 - type: entity id: CP14GoldBar5 @@ -193,6 +202,9 @@ - bar_2 - bar_3 - type: Material + #- type: CP14Material + # materials: + # CP14Mithril: 10 - type: entity id: CP14MithrilBar5 diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Materials/ores.yml b/Resources/Prototypes/_CP14/Entities/Objects/Materials/ores.yml index 7bc1a15854..5f2f1dd631 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Materials/ores.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Materials/ores.yml @@ -21,7 +21,9 @@ - ore1 - ore2 - ore3 - - type: Material + - type: CP14Material + materials: + CP14Copper: 2 - type: entity id: CP14OreCopper5 @@ -64,7 +66,9 @@ - ore1 - ore2 - ore3 - - type: Material + - type: CP14Material + materials: + CP14Iron: 2 - type: entity id: CP14OreIron5 @@ -107,7 +111,9 @@ - ore1 - ore2 - ore3 - - type: Material + - type: CP14Material + materials: + CP14Gold: 2 - type: entity id: CP14OreGold5 @@ -150,7 +156,9 @@ - ore1 - ore2 - ore3 - - type: Material + - type: CP14Material + materials: + CP14Mithril: 2 - type: entity id: CP14OreMithril5 diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Materials/scrap.yml b/Resources/Prototypes/_CP14/Entities/Objects/Materials/scrap.yml index d5427527e8..52807bc44c 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Materials/scrap.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Materials/scrap.yml @@ -24,6 +24,9 @@ layers: - state: scrap map: ["random"] + - type: CP14Material + materials: + CP14Copper: 5 - type: entity id: CP14ScrapIron @@ -36,6 +39,9 @@ layers: - state: scrap map: ["random"] + - type: CP14Material + materials: + CP14Iron: 5 - type: entity id: CP14ScrapGold @@ -48,6 +54,9 @@ layers: - state: scrap map: ["random"] + - type: CP14Material + materials: + CP14Gold: 5 - type: entity id: CP14ScrapMithril @@ -59,4 +68,7 @@ sprite: _CP14/Objects/Materials/mithril_scrap.rsi layers: - state: scrap - map: ["random"] \ No newline at end of file + map: ["random"] + - type: CP14Material + materials: + CP14Mithril: 5 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Materials/simple.yml b/Resources/Prototypes/_CP14/Entities/Objects/Materials/simple.yml index 666ca8be85..960ac2c711 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Materials/simple.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Materials/simple.yml @@ -214,6 +214,14 @@ - type: Stack count: 10 +- type: entity + id: CP14WoodenPlanks20 + parent: CP14WoodenPlanks1 + suffix: 20 + components: + - type: Stack + count: 20 + - type: entity id: CP14LucensWoodLog parent: CP14WoodLog @@ -270,6 +278,14 @@ - type: Stack count: 10 +- type: entity + id: CP14LucensWoodenPlanks20 + parent: CP14LucensWoodenPlanks1 + suffix: 20 + components: + - type: Stack + count: 20 + - type: entity id: CP14Nail1 parent: BaseItem @@ -331,12 +347,20 @@ launchForwardsMultiplier: 0 - type: entity - id: CP14Nail10 + id: CP14Nail20 parent: CP14Nail1 - suffix: 10 + suffix: 20 components: - type: Stack - count: 10 + count: 20 + +- type: entity + id: CP14Nail50 + parent: CP14Nail1 + suffix: 50 + components: + - type: Stack + count: 50 - type: entity id: CP14FloraMaterial1 @@ -347,45 +371,29 @@ categories: [ ForkFiltered ] components: - type: Item - size: Tiny + size: Normal - type: Stack stackType: CP14FloraMaterial count: 1 + baseLayer: base + layerStates: + - grass_material1 + - grass_material2 + - grass_material3 - type: Sprite sprite: _CP14/Objects/Materials/flora.rsi layers: - state: grass_material1 - map: ["random"] - - type: RandomSprite - available: - - random: - grass_material1: "" - grass_material2: "" - grass_material3: "" - - type: Tag - tags: - - CP14FireplaceFuel - - type: Flammable - fireSpread: false - canResistFire: false - alwaysCombustible: true - canExtinguish: true - cP14FireplaceFuel: 5 - damage: - types: - Heat: 1 + map: ["base"] - type: Material - - type: PhysicalComposition # точно ли это нужно? - materialComposition: - CP14FloraMaterial: 100 - type: entity - id: CP14FloraMaterial2 + id: CP14FloraMaterial10 parent: CP14FloraMaterial1 - suffix: 2 + suffix: 10 components: - type: Stack - count: 2 + count: 10 - type: entity id: CP14String diff --git a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/axe.yml b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/axe.yml index 5ac96e732f..b8b164d161 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/axe.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/axe.yml @@ -23,6 +23,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeIronAxe + - type: CP14Material + materials: + CP14Iron: 10 - type: entity parent: CP14ModularBladeAxeBase @@ -37,6 +40,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeGoldAxe + - type: CP14Material + materials: + CP14Gold: 10 - type: entity parent: CP14ModularBladeAxeBase @@ -51,6 +57,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeCopperAxe + - type: CP14Material + materials: + CP14Copper: 10 - type: entity parent: CP14ModularBladeAxeBase @@ -65,3 +74,6 @@ - type: CP14ModularCraftPart possibleParts: - BladeMithrilAxe + - type: CP14Material + materials: + CP14Mithril: 10 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/dagger.yml b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/dagger.yml index 218c9922b2..d20a10d0f0 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/dagger.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/dagger.yml @@ -23,6 +23,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeIronDagger + - type: CP14Material + materials: + CP14Iron: 10 - type: entity parent: CP14ModularBladeDaggerBase @@ -37,6 +40,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeGoldDagger + - type: CP14Material + materials: + CP14Gold: 10 - type: entity parent: CP14ModularBladeDaggerBase @@ -51,6 +57,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeCopperDagger + - type: CP14Material + materials: + CP14Copper: 10 - type: entity parent: CP14ModularBladeDaggerBase @@ -65,3 +74,6 @@ - type: CP14ModularCraftPart possibleParts: - BladeMithrilDagger + - type: CP14Material + materials: + CP14Mithril: 10 diff --git a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/hammer.yml b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/hammer.yml index d834a5d18c..c604260083 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/hammer.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/hammer.yml @@ -23,6 +23,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeIronHammer + - type: CP14Material + materials: + CP14Iron: 10 - type: entity parent: CP14ModularBladeHammerBase @@ -37,6 +40,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeGoldHammer + - type: CP14Material + materials: + CP14Gold: 10 - type: entity parent: CP14ModularBladeHammerBase @@ -51,6 +57,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeCopperHammer + - type: CP14Material + materials: + CP14Copper: 10 - type: entity parent: CP14ModularBladeHammerBase @@ -64,4 +73,7 @@ color: "#45d2a4" - type: CP14ModularCraftPart possibleParts: - - BladeMithrilHammer \ No newline at end of file + - BladeMithrilHammer + - type: CP14Material + materials: + CP14Mithril: 10 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/mace.yml b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/mace.yml index 866b8b5e4e..a7891a8def 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/mace.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/mace.yml @@ -23,6 +23,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeIronMace + - type: CP14Material + materials: + CP14Iron: 10 - type: entity parent: CP14ModularBladeMaceBase @@ -37,6 +40,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeGoldMace + - type: CP14Material + materials: + CP14Gold: 10 - type: entity parent: CP14ModularBladeMaceBase @@ -51,6 +57,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeCopperMace + - type: CP14Material + materials: + CP14Copper: 10 - type: entity parent: CP14ModularBladeMaceBase @@ -65,3 +74,6 @@ - type: CP14ModularCraftPart possibleParts: - BladeMithrilMace + - type: CP14Material + materials: + CP14Mithril: 10 diff --git a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/pickaxe.yml b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/pickaxe.yml index 4be5fcb4f0..f656250f00 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/pickaxe.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/pickaxe.yml @@ -23,6 +23,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeIronPickaxe + - type: CP14Material + materials: + CP14Iron: 10 - type: entity parent: CP14ModularBladePickaxeBase @@ -37,6 +40,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeGoldPickaxe + - type: CP14Material + materials: + CP14Gold: 10 - type: entity parent: CP14ModularBladePickaxeBase @@ -51,6 +57,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeCopperPickaxe + - type: CP14Material + materials: + CP14Copper: 10 - type: entity parent: CP14ModularBladePickaxeBase @@ -65,3 +74,6 @@ - type: CP14ModularCraftPart possibleParts: - BladeMithrilPickaxe + - type: CP14Material + materials: + CP14Mithril: 10 diff --git a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/rapier.yml b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/rapier.yml index 5b45ab230a..94ac8f9e35 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/rapier.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/rapier.yml @@ -23,6 +23,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeIronRapier + - type: CP14Material + materials: + CP14Iron: 10 - type: entity parent: CP14ModularBladeRapierBase @@ -37,6 +40,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeGoldRapier + - type: CP14Material + materials: + CP14Gold: 10 - type: entity parent: CP14ModularBladeRapierBase @@ -51,6 +57,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeCopperRapier + - type: CP14Material + materials: + CP14Copper: 10 - type: entity parent: CP14ModularBladeRapierBase @@ -65,3 +74,6 @@ - type: CP14ModularCraftPart possibleParts: - BladeMithrilRapier + - type: CP14Material + materials: + CP14Mithril: 10 diff --git a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/shovel.yml b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/shovel.yml index 482b35c871..8fef7b39e7 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/shovel.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/shovel.yml @@ -23,6 +23,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeIronShovel + - type: CP14Material + materials: + CP14Iron: 10 - type: entity parent: CP14ModularBladeShovelBase @@ -37,6 +40,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeGoldShovel + - type: CP14Material + materials: + CP14Gold: 10 - type: entity parent: CP14ModularBladeShovelBase @@ -51,6 +57,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeCopperShovel + - type: CP14Material + materials: + CP14Copper: 10 - type: entity parent: CP14ModularBladeShovelBase @@ -65,3 +74,6 @@ - type: CP14ModularCraftPart possibleParts: - BladeMithrilShovel + - type: CP14Material + materials: + CP14Mithril: 10 diff --git a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/sickle.yml b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/sickle.yml index 9f900e0e79..7cbee00c5a 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/sickle.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/sickle.yml @@ -23,6 +23,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeIronSickle + - type: CP14Material + materials: + CP14Iron: 10 - type: entity parent: CP14ModularBladeSickleBase @@ -37,6 +40,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeCopperSickle + - type: CP14Material + materials: + CP14Copper: 10 - type: entity parent: CP14ModularBladeSickleBase @@ -51,6 +57,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeGoldSickle + - type: CP14Material + materials: + CP14Gold: 10 - type: entity parent: CP14ModularBladeSickleBase @@ -65,3 +74,6 @@ - type: CP14ModularCraftPart possibleParts: - BladeMithrilSickle + - type: CP14Material + materials: + CP14Mithril: 10 diff --git a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/spear.yml b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/spear.yml index 1e75195fa4..0c10b8f474 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/spear.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/spear.yml @@ -24,6 +24,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeIronSpear + - type: CP14Material + materials: + CP14Iron: 10 - type: entity parent: CP14ModularBladeSpearBase @@ -39,6 +42,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeGoldSpear + - type: CP14Material + materials: + CP14Gold: 10 - type: entity parent: CP14ModularBladeSpearBase @@ -54,6 +60,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeCopperSpear + - type: CP14Material + materials: + CP14Copper: 10 - type: entity parent: CP14ModularBladeSpearBase @@ -68,4 +77,7 @@ color: "#45d2a4" - type: CP14ModularCraftPart possibleParts: - - BladeMithrilSpear \ No newline at end of file + - BladeMithrilSpear + - type: CP14Material + materials: + CP14Mithril: 10 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/sword.yml b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/sword.yml index a3b7f0a351..3fd47e7a3c 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/sword.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Blade/sword.yml @@ -22,6 +22,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeIronSword + - type: CP14Material + materials: + CP14Iron: 10 - type: entity parent: CP14ModularBladeSwordBase @@ -36,6 +39,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeGoldSword + - type: CP14Material + materials: + CP14Gold: 10 - type: entity parent: CP14ModularBladeSwordBase @@ -50,6 +56,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeCopperSword + - type: CP14Material + materials: + CP14Copper: 10 - type: entity parent: CP14ModularBladeSwordBase @@ -64,6 +73,9 @@ - type: CP14ModularCraftPart possibleParts: - BladeMithrilSword + - type: CP14Material + materials: + CP14Mithril: 10 - type: entity parent: CP14ModularBladeSwordBase diff --git a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Garde/sharp.yml b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Garde/sharp.yml index a91fd10621..0d27805f3f 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Garde/sharp.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Garde/sharp.yml @@ -24,6 +24,9 @@ - type: CP14ModularCraftPart possibleParts: - GardeSharpIron + - type: CP14Material + materials: + CP14Iron: 10 - type: entity parent: CP14ModularGardeBase @@ -39,6 +42,9 @@ - type: CP14ModularCraftPart possibleParts: - GardeSharpGold + - type: CP14Material + materials: + CP14Gold: 10 - type: entity parent: CP14ModularGardeBase @@ -54,6 +60,9 @@ - type: CP14ModularCraftPart possibleParts: - GardeSharpCopper + - type: CP14Material + materials: + CP14Copper: 10 - type: entity parent: CP14ModularGardeBase @@ -69,3 +78,6 @@ - type: CP14ModularCraftPart possibleParts: - GardeSharpMithril + - type: CP14Material + materials: + CP14Mithril: 10 diff --git a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Garde/sturdy.yml b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Garde/sturdy.yml index d0dc9e68c0..caa9dccee3 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Garde/sturdy.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/ModularTools/Garde/sturdy.yml @@ -11,6 +11,9 @@ - type: CP14ModularCraftPart possibleParts: - GardeSturdyIron + - type: CP14Material + materials: + CP14Iron: 10 - type: entity parent: CP14ModularGardeBase @@ -26,6 +29,9 @@ - type: CP14ModularCraftPart possibleParts: - GardeSturdyGold + - type: CP14Material + materials: + CP14Gold: 10 - type: entity parent: CP14ModularGardeBase @@ -41,6 +47,9 @@ - type: CP14ModularCraftPart possibleParts: - GardeSturdyCopper + - type: CP14Material + materials: + CP14Copper: 10 - type: entity parent: CP14ModularGardeBase @@ -55,4 +64,7 @@ color: "#45d2a4" - type: CP14ModularCraftPart possibleParts: - - GardeSturdyMithril \ No newline at end of file + - GardeSturdyMithril + - type: CP14Material + materials: + CP14Mithril: 10 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Specific/Farming/leaves.yml b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Farming/leaves.yml new file mode 100644 index 0000000000..eaca8882f8 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Farming/leaves.yml @@ -0,0 +1,45 @@ +- type: entity + name: ground tobacco + parent: BaseItem + id: CP14GroundTobacco + description: Grinded and dried tabac leaves, some like it is a cur. + categories: [ ForkFiltered ] + components: + - type: Item + size: Tiny + - type: SolutionContainerManager + solutions: + food: + reagents: + - ReagentId: Nicotine + Quantity: 10 + - type: Sprite + sprite: _CP14/Objects/Misc/reagent_fillings.rsi + state: tobacco_small + - type: Tag + tags: + - Smokable + +- type: entity + name: ground sage + parent: BaseItem + id: CP14GroundSage + description: Ground and dried sage root as it turns out is an excellent substitute for tobacco. + categories: [ ForkFiltered ] + components: + - type: Item + size: Tiny + - type: SolutionContainerManager + solutions: + food: + reagents: + - ReagentId: THC + Quantity: 8 + - ReagentId: Happiness + Quantity: 2 + - type: Sprite + sprite: _CP14/Objects/Misc/reagent_fillings.rsi + state: sage_powder + - type: Tag + tags: + - Smokable diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Specific/Thaumaturgy/essence.yml b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Thaumaturgy/essence.yml new file mode 100644 index 0000000000..10ef00effc --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Thaumaturgy/essence.yml @@ -0,0 +1,76 @@ +- type: entity + abstract: true + id: CP14BaseEssence + categories: [ ForkFiltered ] + name: magic essence + description: Particles of magical energy polarised into a particular type of magic. Will be gone soon, so try to collect them as soon as possible! + components: + - type: Clickable + - type: Sprite + noRot: true + drawdepth: Mobs + sprite: _CP14/Objects/Specific/Thaumaturgy/essence.rsi + layers: + - state: small + shader: unshaded + - type: TimedDespawn + lifetime: 60 + - type: CanMoveInAir + - type: RandomWalk + minSpeed: 0.5 + maxSpeed: 1 + - type: Physics + bodyType: Dynamic + bodyStatus: InAir + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.25,-0.25,0.25,0.25" + density: 20 + mask: + #- ItemMask # CP14 swap ItemMask to Impassable only + - Impassable + restitution: 0.3 # fite me + friction: 0.2 + +- type: entity + parent: CP14BaseEssence + id: CP14EssenceFire + name: fire essence + components: + - type: Sprite + color: "#d9741c" + +- type: entity + parent: CP14BaseEssence + id: CP14EssenceEarth + name: earth essence + components: + - type: Sprite + color: "#70533f" + +- type: entity + parent: CP14BaseEssence + id: CP14EssenceWater + name: water essence + components: + - type: Sprite + color: "#1c94d9" + +- type: entity + parent: CP14BaseEssence + id: CP14EssenceLight + name: light essence + components: + - type: Sprite + color: "#ba97b8" + +- type: entity + parent: CP14BaseEssence + id: CP14EssenceDarkness + name: darkness essence + components: + - type: Sprite + color: "#391c57" \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Tools/demiplane_keys.yml b/Resources/Prototypes/_CP14/Entities/Objects/Tools/demiplane_keys.yml index c80761a540..fb0c48608c 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Tools/demiplane_keys.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Tools/demiplane_keys.yml @@ -7,7 +7,7 @@ description: The core that connects the real world to the demiplane. Use it to open a temporary passage to the other world. components: - type: Item - size: Tiny + size: Normal - type: Sprite sprite: /Textures/_CP14/Structures/Dungeon/demiplan_rift_core.rsi layers: diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Tools/flint.yml b/Resources/Prototypes/_CP14/Entities/Objects/Tools/flint.yml index 8d73e48a59..d413349ae4 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Tools/flint.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Tools/flint.yml @@ -2,7 +2,7 @@ parent: BaseItem id: CP14Lighter name: flint and steel - description: "Setting things on fire. Absolutely, 100% not from minecraft." # TODO: remove minecraft sprite and desc + description: Setting things on fire categories: [ ForkFiltered ] components: - type: Item diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Tools/torch.yml b/Resources/Prototypes/_CP14/Entities/Objects/Tools/torch.yml index 96a0a32c86..3aca82ae56 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Tools/torch.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Tools/torch.yml @@ -94,5 +94,6 @@ - type: entity parent: CP14Torch id: CP14TorchIgnited + suffix: Ignited components: - - type: CP14AutoIgnite \ No newline at end of file + - type: CP14AutoIgnite diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Doors/Locked/alchemist.yml b/Resources/Prototypes/_CP14/Entities/Structures/Doors/Locked/alchemist.yml index b8de4b1485..3ee04785f3 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Doors/Locked/alchemist.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Doors/Locked/alchemist.yml @@ -32,4 +32,21 @@ - CP14WoodenDoorTavernAlchemy2 - CP14WoodenDoorMirrored id: CP14WoodenDoorTavernAlchemyMirrored2 - suffix: Alchemy 2, Mirrored \ No newline at end of file + suffix: Alchemy 2, Mirrored + +- type: entity + parent: CP14WoodenDoor + id: CP14WoodenDoorTavernAlchemy3 + suffix: Alchemy 3 + components: + - type: CP14Lock + autoGenerateShape: Alchemy3 + - type: Lock + locked: true + +- type: entity + parent: + - CP14WoodenDoorTavernAlchemy3 + - CP14WoodenDoorMirrored + id: CP14WoodenDoorTavernAlchemyMirrored3 + suffix: Alchemy 3, Mirrored \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Doors/Locked/blacksmith.yml b/Resources/Prototypes/_CP14/Entities/Structures/Doors/Locked/blacksmith.yml index 76afe1a49c..01ab67b6a2 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Doors/Locked/blacksmith.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Doors/Locked/blacksmith.yml @@ -30,4 +30,21 @@ - CP14IronDoorBlacksmith2 - CP14IronDoorMirrored id: CP14IronDoorMirroredBlacksmith2 - suffix: Blacksmith 2, Mirrored \ No newline at end of file + suffix: Blacksmith 2, Mirrored + +- type: entity + parent: CP14IronDoor + id: CP14IronDoorBlacksmith3 + suffix: Blacksmith 3 + components: + - type: CP14Lock + autoGenerateShape: Blacksmith3 + - type: Lock + locked: true + +- type: entity + parent: + - CP14IronDoorBlacksmith3 + - CP14IronDoorMirrored + id: CP14IronDoorMirroredBlacksmith3 + suffix: Blacksmith 3, Mirrored \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Doors/Locked/guildmaster.yml b/Resources/Prototypes/_CP14/Entities/Structures/Doors/Locked/guildmaster.yml index 5331928a7a..5008e3e49d 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Doors/Locked/guildmaster.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Doors/Locked/guildmaster.yml @@ -17,5 +17,15 @@ components: - type: CP14Lock autoGenerateShape: Guildmaster + - type: Lock + locked: true + +- type: entity + parent: CP14FenceIronGrilleGate + id: CP14FenceIronGrilleGateDemiplaneCrystal + suffix: DemiplaneCrystal + components: + - type: CP14Lock + autoGenerateShape: DemiplaneCrystal - type: Lock locked: true \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Doors/Locked/personalHouse.yml b/Resources/Prototypes/_CP14/Entities/Structures/Doors/Locked/personalHouse.yml index f2f386cf19..0b78322bef 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Doors/Locked/personalHouse.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Doors/Locked/personalHouse.yml @@ -147,5 +147,15 @@ components: - type: CP14Lock autoGenerateShape: PersonalHouse15 + - type: Lock + locked: true + +- type: entity + parent: CP14WoodenDoor + id: CP14WoodenDoorPersonalHouse16 + suffix: PersonalHouse16 + components: + - type: CP14Lock + autoGenerateShape: PersonalHouse16 - type: Lock locked: true \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Flora/Crystal/elemental.yml b/Resources/Prototypes/_CP14/Entities/Structures/Flora/Crystal/elemental.yml index 0afd27abc7..d25e4f9a2b 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Flora/Crystal/elemental.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Flora/Crystal/elemental.yml @@ -1,3 +1,113 @@ +# Normal + +- type: entity + id: CP14CrystalSmall + suffix: Normal, Small + parent: CP14CrystalSmallBase + components: + - type: Sprite + sprite: _CP14/Structures/Flora/Crystal/crystal_small.rsi + layers: + - state: small1 + map: ["random"] + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 40 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 10 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: GlassBreak + - !type:SpawnEntitiesBehavior + spawn: + CP14CrystalShardBase: + min: 1 + max: 1 + - !type:TriggerBehavior + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: PointLight + enabled: false + +- type: entity + id: CP14CrystalMedium + suffix: Normal, Medium + parent: CP14CrystalMediumBase + components: + - type: Sprite + sprite: _CP14/Structures/Flora/Crystal/crystal_medium.rsi + layers: + - state: medium1 + map: ["random"] + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 40 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 15 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: GlassBreak + - !type:SpawnEntitiesBehavior + spawn: + CP14CrystalShardBase: + min: 1 + max: 2 + - !type:TriggerBehavior + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: PointLight + enabled: false + +- type: entity + id: CP14CrystalBig + suffix: Normal, Big + parent: CP14CrystalBigBase + components: + - type: Sprite + sprite: _CP14/Structures/Flora/Crystal/crystal_big.rsi + layers: + - state: big1 + map: ["random"] + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 40 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 20 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: GlassBreak + - !type:SpawnEntitiesBehavior + spawn: + CP14CrystalShardBase: + min: 2 + max: 3 + - !type:TriggerBehavior + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: PointLight + enabled: false + # Water - type: entity @@ -42,7 +152,7 @@ - !type:SpawnEntitiesBehavior spawn: CP14CrystalShardWater: - min: 0 + min: 1 max: 1 - !type:TriggerBehavior - !type:DoActsBehavior @@ -190,7 +300,7 @@ - !type:SpawnEntitiesBehavior spawn: CP14CrystalShardHealing: - min: 0 + min: 1 max: 1 - !type:SpawnEntitiesBehavior spawn: @@ -314,7 +424,7 @@ - !type:SpawnEntitiesBehavior spawn: CP14CrystalShardFire: - min: 0 + min: 1 max: 1 - !type:TriggerBehavior - !type:DoActsBehavior @@ -426,7 +536,7 @@ - !type:SpawnEntitiesBehavior spawn: CP14CrystalShardLight: - min: 0 + min: 1 max: 1 - !type:SpawnEntitiesBehavior spawn: @@ -550,7 +660,7 @@ - !type:SpawnEntitiesBehavior spawn: CP14CrystalShardElectric: - min: 0 + min: 1 max: 1 - !type:SpawnEntitiesBehavior spawn: @@ -673,7 +783,7 @@ - !type:SpawnEntitiesBehavior spawn: CP14CrystalShardDarkness: - min: 0 + min: 1 max: 1 - !type:SpawnEntitiesBehavior spawn: diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Flora/Crystal/shards.yml b/Resources/Prototypes/_CP14/Entities/Structures/Flora/Crystal/shards.yml index d26e7eb6ff..d95e3933d9 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Flora/Crystal/shards.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Flora/Crystal/shards.yml @@ -1,7 +1,6 @@ - type: entity id: CP14CrystalShardBase parent: BaseItem - abstract: true name: quartz shard description: Natural quartz crystals that can absorb the magical energy of the world around them. categories: [ ForkFiltered ] diff --git a/Resources/Prototypes/_CP14/Entities/Structures/round_end.yml b/Resources/Prototypes/_CP14/Entities/Structures/round_end.yml index 18edda0fd6..b254d3bd84 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/round_end.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/round_end.yml @@ -35,7 +35,7 @@ - type: PointLight enabled: true color: "#8f42ff" - energy: 30 + energy: 1 radius: 5 netsync: false - type: LightBehaviour diff --git a/Resources/Prototypes/_CP14/Entities/Structures/test.yml b/Resources/Prototypes/_CP14/Entities/Structures/test.yml index 7f95b11c70..e044ed376a 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/test.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/test.yml @@ -67,9 +67,7 @@ drawdepth: Effects sprite: /Textures/_CP14/Structures/Dungeon/demiplan_rift_core.rsi layers: - - state: core - shader: unshaded - - state: pulse + - state: connective shader: unshaded - type: PointLight radius: 2 @@ -80,6 +78,8 @@ guides: - CP14_RU_Demiplanes - CP14_EN_Demiplanes + - type: Speech + speechVerb: Ghost - type: entity id: CP14DemiplaneTimedRadiusPassway diff --git a/Resources/Prototypes/_CP14/Entities/Structures/dungeon_entrance.yml b/Resources/Prototypes/_CP14/Entities/Structures/zLevelLadders.yml similarity index 100% rename from Resources/Prototypes/_CP14/Entities/Structures/dungeon_entrance.yml rename to Resources/Prototypes/_CP14/Entities/Structures/zLevelLadders.yml diff --git a/Resources/Prototypes/_CP14/GameRules/roundstart.yml b/Resources/Prototypes/_CP14/GameRules/roundstart.yml index d1a5429a57..d94fba9056 100644 --- a/Resources/Prototypes/_CP14/GameRules/roundstart.yml +++ b/Resources/Prototypes/_CP14/GameRules/roundstart.yml @@ -5,7 +5,6 @@ components: - type: GameRule cP14Allowed: true - - type: CP14RoundSeed - type: entity id: CP14RoundObjectivesRule @@ -18,9 +17,20 @@ CP14Bank: - CP14BankEarningObjectiveGroup - type: CP14PersonalObjectivesRule - departmentObjectives: - CP14Mercenary: + roleObjectives: + CP14Guildmaster: + - CP14GuildmasterNoDemiplaneObjectiveGroup + CP14Adventurer: - CP14PersonalCurrencyCollectObjectiveGroup + CP14Alchemist: + - CP14PersonalCurrencyCollectObjectiveGroup + CP14Apprentice: + - CP14PersonalCurrencyCollectObjectiveGroup + CP14Blacksmith: + - CP14PersonalCurrencyCollectObjectiveGroup + CP14Innkeeper: + - CP14PersonalCurrencyCollectObjectiveGroup + - type: entity id: CP14SociopathsRule diff --git a/Resources/Prototypes/_CP14/Loadouts/Jobs/bank.yml b/Resources/Prototypes/_CP14/Loadouts/Jobs/bank.yml index 7332c0b369..e9d733c18f 100644 --- a/Resources/Prototypes/_CP14/Loadouts/Jobs/bank.yml +++ b/Resources/Prototypes/_CP14/Loadouts/Jobs/bank.yml @@ -13,29 +13,25 @@ equipment: head: CP14ClothingHeadBowler -- type: loadoutGroup - id: CP14CommandantHead - name: cp14-loadout-commandant-head - loadouts: - - CP14ClothingHeadBowlerGolden - -- type: loadout - id: CP14ClothingHeadBowlerGolden - equipment: - head: CP14ClothingHeadBowlerGolden - -# Cloak +# OuterClothing - type: loadoutGroup - id: CP14CommandantCloak - name: cp14-loadout-commandant-cloak + id: CP14BankOuterClothing + name: cp14-loadout-banker-outer + minLimit: 0 loadouts: - - CP14ClothingCloakCommandantJacket + - CP14ClothingOuterClothingBankerWaistCoat + - CP14ClothingOuterClothingBankerWaistCoatOpen - type: loadout - id: CP14ClothingCloakCommandantJacket + id: CP14ClothingOuterClothingBankerWaistCoat equipment: - cloak: CP14ClothingCloakCommandantJacket + outerClothing: CP14ClothingOuterClothingBankerWaistCoat + +- type: loadout + id: CP14ClothingOuterClothingBankerWaistCoatOpen + equipment: + outerClothing: CP14ClothingOuterClothingBankerWaistCoatOpen # Shirt diff --git a/Resources/Prototypes/_CP14/Loadouts/Jobs/commandant.yml b/Resources/Prototypes/_CP14/Loadouts/Jobs/commandant.yml new file mode 100644 index 0000000000..7250e6312a --- /dev/null +++ b/Resources/Prototypes/_CP14/Loadouts/Jobs/commandant.yml @@ -0,0 +1,26 @@ + +# Head + +- type: loadoutGroup + id: CP14CommandantHead + name: cp14-loadout-commandant-head + loadouts: + - CP14ClothingHeadBowlerGolden + +- type: loadout + id: CP14ClothingHeadBowlerGolden + equipment: + head: CP14ClothingHeadBowlerGolden + +# Cloak + +- type: loadoutGroup + id: CP14CommandantCloak + name: cp14-loadout-commandant-cloak + loadouts: + - CP14ClothingCloakCommandantJacket + +- type: loadout + id: CP14ClothingCloakCommandantJacket + equipment: + cloak: CP14ClothingCloakCommandantJacket \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Loadouts/Jobs/general.yml b/Resources/Prototypes/_CP14/Loadouts/Jobs/general.yml index 057f24b197..0064419f12 100644 --- a/Resources/Prototypes/_CP14/Loadouts/Jobs/general.yml +++ b/Resources/Prototypes/_CP14/Loadouts/Jobs/general.yml @@ -12,6 +12,7 @@ - CP14ClothingCloakWhite - CP14ClothingCloakGreen - CP14ClothingCloakBlue + - CP14ClothingCloakFurCoat - type: loadout id: CP14ClothingCloakFurcapeBlack @@ -48,6 +49,11 @@ equipment: cloak: CP14ClothingCloakBlue +- type: loadout + id: CP14ClothingCloakFurCoat + equipment: + cloak: CP14ClothingCloakFurCoat + # Eyes - type: loadoutGroup @@ -275,8 +281,6 @@ - CP14ClothingShirtCottonWhiteBrownVest2 - CP14ClothingShirtCottonWhiteBrownVest3 - CP14ClothingShirtCottonWhiteCollar - - CP14ClothingShirtCottonWhiteGreenVest - - CP14ClothingShirtCottonWhiteGreenVest2 - CP14ClothingShirtCottonYellow - CP14ClothingShirtCottonYellowCollar @@ -350,16 +354,6 @@ equipment: shirt: CP14ClothingShirtCottonWhiteCollar -- type: loadout - id: CP14ClothingShirtCottonWhiteGreenVest - equipment: - shirt: CP14ClothingShirtCottonWhiteGreenVest - -- type: loadout - id: CP14ClothingShirtCottonWhiteGreenVest2 - equipment: - shirt: CP14ClothingShirtCottonWhiteGreenVest2 - - type: loadout id: CP14ClothingShirtCottonYellow equipment: @@ -402,12 +396,18 @@ name: cp14-loadout-general-back loadouts: - CP14ClothingBackpackLeather + - CP14ClothingSatchelLeather - type: loadout id: CP14ClothingBackpackLeather equipment: back: CP14ClothingBackpackLeather +- type: loadout + id: CP14ClothingSatchelLeather + equipment: + back: CP14ClothingSatchelLeather + # Trinkets - type: loadoutGroup @@ -427,7 +427,7 @@ - CP14ModularIronPickaxe - CP14Lighter - CP14Torch - - CP14DemiplaneKeyT1 + - CP14SmokingPipeFilledTobacco - CP14FluteInstrument - CP14LyraInstrument - CP14ClothingBeltQuiver @@ -499,10 +499,10 @@ - CP14Torch - type: loadout - id: CP14DemiplaneKeyT1 + id: CP14SmokingPipeFilledTobacco storage: back: - - CP14DemiplaneKeyT1 + - CP14SmokingPipeFilledTobacco - type: loadout id: CP14LyraInstrument @@ -557,8 +557,10 @@ - CP14ActionSpellManaGift - CP14ActionSpellShadowGrab - CP14ActionSpellWaterCreation + - CP14ActionSpellFreeze - CP14ActionSpellBeerCreation - CP14ActionSpellSprint + - CP14ActionSpellKick - type: loadout id: CP14ActionSpellBase @@ -712,6 +714,19 @@ traits: - CP14ManaWasting +- type: loadout + id: CP14ActionSpellFreeze + dummyEntity: CP14ActionSpellFreeze + actions: + - CP14ActionSpellFreeze + effects: + - !type:JobRequirementLoadoutEffect + requirement: + !type:TraitsRequirement + inverted: true + traits: + - CP14ManaWasting + - type: loadout id: CP14ActionSpellBeerCreation dummyEntity: CP14ActionSpellBeerCreation @@ -742,3 +757,9 @@ species: - CP14Goblin inverted: true # Goblins cannot take this spell, they have buffed version by default + +- type: loadout + id: CP14ActionSpellKick + dummyEntity: CP14ActionSpellKick + actions: + - CP14ActionSpellKick diff --git a/Resources/Prototypes/_CP14/Loadouts/Jobs/guildmaster.yml b/Resources/Prototypes/_CP14/Loadouts/Jobs/guildmaster.yml new file mode 100644 index 0000000000..366dbe30d2 --- /dev/null +++ b/Resources/Prototypes/_CP14/Loadouts/Jobs/guildmaster.yml @@ -0,0 +1,73 @@ + +# Head + +# Cloak + +- type: loadoutGroup + id: CP14GuildmasterCloak + name: cp14-loadout-guildmaster-cloak + loadouts: + - CP14ClothingCloakGuildmasterCape + +- type: loadout + id: CP14ClothingCloakGuildmasterCape + equipment: + cloak: CP14ClothingCloakGuildmasterCape + +# Shirt + +- type: loadoutGroup + id: CP14GuildmasterShirt + name: cp14-loadout-guildmaster-shirt + loadouts: + - CP14ClothingShirtGuildmasterVest + - CP14ClothingShirtGuildmasterVest2 + +- type: loadout + id: CP14ClothingShirtGuildmasterVest + equipment: + shirt: CP14ClothingShirtGuildmasterVest + +- type: loadout + id: CP14ClothingShirtGuildmasterVest2 + equipment: + shirt: CP14ClothingShirtGuildmasterVest2 + +# Pants + +- type: loadoutGroup + id: CP14GuildmasterPants + name: cp14-loadout-guildmaster-pants + loadouts: + - CP14ClothingPantsAristocratic + +# Shoes + +- type: loadoutGroup + id: CP14GuildmasterShoes + name: cp14-loadout-guildmaster-shoes + loadouts: + - CP14ShoesAristocraticBlack + +# Spells + +- type: loadoutGroup + id: CP14GuildmasterSpells + name: cp14-loadout-guildmaster-spells + minLimit: 2 + maxLimit: 2 + loadouts: + - CP14ActionSpellDemiplaneInfiltration + - CP14ActionSpellMonolithWarp + +- type: loadout + id: CP14ActionSpellDemiplaneInfiltration + dummyEntity: CP14ActionSpellDemiplaneInfiltration + actions: + - CP14ActionSpellDemiplaneInfiltration + +- type: loadout + id: CP14ActionSpellMonolithWarp + dummyEntity: CP14ActionSpellMonolithWarp + actions: + - CP14ActionSpellMonolithWarp \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Loadouts/role_loadouts.yml b/Resources/Prototypes/_CP14/Loadouts/role_loadouts.yml index 6bb66891cf..465c7f9f4e 100644 --- a/Resources/Prototypes/_CP14/Loadouts/role_loadouts.yml +++ b/Resources/Prototypes/_CP14/Loadouts/role_loadouts.yml @@ -108,17 +108,32 @@ - CP14CommandantHead - CP14GeneralEyes - CP14CommandantCloak + - CP14BankOuterClothing - CP14BankShirt - CP14BankPants - CP14BankShoes - CP14GeneralBack - CP14GeneralTrinkets +- type: roleLoadout + id: JobCP14Guildmaster + groups: + - CP14GeneralSpells + - CP14GeneralEyes + - CP14GuildmasterCloak + - CP14GuildmasterShirt + - CP14GuildmasterPants + - CP14GuildmasterShoes + - CP14GeneralBack + - CP14GeneralTrinkets + - CP14GuildmasterSpells + - type: roleLoadout id: JobCP14Banker groups: - CP14GeneralSpells - CP14BankHead + - CP14BankOuterClothing - CP14GeneralEyes - CP14BankShirt - CP14BankPants diff --git a/Resources/Prototypes/_CP14/LockCategories/lockTypes.yml b/Resources/Prototypes/_CP14/LockCategories/lockTypes.yml index 12dca97475..0d2afed63e 100644 --- a/Resources/Prototypes/_CP14/LockCategories/lockTypes.yml +++ b/Resources/Prototypes/_CP14/LockCategories/lockTypes.yml @@ -67,37 +67,56 @@ complexity: 3 name: cp14-lock-shape-tavern-dorm5 -# Mercenary +# Artisans - type: CP14LockType id: Alchemy1 group: Alchemist - complexity: 3 + complexity: 4 name: cp14-lock-shape-alchemist1 - type: CP14LockType id: Alchemy2 group: Alchemist - complexity: 3 + complexity: 4 name: cp14-lock-shape-alchemist2 + +- type: CP14LockType + id: Alchemy3 + group: Alchemist + complexity: 4 + name: cp14-lock-shape-alchemist3 - type: CP14LockType id: Blacksmith1 group: Blacksmith - complexity: 3 + complexity: 4 name: cp14-lock-shape-blacksmith1 - type: CP14LockType id: Blacksmith2 group: Blacksmith - complexity: 3 + complexity: 4 name: cp14-lock-shape-blacksmith2 +- type: CP14LockType + id: Blacksmith3 + group: Blacksmith + complexity: 4 + name: cp14-lock-shape-blacksmith3 + +# Mercenary + - type: CP14LockType id: Guildmaster complexity: 5 name: cp14-lock-shape-guildmaster +- type: CP14LockType + id: DemiplaneCrystal + complexity: 5 + name: cp14-lock-shape-demiplane-crystal + # Personal house - type: CP14LockType @@ -190,6 +209,12 @@ complexity: 3 name: cp14-lock-shape-personalhouse15 +- type: CP14LockType + id: PersonalHouse16 + group: PersonalHouse + complexity: 3 + name: cp14-lock-shape-personalhouse16 + # Guard - type: CP14LockType diff --git a/Resources/Prototypes/_CP14/MagicTypes/magic.yml b/Resources/Prototypes/_CP14/MagicTypes/magic.yml index 9aa4acb852..04eca1e96f 100644 --- a/Resources/Prototypes/_CP14/MagicTypes/magic.yml +++ b/Resources/Prototypes/_CP14/MagicTypes/magic.yml @@ -8,31 +8,26 @@ name: cp14-magic-type-fire color: "#d9741c" -- type: magicType - id: Gate - name: cp14-magic-type-gate - color: "#32597d" - - type: magicType id: Healing name: cp14-magic-type-healing color: "#89e04f" - type: magicType - id: LightDarkness - name: cp14-magic-type-light-darkness + id: Light + name: cp14-magic-type-light color: "#ba97b8" +- type: magicType + id: Darkness + name: cp14-magic-type-darkness + color: "#4e0691" + - type: magicType id: Meta name: cp14-magic-type-meta color: "#dcffdb" -- type: magicType - id: Movement - name: cp14-magic-type-movement - color: "#63ceff" - - type: magicType id: Water name: cp14-magic-type-water diff --git a/Resources/Prototypes/_CP14/Maps/arenas.yml b/Resources/Prototypes/_CP14/Maps/arenas.yml index 74cdcae745..3d644a037e 100644 --- a/Resources/Prototypes/_CP14/Maps/arenas.yml +++ b/Resources/Prototypes/_CP14/Maps/arenas.yml @@ -28,13 +28,18 @@ mapNameTemplate: "Comoss island" - type: StationJobs availableJobs: - CP14Apprentice: [ 5, 5 ] + #Mercenary + CP14Guildmaster: [1, 1] CP14Adventurer: [ -1, -1 ] + #Artisans + CP14Apprentice: [ 5, 5 ] CP14Alchemist: [ 2, 2 ] CP14Blacksmith: [ 2, 2 ] CP14Innkeeper: [ 3, 4 ] + #Bank CP14Commandant: [1, 1] CP14Banker: [3, 4] + #Guard CP14Guard: [8, 8] CP14GuardCommander: [1, 1] - type: CP14StationZLevels diff --git a/Resources/Prototypes/_CP14/Materials/simple.yml b/Resources/Prototypes/_CP14/Materials/simple.yml index 81c3efab56..72d962f421 100644 --- a/Resources/Prototypes/_CP14/Materials/simple.yml +++ b/Resources/Prototypes/_CP14/Materials/simple.yml @@ -48,7 +48,7 @@ stackEntity: CP14CopperBar1 name: cp14-material-copper unit: materials-unit-bar - icon: { sprite: _CP14/Objects/Materials/copper_bar.rsi, state: bar_2 } + icon: { sprite: _CP14/Objects/Materials/copper_scrap.rsi, state: scrap } color: "#9a5e22" price: 0 @@ -57,7 +57,7 @@ stackEntity: CP14IronBar1 name: cp14-material-iron unit: materials-unit-bar - icon: { sprite: _CP14/Objects/Materials/iron_bar.rsi, state: bar_2 } + icon: { sprite: _CP14/Objects/Materials/iron_scrap.rsi, state: scrap_2 } color: "#9093a1" price: 0 @@ -66,7 +66,7 @@ stackEntity: CP14GoldBar1 name: cp14-material-gold unit: materials-unit-bar - icon: { sprite: _CP14/Objects/Materials/gold_bar.rsi, state: bar_2 } + icon: { sprite: _CP14/Objects/Materials/gold_scrap.rsi, state: scrap_3 } color: "#FFD700" price: 0 @@ -75,7 +75,7 @@ stackEntity: CP14MithrilBar1 name: cp14-material-mithril unit: materials-unit-bar - icon: { sprite: _CP14/Objects/Materials/mithril_bar.rsi, state: bar_2 } + icon: { sprite: _CP14/Objects/Materials/mithril_scrap.rsi, state: scrap } color: "#006c83" price: 0 diff --git a/Resources/Prototypes/_CP14/ModularCraft/Blade/axe.yml b/Resources/Prototypes/_CP14/ModularCraft/Blade/axe.yml index 33a11f733f..35f58fcd5d 100644 --- a/Resources/Prototypes/_CP14/ModularCraft/Blade/axe.yml +++ b/Resources/Prototypes/_CP14/ModularCraft/Blade/axe.yml @@ -30,7 +30,7 @@ - type: modularPart id: BladeIronAxe targetSlot: Blade - sourcePart: CP14ModularBladeIronAxe + sourcePart: CP14ScrapIron rsiPath: _CP14/Objects/ModularTools/Blade/Axe/metall_axe.rsi modifiers: - !type:Inherit @@ -41,7 +41,7 @@ - type: modularPart id: BladeGoldAxe targetSlot: Blade - sourcePart: CP14ModularBladeGoldAxe + sourcePart: CP14ScrapGold rsiPath: _CP14/Objects/ModularTools/Blade/Axe/metall_axe.rsi color: "#ffaf47" modifiers: @@ -53,7 +53,7 @@ - type: modularPart id: BladeCopperAxe targetSlot: Blade - sourcePart: CP14ModularBladeCopperAxe + sourcePart: CP14ScrapCopper rsiPath: _CP14/Objects/ModularTools/Blade/Axe/metall_axe.rsi color: "#bd712f" modifiers: @@ -65,7 +65,7 @@ - type: modularPart id: BladeMithrilAxe targetSlot: Blade - sourcePart: CP14ModularBladeMithrilAxe + sourcePart: CP14ScrapMithril rsiPath: _CP14/Objects/ModularTools/Blade/Axe/metall_axe.rsi color: "#45d2a4" modifiers: diff --git a/Resources/Prototypes/_CP14/ModularCraft/Blade/dagger.yml b/Resources/Prototypes/_CP14/ModularCraft/Blade/dagger.yml index b6dcee4305..6c13ad20b2 100644 --- a/Resources/Prototypes/_CP14/ModularCraft/Blade/dagger.yml +++ b/Resources/Prototypes/_CP14/ModularCraft/Blade/dagger.yml @@ -35,7 +35,7 @@ - type: modularPart id: BladeIronDagger targetSlot: Blade - sourcePart: CP14ModularBladeIronDagger + sourcePart: CP14ScrapIron rsiPath: _CP14/Objects/ModularTools/Blade/Dagger/metall_dagger.rsi modifiers: - !type:Inherit @@ -46,7 +46,7 @@ - type: modularPart id: BladeGoldDagger targetSlot: Blade - sourcePart: CP14ModularBladeGoldDagger + sourcePart: CP14ScrapGold rsiPath: _CP14/Objects/ModularTools/Blade/Dagger/metall_dagger.rsi color: "#ffaf47" modifiers: @@ -58,7 +58,7 @@ - type: modularPart id: BladeCopperDagger targetSlot: Blade - sourcePart: CP14ModularBladeCopperDagger + sourcePart: CP14ScrapCopper rsiPath: _CP14/Objects/ModularTools/Blade/Dagger/metall_dagger.rsi color: "#bd712f" modifiers: @@ -70,7 +70,7 @@ - type: modularPart id: BladeMithrilDagger targetSlot: Blade - sourcePart: CP14ModularBladeMithrilDagger + sourcePart: CP14ScrapMithril rsiPath: _CP14/Objects/ModularTools/Blade/Dagger/metall_dagger.rsi color: "#45d2a4" modifiers: diff --git a/Resources/Prototypes/_CP14/ModularCraft/Blade/hammer.yml b/Resources/Prototypes/_CP14/ModularCraft/Blade/hammer.yml index 950e55bb4f..79f27976f2 100644 --- a/Resources/Prototypes/_CP14/ModularCraft/Blade/hammer.yml +++ b/Resources/Prototypes/_CP14/ModularCraft/Blade/hammer.yml @@ -47,7 +47,7 @@ - type: modularPart id: BladeIronHammer targetSlot: Blade - sourcePart: CP14ModularBladeIronHammer + sourcePart: CP14ScrapIron rsiPath: _CP14/Objects/ModularTools/Blade/Hammer/metall_hammer.rsi modifiers: - !type:Inherit @@ -58,7 +58,7 @@ - type: modularPart id: BladeGoldHammer targetSlot: Blade - sourcePart: CP14ModularBladeGoldHammer + sourcePart: CP14ScrapGold rsiPath: _CP14/Objects/ModularTools/Blade/Hammer/metall_hammer.rsi color: "#ffaf47" modifiers: @@ -70,7 +70,7 @@ - type: modularPart id: BladeCopperHammer targetSlot: Blade - sourcePart: CP14ModularBladeCopperHammer + sourcePart: CP14ScrapCopper rsiPath: _CP14/Objects/ModularTools/Blade/Hammer/metall_hammer.rsi color: "#bd712f" modifiers: @@ -82,7 +82,7 @@ - type: modularPart id: BladeMithrilHammer targetSlot: Blade - sourcePart: CP14ModularBladeMithrilHammer + sourcePart: CP14ScrapMithril rsiPath: _CP14/Objects/ModularTools/Blade/Hammer/metall_hammer.rsi color: "#45d2a4" modifiers: diff --git a/Resources/Prototypes/_CP14/ModularCraft/Blade/mace.yml b/Resources/Prototypes/_CP14/ModularCraft/Blade/mace.yml index 6e47ec3c28..2df624ec27 100644 --- a/Resources/Prototypes/_CP14/ModularCraft/Blade/mace.yml +++ b/Resources/Prototypes/_CP14/ModularCraft/Blade/mace.yml @@ -28,7 +28,7 @@ - type: modularPart id: BladeIronMace targetSlot: Blade - sourcePart: CP14ModularBladeIronMace + sourcePart: CP14ScrapIron rsiPath: _CP14/Objects/ModularTools/Blade/Mace/metall_mace.rsi modifiers: - !type:Inherit @@ -39,7 +39,7 @@ - type: modularPart id: BladeGoldMace targetSlot: Blade - sourcePart: CP14ModularBladeGoldMace + sourcePart: CP14ScrapGold rsiPath: _CP14/Objects/ModularTools/Blade/Mace/metall_mace.rsi color: "#ffaf47" modifiers: @@ -51,7 +51,7 @@ - type: modularPart id: BladeCopperMace targetSlot: Blade - sourcePart: CP14ModularBladeCopperMace + sourcePart: CP14ScrapCopper rsiPath: _CP14/Objects/ModularTools/Blade/Mace/metall_mace.rsi color: "#bd712f" modifiers: @@ -63,7 +63,7 @@ - type: modularPart id: BladeMithrilMace targetSlot: Blade - sourcePart: CP14ModularBladeMithrilMace + sourcePart: CP14ScrapMithril rsiPath: _CP14/Objects/ModularTools/Blade/Mace/metall_mace.rsi color: "#45d2a4" modifiers: diff --git a/Resources/Prototypes/_CP14/ModularCraft/Blade/pickaxe.yml b/Resources/Prototypes/_CP14/ModularCraft/Blade/pickaxe.yml index b45c875f1d..5414461d47 100644 --- a/Resources/Prototypes/_CP14/ModularCraft/Blade/pickaxe.yml +++ b/Resources/Prototypes/_CP14/ModularCraft/Blade/pickaxe.yml @@ -23,7 +23,7 @@ - type: modularPart id: BladeIronPickaxe targetSlot: Blade - sourcePart: CP14ModularBladeIronPickaxe + sourcePart: CP14ScrapIron rsiPath: _CP14/Objects/ModularTools/Blade/Pickaxe/metall_pickaxe.rsi modifiers: - !type:Inherit @@ -34,7 +34,7 @@ - type: modularPart id: BladeGoldPickaxe targetSlot: Blade - sourcePart: CP14ModularBladeGoldPickaxe + sourcePart: CP14ScrapGold rsiPath: _CP14/Objects/ModularTools/Blade/Pickaxe/metall_pickaxe.rsi color: "#ffaf47" modifiers: @@ -46,7 +46,7 @@ - type: modularPart id: BladeCopperPickaxe targetSlot: Blade - sourcePart: CP14ModularBladeCopperPickaxe + sourcePart: CP14ScrapCopper rsiPath: _CP14/Objects/ModularTools/Blade/Pickaxe/metall_pickaxe.rsi color: "#bd712f" modifiers: @@ -58,7 +58,7 @@ - type: modularPart id: BladeMithrilPickaxe targetSlot: Blade - sourcePart: CP14ModularBladeMithrilPickaxe + sourcePart: CP14ScrapMithril rsiPath: _CP14/Objects/ModularTools/Blade/Pickaxe/metall_pickaxe.rsi color: "#45d2a4" modifiers: diff --git a/Resources/Prototypes/_CP14/ModularCraft/Blade/rapier.yml b/Resources/Prototypes/_CP14/ModularCraft/Blade/rapier.yml index 799526ff32..258e0dfd43 100644 --- a/Resources/Prototypes/_CP14/ModularCraft/Blade/rapier.yml +++ b/Resources/Prototypes/_CP14/ModularCraft/Blade/rapier.yml @@ -34,7 +34,7 @@ - type: modularPart id: BladeIronRapier targetSlot: Blade - sourcePart: CP14ModularBladeIronRapier + sourcePart: CP14ScrapIron rsiPath: _CP14/Objects/ModularTools/Blade/Rapier/metall_rapier.rsi modifiers: - !type:Inherit @@ -45,7 +45,7 @@ - type: modularPart id: BladeGoldRapier targetSlot: Blade - sourcePart: CP14ModularBladeGoldRapier + sourcePart: CP14ScrapGold rsiPath: _CP14/Objects/ModularTools/Blade/Rapier/metall_rapier.rsi color: "#ffaf47" modifiers: @@ -57,7 +57,7 @@ - type: modularPart id: BladeCopperRapier targetSlot: Blade - sourcePart: CP14ModularBladeCopperRapier + sourcePart: CP14ScrapCopper rsiPath: _CP14/Objects/ModularTools/Blade/Rapier/metall_rapier.rsi color: "#bd712f" modifiers: @@ -69,7 +69,7 @@ - type: modularPart id: BladeMithrilRapier targetSlot: Blade - sourcePart: CP14ModularBladeMithrilRapier + sourcePart: CP14ScrapMithril rsiPath: _CP14/Objects/ModularTools/Blade/Rapier/metall_rapier.rsi color: "#45d2a4" modifiers: diff --git a/Resources/Prototypes/_CP14/ModularCraft/Blade/shovel.yml b/Resources/Prototypes/_CP14/ModularCraft/Blade/shovel.yml index fd624ae079..a29c3368a9 100644 --- a/Resources/Prototypes/_CP14/ModularCraft/Blade/shovel.yml +++ b/Resources/Prototypes/_CP14/ModularCraft/Blade/shovel.yml @@ -32,7 +32,7 @@ - type: modularPart id: BladeIronShovel targetSlot: Blade - sourcePart: CP14ModularBladeIronShovel + sourcePart: CP14ScrapIron rsiPath: _CP14/Objects/ModularTools/Blade/Shovel/metall_shovel.rsi modifiers: - !type:Inherit @@ -43,7 +43,7 @@ - type: modularPart id: BladeGoldShovel targetSlot: Blade - sourcePart: CP14ModularBladeGoldShovel + sourcePart: CP14ScrapGold rsiPath: _CP14/Objects/ModularTools/Blade/Shovel/metall_shovel.rsi color: "#ffaf47" modifiers: @@ -55,7 +55,7 @@ - type: modularPart id: BladeCopperShovel targetSlot: Blade - sourcePart: CP14ModularBladeCopperShovel + sourcePart: CP14ScrapCopper rsiPath: _CP14/Objects/ModularTools/Blade/Shovel/metall_shovel.rsi color: "#bd712f" modifiers: @@ -67,7 +67,7 @@ - type: modularPart id: BladeMithrilShovel targetSlot: Blade - sourcePart: CP14ModularBladeMithrilShovel + sourcePart: CP14ScrapMithril rsiPath: _CP14/Objects/ModularTools/Blade/Shovel/metall_shovel.rsi color: "#45d2a4" modifiers: diff --git a/Resources/Prototypes/_CP14/ModularCraft/Blade/sickle.yml b/Resources/Prototypes/_CP14/ModularCraft/Blade/sickle.yml index 636459ba60..36027bfab8 100644 --- a/Resources/Prototypes/_CP14/ModularCraft/Blade/sickle.yml +++ b/Resources/Prototypes/_CP14/ModularCraft/Blade/sickle.yml @@ -25,7 +25,7 @@ - type: modularPart id: BladeIronSickle targetSlot: Blade - sourcePart: CP14ModularBladeIronSickle + sourcePart: CP14ScrapIron rsiPath: _CP14/Objects/ModularTools/Blade/Sickle/metall_sickle.rsi modifiers: - !type:Inherit @@ -36,7 +36,7 @@ - type: modularPart id: BladeGoldSickle targetSlot: Blade - sourcePart: CP14ModularBladeIronSickle + sourcePart: CP14ScrapGold rsiPath: _CP14/Objects/ModularTools/Blade/Sickle/metall_sickle.rsi color: "#ffaf47" modifiers: @@ -48,7 +48,7 @@ - type: modularPart id: BladeCopperSickle targetSlot: Blade - sourcePart: CP14ModularBladeCopperSickle + sourcePart: CP14ScrapCopper rsiPath: _CP14/Objects/ModularTools/Blade/Sickle/metall_sickle.rsi color: "#bd712f" modifiers: @@ -60,7 +60,7 @@ - type: modularPart id: BladeMithrilSickle targetSlot: Blade - sourcePart: CP14ModularBladeMithrilSickle + sourcePart: CP14ScrapMithril rsiPath: _CP14/Objects/ModularTools/Blade/Sickle/metall_sickle.rsi color: "#45d2a4" modifiers: diff --git a/Resources/Prototypes/_CP14/ModularCraft/Blade/spear.yml b/Resources/Prototypes/_CP14/ModularCraft/Blade/spear.yml index 87248c3425..415bb39b84 100644 --- a/Resources/Prototypes/_CP14/ModularCraft/Blade/spear.yml +++ b/Resources/Prototypes/_CP14/ModularCraft/Blade/spear.yml @@ -40,7 +40,7 @@ - type: modularPart id: BladeIronSpear targetSlot: Blade - sourcePart: CP14ModularBladeIronSpear + sourcePart: CP14ScrapIron rsiPath: _CP14/Objects/ModularTools/Blade/Spear/metall_spear.rsi modifiers: - !type:Inherit @@ -51,7 +51,7 @@ - type: modularPart id: BladeGoldSpear targetSlot: Blade - sourcePart: CP14ModularBladeGoldSpear + sourcePart: CP14ScrapGold rsiPath: _CP14/Objects/ModularTools/Blade/Spear/metall_spear.rsi color: "#ffaf47" modifiers: @@ -63,7 +63,7 @@ - type: modularPart id: BladeCopperSpear targetSlot: Blade - sourcePart: CP14ModularBladeCopperSpear + sourcePart: CP14ScrapCopper rsiPath: _CP14/Objects/ModularTools/Blade/Spear/metall_spear.rsi color: "#bd712f" modifiers: @@ -75,7 +75,7 @@ - type: modularPart id: BladeMithrilSpear targetSlot: Blade - sourcePart: CP14ModularBladeMithrilSpear + sourcePart: CP14ScrapMithril rsiPath: _CP14/Objects/ModularTools/Blade/Spear/metall_spear.rsi color: "#45d2a4" modifiers: diff --git a/Resources/Prototypes/_CP14/ModularCraft/Blade/sword.yml b/Resources/Prototypes/_CP14/ModularCraft/Blade/sword.yml index e2497c70fd..91e6717e3f 100644 --- a/Resources/Prototypes/_CP14/ModularCraft/Blade/sword.yml +++ b/Resources/Prototypes/_CP14/ModularCraft/Blade/sword.yml @@ -36,7 +36,7 @@ - type: modularPart id: BladeIronSword targetSlot: Blade - sourcePart: CP14ModularBladeIronSword + sourcePart: CP14ScrapIron rsiPath: _CP14/Objects/ModularTools/Blade/Sword/metall_sword.rsi modifiers: - !type:Inherit @@ -47,7 +47,7 @@ - type: modularPart id: BladeGoldSword targetSlot: Blade - sourcePart: CP14ModularBladeGoldSword + sourcePart: CP14ScrapGold rsiPath: _CP14/Objects/ModularTools/Blade/Sword/metall_sword.rsi color: "#ffaf47" modifiers: @@ -59,7 +59,7 @@ - type: modularPart id: BladeCopperSword targetSlot: Blade - sourcePart: CP14ModularBladeCopperSword + sourcePart: CP14ScrapCopper rsiPath: _CP14/Objects/ModularTools/Blade/Sword/metall_sword.rsi color: "#bd712f" modifiers: @@ -71,7 +71,7 @@ - type: modularPart id: BladeMithrilSword targetSlot: Blade - sourcePart: CP14ModularBladeMithrilSword + sourcePart: CP14ScrapMithril rsiPath: _CP14/Objects/ModularTools/Blade/Sword/metall_sword.rsi color: "#45d2a4" modifiers: diff --git a/Resources/Prototypes/_CP14/ModularCraft/Garde/sharp.yml b/Resources/Prototypes/_CP14/ModularCraft/Garde/sharp.yml index 3db9306cce..4fdc31dbd9 100644 --- a/Resources/Prototypes/_CP14/ModularCraft/Garde/sharp.yml +++ b/Resources/Prototypes/_CP14/ModularCraft/Garde/sharp.yml @@ -12,7 +12,7 @@ - type: modularPart id: GardeSharpIron targetSlot: Garde - sourcePart: CP14ModularGardeSharpIron + sourcePart: CP14ScrapIron rsiPath: _CP14/Objects/ModularTools/Garde/metall_sharp.rsi modifiers: - !type:Inherit @@ -22,7 +22,7 @@ - type: modularPart id: GardeSharpGold targetSlot: Garde - sourcePart: CP14ModularGardeSharpGold + sourcePart: CP14ScrapGold rsiPath: _CP14/Objects/ModularTools/Garde/metall_sharp.rsi color: "#ffaf47" modifiers: @@ -33,7 +33,7 @@ - type: modularPart id: GardeSharpCopper targetSlot: Garde - sourcePart: CP14ModularGardeSharpCopper + sourcePart: CP14ScrapCopper rsiPath: _CP14/Objects/ModularTools/Garde/metall_sharp.rsi color: "#bd712f" modifiers: @@ -44,7 +44,7 @@ - type: modularPart id: GardeSharpMithril targetSlot: Garde - sourcePart: CP14ModularGardeSharpMithril + sourcePart: CP14ScrapMithril rsiPath: _CP14/Objects/ModularTools/Garde/metall_sharp.rsi color: "#45d2a4" modifiers: diff --git a/Resources/Prototypes/_CP14/ModularCraft/Garde/sturdy.yml b/Resources/Prototypes/_CP14/ModularCraft/Garde/sturdy.yml index 87d969f2c8..2f9dbf2489 100644 --- a/Resources/Prototypes/_CP14/ModularCraft/Garde/sturdy.yml +++ b/Resources/Prototypes/_CP14/ModularCraft/Garde/sturdy.yml @@ -12,7 +12,7 @@ - type: modularPart id: GardeSturdyIron targetSlot: Garde - sourcePart: CP14ModularGardeSturdyIron + sourcePart: CP14ScrapIron rsiPath: _CP14/Objects/ModularTools/Garde/metall_sturdy.rsi modifiers: - !type:Inherit @@ -22,7 +22,7 @@ - type: modularPart id: GardeSturdyGold targetSlot: Garde - sourcePart: CP14ModularGardeSturdyGold + sourcePart: CP14ScrapGold rsiPath: _CP14/Objects/ModularTools/Garde/metall_sturdy.rsi color: "#ffaf47" modifiers: @@ -33,7 +33,7 @@ - type: modularPart id: GardeSturdyCopper targetSlot: Garde - sourcePart: CP14ModularGardeSturdyCopper + sourcePart: CP14ScrapCopper rsiPath: _CP14/Objects/ModularTools/Garde/metall_sturdy.rsi color: "#bd712f" modifiers: @@ -44,7 +44,7 @@ - type: modularPart id: GardeSturdyMithril targetSlot: Garde - sourcePart: CP14ModularGardeSturdyMithril + sourcePart: CP14ScrapMithril rsiPath: _CP14/Objects/ModularTools/Garde/metall_sturdy.rsi color: "#45d2a4" modifiers: diff --git a/Resources/Prototypes/_CP14/Objectives/empire_orders.yml b/Resources/Prototypes/_CP14/Objectives/empire_orders.yml index 7e86c393ce..cf059cf82f 100644 --- a/Resources/Prototypes/_CP14/Objectives/empire_orders.yml +++ b/Resources/Prototypes/_CP14/Objectives/empire_orders.yml @@ -18,7 +18,7 @@ minCollectionSize: 5 maxCollectionSize: 10 objectiveText: cp14-objective-town-send-title - descriptionText: cp14-objective-town-send-desc + objectiveDescription: cp14-objective-town-send-desc - type: Objective - type: entity @@ -87,4 +87,25 @@ id: CP14BankEarningObjectiveGroup weights: CP14TownBankEarningObjectiveMedium: 0.6 - CP14TownBankEarningObjectiveBig: 0.3 \ No newline at end of file + CP14TownBankEarningObjectiveBig: 0.3 + +# No Demiplane death objective +- type: entity + parent: CP14BaseTownObjective + id: CP14GuildmasterNoDemiplaneDeathObjective + components: + - type: CP14StatisticRangeCondition + statistic: DemiplaneDeaths + range: + min: 0 + max: 3 #TODO Adaptive to player count + objectiveText: cp14-objective-no-demiplane-death-title + objectiveDescription: cp14-objective-no-demiplane-death-desc + objectiveSprite: + sprite: /Textures/_CP14/Objects/ModularTools/Blade/Shovel/metall_shovel.rsi + state: tool + +- type: weightedRandom + id: CP14GuildmasterNoDemiplaneObjectiveGroup + weights: + CP14GuildmasterNoDemiplaneDeathObjective: 1 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Objectives/personal_objectives.yml b/Resources/Prototypes/_CP14/Objectives/personal_objectives.yml index 95d9f7c1c5..f8ae92d123 100644 --- a/Resources/Prototypes/_CP14/Objectives/personal_objectives.yml +++ b/Resources/Prototypes/_CP14/Objectives/personal_objectives.yml @@ -36,4 +36,4 @@ - type: weightedRandom id: CP14PersonalCurrencyCollectObjectiveGroup weights: - CP14PersonalCurrencyCollectObjective: 1 + CP14PersonalCurrencyCollectObjective: 1 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t2_grass_geode.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t2_grass_geode.yml index 59dcab50c8..ecb008db90 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t2_grass_geode.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t2_grass_geode.yml @@ -8,6 +8,7 @@ - CP14DemiplaneHerbals - CP14DemiplaneUnderground - CP14DemiplaneWater + - CP14DemiplaneAnimalsSwamp - type: dungeonConfig id: CP14DemiplaneSwampGeode diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Reward/crystals.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Reward/crystals.yml index b0717bd134..4ffe173efc 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Reward/crystals.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Reward/crystals.yml @@ -1,8 +1,37 @@ +- type: cp14DemiplaneModifier + id: CrystalNormal + tiers: + - 1 + generationWeight: 0.1 + categories: + Reward: 0.1 + layers: + - !type:OreDunGen + tileMask: + - CP14FloorBase + entity: CP14CrystalSmall + count: 30 + minGroupSize: 1 + maxGroupSize: 3 + - !type:OreDunGen + tileMask: + - CP14FloorBase + entity: CP14CrystalMedium + count: 20 + minGroupSize: 1 + maxGroupSize: 2 + - !type:OreDunGen + tileMask: + - CP14FloorBase + entity: CP14CrystalBig + count: 10 + minGroupSize: 1 + maxGroupSize: 1 + - type: cp14DemiplaneModifier id: CrystalFire tiers: - - 1 - 2 - 3 generationWeight: 0.1 @@ -36,10 +65,11 @@ minGroupSize: 1 maxGroupSize: 1 +# TIER 2 + - type: cp14DemiplaneModifier id: CrystalElectric tiers: - - 1 - 2 - 3 generationWeight: 0.1 @@ -83,7 +113,6 @@ - type: cp14DemiplaneModifier id: CrystalHealing tiers: - - 1 - 2 - 3 generationWeight: 0.1 @@ -132,7 +161,6 @@ - type: cp14DemiplaneModifier id: CrystalWater tiers: - - 1 - 2 - 3 generationWeight: 0.1 @@ -181,7 +209,6 @@ - type: cp14DemiplaneModifier id: CrystalDarkness tiers: - - 1 - 2 - 3 generationWeight: 0.1 @@ -209,7 +236,6 @@ - type: cp14DemiplaneModifier id: CrystalLight tiers: - - 1 - 2 - 3 generationWeight: 0.1 diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Reward/misc.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Reward/misc.yml index a3b6322c86..0ff24ab265 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Reward/misc.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Reward/misc.yml @@ -72,6 +72,27 @@ minGroupSize: 2 maxGroupSize: 3 +- type: cp14DemiplaneModifier + id: Frog + tiers: + - 1 + - 2 + generationWeight: 0.4 + categories: + Reward: 0.2 + requiredTags: + - CP14DemiplaneAnimalsSwamp + layers: + - !type:OreDunGen + tileMask: + - CP14FloorGrass + - CP14FloorGrassLight + - CP14FloorGrassTall + entity: CP14MobFrog + count: 3 + minGroupSize: 2 + maxGroupSize: 3 + # TIER 2 - type: cp14DemiplaneModifier diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/tags.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/tags.yml index eb09e59e51..a9e95b378b 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/tags.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/tags.yml @@ -7,6 +7,9 @@ - type: Tag id: CP14DemiplanePeacefulAnimals +- type: Tag + id: CP14DemiplaneAnimalsSwamp + - type: Tag id: CP14DemiplaneHerbals diff --git a/Resources/Prototypes/_CP14/Recipes/Workbench/Anvil/misc.yml b/Resources/Prototypes/_CP14/Recipes/Workbench/Anvil/misc.yml index 1139eedea0..dc13b14567 100644 --- a/Resources/Prototypes/_CP14/Recipes/Workbench/Anvil/misc.yml +++ b/Resources/Prototypes/_CP14/Recipes/Workbench/Anvil/misc.yml @@ -2,158 +2,203 @@ id: CP14BaseShield tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14WoodenPlanks: 2 - CP14IronBar: 2 + requirements: + - !type:StackResource + stack: CP14WoodenPlanks + count: 2 + - !type:StackResource + stack: CP14IronBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14BaseShield - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14BaseCrowbar tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14IronBar: 2 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14BaseCrowbar - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14BaseWrench tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14IronBar: 2 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14BaseWrench - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14PlatePie tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14IronBar: 1 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14PlatePie - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ClothingOuterClothingCuirass tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14IronBar: 5 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 5 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ClothingOuterClothingCuirass - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ClothingOuterClothingInfantryCuirass tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14IronBar: 6 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 6 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ClothingOuterClothingInfantryCuirass - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ClothingOuterClothingCuirassLoincloth tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14IronBar: 6 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 6 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ClothingOuterClothingCuirassLoincloth - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ClothingOuterClothingCuirassLeg tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14IronBar: 7 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 7 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ClothingOuterClothingCuirassLeg - knowledgeRequired: MetallForging - type: CP14Recipe - id: CP14Nail10 + id: CP14Nail20 tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14IronBar: 2 - result: CP14Nail10 - knowledgeRequired: MetallForging + requirements: + - !type:StackResource + stack: CP14IronBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging + result: CP14Nail20 - type: CP14Recipe id: CP14CrystalLampBlueEmpty tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14CopperBar: 2 - CP14IronBar: 1 + requirements: + - !type:StackResource + stack: CP14CopperBar + count: 2 + - !type:StackResource + stack: CP14IronBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14CrystalLampBlueEmpty - knowledgeRequired: MetallForging - -- type: CP14Recipe - id: CP14CrystalLampOrangeEmpty - tag: CP14RecipeAnvil - craftTime: 4 - stacks: - CP14CopperBar: 2 - CP14IronBar: 1 - result: CP14CrystalLampOrangeEmpty - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14Scissors tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14IronBar: 1 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14Scissors - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ClothingOuterClothingCopperArmor tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14CopperBar: 6 + requirements: + - !type:StackResource + stack: CP14CopperBar + count: 6 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ClothingOuterClothingCopperArmor - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14Crossbolt tag: CP14RecipeAnvil craftTime: 1 - stacks: - CP14CopperBar: 1 + requirements: + - !type:StackResource + stack: CP14CopperBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14Crossbolt resultCount: 3 - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14BaseLockpick tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14IronBar: 1 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14BaseLockpick - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ClothingHeadCapellina tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14IronBar: 3 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 3 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ClothingHeadCapellina - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14BaseLightCrossbow tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14CopperBar: 1 - CP14IronBar: 3 - entities: - CP14String: 1 + requirements: + - !type:StackResource + stack: CP14CopperBar + count: 1 + - !type:StackResource + stack: CP14IronBar + count: 3 + - !type:ProtoIdResource + protoId: CP14String + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14BaseLightCrossbow - knowledgeRequired: MetallForging diff --git a/Resources/Prototypes/_CP14/Recipes/Workbench/Anvil/modular_blade.yml b/Resources/Prototypes/_CP14/Recipes/Workbench/Anvil/modular_blade.yml index abeb2d14b8..be59c2917d 100644 --- a/Resources/Prototypes/_CP14/Recipes/Workbench/Anvil/modular_blade.yml +++ b/Resources/Prototypes/_CP14/Recipes/Workbench/Anvil/modular_blade.yml @@ -5,37 +5,49 @@ id: CP14ModularBladeIronDagger tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14IronBar: 1 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeIronDagger - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeGoldDagger tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14GoldBar: 1 + requirements: + - !type:StackResource + stack: CP14GoldBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeGoldDagger - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeCopperDagger tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14CopperBar: 1 + requirements: + - !type:StackResource + stack: CP14CopperBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeCopperDagger - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeMithrilDagger tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14MithrilBar: 1 + requirements: + - !type:StackResource + stack: CP14MithrilBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeMithrilDagger - knowledgeRequired: MetallForging # Spear @@ -43,37 +55,49 @@ id: CP14ModularBladeIronSpear tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14IronBar: 1 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeIronSpear - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeCopperSpear tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14CopperBar: 1 + requirements: + - !type:StackResource + stack: CP14CopperBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeCopperSpear - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeGoldSpear tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14GoldBar: 1 + requirements: + - !type:StackResource + stack: CP14GoldBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeGoldSpear - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeMithrilSpear tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14MithrilBar: 1 + requirements: + - !type:StackResource + stack: CP14MithrilBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeMithrilSpear - knowledgeRequired: MetallForging # Mace @@ -81,37 +105,49 @@ id: CP14ModularBladeIronMace tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14IronBar: 1 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeIronMace - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeGoldMace tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14GoldBar: 1 + requirements: + - !type:StackResource + stack: CP14GoldBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeGoldMace - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeCopperMace tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14CopperBar: 1 + requirements: + - !type:StackResource + stack: CP14CopperBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeCopperMace - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeMithrilMace tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14MithrilBar: 1 + requirements: + - !type:StackResource + stack: CP14MithrilBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeMithrilMace - knowledgeRequired: MetallForging # Sword @@ -119,37 +155,49 @@ id: CP14ModularBladeIronSword tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14IronBar: 2 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeIronSword - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeGoldSword tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14GoldBar: 2 + requirements: + - !type:StackResource + stack: CP14GoldBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeGoldSword - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeCopperSword tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14CopperBar: 2 + requirements: + - !type:StackResource + stack: CP14CopperBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeCopperSword - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeMithrilSword tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14MithrilBar: 2 + requirements: + - !type:StackResource + stack: CP14MithrilBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeMithrilSword - knowledgeRequired: MetallForging # Sickle @@ -157,37 +205,49 @@ id: CP14ModularBladeIronSickle tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14IronBar: 1 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeIronSickle - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeCopperSickle tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14CopperBar: 1 + requirements: + - !type:StackResource + stack: CP14CopperBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeCopperSickle - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeGoldSickle tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14GoldBar: 1 + requirements: + - !type:StackResource + stack: CP14GoldBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeGoldSickle - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeMithrilSickle tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14MithrilBar: 1 + requirements: + - !type:StackResource + stack: CP14MithrilBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeMithrilSickle - knowledgeRequired: MetallForging # Shovel @@ -195,38 +255,50 @@ id: CP14ModularBladeIronShovel tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14IronBar: 1 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeIronShovel - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeGoldShovel tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14GoldBar: 1 + requirements: + - !type:StackResource + stack: CP14GoldBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeGoldShovel - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeCopperShovel tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14CopperBar: 1 + requirements: + - !type:StackResource + stack: CP14CopperBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeCopperShovel - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeMithrilShovel tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14MithrilBar: 1 + requirements: + - !type:StackResource + stack: CP14MithrilBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeMithrilShovel - knowledgeRequired: MetallForging # Pickaxe @@ -234,37 +306,49 @@ id: CP14ModularBladeIronPickaxe tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14IronBar: 1 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeIronPickaxe - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeGoldPickaxe tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14GoldBar: 2 + requirements: + - !type:StackResource + stack: CP14GoldBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeGoldPickaxe - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeCopperPickaxe tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14CopperBar: 2 + requirements: + - !type:StackResource + stack: CP14CopperBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeCopperPickaxe - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeMithrilPickaxe tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14MithrilBar: 1 + requirements: + - !type:StackResource + stack: CP14MithrilBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeMithrilPickaxe - knowledgeRequired: MetallForging # Grip @@ -272,37 +356,49 @@ id: CP14ModularGripIron tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14IronBar: 1 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularGripIron - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularGripCopper tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14CopperBar: 1 + requirements: + - !type:StackResource + stack: CP14CopperBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularGripCopper - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularGripGolden tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14GoldBar: 1 + requirements: + - !type:StackResource + stack: CP14GoldBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularGripGolden - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularGripMithril tag: CP14RecipeAnvil craftTime: 2 - stacks: - CP14MithrilBar: 1 + requirements: + - !type:StackResource + stack: CP14MithrilBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularGripMithril - knowledgeRequired: MetallForging # Grip long @@ -310,37 +406,49 @@ id: CP14ModularGripIronLong tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14IronBar: 2 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularGripIronLong - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularGripCopperLong tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14CopperBar: 2 + requirements: + - !type:StackResource + stack: CP14CopperBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularGripCopperLong - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularGripGoldLong tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14GoldBar: 2 + requirements: + - !type:StackResource + stack: CP14GoldBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularGripGoldLong - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularGripMithrilLong tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14MithrilBar: 2 + requirements: + - !type:StackResource + stack: CP14MithrilBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularGripMithrilLong - knowledgeRequired: MetallForging # Rapier @@ -348,37 +456,49 @@ id: CP14ModularBladeIronRapier tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14IronBar: 1 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeIronRapier - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeGoldRapier tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14GoldBar: 1 + requirements: + - !type:StackResource + stack: CP14GoldBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeGoldRapier - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeCopperRapier tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14CopperBar: 1 + requirements: + - !type:StackResource + stack: CP14CopperBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeCopperRapier - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeMithrilRapier tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14MithrilBar: 1 + requirements: + - !type:StackResource + stack: CP14MithrilBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeMithrilRapier - knowledgeRequired: MetallForging # Axe @@ -386,37 +506,49 @@ id: CP14ModularBladeIronAxe tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14IronBar: 2 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeIronAxe - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeCopperAxe tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14CopperBar: 2 + requirements: + - !type:StackResource + stack: CP14CopperBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeCopperAxe - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeGoldAxe tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14GoldBar: 2 + requirements: + - !type:StackResource + stack: CP14GoldBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeGoldAxe - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeMithrilAxe tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14MithrilBar: 2 + requirements: + - !type:StackResource + stack: CP14MithrilBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeMithrilAxe - knowledgeRequired: MetallForging # Hammer @@ -424,35 +556,47 @@ id: CP14ModularBladeIronHammer tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14IronBar: 2 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeIronHammer - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeCopperHammer tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14CopperBar: 2 + requirements: + - !type:StackResource + stack: CP14CopperBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeCopperHammer - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeGoldHammer tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14GoldBar: 2 + requirements: + - !type:StackResource + stack: CP14GoldBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeGoldHammer - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularBladeMithrilHammer tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14MithrilBar: 2 + requirements: + - !type:StackResource + stack: CP14MithrilBar + count: 2 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularBladeMithrilHammer - knowledgeRequired: MetallForging \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Recipes/Workbench/Anvil/modular_garde.yml b/Resources/Prototypes/_CP14/Recipes/Workbench/Anvil/modular_garde.yml index b6fd7135b2..009386a52d 100644 --- a/Resources/Prototypes/_CP14/Recipes/Workbench/Anvil/modular_garde.yml +++ b/Resources/Prototypes/_CP14/Recipes/Workbench/Anvil/modular_garde.yml @@ -4,37 +4,41 @@ id: CP14ModularGardeSharpCopper tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14CopperBar: 1 + requirements: + - !type:StackResource + stack: CP14CopperBar + count: 1 result: CP14ModularGardeSharpCopper - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularGardeSharpIron tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14IronBar: 1 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 1 result: CP14ModularGardeSharpIron - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularGardeSharpGold tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14GoldBar: 1 + requirements: + - !type:StackResource + stack: CP14GoldBar + count: 1 result: CP14ModularGardeSharpGold - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularGardeSharpMithril tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14MithrilBar: 1 + requirements: + - !type:StackResource + stack: CP14MithrilBar + count: 1 result: CP14ModularGardeSharpMithril - knowledgeRequired: MetallForging # Sturdy garde @@ -42,34 +46,46 @@ id: CP14ModularGardeSturdyCopper tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14CopperBar: 1 + requirements: + - !type:StackResource + stack: CP14CopperBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularGardeSturdyCopper - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularGardeSturdyIron tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14IronBar: 1 + requirements: + - !type:StackResource + stack: CP14IronBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularGardeSturdyIron - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularGardeSturdyGold tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14GoldBar: 1 + requirements: + - !type:StackResource + stack: CP14GoldBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging result: CP14ModularGardeSturdyGold - knowledgeRequired: MetallForging - type: CP14Recipe id: CP14ModularGardeSturdyMithril tag: CP14RecipeAnvil craftTime: 4 - stacks: - CP14MithrilBar: 1 - result: CP14ModularGardeSturdyMithril - knowledgeRequired: MetallForging \ No newline at end of file + requirements: + - !type:StackResource + stack: CP14MithrilBar + count: 1 + - !type:KnowledgeRequired + knowledge: MetallForging + result: CP14ModularGardeSturdyMithril \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Recipes/Workbench/CookingTable/misc.yml b/Resources/Prototypes/_CP14/Recipes/Workbench/CookingTable/misc.yml index c29cb6d8e4..eb0f950a25 100644 --- a/Resources/Prototypes/_CP14/Recipes/Workbench/CookingTable/misc.yml +++ b/Resources/Prototypes/_CP14/Recipes/Workbench/CookingTable/misc.yml @@ -2,34 +2,40 @@ id: CP14FoodMeatLamb tag: CP14RecipeCooking craftTime: 2 - entities: - CP14FoodMeatLambSlice: 2 - CP14FoodEgg: 1 + requirements: + - !type:ProtoIdResource + protoId: CP14FoodMeatLambSlice + count: 2 + - !type:ProtoIdResource + protoId: CP14FoodEgg result: CP14FoodMeatLambCutlet - tryMergeSolutions: true - type: CP14Recipe id: CP14FoodDoughLarge tag: CP14RecipeCooking craftTime: 2 - entities: - CP14FoodDoughMedium: 4 + requirements: + - !type:ProtoIdResource + protoId: CP14FoodDoughMedium + count: 4 result: CP14FoodDoughLarge - tryMergeSolutions: true - type: CP14Recipe id: CP14FoodDoughMedium tag: CP14RecipeCooking craftTime: 2 - entities: - CP14Wheat: 2 + requirements: + - !type:ProtoIdResource + protoId: CP14Wheat + count: 2 result: CP14FoodDoughMedium - type: CP14Recipe id: CP14FoodDoughMediumFlat tag: CP14RecipeCooking craftTime: 2 - entities: - CP14FoodDoughMedium: 1 - result: CP14FoodDoughMediumFlat - tryMergeSolutions: true \ No newline at end of file + requirements: + - !type:ProtoIdResource + protoId: CP14FoodDoughMedium + count: 1 + result: CP14FoodDoughMediumFlat \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Recipes/Workbench/CookingTable/pies.yml b/Resources/Prototypes/_CP14/Recipes/Workbench/CookingTable/pies.yml index 96ff92d288..9a7a8a84c5 100644 --- a/Resources/Prototypes/_CP14/Recipes/Workbench/CookingTable/pies.yml +++ b/Resources/Prototypes/_CP14/Recipes/Workbench/CookingTable/pies.yml @@ -2,20 +2,40 @@ id: CP14FoodPieAppleRaw tag: CP14RecipeCooking craftTime: 5 - entities: - CP14PlatePie: 1 - CP14FoodDoughMediumFlat: 1 - CP14FoodAppleSlice: 4 + requirements: + - !type:ProtoIdResource + protoId: CP14PlatePie + - !type:ProtoIdResource + protoId: CP14FoodDoughMediumFlat + - !type:ProtoIdResource + protoId: CP14FoodAppleSlice + count: 4 result: CP14FoodPieAppleRaw - tryMergeSolutions: true - type: CP14Recipe id: CP14FoodPieMeatRaw tag: CP14RecipeCooking craftTime: 5 - entities: - CP14PlatePie: 1 - CP14FoodDoughMediumFlat: 1 - CP14FoodMeatLambSlice: 3 + requirements: + - !type:ProtoIdResource + protoId: CP14PlatePie + - !type:ProtoIdResource + protoId: CP14FoodDoughMediumFlat + - !type:ProtoIdResource + protoId: CP14FoodMeatLambSlice + count: 3 result: CP14FoodPieMeatRaw - tryMergeSolutions: true + +- type: CP14Recipe + id: CP14FoodPiePumpkinRaw + tag: CP14RecipeCooking + craftTime: 5 + requirements: + - !type:ProtoIdResource + protoId: CP14PlatePie + - !type:ProtoIdResource + protoId: CP14FoodDoughMediumFlat + - !type:ProtoIdResource + protoId: CP14FoodPumpkinSlice + count: 5 + result: CP14FoodPiePumpkinRaw diff --git a/Resources/Prototypes/_CP14/Recipes/Workbench/CookingTable/seeds.yml b/Resources/Prototypes/_CP14/Recipes/Workbench/CookingTable/seeds.yml index 8a5b72e4a1..ac7048a470 100644 --- a/Resources/Prototypes/_CP14/Recipes/Workbench/CookingTable/seeds.yml +++ b/Resources/Prototypes/_CP14/Recipes/Workbench/CookingTable/seeds.yml @@ -2,38 +2,48 @@ id: CP14SeedWheat tag: CP14RecipeCooking craftTime: 1 - entities: - CP14Wheat: 1 + requirements: + - !type:ProtoIdResource + protoId: CP14Wheat + count: 1 result: CP14SeedWheat - type: CP14Recipe id: CP14SeedTomato tag: CP14RecipeCooking craftTime: 1 - entities: - CP14FoodTomatoesSlice: 1 + requirements: + - !type:ProtoIdResource + protoId: CP14FoodTomatoesSlice + count: 1 result: CP14SeedTomato - type: CP14Recipe id: CP14SeedCabbage tag: CP14RecipeCooking craftTime: 1 - entities: - CP14FoodCabbageSlice: 1 + requirements: + - !type:ProtoIdResource + protoId: CP14FoodCabbageSlice + count: 1 result: CP14SeedCabbage - type: CP14Recipe id: CP14SeedPumpkin tag: CP14RecipeCooking craftTime: 1 - entities: - CP14FoodPumpkinSlice: 1 + requirements: + - !type:ProtoIdResource + protoId: CP14FoodPumpkinSlice + count: 1 result: CP14SeedPumpkin - type: CP14Recipe id: CP14SeedCucumber tag: CP14RecipeCooking craftTime: 1 - entities: - CP14FoodCucumber: 1 + requirements: + - !type:ProtoIdResource + protoId: CP14FoodCucumber + count: 1 result: CP14SeedCucumber \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Recipes/Workbench/furnace.yml b/Resources/Prototypes/_CP14/Recipes/Workbench/furnace.yml index 87302492e1..364d3a7e7e 100644 --- a/Resources/Prototypes/_CP14/Recipes/Workbench/furnace.yml +++ b/Resources/Prototypes/_CP14/Recipes/Workbench/furnace.yml @@ -2,91 +2,124 @@ id: CP14CopperBar1 tag: CP14RecipeMeltingFurnace craftTime: 4 - stacks: - CP14OreCopper: 4 + requirements: + - !type:MaterialResource + material: CP14Copper + count: 10 + - !type:KnowledgeRequired + knowledge: MetallMelting result: CP14CopperBar1 - knowledgeRequired: MetallMelting - type: CP14Recipe id: CP14IronBar1 tag: CP14RecipeMeltingFurnace craftTime: 4 - stacks: - CP14OreIron: 4 + requirements: + - !type:MaterialResource + material: CP14Iron + count: 10 + - !type:KnowledgeRequired + knowledge: MetallMelting result: CP14IronBar1 - knowledgeRequired: MetallMelting - type: CP14Recipe id: CP14GoldBar1 tag: CP14RecipeMeltingFurnace craftTime: 4 - stacks: - CP14OreGold: 4 + requirements: + - !type:MaterialResource + material: CP14Gold + count: 10 + - !type:KnowledgeRequired + knowledge: MetallMelting result: CP14GoldBar1 - knowledgeRequired: MetallMelting - type: CP14Recipe id: CP14MithrilBar1 tag: CP14RecipeMeltingFurnace craftTime: 4 - stacks: - CP14OreMithril: 4 + requirements: + - !type:MaterialResource + material: CP14Mithril + count: 10 + - !type:KnowledgeRequired + knowledge: MetallMelting result: CP14MithrilBar1 - knowledgeRequired: MetallMelting -#- type: CP14Recipe -# id: CP14GlassSheet1 -# tag: CP14RecipeMeltingFurnace -# craftTime: 4 -# entities: -# CP14QuartzShard: 1 -# result: CP14GlassSheet1 -# knowledgeRequired: Glasswork +- type: CP14Recipe + id: CP14GlassSheet1 + tag: CP14RecipeMeltingFurnace + craftTime: 4 + requirements: + - !type:ProtoIdResource + protoId: CP14CrystalShardBase + - !type:KnowledgeRequired + knowledge: Glasswork + result: CP14GlassSheet1 - type: CP14Recipe id: CP14GlassSheetShard1 tag: CP14RecipeMeltingFurnace craftTime: 2 - entities: - CP14GlassShard: 3 + requirements: + - !type:ProtoIdResource + protoId: CP14GlassShard + count: 2 + - !type:KnowledgeRequired + knowledge: Glasswork result: CP14GlassSheet1 - knowledgeRequired: Glasswork - type: CP14Recipe id: CP14VialTiny tag: CP14RecipeMeltingFurnace craftTime: 3 - stacks: - CP14GlassSheet: 1 + requirements: + - !type:StackResource + stack: CP14GlassSheet + count: 1 + - !type:KnowledgeRequired + knowledge: Glasswork result: CP14VialTiny - knowledgeRequired: Glasswork - type: CP14Recipe id: CP14VialTinyReinforced tag: CP14RecipeMeltingFurnace craftTime: 3 - stacks: - CP14CopperBar: 1 - CP14GlassSheet: 1 + requirements: + - !type:StackResource + stack: CP14CopperBar + count: 1 + - !type:StackResource + stack: CP14GlassSheet + count: 1 + - !type:KnowledgeRequired + knowledge: Glasswork result: CP14VialTinyReinforced - knowledgeRequired: Glasswork - type: CP14Recipe id: CP14VialSmall tag: CP14RecipeMeltingFurnace craftTime: 3 - stacks: - CP14GlassSheet: 2 + requirements: + - !type:StackResource + stack: CP14GlassSheet + count: 2 + - !type:KnowledgeRequired + knowledge: Glasswork result: CP14VialSmall - knowledgeRequired: Glasswork - type: CP14Recipe id: CP14VialSmallReinforced tag: CP14RecipeMeltingFurnace craftTime: 3 - stacks: - CP14CopperBar: 1 - CP14GlassSheet: 2 + requirements: + - !type:StackResource + stack: CP14CopperBar + count: 1 + - !type:StackResource + stack: CP14GlassSheet + count: 2 + - !type:KnowledgeRequired + knowledge: Glasswork result: CP14VialSmallReinforced - knowledgeRequired: Glasswork \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Recipes/Workbench/sewing_table.yml b/Resources/Prototypes/_CP14/Recipes/Workbench/sewing_table.yml index afd3dfa5f6..fa1d2aa48c 100644 --- a/Resources/Prototypes/_CP14/Recipes/Workbench/sewing_table.yml +++ b/Resources/Prototypes/_CP14/Recipes/Workbench/sewing_table.yml @@ -2,265 +2,356 @@ id: CP14ClothingShirtCottonBlue tag: CP14RecipeSewing craftTime: 2 - entities: - CP14String: 1 - CP14DyeBlue: 1 - stacks: - CP14Cloth: 2 + requirements: + - !type:ProtoIdResource + protoId: CP14String + - !type:ProtoIdResource + protoId: CP14DyeBlue + - !type:StackResource + stack: CP14Cloth + count: 2 + - !type:KnowledgeRequired + knowledge: ClothingSewing result: CP14ClothingShirtCottonBlue - knowledgeRequired: ClothingSewing - type: CP14Recipe id: CP14ClothingShirtCottonBlack tag: CP14RecipeSewing craftTime: 2 - entities: - CP14String: 1 - CP14DyeBlack: 1 - stacks: - CP14Cloth: 3 + requirements: + - !type:ProtoIdResource + protoId: CP14String + - !type:ProtoIdResource + protoId: CP14DyeBlack + - !type:StackResource + stack: CP14Cloth + count: 3 + - !type:KnowledgeRequired + knowledge: ClothingSewing result: CP14ClothingShirtCottonBlack - knowledgeRequired: ClothingSewing - type: CP14Recipe id: CP14ClothingShirtCottonPurple tag: CP14RecipeSewing craftTime: 2 - entities: - CP14String: 1 - CP14DyePurple: 1 - stacks: - CP14Cloth: 3 + requirements: + - !type:ProtoIdResource + protoId: CP14String + - !type:ProtoIdResource + protoId: CP14DyePurple + - !type:StackResource + stack: CP14Cloth + count: 3 + - !type:KnowledgeRequired + knowledge: ClothingSewing result: CP14ClothingShirtCottonPurple - knowledgeRequired: ClothingSewing - type: CP14Recipe id: CP14ClothingShirtCottonRed tag: CP14RecipeSewing craftTime: 2 - entities: - CP14String: 1 - CP14DyeRed: 1 - stacks: - CP14Cloth: 3 + requirements: + - !type:ProtoIdResource + protoId: CP14String + - !type:ProtoIdResource + protoId: CP14DyeRed + - !type:StackResource + stack: CP14Cloth + count: 3 + - !type:KnowledgeRequired + knowledge: ClothingSewing result: CP14ClothingShirtCottonRed - knowledgeRequired: ClothingSewing - type: CP14Recipe id: CP14ClothingShirtCottonWhite tag: CP14RecipeSewing craftTime: 2 - entities: - CP14String: 1 - stacks: - CP14Cloth: 3 + requirements: + - !type:ProtoIdResource + protoId: CP14String + - !type:StackResource + stack: CP14Cloth + count: 3 + - !type:KnowledgeRequired + knowledge: ClothingSewing result: CP14ClothingShirtCottonWhite - knowledgeRequired: ClothingSewing - type: CP14Recipe id: CP14ClothingShirtCottonYellow tag: CP14RecipeSewing craftTime: 2 - entities: - CP14String: 1 - CP14DyeYellow: 1 - stacks: - CP14Cloth: 3 + requirements: + - !type:ProtoIdResource + protoId: CP14String + - !type:ProtoIdResource + protoId: CP14DyeYellow + - !type:StackResource + stack: CP14Cloth + count: 3 + - !type:KnowledgeRequired + knowledge: ClothingSewing result: CP14ClothingShirtCottonYellow - knowledgeRequired: ClothingSewing - type: CP14Recipe id: CP14ClothingPantsTrouserWhite tag: CP14RecipeSewing craftTime: 2 - entities: - CP14String: 1 - stacks: - CP14Cloth: 2 + requirements: + - !type:ProtoIdResource + protoId: CP14String + - !type:StackResource + stack: CP14Cloth + count: 2 + - !type:KnowledgeRequired + knowledge: ClothingSewing result: CP14ClothingPantsTrouserWhite - knowledgeRequired: ClothingSewing - type: CP14Recipe id: CP14ClothingPantsTrouserDarkBlue tag: CP14RecipeSewing craftTime: 2 - entities: - CP14String: 1 - CP14DyeBlue: 1 - stacks: - CP14Cloth: 2 + requirements: + - !type:ProtoIdResource + protoId: CP14String + - !type:ProtoIdResource + protoId: CP14DyeBlue + - !type:StackResource + stack: CP14Cloth + count: 2 + - !type:KnowledgeRequired + knowledge: ClothingSewing result: CP14ClothingPantsTrouserDarkBlue - knowledgeRequired: ClothingSewing - type: CP14Recipe id: CP14ClothingPantsDressBlack tag: CP14RecipeSewing craftTime: 2 - entities: - CP14String: 1 - CP14DyeBlack: 1 - stacks: - CP14Cloth: 2 + requirements: + - !type:ProtoIdResource + protoId: CP14String + - !type:ProtoIdResource + protoId: CP14DyeBlack + - !type:StackResource + stack: CP14Cloth + count: 2 + - !type:KnowledgeRequired + knowledge: ClothingSewing result: CP14ClothingPantsDressBlack - knowledgeRequired: ClothingSewing - type: CP14Recipe id: CP14ClothingPantsSouthernMagician tag: CP14RecipeSewing craftTime: 2 - entities: - CP14String: 1 - CP14DyeYellow: 1 - stacks: - CP14Cloth: 2 + requirements: + - !type:ProtoIdResource + protoId: CP14String + - !type:ProtoIdResource + protoId: CP14DyeYellow + - !type:StackResource + stack: CP14Cloth + count: 2 + - !type:KnowledgeRequired + knowledge: ClothingSewing result: CP14ClothingPantsSouthernMagician - knowledgeRequired: ClothingSewing - type: CP14Recipe id: CP14ClothingHeadBeretRed tag: CP14RecipeSewing craftTime: 2 - entities: - CP14String: 1 - CP14DyeRed: 1 - stacks: - CP14Cloth: 1 + requirements: + - !type:ProtoIdResource + protoId: CP14String + - !type:ProtoIdResource + protoId: CP14DyeRed + - !type:StackResource + stack: CP14Cloth + count: 1 + - !type:KnowledgeRequired + knowledge: ClothingSewing result: CP14ClothingHeadBeretRed - knowledgeRequired: ClothingSewing - type: CP14Recipe id: CP14ClothingHeadBeretPurple tag: CP14RecipeSewing craftTime: 2 - entities: - CP14String: 1 - CP14DyePurple: 1 - stacks: - CP14Cloth: 1 + requirements: + - !type:ProtoIdResource + protoId: CP14String + - !type:ProtoIdResource + protoId: CP14DyePurple + - !type:StackResource + stack: CP14Cloth + count: 1 + - !type:KnowledgeRequired + knowledge: ClothingSewing result: CP14ClothingHeadBeretPurple - knowledgeRequired: ClothingSewing - type: CP14Recipe id: CP14ClothingHeadBeretYellow tag: CP14RecipeSewing craftTime: 2 - entities: - CP14String: 1 - CP14DyeYellow: 1 - stacks: - CP14Cloth: 1 + requirements: + - !type:ProtoIdResource + protoId: CP14String + - !type:ProtoIdResource + protoId: CP14DyeYellow + - !type:StackResource + stack: CP14Cloth + count: 1 + - !type:KnowledgeRequired + knowledge: ClothingSewing result: CP14ClothingHeadBeretYellow - knowledgeRequired: ClothingSewing - type: CP14Recipe id: CP14ClothingHeadBeretBlue tag: CP14RecipeSewing craftTime: 2 - entities: - CP14String: 1 - CP14DyeBlue: 1 - stacks: - CP14Cloth: 1 + requirements: + - !type:ProtoIdResource + protoId: CP14String + - !type:ProtoIdResource + protoId: CP14DyeBlue + - !type:StackResource + stack: CP14Cloth + count: 1 + - !type:KnowledgeRequired + knowledge: ClothingSewing result: CP14ClothingHeadBeretBlue - knowledgeRequired: ClothingSewing - type: CP14Recipe id: CP14ClothingHeadBeretBlack tag: CP14RecipeSewing craftTime: 2 - entities: - CP14String: 1 - CP14DyeBlack: 1 - stacks: - CP14Cloth: 1 + requirements: + - !type:ProtoIdResource + protoId: CP14String + - !type:ProtoIdResource + protoId: CP14DyeBlack + - !type:StackResource + stack: CP14Cloth + count: 1 + - !type:KnowledgeRequired + knowledge: ClothingSewing result: CP14ClothingHeadBeretBlack - knowledgeRequired: ClothingSewing - type: CP14Recipe id: CP14ClothingHeadBandanaWhite tag: CP14RecipeSewing craftTime: 2 - entities: - CP14String: 1 - stacks: - CP14Cloth: 2 + requirements: + - !type:ProtoIdResource + protoId: CP14String + - !type:StackResource + stack: CP14Cloth + count: 2 + - !type:KnowledgeRequired + knowledge: ClothingSewing result: CP14ClothingHeadBandanaWhite - knowledgeRequired: ClothingSewing - type: CP14Recipe id: CP14ClothingHeadBandanaYellow tag: CP14RecipeSewing craftTime: 2 - entities: - CP14String: 1 - CP14DyeYellow: 1 - stacks: - CP14Cloth: 2 + requirements: + - !type:ProtoIdResource + protoId: CP14String + - !type:ProtoIdResource + protoId: CP14DyeYellow + - !type:StackResource + stack: CP14Cloth + count: 2 + - !type:KnowledgeRequired + knowledge: ClothingSewing result: CP14ClothingHeadBandanaYellow - knowledgeRequired: ClothingSewing - type: CP14Recipe id: CP14ClothingHeadWreath tag: CP14RecipeSewing craftTime: 2 - entities: - CP14BloodFlower: 2 - CP14Dayflin: 2 + requirements: + - !type:ProtoIdResource + protoId: CP14BloodFlower + count: 2 + - !type:ProtoIdResource + protoId: CP14Dayflin + count: 2 + - !type:KnowledgeRequired + knowledge: ClothingSewing result: CP14ClothingHeadWreath - knowledgeRequired: ClothingSewing - type: CP14Recipe id: CP14ClothingShirtMercenary tag: CP14RecipeSewing craftTime: 2 - entities: - CP14String: 1 - CP14DyeBlue: 1 - CP14DyeRed: 1 - stacks: - CP14Cloth: 3 + requirements: + - !type:ProtoIdResource + protoId: CP14String + - !type:ProtoIdResource + protoId: CP14DyeBlue + - !type:ProtoIdResource + protoId: CP14DyeRed + - !type:StackResource + stack: CP14Cloth + count: 3 + - !type:KnowledgeRequired + knowledge: AdvancedClothingSewing result: CP14ClothingShirtMercenary - knowledgeRequired: AdvancedClothingSewing - type: CP14Recipe id: CP14ClothingShirtYellowWizard tag: CP14RecipeSewing craftTime: 2 - entities: - CP14String: 1 - CP14DyeYellow: 1 - CP14DyeBlue: 1 - CP14DyeRed: 1 - stacks: - CP14Cloth: 3 + requirements: + - !type:ProtoIdResource + protoId: CP14String + - !type:ProtoIdResource + protoId: CP14DyeYellow + - !type:ProtoIdResource + protoId: CP14DyeBlue + - !type:ProtoIdResource + protoId: CP14DyeRed + - !type:StackResource + stack: CP14Cloth + count: 3 + - !type:KnowledgeRequired + knowledge: AdvancedClothingSewing result: CP14ClothingShirtYellowWizard - knowledgeRequired: AdvancedClothingSewing - type: CP14Recipe id: CP14ClothingHeadBeretMercenary tag: CP14RecipeSewing craftTime: 2 - entities: - CP14String: 1 - CP14DyeRed: 1 - CP14DyeBlue: 1 - stacks: - CP14Cloth: 2 + requirements: + - !type:ProtoIdResource + protoId: CP14String + - !type:ProtoIdResource + protoId: CP14DyeRed + - !type:ProtoIdResource + protoId: CP14DyeBlue + - !type:StackResource + stack: CP14Cloth + count: 2 + - !type:KnowledgeRequired + knowledge: AdvancedClothingSewing result: CP14ClothingHeadBeretMercenary - knowledgeRequired: AdvancedClothingSewing - type: CP14Recipe id: CP14ClothingPantsMercenaryTrousers tag: CP14RecipeSewing craftTime: 2 - entities: - CP14String: 1 - CP14DyeBlue: 1 - CP14DyeRed: 1 - stacks: - CP14Cloth: 2 + requirements: + - !type:ProtoIdResource + protoId: CP14String + - !type:ProtoIdResource + protoId: CP14DyeBlue + - !type:ProtoIdResource + protoId: CP14DyeRed + - !type:StackResource + stack: CP14Cloth + count: 2 + - !type:KnowledgeRequired + knowledge: AdvancedClothingSewing result: CP14ClothingPantsMercenaryTrousers - knowledgeRequired: AdvancedClothingSewing # Wallpaper (TODO: Move to separate workbench?) @@ -268,125 +359,92 @@ id: CP14WallpaperBlack tag: CP14RecipeSewing craftTime: 2 - stacks: - CP14Cloth: 10 - entities: - CP14DyeBlack: 1 + requirements: + - !type:StackResource + stack: CP14Cloth + count: 10 + - !type:ProtoIdResource + protoId: CP14DyeBlack + - !type:KnowledgeRequired + knowledge: WallpaperCraft result: CP14WallpaperBlack - knowledgeRequired: WallpaperCraft - type: CP14Recipe id: CP14WallpaperGreen tag: CP14RecipeSewing craftTime: 2 - stacks: - CP14Cloth: 10 - entities: - CP14DyeGreen: 1 + requirements: + - !type:StackResource + stack: CP14Cloth + count: 10 + - !type:ProtoIdResource + protoId: CP14DyeGreen + - !type:KnowledgeRequired + knowledge: WallpaperCraft result: CP14WallpaperGreen - knowledgeRequired: WallpaperCraft - type: CP14Recipe id: CP14WallpaperPurple tag: CP14RecipeSewing craftTime: 2 - stacks: - CP14Cloth: 10 - entities: - CP14DyePurple: 1 + requirements: + - !type:StackResource + stack: CP14Cloth + count: 10 + - !type:ProtoIdResource + protoId: CP14DyePurple + - !type:KnowledgeRequired + knowledge: WallpaperCraft result: CP14WallpaperPurple - knowledgeRequired: WallpaperCraft - type: CP14Recipe id: CP14WallpaperRed tag: CP14RecipeSewing craftTime: 2 - stacks: - CP14Cloth: 10 - entities: - CP14DyeRed: 1 + requirements: + - !type:StackResource + stack: CP14Cloth + count: 10 + - !type:ProtoIdResource + protoId: CP14DyeRed + - !type:KnowledgeRequired + knowledge: WallpaperCraft result: CP14WallpaperRed - knowledgeRequired: WallpaperCraft - type: CP14Recipe id: CP14WallpaperWhite tag: CP14RecipeSewing craftTime: 2 - stacks: - CP14Cloth: 10 + requirements: + - !type:StackResource + stack: CP14Cloth + count: 10 + - !type:KnowledgeRequired + knowledge: WallpaperCraft result: CP14WallpaperWhite - knowledgeRequired: WallpaperCraft - type: CP14Recipe id: CP14WallpaperWhite2 tag: CP14RecipeSewing craftTime: 2 - stacks: - CP14Cloth: 10 + requirements: + - !type:StackResource + stack: CP14Cloth + count: 10 + - !type:KnowledgeRequired + knowledge: WallpaperCraft result: CP14WallpaperWhite2 - knowledgeRequired: WallpaperCraft - type: CP14Recipe id: CP14WallpaperYellow tag: CP14RecipeSewing craftTime: 2 - stacks: - CP14Cloth: 10 - entities: - CP14DyeYellow: 1 - result: CP14WallpaperYellow - knowledgeRequired: WallpaperCraft - -- type: CP14Recipe - id: CP14CrayonBlack - tag: CP14RecipeSewing - craftTime: 2 - entities: - CP14CrayonWhite: 1 - CP14DyeBlack: 1 - result: CP14CrayonBlack - -- type: CP14Recipe - id: CP14CrayonRed - tag: CP14RecipeSewing - craftTime: 2 - entities: - CP14CrayonWhite: 1 - CP14DyeRed: 1 - result: CP14CrayonRed - -- type: CP14Recipe - id: CP14CrayonYellow - tag: CP14RecipeSewing - craftTime: 2 - entities: - CP14CrayonWhite: 1 - CP14DyeYellow: 1 - result: CP14CrayonYellow - -- type: CP14Recipe - id: CP14CrayonGreen - tag: CP14RecipeSewing - craftTime: 2 - entities: - CP14CrayonWhite: 1 - CP14DyeGreen: 1 - result: CP14CrayonGreen - -- type: CP14Recipe - id: CP14CrayonBlue - tag: CP14RecipeSewing - craftTime: 2 - entities: - CP14CrayonWhite: 1 - CP14DyeBlue: 1 - result: CP14CrayonBlue - -- type: CP14Recipe - id: CP14CrayonPurple - tag: CP14RecipeSewing - craftTime: 2 - entities: - CP14CrayonWhite: 1 - CP14DyePurple: 1 - result: CP14CrayonPurple \ No newline at end of file + requirements: + - !type:StackResource + stack: CP14Cloth + count: 10 + - !type:ProtoIdResource + protoId: CP14DyeYellow + - !type:KnowledgeRequired + knowledge: WallpaperCraft + result: CP14WallpaperYellow \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Recipes/Workbench/workbench.yml b/Resources/Prototypes/_CP14/Recipes/Workbench/workbench.yml index 8d6889864c..df4944edfa 100644 --- a/Resources/Prototypes/_CP14/Recipes/Workbench/workbench.yml +++ b/Resources/Prototypes/_CP14/Recipes/Workbench/workbench.yml @@ -2,114 +2,140 @@ id: CP14Bucket tag: CP14RecipeWorkbench craftTime: 2 - entities: - CP14Rope: 1 - stacks: - CP14WoodenPlanks: 3 + requirements: + - !type:StackResource + stack: CP14WoodenPlanks + count: 3 + - !type:ProtoIdResource + protoId: CP14Rope + count: 1 result: CP14Bucket - knowledgeRequired: WoodWork - type: CP14Recipe id: CP14WoodenBeerMug tag: CP14RecipeWorkbench craftTime: 3 - stacks: - CP14WoodenPlanks: 2 - CP14Nail: 1 + requirements: + - !type:StackResource + stack: CP14WoodenPlanks + count: 2 + - !type:StackResource + stack: CP14Nail + count: 1 result: CP14WoodenBeerMug - knowledgeRequired: WoodWork - type: CP14Recipe id: CP14Plate tag: CP14RecipeWorkbench craftTime: 3 - stacks: - CP14WoodenPlanks: 2 + requirements: + - !type:StackResource + stack: CP14WoodenPlanks + count: 2 result: CP14Plate - knowledgeRequired: WoodWork - type: CP14Recipe id: CP14BaseMop tag: CP14RecipeWorkbench craftTime: 3 - stacks: - CP14WoodenPlanks: 2 - CP14Cloth: 1 + requirements: + - !type:StackResource + stack: CP14WoodenPlanks + count: 2 + - !type:StackResource + stack: CP14Cloth + count: 1 result: CP14BaseMop - knowledgeRequired: WoodWork - type: CP14Recipe id: CP14Torch tag: CP14RecipeWorkbench craftTime: 4 - stacks: - CP14WoodenPlanks: 3 - CP14Cloth: 1 + requirements: + - !type:StackResource + stack: CP14WoodenPlanks + count: 3 + - !type:StackResource + stack: CP14Cloth + count: 1 result: CP14Torch - type: CP14Recipe id: CP14Lighter tag: CP14RecipeWorkbench craftTime: 4 - stacks: - CP14Stone: 1 - CP14IronBar: 1 + requirements: + - !type:StackResource + stack: CP14Stone + count: 2 + - !type:StackResource + stack: CP14IronBar + count: 1 result: CP14Lighter - type: CP14Recipe id: CP14ModularGripWooden tag: CP14RecipeWorkbench craftTime: 2 - stacks: - CP14WoodenPlanks: 1 + requirements: + - !type:StackResource + stack: CP14WoodenPlanks + count: 2 result: CP14ModularGripWooden - knowledgeRequired: WoodWork - type: CP14Recipe id: CP14ModularGripWoodenLong tag: CP14RecipeWorkbench craftTime: 2 - stacks: - CP14WoodenPlanks: 2 + requirements: + - !type:StackResource + stack: CP14WoodenPlanks + count: 4 result: CP14ModularGripWoodenLong - knowledgeRequired: WoodWork - type: CP14Recipe id: CP14ModularGripLucens tag: CP14RecipeWorkbench craftTime: 2 - stacks: - CP14LucensWoodenPlanks: 1 + requirements: + - !type:StackResource + stack: CP14LucensWoodenPlanks + count: 2 result: CP14ModularGripLucens - knowledgeRequired: WoodWork - type: CP14Recipe id: CP14ModularGripLucensLong tag: CP14RecipeWorkbench craftTime: 2 - stacks: - CP14LucensWoodenPlanks: 2 + requirements: + - !type:StackResource + stack: CP14LucensWoodenPlanks + count: 4 result: CP14ModularGripLucensLong - knowledgeRequired: WoodWork - type: CP14Recipe id: CP14Bow tag: CP14RecipeWorkbench craftTime: 2 - entities: - CP14String: 1 - stacks: - CP14WoodenPlanks: 2 + requirements: + - !type:StackResource + stack: CP14WoodenPlanks + count: 4 + - !type:ProtoIdResource + protoId: CP14String + count: 1 result: CP14BowCombat - knowledgeRequired: WoodWork - type: CP14Recipe id: CP14Arrow tag: CP14RecipeWorkbench craftTime: 3 - stacks: - CP14WoodenPlanks: 1 - CP14IronBar: 1 + requirements: + - !type:StackResource + stack: CP14WoodenPlanks + count: 1 + - !type:StackResource + stack: CP14IronBar + count: 1 result: CP14Arrow resultCount: 4 - knowledgeRequired: WoodWork diff --git a/Resources/Prototypes/_CP14/Roles/Jobs/Mercenary/guildmaster.yml b/Resources/Prototypes/_CP14/Roles/Jobs/Mercenary/guildmaster.yml index 03d1af10f6..8a73dfbaf7 100644 --- a/Resources/Prototypes/_CP14/Roles/Jobs/Mercenary/guildmaster.yml +++ b/Resources/Prototypes/_CP14/Roles/Jobs/Mercenary/guildmaster.yml @@ -28,4 +28,4 @@ - CP14EnergyCrystalSmall equipment: belt1: CP14WalletFilledTest - keys: CP14KeyRingInnkeeper \ No newline at end of file + keys: CP14KeyRingGuildmaster \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/SoundCollections/animals.yml b/Resources/Prototypes/_CP14/SoundCollections/animals.yml index fca4ae0b06..60103c7d1c 100644 --- a/Resources/Prototypes/_CP14/SoundCollections/animals.yml +++ b/Resources/Prototypes/_CP14/SoundCollections/animals.yml @@ -4,3 +4,10 @@ - /Audio/_CP14/Animals/dino1.ogg - /Audio/_CP14/Animals/dino2.ogg - /Audio/_CP14/Animals/dino3.ogg + +- type: soundCollection + id: CP14Frog + files: + - /Audio/_CP14/Animals/frog1.ogg + - /Audio/_CP14/Animals/frog2.ogg + - /Audio/_CP14/Animals/frog3.ogg diff --git a/Resources/Prototypes/_CP14/Stacks/materials.yml b/Resources/Prototypes/_CP14/Stacks/materials.yml index 3153e0591b..38027742dd 100644 --- a/Resources/Prototypes/_CP14/Stacks/materials.yml +++ b/Resources/Prototypes/_CP14/Stacks/materials.yml @@ -17,14 +17,14 @@ name: cp14-stack-wood-planks spawn: CP14WoodenPlanks1 icon: { sprite: _CP14/Objects/Materials/wood.rsi, state: planks_2 } - maxCount: 10 + maxCount: 20 - type: stack id: CP14Nail name: cp14-stack-nails spawn: CP14Nail1 icon: { sprite: _CP14/Objects/Materials/nails.rsi, state: nail_2 } - maxCount: 10 + maxCount: 50 - type: stack id: CP14Cloth @@ -66,7 +66,7 @@ name: cp14-material-lucens-planks spawn: CP14LucensWoodenPlanks1 icon: { sprite: _CP14/Objects/Materials/lucens_wood.rsi, state: planks_2 } - maxCount: 10 + maxCount: 20 - type: stack id: CP14GlassSheet @@ -80,11 +80,11 @@ name: cp14-stack-flora icon: { sprite: "_CP14/Objects/Materials/flora.rsi", state: grass_material1 } spawn: CP14FloraMaterial1 - maxCount: 2 + maxCount: 10 - type: stack id: CP14Ash name: cp14-stack-ash-pile icon: { sprite: "_CP14/Objects/Materials/ash.rsi", state: ash_1 } spawn: CP14Ash1 - maxCount: 3 + maxCount: 10 diff --git a/Resources/Prototypes/_CP14/ai_factions.yml b/Resources/Prototypes/_CP14/ai_factions.yml index d77b6ca2b5..29bbcf894d 100644 --- a/Resources/Prototypes/_CP14/ai_factions.yml +++ b/Resources/Prototypes/_CP14/ai_factions.yml @@ -27,6 +27,9 @@ - type: npcFaction id: CP14PeacefulAnimals +- type: npcFaction + id: CP14Neutrals + - type: npcFaction id: CP14AggressiveAnimals hostile: diff --git a/Resources/Prototypes/_CP14/stat_trackers.yml b/Resources/Prototypes/_CP14/stat_trackers.yml new file mode 100644 index 0000000000..10204af15c --- /dev/null +++ b/Resources/Prototypes/_CP14/stat_trackers.yml @@ -0,0 +1,7 @@ +- type: statisticTracker + id: DemiplaneOpen + text: cp14-tracker-demiplane-open + +- type: statisticTracker + id: DemiplaneDeaths + text: cp14-tracker-demiplane-deaths \ No newline at end of file diff --git a/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/equipped-BACKPACK-goblin.png b/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/equipped-BACKPACK-goblin.png new file mode 100644 index 0000000000..670db2682e Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/equipped-BACKPACK-goblin.png differ diff --git a/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/equipped-BACKPACK.png b/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/equipped-BACKPACK.png new file mode 100644 index 0000000000..905533424e Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/equipped-BACKPACK.png differ diff --git a/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/flipped-equipped-BACKPACK-goblin.png b/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/flipped-equipped-BACKPACK-goblin.png new file mode 100644 index 0000000000..c476e396f2 Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/flipped-equipped-BACKPACK-goblin.png differ diff --git a/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/flipped-equipped-BACKPACK.png b/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/flipped-equipped-BACKPACK.png new file mode 100644 index 0000000000..6cb1e475ca Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/flipped-equipped-BACKPACK.png differ diff --git a/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/icon.png b/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/icon.png new file mode 100644 index 0000000000..bbec63fdeb Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/icon.png differ diff --git a/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/inhand-left.png b/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/inhand-left.png new file mode 100644 index 0000000000..f905171fd0 Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/inhand-left.png differ diff --git a/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/inhand-right.png b/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/inhand-right.png new file mode 100644 index 0000000000..57aae1140a Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/inhand-right.png differ diff --git a/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/meta.json b/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/meta.json new file mode 100644 index 0000000000..d3a3750d78 --- /dev/null +++ b/Resources/Textures/_CP14/Clothing/Back/Satchel/leather_satchel.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "license": "All right reserved", + "copyright": "Created by creame (Discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "equipped-BACKPACK-goblin", + "directions": 4 + }, + { + "name": "flipped-equipped-BACKPACK", + "directions": 4 + }, + { + "name": "flipped-equipped-BACKPACK-goblin", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CP14/Clothing/Cloak/Roles/Bank/commandant_cape.rsi/equipped-CLOAK.png b/Resources/Textures/_CP14/Clothing/Cloak/Roles/Bank/commandant_cape.rsi/equipped-CLOAK.png new file mode 100644 index 0000000000..8dc2942cb3 Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/Cloak/Roles/Bank/commandant_cape.rsi/equipped-CLOAK.png differ diff --git a/Resources/Textures/_CP14/Clothing/Cloak/Roles/Bank/commandant_cape.rsi/icon.png b/Resources/Textures/_CP14/Clothing/Cloak/Roles/Bank/commandant_cape.rsi/icon.png new file mode 100644 index 0000000000..334e03ca59 Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/Cloak/Roles/Bank/commandant_cape.rsi/icon.png differ diff --git a/Resources/Textures/_CP14/Clothing/Cloak/Roles/Bank/commandant_jacket.rsi/meta.json b/Resources/Textures/_CP14/Clothing/Cloak/Roles/Bank/commandant_cape.rsi/meta.json similarity index 100% rename from Resources/Textures/_CP14/Clothing/Cloak/Roles/Bank/commandant_jacket.rsi/meta.json rename to Resources/Textures/_CP14/Clothing/Cloak/Roles/Bank/commandant_cape.rsi/meta.json diff --git a/Resources/Textures/_CP14/Clothing/Cloak/Roles/Bank/commandant_jacket.rsi/equipped-CLOAK.png b/Resources/Textures/_CP14/Clothing/Cloak/Roles/Bank/commandant_jacket.rsi/equipped-CLOAK.png deleted file mode 100644 index bc81bfa510..0000000000 Binary files a/Resources/Textures/_CP14/Clothing/Cloak/Roles/Bank/commandant_jacket.rsi/equipped-CLOAK.png and /dev/null differ diff --git a/Resources/Textures/_CP14/Clothing/Cloak/Roles/Bank/commandant_jacket.rsi/icon.png b/Resources/Textures/_CP14/Clothing/Cloak/Roles/Bank/commandant_jacket.rsi/icon.png deleted file mode 100644 index 12a9330d30..0000000000 Binary files a/Resources/Textures/_CP14/Clothing/Cloak/Roles/Bank/commandant_jacket.rsi/icon.png and /dev/null differ diff --git a/Resources/Textures/_CP14/Clothing/Cloak/Roles/General/fur_coat.rsi/equipped-CLOAK.png b/Resources/Textures/_CP14/Clothing/Cloak/Roles/General/fur_coat.rsi/equipped-CLOAK.png new file mode 100644 index 0000000000..da4150ada0 Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/Cloak/Roles/General/fur_coat.rsi/equipped-CLOAK.png differ diff --git a/Resources/Textures/_CP14/Clothing/Cloak/Roles/General/fur_coat.rsi/icon.png b/Resources/Textures/_CP14/Clothing/Cloak/Roles/General/fur_coat.rsi/icon.png new file mode 100644 index 0000000000..6af68f196e Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/Cloak/Roles/General/fur_coat.rsi/icon.png differ diff --git a/Resources/Textures/_CP14/Clothing/Cloak/Roles/General/fur_coat.rsi/inhand-left.png b/Resources/Textures/_CP14/Clothing/Cloak/Roles/General/fur_coat.rsi/inhand-left.png new file mode 100644 index 0000000000..99864409cc Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/Cloak/Roles/General/fur_coat.rsi/inhand-left.png differ diff --git a/Resources/Textures/_CP14/Clothing/Cloak/Roles/General/fur_coat.rsi/inhand-right.png b/Resources/Textures/_CP14/Clothing/Cloak/Roles/General/fur_coat.rsi/inhand-right.png new file mode 100644 index 0000000000..b53310d300 Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/Cloak/Roles/General/fur_coat.rsi/inhand-right.png differ diff --git a/Resources/Textures/_CP14/Clothing/Cloak/Roles/General/fur_coat.rsi/meta.json b/Resources/Textures/_CP14/Clothing/Cloak/Roles/General/fur_coat.rsi/meta.json new file mode 100644 index 0000000000..b9dfdc13ed --- /dev/null +++ b/Resources/Textures/_CP14/Clothing/Cloak/Roles/General/fur_coat.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "All right reserved", + "copyright": "Created by creamy (Discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-CLOAK", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CP14/Clothing/Cloak/Roles/Guard/guard_commander_cloak.rsi/equipped-CLOAK.png b/Resources/Textures/_CP14/Clothing/Cloak/Roles/Guard/guard_commander_cloak.rsi/equipped-CLOAK.png index f4cbc488b0..e6443f223b 100644 Binary files a/Resources/Textures/_CP14/Clothing/Cloak/Roles/Guard/guard_commander_cloak.rsi/equipped-CLOAK.png and b/Resources/Textures/_CP14/Clothing/Cloak/Roles/Guard/guard_commander_cloak.rsi/equipped-CLOAK.png differ diff --git a/Resources/Textures/_CP14/Clothing/Cloak/Roles/Guard/guard_commander_cloak.rsi/icon.png b/Resources/Textures/_CP14/Clothing/Cloak/Roles/Guard/guard_commander_cloak.rsi/icon.png index 321fd925b2..4babbf7313 100644 Binary files a/Resources/Textures/_CP14/Clothing/Cloak/Roles/Guard/guard_commander_cloak.rsi/icon.png and b/Resources/Textures/_CP14/Clothing/Cloak/Roles/Guard/guard_commander_cloak.rsi/icon.png differ diff --git a/Resources/Textures/_CP14/Clothing/Cloak/Roles/Guard/guard_commander_cloak.rsi/meta.json b/Resources/Textures/_CP14/Clothing/Cloak/Roles/Guard/guard_commander_cloak.rsi/meta.json index 47ee4578b9..660ed31f5e 100644 --- a/Resources/Textures/_CP14/Clothing/Cloak/Roles/Guard/guard_commander_cloak.rsi/meta.json +++ b/Resources/Textures/_CP14/Clothing/Cloak/Roles/Guard/guard_commander_cloak.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Created by hazzloebizhe, recolored by TheShuEd", + "copyright": "Created by TheShuEd", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/_CP14/Clothing/Cloak/Roles/Mercenary/guildmaster_cape.rsi/equipped-CLOAK.png b/Resources/Textures/_CP14/Clothing/Cloak/Roles/Mercenary/guildmaster_cape.rsi/equipped-CLOAK.png new file mode 100644 index 0000000000..0dacbaca1b Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/Cloak/Roles/Mercenary/guildmaster_cape.rsi/equipped-CLOAK.png differ diff --git a/Resources/Textures/_CP14/Clothing/Cloak/Roles/Mercenary/guildmaster_cape.rsi/icon.png b/Resources/Textures/_CP14/Clothing/Cloak/Roles/Mercenary/guildmaster_cape.rsi/icon.png new file mode 100644 index 0000000000..8f591c74e6 Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/Cloak/Roles/Mercenary/guildmaster_cape.rsi/icon.png differ diff --git a/Resources/Textures/_CP14/Clothing/Cloak/Roles/Mercenary/guildmaster_cape.rsi/meta.json b/Resources/Textures/_CP14/Clothing/Cloak/Roles/Mercenary/guildmaster_cape.rsi/meta.json new file mode 100644 index 0000000000..0799f0bd2c --- /dev/null +++ b/Resources/Textures/_CP14/Clothing/Cloak/Roles/Mercenary/guildmaster_cape.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "Created by TheShuEd", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-CLOAK", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker.rsi/equipped-OUTERCLOTHING.png new file mode 100644 index 0000000000..b8989c8ecf Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker.rsi/equipped-OUTERCLOTHING.png differ diff --git a/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker.rsi/icon.png b/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker.rsi/icon.png new file mode 100644 index 0000000000..162b3e947b Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker.rsi/icon.png differ diff --git a/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker.rsi/inhand-left.png b/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker.rsi/inhand-left.png new file mode 100644 index 0000000000..23f509e5b6 Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker.rsi/inhand-left.png differ diff --git a/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker.rsi/inhand-right.png b/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker.rsi/inhand-right.png new file mode 100644 index 0000000000..aac7f5c90b Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker.rsi/inhand-right.png differ diff --git a/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker.rsi/meta.json b/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker.rsi/meta.json new file mode 100644 index 0000000000..8155cf3eb1 --- /dev/null +++ b/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "All right reserved", + "copyright": "Created by dinazewwr", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker_open.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker_open.rsi/equipped-OUTERCLOTHING.png new file mode 100644 index 0000000000..250225d2a0 Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker_open.rsi/equipped-OUTERCLOTHING.png differ diff --git a/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker_open.rsi/icon.png b/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker_open.rsi/icon.png new file mode 100644 index 0000000000..ec0bd063d0 Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker_open.rsi/icon.png differ diff --git a/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker_open.rsi/inhand-left.png b/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker_open.rsi/inhand-left.png new file mode 100644 index 0000000000..23f509e5b6 Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker_open.rsi/inhand-left.png differ diff --git a/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker_open.rsi/inhand-right.png b/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker_open.rsi/inhand-right.png new file mode 100644 index 0000000000..aac7f5c90b Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker_open.rsi/inhand-right.png differ diff --git a/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker_open.rsi/meta.json b/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker_open.rsi/meta.json new file mode 100644 index 0000000000..8155cf3eb1 --- /dev/null +++ b/Resources/Textures/_CP14/Clothing/OuterClothing/Roles/Bank/vest_banker_open.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "All right reserved", + "copyright": "Created by dinazewwr", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CP14/Clothing/Shirt/Roles/Bank/banker.rsi/equipped-SHIRT.png b/Resources/Textures/_CP14/Clothing/Shirt/Roles/Bank/banker.rsi/equipped-SHIRT.png index 9cbffc70c5..7a634526a1 100644 Binary files a/Resources/Textures/_CP14/Clothing/Shirt/Roles/Bank/banker.rsi/equipped-SHIRT.png and b/Resources/Textures/_CP14/Clothing/Shirt/Roles/Bank/banker.rsi/equipped-SHIRT.png differ diff --git a/Resources/Textures/_CP14/Clothing/Shirt/Roles/Bank/banker.rsi/icon.png b/Resources/Textures/_CP14/Clothing/Shirt/Roles/Bank/banker.rsi/icon.png index a98fd454b3..5250993550 100644 Binary files a/Resources/Textures/_CP14/Clothing/Shirt/Roles/Bank/banker.rsi/icon.png and b/Resources/Textures/_CP14/Clothing/Shirt/Roles/Bank/banker.rsi/icon.png differ diff --git a/Resources/Textures/_CP14/Clothing/Shirt/Roles/Bank/banker.rsi/inhand-left.png b/Resources/Textures/_CP14/Clothing/Shirt/Roles/Bank/banker.rsi/inhand-left.png new file mode 100644 index 0000000000..dc9a85a3cb Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/Shirt/Roles/Bank/banker.rsi/inhand-left.png differ diff --git a/Resources/Textures/_CP14/Clothing/Shirt/Roles/Bank/banker.rsi/inhand-right.png b/Resources/Textures/_CP14/Clothing/Shirt/Roles/Bank/banker.rsi/inhand-right.png new file mode 100644 index 0000000000..c46068826a Binary files /dev/null and b/Resources/Textures/_CP14/Clothing/Shirt/Roles/Bank/banker.rsi/inhand-right.png differ diff --git a/Resources/Textures/_CP14/Clothing/Shirt/Roles/Bank/banker.rsi/meta.json b/Resources/Textures/_CP14/Clothing/Shirt/Roles/Bank/banker.rsi/meta.json index 7b3d32f6b9..0ac3f48e8b 100644 --- a/Resources/Textures/_CP14/Clothing/Shirt/Roles/Bank/banker.rsi/meta.json +++ b/Resources/Textures/_CP14/Clothing/Shirt/Roles/Bank/banker.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "All right reserved", - "copyright": "Created by KBAS5", + "copyright": "Created by dinazewwr", "size": { "x": 32, "y": 32 @@ -13,6 +13,14 @@ { "name": "equipped-SHIRT", "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 } ] } diff --git a/Resources/Textures/_CP14/Clothing/Shirt/Roles/General/white_green_vest.rsi/equipped-SHIRT.png b/Resources/Textures/_CP14/Clothing/Shirt/Roles/Mercenary/guildmaster_vest.rsi/equipped-SHIRT.png similarity index 100% rename from Resources/Textures/_CP14/Clothing/Shirt/Roles/General/white_green_vest.rsi/equipped-SHIRT.png rename to Resources/Textures/_CP14/Clothing/Shirt/Roles/Mercenary/guildmaster_vest.rsi/equipped-SHIRT.png diff --git a/Resources/Textures/_CP14/Clothing/Shirt/Roles/General/white_green_vest.rsi/icon.png b/Resources/Textures/_CP14/Clothing/Shirt/Roles/Mercenary/guildmaster_vest.rsi/icon.png similarity index 100% rename from Resources/Textures/_CP14/Clothing/Shirt/Roles/General/white_green_vest.rsi/icon.png rename to Resources/Textures/_CP14/Clothing/Shirt/Roles/Mercenary/guildmaster_vest.rsi/icon.png diff --git a/Resources/Textures/_CP14/Clothing/Shirt/Roles/General/white_green_vest.rsi/meta.json b/Resources/Textures/_CP14/Clothing/Shirt/Roles/Mercenary/guildmaster_vest.rsi/meta.json similarity index 100% rename from Resources/Textures/_CP14/Clothing/Shirt/Roles/General/white_green_vest.rsi/meta.json rename to Resources/Textures/_CP14/Clothing/Shirt/Roles/Mercenary/guildmaster_vest.rsi/meta.json diff --git a/Resources/Textures/_CP14/Clothing/Shirt/Roles/General/white_green_vest2.rsi/equipped-SHIRT.png b/Resources/Textures/_CP14/Clothing/Shirt/Roles/Mercenary/guildmaster_vest2.rsi/equipped-SHIRT.png similarity index 100% rename from Resources/Textures/_CP14/Clothing/Shirt/Roles/General/white_green_vest2.rsi/equipped-SHIRT.png rename to Resources/Textures/_CP14/Clothing/Shirt/Roles/Mercenary/guildmaster_vest2.rsi/equipped-SHIRT.png diff --git a/Resources/Textures/_CP14/Clothing/Shirt/Roles/General/white_green_vest2.rsi/icon.png b/Resources/Textures/_CP14/Clothing/Shirt/Roles/Mercenary/guildmaster_vest2.rsi/icon.png similarity index 100% rename from Resources/Textures/_CP14/Clothing/Shirt/Roles/General/white_green_vest2.rsi/icon.png rename to Resources/Textures/_CP14/Clothing/Shirt/Roles/Mercenary/guildmaster_vest2.rsi/icon.png diff --git a/Resources/Textures/_CP14/Clothing/Shirt/Roles/General/white_green_vest2.rsi/meta.json b/Resources/Textures/_CP14/Clothing/Shirt/Roles/Mercenary/guildmaster_vest2.rsi/meta.json similarity index 100% rename from Resources/Textures/_CP14/Clothing/Shirt/Roles/General/white_green_vest2.rsi/meta.json rename to Resources/Textures/_CP14/Clothing/Shirt/Roles/Mercenary/guildmaster_vest2.rsi/meta.json diff --git a/Resources/Textures/_CP14/Effects/Magic/cast_impact.rsi/circle_decrease.png b/Resources/Textures/_CP14/Effects/Magic/cast_impact.rsi/circle_decrease.png new file mode 100644 index 0000000000..378b313c8f Binary files /dev/null and b/Resources/Textures/_CP14/Effects/Magic/cast_impact.rsi/circle_decrease.png differ diff --git a/Resources/Textures/_CP14/Effects/Magic/cast_impact.rsi/meta.json b/Resources/Textures/_CP14/Effects/Magic/cast_impact.rsi/meta.json index e0a9f1075a..b4a0239093 100644 --- a/Resources/Textures/_CP14/Effects/Magic/cast_impact.rsi/meta.json +++ b/Resources/Textures/_CP14/Effects/Magic/cast_impact.rsi/meta.json @@ -7,6 +7,21 @@ "license": "CC-BY-SA-4.0", "copyright": "Created by TheShuEd", "states": [ + { + "name": "circle_decrease", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, { "name": "particles_down", "delays": [ diff --git a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/demi_arrow.png b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/demi_arrow.png new file mode 100644 index 0000000000..1a3dc522f2 Binary files /dev/null and b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/demi_arrow.png differ diff --git a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/freeze.png b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/freeze.png new file mode 100644 index 0000000000..ae3f7406c1 Binary files /dev/null and b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/freeze.png differ diff --git a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/kick.png b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/kick.png new file mode 100644 index 0000000000..3977141811 Binary files /dev/null and b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/kick.png differ diff --git a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/meta.json b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/meta.json index 69794f802c..275ef12cf9 100644 --- a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/meta.json +++ b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/meta.json @@ -5,7 +5,7 @@ "y": 32 }, "license": "All right reserved", - "copyright": "Created by .kreks., cure_poison, cure_burn, mana_gift, water creation, plant_growth, beer creation, sprint, tiefling_revenge and resurrection by TheShuEd", + "copyright": "Created by .kreks., cure_poison, cure_burn, mana_gift, water creation, plant_growth, beer creation, sprint, tiefling_revenge, demi_arrow, rift_shield, rift_arrow, signal_light_blue, signal_light_red, freeze, kick, signal_light_yellow and resurrection by TheShuEd", "states": [ { "name": "beer_creation" @@ -19,6 +19,9 @@ { "name": "cure_wounds" }, + { + "name": "demi_arrow" + }, { "name": "earth_wall" }, @@ -31,12 +34,18 @@ { "name": "flash_light" }, + { + "name": "freeze" + }, { "name": "ice_dagger" }, { "name": "ice_shards" }, + { + "name": "kick" + }, { "name": "mana_consume" }, @@ -49,12 +58,27 @@ { "name": "resurrection" }, + { + "name": "rift_arrow" + }, + { + "name": "rift_shield" + }, { "name": "shadow_grab" }, { "name": "shadow_step" }, + { + "name": "signal_light_blue" + }, + { + "name": "signal_light_red" + }, + { + "name": "signal_light_yellow" + }, { "name": "sphere_of_light" }, diff --git a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/rift_arrow.png b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/rift_arrow.png new file mode 100644 index 0000000000..c3d32270ba Binary files /dev/null and b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/rift_arrow.png differ diff --git a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/rift_shield.png b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/rift_shield.png new file mode 100644 index 0000000000..5b13e34fe9 Binary files /dev/null and b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/rift_shield.png differ diff --git a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/signal_light_blue.png b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/signal_light_blue.png new file mode 100644 index 0000000000..e875c50fca Binary files /dev/null and b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/signal_light_blue.png differ diff --git a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/signal_light_red.png b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/signal_light_red.png new file mode 100644 index 0000000000..c2b4955f11 Binary files /dev/null and b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/signal_light_red.png differ diff --git a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/signal_light_yellow.png b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/signal_light_yellow.png new file mode 100644 index 0000000000..4a3d195bda Binary files /dev/null and b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/signal_light_yellow.png differ diff --git a/Resources/Textures/_CP14/Markers/jobs.rsi/guildmaster.png b/Resources/Textures/_CP14/Markers/jobs.rsi/guildmaster.png new file mode 100644 index 0000000000..634138d0db Binary files /dev/null and b/Resources/Textures/_CP14/Markers/jobs.rsi/guildmaster.png differ diff --git a/Resources/Textures/_CP14/Markers/jobs.rsi/meta.json b/Resources/Textures/_CP14/Markers/jobs.rsi/meta.json index 9c21fb7e4f..3f37c57d0d 100644 --- a/Resources/Textures/_CP14/Markers/jobs.rsi/meta.json +++ b/Resources/Textures/_CP14/Markers/jobs.rsi/meta.json @@ -31,6 +31,9 @@ { "name": "guard_commander" }, + { + "name": "guildmaster" + }, { "name": "workman" } diff --git a/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog.png b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog.png new file mode 100644 index 0000000000..a27b4da1da Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog.png differ diff --git a/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog_blinks.png b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog_blinks.png new file mode 100644 index 0000000000..69c04b11fc Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog_blinks.png differ diff --git a/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog_dead.png b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog_dead.png new file mode 100644 index 0000000000..da57743293 Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog_dead.png differ diff --git a/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog_moving.png b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog_moving.png new file mode 100644 index 0000000000..847a49e332 Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/frog_moving.png differ diff --git a/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/icon.png b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/icon.png new file mode 100644 index 0000000000..58b4ff4c06 Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/icon.png differ diff --git a/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/meta.json b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/meta.json new file mode 100644 index 0000000000..bb1bf8570e --- /dev/null +++ b/Resources/Textures/_CP14/Mobs/Animals/frog.rsi/meta.json @@ -0,0 +1,81 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "All right reserved", + "copyright": "Created by Max Gab (Github)", + "states": [ + { + "name": "icon" + }, + { + "name": "frog", + "directions": 4 + }, + { + "name": "frog_moving", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "frog_blinks", + "directions": 4, + "delays": [ + [ + 2.5, + 0.2 + ], + [ + 2.5, + 0.2 + ], + [ + 2.5, + 0.2 + ], + [ + 2.5, + 0.2 + ] + ] + }, + { + "name": "frog_dead" + } + ] +} diff --git a/Resources/Textures/_CP14/Mobs/Animals/frog_helmet.rsi/0-equipped-HELMET.png b/Resources/Textures/_CP14/Mobs/Animals/frog_helmet.rsi/0-equipped-HELMET.png new file mode 100644 index 0000000000..a198c236a6 Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Animals/frog_helmet.rsi/0-equipped-HELMET.png differ diff --git a/Resources/Textures/_CP14/Mobs/Animals/frog_helmet.rsi/meta.json b/Resources/Textures/_CP14/Mobs/Animals/frog_helmet.rsi/meta.json new file mode 100644 index 0000000000..7a1806b9b4 --- /dev/null +++ b/Resources/Textures/_CP14/Mobs/Animals/frog_helmet.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "All right reserved", + "copyright": "Created by Max Gab (Github)", + "size": { + "x": 48, + "y": 48 + }, + "states": [ + { + "name": "0-equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CP14/Objects/Bureaucracy/paper.rsi/guildmaster_on_paper.png b/Resources/Textures/_CP14/Objects/Bureaucracy/paper.rsi/guildmaster_on_paper.png new file mode 100644 index 0000000000..6fe7b1a98f Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Bureaucracy/paper.rsi/guildmaster_on_paper.png differ diff --git a/Resources/Textures/_CP14/Objects/Bureaucracy/paper.rsi/meta.json b/Resources/Textures/_CP14/Objects/Bureaucracy/paper.rsi/meta.json index eb98bb94a3..7436e63dd1 100644 --- a/Resources/Textures/_CP14/Objects/Bureaucracy/paper.rsi/meta.json +++ b/Resources/Textures/_CP14/Objects/Bureaucracy/paper.rsi/meta.json @@ -36,6 +36,9 @@ { "name": "guard_on_paper" }, + { + "name": "guildmaster_on_paper" + }, { "name": "denied_on_paper" }, diff --git a/Resources/Textures/_CP14/Objects/Bureaucracy/stamp.rsi/approved.png b/Resources/Textures/_CP14/Objects/Bureaucracy/stamp.rsi/approved.png index 7492afe77e..93d686a7da 100644 Binary files a/Resources/Textures/_CP14/Objects/Bureaucracy/stamp.rsi/approved.png and b/Resources/Textures/_CP14/Objects/Bureaucracy/stamp.rsi/approved.png differ diff --git a/Resources/Textures/_CP14/Objects/Bureaucracy/stamp.rsi/denied.png b/Resources/Textures/_CP14/Objects/Bureaucracy/stamp.rsi/denied.png index 34d04efd2e..2aa837f8eb 100644 Binary files a/Resources/Textures/_CP14/Objects/Bureaucracy/stamp.rsi/denied.png and b/Resources/Textures/_CP14/Objects/Bureaucracy/stamp.rsi/denied.png differ diff --git a/Resources/Textures/_CP14/Objects/Bureaucracy/stamp.rsi/guildmaster.png b/Resources/Textures/_CP14/Objects/Bureaucracy/stamp.rsi/guildmaster.png new file mode 100644 index 0000000000..ac4d2fb4f7 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Bureaucracy/stamp.rsi/guildmaster.png differ diff --git a/Resources/Textures/_CP14/Objects/Bureaucracy/stamp.rsi/meta.json b/Resources/Textures/_CP14/Objects/Bureaucracy/stamp.rsi/meta.json index 6ca962b778..c9d2392ffd 100644 --- a/Resources/Textures/_CP14/Objects/Bureaucracy/stamp.rsi/meta.json +++ b/Resources/Textures/_CP14/Objects/Bureaucracy/stamp.rsi/meta.json @@ -18,6 +18,9 @@ }, { "name": "guard" + }, + { + "name": "guildmaster" } ] } diff --git a/Resources/Textures/_CP14/Objects/Consumable/Food/meat.rsi/frog_leg.png b/Resources/Textures/_CP14/Objects/Consumable/Food/meat.rsi/frog_leg.png new file mode 100644 index 0000000000..3f79247fdd Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Consumable/Food/meat.rsi/frog_leg.png differ diff --git a/Resources/Textures/_CP14/Objects/Consumable/Food/meat.rsi/frog_leg_cooked.png b/Resources/Textures/_CP14/Objects/Consumable/Food/meat.rsi/frog_leg_cooked.png new file mode 100644 index 0000000000..3ddf9307d3 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Consumable/Food/meat.rsi/frog_leg_cooked.png differ diff --git a/Resources/Textures/_CP14/Objects/Consumable/Food/meat.rsi/meta.json b/Resources/Textures/_CP14/Objects/Consumable/Food/meat.rsi/meta.json index 1731092e9b..791e48d465 100644 --- a/Resources/Textures/_CP14/Objects/Consumable/Food/meat.rsi/meta.json +++ b/Resources/Textures/_CP14/Objects/Consumable/Food/meat.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "All right reserved", - "copyright": "sheepmeat and sheepmeat_cooked By omsoyk, sheepmeat_slice and sheepmeat_slice_cooked by TheShuEd, cutlet and cutlet_cooked and meat_slice by Artista.rar", + "copyright": "sheepmeat and sheepmeat_cooked By omsoyk, sheepmeat_slice and sheepmeat_slice_cooked, frog_leg_cooked by TheShuEd, cutlet and cutlet_cooked and meat_slice by Artista.rar, frog_leg by Max Gab", "size": { "x": 32, "y": 32 @@ -39,6 +39,12 @@ }, { "name": "sheepmeat_slice3_cooked" + }, + { + "name": "frog_leg" + }, + { + "name": "frog_leg_cooked" } ] } \ No newline at end of file diff --git a/Resources/Textures/_CP14/Objects/Consumable/Food/pie.rsi/meta.json b/Resources/Textures/_CP14/Objects/Consumable/Food/pie.rsi/meta.json index 9857793136..95235ef825 100644 --- a/Resources/Textures/_CP14/Objects/Consumable/Food/pie.rsi/meta.json +++ b/Resources/Textures/_CP14/Objects/Consumable/Food/pie.rsi/meta.json @@ -5,7 +5,7 @@ "y": 32 }, "license": "CC-BY-SA-4.0", - "copyright": "Created by Artista", + "copyright": "Created by Artista, pumpkin by aeoli (discord)", "states": [ { "name": "apple" @@ -25,6 +25,12 @@ { "name": "meat_raw" }, + { + "name": "pumpkin" + }, + { + "name": "pumpkin_raw" + }, { "name": "tin" } diff --git a/Resources/Textures/_CP14/Objects/Consumable/Food/pie.rsi/pumpkin.png b/Resources/Textures/_CP14/Objects/Consumable/Food/pie.rsi/pumpkin.png new file mode 100644 index 0000000000..5068ff2598 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Consumable/Food/pie.rsi/pumpkin.png differ diff --git a/Resources/Textures/_CP14/Objects/Consumable/Food/pie.rsi/pumpkin_raw.png b/Resources/Textures/_CP14/Objects/Consumable/Food/pie.rsi/pumpkin_raw.png new file mode 100644 index 0000000000..2157a98544 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Consumable/Food/pie.rsi/pumpkin_raw.png differ diff --git a/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/burnt-icon.png b/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/burnt-icon.png new file mode 100644 index 0000000000..eb86369c96 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/burnt-icon.png differ diff --git a/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/inhand-left.png b/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/inhand-left.png new file mode 100644 index 0000000000..f4ee7a8f2c Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/inhand-left.png differ diff --git a/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/inhand-right.png b/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/inhand-right.png new file mode 100644 index 0000000000..f282c149c9 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/inhand-right.png differ diff --git a/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/lit-equipped-MASK.png b/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/lit-equipped-MASK.png new file mode 100644 index 0000000000..cf8067c198 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/lit-equipped-MASK.png differ diff --git a/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/lit-icon.png b/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/lit-icon.png new file mode 100644 index 0000000000..45eab7df96 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/lit-icon.png differ diff --git a/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/meta.json b/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/meta.json new file mode 100644 index 0000000000..6e27344b17 --- /dev/null +++ b/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/meta.json @@ -0,0 +1,68 @@ +{ + "version": 1, + "license": "All right reserved", + "copyright": "Created by Max Gab", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "unlit-equipped-MASK", + "directions": 4 + }, + { + "name": "lit-equipped-MASK", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "burnt-icon" + }, + { + "name": "unlit-icon" + }, + { + "name": "lit-icon", + "delays": [ + [ + 0.1, + 0.1 + ] + ] + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/unlit-equipped-MASK.png b/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/unlit-equipped-MASK.png new file mode 100644 index 0000000000..8f53754e0a Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/unlit-equipped-MASK.png differ diff --git a/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/unlit-icon.png b/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/unlit-icon.png new file mode 100644 index 0000000000..eb86369c96 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Consumable/Smokeables/Pipes/pipe.rsi/unlit-icon.png differ diff --git a/Resources/Textures/_CP14/Objects/Materials/copper_scrap.rsi/scrap.png b/Resources/Textures/_CP14/Objects/Materials/copper_scrap.rsi/scrap.png index b95f930f7c..9bc9ee6c5b 100644 Binary files a/Resources/Textures/_CP14/Objects/Materials/copper_scrap.rsi/scrap.png and b/Resources/Textures/_CP14/Objects/Materials/copper_scrap.rsi/scrap.png differ diff --git a/Resources/Textures/_CP14/Objects/Materials/copper_scrap.rsi/scrap_2.png b/Resources/Textures/_CP14/Objects/Materials/copper_scrap.rsi/scrap_2.png index 8f79403626..10b1511ee1 100644 Binary files a/Resources/Textures/_CP14/Objects/Materials/copper_scrap.rsi/scrap_2.png and b/Resources/Textures/_CP14/Objects/Materials/copper_scrap.rsi/scrap_2.png differ diff --git a/Resources/Textures/_CP14/Objects/Materials/copper_scrap.rsi/scrap_3.png b/Resources/Textures/_CP14/Objects/Materials/copper_scrap.rsi/scrap_3.png index 81e4eb6362..05f4cbf834 100644 Binary files a/Resources/Textures/_CP14/Objects/Materials/copper_scrap.rsi/scrap_3.png and b/Resources/Textures/_CP14/Objects/Materials/copper_scrap.rsi/scrap_3.png differ diff --git a/Resources/Textures/_CP14/Objects/Materials/flora.rsi/grass_material2.png b/Resources/Textures/_CP14/Objects/Materials/flora.rsi/grass_material2.png index 944bb93f13..17e7765a16 100644 Binary files a/Resources/Textures/_CP14/Objects/Materials/flora.rsi/grass_material2.png and b/Resources/Textures/_CP14/Objects/Materials/flora.rsi/grass_material2.png differ diff --git a/Resources/Textures/_CP14/Objects/Materials/flora.rsi/grass_material3.png b/Resources/Textures/_CP14/Objects/Materials/flora.rsi/grass_material3.png index a5d1000b34..e16e0c6a9b 100644 Binary files a/Resources/Textures/_CP14/Objects/Materials/flora.rsi/grass_material3.png and b/Resources/Textures/_CP14/Objects/Materials/flora.rsi/grass_material3.png differ diff --git a/Resources/Textures/_CP14/Objects/Materials/gold_scrap.rsi/scrap.png b/Resources/Textures/_CP14/Objects/Materials/gold_scrap.rsi/scrap.png index c5d57ef5fd..61ad56f9da 100644 Binary files a/Resources/Textures/_CP14/Objects/Materials/gold_scrap.rsi/scrap.png and b/Resources/Textures/_CP14/Objects/Materials/gold_scrap.rsi/scrap.png differ diff --git a/Resources/Textures/_CP14/Objects/Materials/gold_scrap.rsi/scrap_2.png b/Resources/Textures/_CP14/Objects/Materials/gold_scrap.rsi/scrap_2.png index 1fd5c8e094..f77f8350e6 100644 Binary files a/Resources/Textures/_CP14/Objects/Materials/gold_scrap.rsi/scrap_2.png and b/Resources/Textures/_CP14/Objects/Materials/gold_scrap.rsi/scrap_2.png differ diff --git a/Resources/Textures/_CP14/Objects/Materials/gold_scrap.rsi/scrap_3.png b/Resources/Textures/_CP14/Objects/Materials/gold_scrap.rsi/scrap_3.png index 02d33aa81c..00a3c41afc 100644 Binary files a/Resources/Textures/_CP14/Objects/Materials/gold_scrap.rsi/scrap_3.png and b/Resources/Textures/_CP14/Objects/Materials/gold_scrap.rsi/scrap_3.png differ diff --git a/Resources/Textures/_CP14/Objects/Materials/iron_scrap.rsi/scrap.png b/Resources/Textures/_CP14/Objects/Materials/iron_scrap.rsi/scrap.png index 2bc6b0027e..a30c93db1c 100644 Binary files a/Resources/Textures/_CP14/Objects/Materials/iron_scrap.rsi/scrap.png and b/Resources/Textures/_CP14/Objects/Materials/iron_scrap.rsi/scrap.png differ diff --git a/Resources/Textures/_CP14/Objects/Materials/iron_scrap.rsi/scrap_2.png b/Resources/Textures/_CP14/Objects/Materials/iron_scrap.rsi/scrap_2.png index 6da4edae46..0d490c22a3 100644 Binary files a/Resources/Textures/_CP14/Objects/Materials/iron_scrap.rsi/scrap_2.png and b/Resources/Textures/_CP14/Objects/Materials/iron_scrap.rsi/scrap_2.png differ diff --git a/Resources/Textures/_CP14/Objects/Materials/iron_scrap.rsi/scrap_3.png b/Resources/Textures/_CP14/Objects/Materials/iron_scrap.rsi/scrap_3.png index d15e3e731c..0a13193a97 100644 Binary files a/Resources/Textures/_CP14/Objects/Materials/iron_scrap.rsi/scrap_3.png and b/Resources/Textures/_CP14/Objects/Materials/iron_scrap.rsi/scrap_3.png differ diff --git a/Resources/Textures/_CP14/Objects/Materials/mithril_scrap.rsi/scrap.png b/Resources/Textures/_CP14/Objects/Materials/mithril_scrap.rsi/scrap.png index 3641056edf..008f2da704 100644 Binary files a/Resources/Textures/_CP14/Objects/Materials/mithril_scrap.rsi/scrap.png and b/Resources/Textures/_CP14/Objects/Materials/mithril_scrap.rsi/scrap.png differ diff --git a/Resources/Textures/_CP14/Objects/Materials/mithril_scrap.rsi/scrap_2.png b/Resources/Textures/_CP14/Objects/Materials/mithril_scrap.rsi/scrap_2.png index 243245cde0..a830886df0 100644 Binary files a/Resources/Textures/_CP14/Objects/Materials/mithril_scrap.rsi/scrap_2.png and b/Resources/Textures/_CP14/Objects/Materials/mithril_scrap.rsi/scrap_2.png differ diff --git a/Resources/Textures/_CP14/Objects/Materials/mithril_scrap.rsi/scrap_3.png b/Resources/Textures/_CP14/Objects/Materials/mithril_scrap.rsi/scrap_3.png index e36d5873e0..ddd36ab221 100644 Binary files a/Resources/Textures/_CP14/Objects/Materials/mithril_scrap.rsi/scrap_3.png and b/Resources/Textures/_CP14/Objects/Materials/mithril_scrap.rsi/scrap_3.png differ diff --git a/Resources/Textures/_CP14/Objects/Misc/reagent_fillings.rsi/meta.json b/Resources/Textures/_CP14/Objects/Misc/reagent_fillings.rsi/meta.json new file mode 100644 index 0000000000..1d5bbb9bd0 --- /dev/null +++ b/Resources/Textures/_CP14/Objects/Misc/reagent_fillings.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "All right reserved", + "copyright": "Created by Prazat", + "states": [ + { + "name": "tobacco_small" + }, + { + "name": "sage_powder" + } + ] +} diff --git a/Resources/Textures/_CP14/Objects/Misc/reagent_fillings.rsi/sage_powder.png b/Resources/Textures/_CP14/Objects/Misc/reagent_fillings.rsi/sage_powder.png new file mode 100644 index 0000000000..f4ab765f96 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Misc/reagent_fillings.rsi/sage_powder.png differ diff --git a/Resources/Textures/_CP14/Objects/Misc/reagent_fillings.rsi/tobacco_small.png b/Resources/Textures/_CP14/Objects/Misc/reagent_fillings.rsi/tobacco_small.png new file mode 100644 index 0000000000..010cb08f53 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Misc/reagent_fillings.rsi/tobacco_small.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/icon.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/icon.png index aa7842adfd..c0081364cd 100644 Binary files a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/icon.png and b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/icon.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-left.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-left.png index 049d3fdfe0..1b2bd09777 100644 Binary files a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-left.png and b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-left.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-right.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-right.png index 049d3fdfe0..1b2bd09777 100644 Binary files a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-right.png and b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/inhand-right.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/meta.json b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/meta.json index a034ae464a..194b4f885c 100644 --- a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/meta.json +++ b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, - "license": "CC-BY-SA-4.0", - "copyright": "Created by TheShuEd (Github)", + "license": "All right reserved", + "copyright": "Created by TheShuEd (Github) & resprite omsoyk (discord)", "size": { "x": 48, "y": 48 diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-left.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-left.png index 049d3fdfe0..1b2bd09777 100644 Binary files a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-left.png and b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-right.png b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-right.png index 049d3fdfe0..1b2bd09777 100644 Binary files a/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-right.png and b/Resources/Textures/_CP14/Objects/Specific/Alchemy/cauldron.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/blank.png b/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/blank.png deleted file mode 100644 index 7ee468b5b2..0000000000 Binary files a/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/blank.png and /dev/null differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/dagger.png b/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/dagger.png deleted file mode 100644 index f7dec4a846..0000000000 Binary files a/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/dagger.png and /dev/null differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/meta.json b/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/meta.json deleted file mode 100644 index a080cf8b2c..0000000000 --- a/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/meta.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "license": "CC-BY-SA-4.0", - "copyright": "Created by TheShuEd (Github) ", - "states": [ - { - "name": "blank" - }, - { - "name": "dagger" - }, - { - "name": "nails" - }, - { - "name": "pickaxe" - }, - { - "name": "shovel" - }, - { - "name": "sickle" - }, - { - "name": "sword" - }, - { - "name": "throwable_spear" - }, - { - "name": "two_handed_sword" - } - ] -} \ No newline at end of file diff --git a/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/nails.png b/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/nails.png deleted file mode 100644 index b0f4584264..0000000000 Binary files a/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/nails.png and /dev/null differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/pickaxe.png b/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/pickaxe.png deleted file mode 100644 index 311a7e82d7..0000000000 Binary files a/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/pickaxe.png and /dev/null differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/shovel.png b/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/shovel.png deleted file mode 100644 index ec3f89b085..0000000000 Binary files a/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/shovel.png and /dev/null differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/sickle.png b/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/sickle.png deleted file mode 100644 index 807bf0a7b4..0000000000 Binary files a/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/sickle.png and /dev/null differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/sword.png b/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/sword.png deleted file mode 100644 index e5565706c0..0000000000 Binary files a/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/sword.png and /dev/null differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/throwable_spear.png b/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/throwable_spear.png deleted file mode 100644 index ee65b805dc..0000000000 Binary files a/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/throwable_spear.png and /dev/null differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/two_handed_sword.png b/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/two_handed_sword.png deleted file mode 100644 index 38a818c8fa..0000000000 Binary files a/Resources/Textures/_CP14/Objects/Specific/Blacksmith/melting_molds.rsi/two_handed_sword.png and /dev/null differ diff --git a/Resources/Textures/_CP14/Objects/Specific/Thaumaturgy/essence.rsi/meta.json b/Resources/Textures/_CP14/Objects/Specific/Thaumaturgy/essence.rsi/meta.json new file mode 100644 index 0000000000..4ea98bd5e8 --- /dev/null +++ b/Resources/Textures/_CP14/Objects/Specific/Thaumaturgy/essence.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "Created by TheShuEd (Discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "small", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/_CP14/Objects/Specific/Thaumaturgy/essence.rsi/small.png b/Resources/Textures/_CP14/Objects/Specific/Thaumaturgy/essence.rsi/small.png new file mode 100644 index 0000000000..90bdd47491 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Specific/Thaumaturgy/essence.rsi/small.png differ diff --git a/Resources/Textures/_CP14/Objects/Tools/flint.rsi/icon.png b/Resources/Textures/_CP14/Objects/Tools/flint.rsi/icon.png index f3b04643fa..485c0acaa0 100644 Binary files a/Resources/Textures/_CP14/Objects/Tools/flint.rsi/icon.png and b/Resources/Textures/_CP14/Objects/Tools/flint.rsi/icon.png differ diff --git a/Resources/Textures/_CP14/Objects/Tools/flint.rsi/inhand-left.png b/Resources/Textures/_CP14/Objects/Tools/flint.rsi/inhand-left.png new file mode 100644 index 0000000000..4dc802ab71 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Tools/flint.rsi/inhand-left.png differ diff --git a/Resources/Textures/_CP14/Objects/Tools/flint.rsi/inhand-right.png b/Resources/Textures/_CP14/Objects/Tools/flint.rsi/inhand-right.png new file mode 100644 index 0000000000..428f172fb1 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Tools/flint.rsi/inhand-right.png differ diff --git a/Resources/Textures/_CP14/Objects/Tools/flint.rsi/meta.json b/Resources/Textures/_CP14/Objects/Tools/flint.rsi/meta.json index 21dce574be..be41d69f24 100644 --- a/Resources/Textures/_CP14/Objects/Tools/flint.rsi/meta.json +++ b/Resources/Textures/_CP14/Objects/Tools/flint.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-4.0", - "copyright": "Created by TheShuEd (Discord)", + "copyright": "Created by omsoyk (Discord)", "size": { "x": 32, "y": 32 @@ -9,6 +9,14 @@ "states": [ { "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 } ] } diff --git a/Resources/Textures/_CP14/Structures/Dungeon/demiplan_rift_core.rsi/connective.png b/Resources/Textures/_CP14/Structures/Dungeon/demiplan_rift_core.rsi/connective.png new file mode 100644 index 0000000000..b4e2e55fa8 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Dungeon/demiplan_rift_core.rsi/connective.png differ diff --git a/Resources/Textures/_CP14/Structures/Dungeon/demiplan_rift_core.rsi/core.png b/Resources/Textures/_CP14/Structures/Dungeon/demiplan_rift_core.rsi/core.png index d37b98aa15..f478826b2e 100644 Binary files a/Resources/Textures/_CP14/Structures/Dungeon/demiplan_rift_core.rsi/core.png and b/Resources/Textures/_CP14/Structures/Dungeon/demiplan_rift_core.rsi/core.png differ diff --git a/Resources/Textures/_CP14/Structures/Dungeon/demiplan_rift_core.rsi/meta.json b/Resources/Textures/_CP14/Structures/Dungeon/demiplan_rift_core.rsi/meta.json index 94ffa2be6e..d72cd21664 100644 --- a/Resources/Textures/_CP14/Structures/Dungeon/demiplan_rift_core.rsi/meta.json +++ b/Resources/Textures/_CP14/Structures/Dungeon/demiplan_rift_core.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC0-1.0", - "copyright": "Created by TheShuEd (github) for ss14", + "copyright": "Core created by TheShuEd, connective created by omsoyk", "size": { "x": 32, "y": 32 @@ -11,13 +11,19 @@ "name": "core" }, { - "name": "pulse", + "name": "connective", "delays": [ [ - 0.15625, - 0.15625, - 0.15625, - 0.15625 + 0.15, + 0.15, + 0.15, + 0.15, + 0.15, + 0.15, + 0.15, + 0.15, + 0.15, + 0.15 ] ] } diff --git a/Resources/Textures/_CP14/Structures/Dungeon/demiplan_rift_core.rsi/pulse.png b/Resources/Textures/_CP14/Structures/Dungeon/demiplan_rift_core.rsi/pulse.png deleted file mode 100644 index c9e239e515..0000000000 Binary files a/Resources/Textures/_CP14/Structures/Dungeon/demiplan_rift_core.rsi/pulse.png and /dev/null differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/full.png b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/full.png index 51f324ab98..5ce89a8332 100644 Binary files a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/full.png and b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/full.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq1.png b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq1.png index 4ac6b8c58f..71ae8da9d0 100644 Binary files a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq1.png and b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq1.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq2.png b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq2.png index f66b3f6ce1..a32b481069 100644 Binary files a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq2.png and b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq2.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq3.png b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq3.png index 1733991089..a01a6036ac 100644 Binary files a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq3.png and b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq3.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq4.png b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq4.png index e435564e4f..c93b1c9fe1 100644 Binary files a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq4.png and b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq4.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq5.png b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq5.png index a3acd94dca..2f9541767a 100644 Binary files a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq5.png and b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq5.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq6.png b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq6.png index ad0b606b9d..08aa64f578 100644 Binary files a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq6.png and b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/liq6.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/meta.json b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/meta.json index 9f9ef5555b..792c942f04 100644 --- a/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/meta.json +++ b/Resources/Textures/_CP14/Structures/Specific/Alchemy/alchemy_vat.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "All right reserved", - "copyright": "Created by Jaraten", + "copyright": "Created by Jaraten & resprite omsoyk (discord)", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/Spreader.rsi/crystal.png b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/Spreader.rsi/crystal.png deleted file mode 100644 index 2a0d186de1..0000000000 Binary files a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/Spreader.rsi/crystal.png and /dev/null differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/Spreader.rsi/spreader.png b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/Spreader.rsi/spreader.png deleted file mode 100644 index 8690e6da04..0000000000 Binary files a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/Spreader.rsi/spreader.png and /dev/null differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/demiplane_analyzer.rsi/analyzer.png b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/demiplane_analyzer.rsi/analyzer.png new file mode 100644 index 0000000000..0f94b007e4 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/demiplane_analyzer.rsi/analyzer.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/demiplane_analyzer.rsi/crystal.png b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/demiplane_analyzer.rsi/crystal.png new file mode 100644 index 0000000000..b8d7354cdc Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/demiplane_analyzer.rsi/crystal.png differ diff --git a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/Spreader.rsi/meta.json b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/demiplane_analyzer.rsi/meta.json similarity index 67% rename from Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/Spreader.rsi/meta.json rename to Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/demiplane_analyzer.rsi/meta.json index 573988accd..52b5c7d622 100644 --- a/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/Spreader.rsi/meta.json +++ b/Resources/Textures/_CP14/Structures/Specific/Thaumaturgy/demiplane_analyzer.rsi/meta.json @@ -1,14 +1,14 @@ { "version": 1, "license": "All right reserved", - "copyright": "Created by Jaraten (discord/github) ", + "copyright": "Created by TheShuEd (github) ", "size": { "x": 32, "y": 48 }, "states": [ { - "name": "spreader" + "name": "analyzer" }, { "name": "crystal" diff --git a/Resources/migration.yml b/Resources/migration.yml index 6d2d5fedfc..fce40313d0 100644 --- a/Resources/migration.yml +++ b/Resources/migration.yml @@ -3,7 +3,7 @@ # 2024-08-24 CP14DungeonEntrance: CP14LaddersDownStoneAutoLink CP14DungeonExit: CP14LaddersUpStoneAutoLink -CP14Nail110: CP14Nail10 +CP14Nail110: CP14Nail20 # 2024-09-09 CP14AlchemyFurnaceDebug: CP14AlchemyFurnace @@ -231,14 +231,15 @@ CP14CrystalDiamondsSmall: CP14CrystalElementalLightSmall CP14CrystalDiamondsMedium: CP14CrystalElementalLightMedium CP14CrystalDiamondsBig: CP14CrystalElementalLightBig -CP14QuartzCrystal: null -CP14QuartzShard: null +CP14QuartzCrystal: CP14CrystalMedium +CP14QuartzShard: CP14CrystalShardBase #2025-30-01 CP14OreCopper: CP14OreCopper1 CP14OreIron: CP14OreIron1 CP14OreGold: CP14OreGold1 CP14OreMithril: CP14OreMithril1 +CP14Nail10: CP14Nail20 # <---> CrystallEdge migration zone end diff --git a/signatures/version1/cla.json b/signatures/version1/cla.json index 6ff9071a2f..b494c36ea0 100644 --- a/signatures/version1/cla.json +++ b/signatures/version1/cla.json @@ -23,6 +23,14 @@ "created_at": "2025-01-31T01:19:01Z", "repoId": 778936029, "pullRequestNo": 827 + }, + { + "name": "creamybag", + "id": 196452096, + "comment_id": 2634983628, + "created_at": "2025-02-04T20:24:34Z", + "repoId": 778936029, + "pullRequestNo": 839 } ] } \ No newline at end of file