From 823f395c46f7c2b63f32d4c9178e47592f88d165 Mon Sep 17 00:00:00 2001 From: Dvir <39403717+dvir001@users.noreply.github.com> Date: Wed, 16 Oct 2024 11:56:28 +0300 Subject: [PATCH 01/11] FuelVend Update (#2255) * Fuel * Update chemical-containers.yml * Fuel-grade material sprites, fuel-grade eject * Reduce dependencies * Give sprite source * Update fuelvend.yml * Update portable_generator.yml --------- Co-authored-by: Whatstone --- .../Power/Generator/GeneratorSystem.cs | 16 ++++- .../SolidFuelGeneratorAdapterComponent.cs | 8 +++ .../Objects/Materials/Sheets/other.yml | 13 +--- .../Xenoarchaeology/item_artifacts.yml | 4 +- .../Power/Generation/portable_generator.yml | 2 + .../Fills/StorageFillTemplates/materials.yml | 10 +-- .../VendingMachines/Inventories/fuelvend.yml | 5 +- .../Objects/Specific/chemical-containers.yml | 58 ++++++++++++++++++ .../Power/Generation/portable_generator.yml | 3 +- .../Fuel/fuelgrade_material.rsi/bananium.png | Bin 0 -> 577 bytes .../Fuel/fuelgrade_material.rsi/meta.json | 20 ++++++ .../Fuel/fuelgrade_material.rsi/plasma.png | Bin 0 -> 440 bytes .../Fuel/fuelgrade_material.rsi/uranium.png | Bin 0 -> 714 bytes 13 files changed, 114 insertions(+), 25 deletions(-) create mode 100644 Resources/Textures/_NF/Objects/Specific/Fuel/fuelgrade_material.rsi/bananium.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Fuel/fuelgrade_material.rsi/meta.json create mode 100644 Resources/Textures/_NF/Objects/Specific/Fuel/fuelgrade_material.rsi/plasma.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Fuel/fuelgrade_material.rsi/uranium.png diff --git a/Content.Server/Power/Generator/GeneratorSystem.cs b/Content.Server/Power/Generator/GeneratorSystem.cs index 02351c8dab6..e2c551c103c 100644 --- a/Content.Server/Power/Generator/GeneratorSystem.cs +++ b/Content.Server/Power/Generator/GeneratorSystem.cs @@ -1,4 +1,3 @@ -using System.Linq; using Content.Server.Audio; using Content.Server.Fluids.EntitySystems; using Content.Server.Materials; @@ -12,6 +11,7 @@ using Robust.Server.GameObjects; using Content.Shared.Radiation.Components; // Frontier using Content.Shared.Audio; // Frontier +using Content.Shared.Materials; // Frontier namespace Content.Server.Power.Generator; @@ -68,7 +68,19 @@ private void OnEjectFuel(EntityUid uid, FuelGeneratorComponent component, Portab private void SolidEmpty(EntityUid uid, SolidFuelGeneratorAdapterComponent component, GeneratorEmpty args) { - _materialStorage.EjectAllMaterial(uid); + // Frontier: eject fuel-grade material + if (component.EjectedFuelProtoId == null) + _materialStorage.EjectAllMaterial(uid); + else + { + int materialAmount = _materialStorage.GetMaterialAmount(uid, component.FuelMaterial); + _materialStorage.TryChangeMaterialAmount(uid, component.FuelMaterial, -materialAmount); + + var ejectedUid = Spawn(component.EjectedFuelProtoId, Transform(uid).Coordinates); + if (TryComp(ejectedUid, out var phys)) + phys.MaterialComposition[component.FuelMaterial] = materialAmount; + } + // End Frontier } private void ChemicalEmpty(Entity entity, ref GeneratorEmpty args) diff --git a/Content.Server/Power/Generator/SolidFuelGeneratorAdapterComponent.cs b/Content.Server/Power/Generator/SolidFuelGeneratorAdapterComponent.cs index 61c69f2a235..0274f8fe42a 100644 --- a/Content.Server/Power/Generator/SolidFuelGeneratorAdapterComponent.cs +++ b/Content.Server/Power/Generator/SolidFuelGeneratorAdapterComponent.cs @@ -1,6 +1,7 @@ using Content.Shared.Materials; using Content.Shared.Power.Generator; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; +using Robust.Shared.Prototypes; // Frontier namespace Content.Server.Power.Generator; @@ -37,4 +38,11 @@ public sealed partial class SolidFuelGeneratorAdapterComponent : Component /// [DataField("multiplier"), ViewVariables(VVAccess.ReadWrite)] public float Multiplier; + + /// + /// Frontier: entity to spawn for ejected fuel. If null, will spawn material stacks as normal. + /// + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] + [ViewVariables(VVAccess.ReadWrite)] + public string? EjectedFuelProtoId; } diff --git a/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml b/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml index 306d10c9289..9d7fa9492af 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml @@ -73,8 +73,6 @@ - type: Stack count: 1 -# New Frontiers - FuelVend - Expensive plasma sheets -# This code is licensed under AGPLv3. See LICENSE - type: entity parent: SheetOtherBase id: SheetPlasma @@ -112,10 +110,6 @@ - type: Tag tags: - Sheet - - type: StackPrice - price: 10 - vendPrice: 1200 # Frontier: FuelVend price -# End of modified code - type: entity parent: SheetPlasma @@ -201,8 +195,6 @@ - type: Stack count: 1 -# New Frontiers - FuelVend - Expensive uranium sheets -# This code is licensed under AGPLv3. See LICENSE - type: entity parent: [SheetOtherBase, FoodBase] id: SheetUranium @@ -242,9 +234,6 @@ - ReagentId: Radium Quantity: 2 canReact: false - - type: StaticPrice # Frontier: FuelVend price (use inheritance from FoodBase) - vendPrice: 2500 # Frontier: FuelVend price -# End of modified code - type: entity parent: SheetUranium @@ -303,4 +292,4 @@ - type: Sprite state: meat - type: Stack - count: 1 + count: 1 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_artifacts.yml b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_artifacts.yml index 407f51b32e2..ab9093d734d 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_artifacts.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_artifacts.yml @@ -158,8 +158,8 @@ reagents: - ReagentId: Artifexium Quantity: 2 # Frontier 10<2 - # - type: StaticPrice # Frontier - # price: 0 # Frontier + - type: StaticPrice + price: 0 - type: StackPrice # Frontier price: 160 # Frontier - 240 at cargo depot, 960 for an artifact's worth (~2x the value of a crafted, unactivated one) - type: Stack diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml index c6c1fb88a0f..d5756f98bdb 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml @@ -165,6 +165,7 @@ fuelEfficiencyConstant: 0.95 - type: SolidFuelGeneratorAdapter fuelMaterial: Plasma + ejectedFuelProtoId: FuelPlasma # Frontier multiplier: 0.01 - type: MaterialStorage storageLimit: 3000 @@ -231,6 +232,7 @@ fuelEfficiencyConstant: 0.75 - type: SolidFuelGeneratorAdapter fuelMaterial: Uranium + ejectedFuelProtoId: FuelUranium # Frontier multiplier: 0.01 - type: MaterialStorage storageLimit: 3000 diff --git a/Resources/Prototypes/_NF/Catalog/Fills/StorageFillTemplates/materials.yml b/Resources/Prototypes/_NF/Catalog/Fills/StorageFillTemplates/materials.yml index 26b5da59489..ab564dde444 100644 --- a/Resources/Prototypes/_NF/Catalog/Fills/StorageFillTemplates/materials.yml +++ b/Resources/Prototypes/_NF/Catalog/Fills/StorageFillTemplates/materials.yml @@ -5,7 +5,7 @@ components: - type: StorageFill contents: - - id: SheetPlasma + - id: FuelPlasma - type: entity # Full stack abstract: true @@ -13,7 +13,7 @@ components: - type: StorageFill contents: - - id: SheetUranium + - id: FuelUranium - type: entity # Full stack abstract: true @@ -21,7 +21,7 @@ components: - type: StorageFill contents: - - id: SheetPlasma + - id: FuelPlasma amount: 2 - type: entity # Full stack @@ -30,7 +30,7 @@ components: - type: StorageFill contents: - - id: SheetUranium + - id: FuelUranium amount: 2 - type: entity # Full stack @@ -39,7 +39,7 @@ components: - type: StorageFill contents: - - id: MaterialBananium + - id: FuelBananium - type: entity abstract: true diff --git a/Resources/Prototypes/_NF/Catalog/VendingMachines/Inventories/fuelvend.yml b/Resources/Prototypes/_NF/Catalog/VendingMachines/Inventories/fuelvend.yml index 6bde9d51171..540301e5edb 100644 --- a/Resources/Prototypes/_NF/Catalog/VendingMachines/Inventories/fuelvend.yml +++ b/Resources/Prototypes/_NF/Catalog/VendingMachines/Inventories/fuelvend.yml @@ -4,7 +4,8 @@ - type: vendingMachineInventory id: VendingMachineFuelVendInventory startingInventory: - SheetPlasma: 4294967295 # Infinite - SheetUranium: 4294967295 # Infinite + FuelPlasma: 4294967295 # Infinite + FuelUranium: 4294967295 # Infinite + FuelBananium: 4294967295 # Infinite AmeJar: 4294967295 # Infinite JerryCanWeldingFuel: 4294967295 # Infinite diff --git a/Resources/Prototypes/_NF/Entities/Objects/Specific/chemical-containers.yml b/Resources/Prototypes/_NF/Entities/Objects/Specific/chemical-containers.yml index 923a3a96192..adb3f457328 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Specific/chemical-containers.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Specific/chemical-containers.yml @@ -114,3 +114,61 @@ Quantity: 200 - type: StaticPrice # Frontier vendPrice: 500 # Frontier + +# Fuel-grade items +- type: entity + parent: BaseItem + id: FuelPlasma + name: fuel-grade plasma + description: A rod made of desaturated plasma, suitable for fuel. + components: + - type: Material + - type: PhysicalComposition + materialComposition: + Plasma: 2000 + - type: Sprite + sprite: _NF/Objects/Specific/Fuel/fuelgrade_material.rsi + layers: + - state: plasma + - type: Appearance + - type: StaticPrice + price: 0 + vendPrice: 1200 + +- type: entity + parent: BaseItem + id: FuelUranium + name: fuel-grade uranium + description: A rod made of semi-processed uranium, suitable for fuel. + components: + - type: Material + - type: PhysicalComposition + materialComposition: + Uranium: 2000 + - type: Sprite + sprite: _NF/Objects/Specific/Fuel/fuelgrade_material.rsi + layers: + - state: uranium + - type: Appearance + - type: StaticPrice + price: 0 + vendPrice: 2500 + +- type: entity + parent: BaseItem + id: FuelBananium + name: fuel-grade bananium + description: A rod made from pressed bananium peels, suitable for fuel. + components: + - type: Material + - type: PhysicalComposition + materialComposition: + Bananium: 2000 + - type: Sprite + sprite: _NF/Objects/Specific/Fuel/fuelgrade_material.rsi + layers: + - state: bananium + - type: Appearance + - type: StaticPrice + price: 0 + vendPrice: 5000 diff --git a/Resources/Prototypes/_NF/Entities/Structures/Power/Generation/portable_generator.yml b/Resources/Prototypes/_NF/Entities/Structures/Power/Generation/portable_generator.yml index d72f96c5894..e8731f68083 100644 --- a/Resources/Prototypes/_NF/Entities/Structures/Power/Generation/portable_generator.yml +++ b/Resources/Prototypes/_NF/Entities/Structures/Power/Generation/portable_generator.yml @@ -3,8 +3,6 @@ id: BaseGeneratorShuttle abstract: true components: - - type: FuelGenerator - on: true - type: Transform anchored: true - type: Physics @@ -94,6 +92,7 @@ radiationColor: "#00bfff" - type: SolidFuelGeneratorAdapter fuelMaterial: Bananium + ejectedFuelProtoId: FuelBananium - type: MaterialStorage materialWhiteList: [Bananium] - type: PowerMonitoringDevice diff --git a/Resources/Textures/_NF/Objects/Specific/Fuel/fuelgrade_material.rsi/bananium.png b/Resources/Textures/_NF/Objects/Specific/Fuel/fuelgrade_material.rsi/bananium.png new file mode 100644 index 0000000000000000000000000000000000000000..96360749fd599634dcd7ebbdc58ea497fbd33692 GIT binary patch literal 577 zcmV-H0>1r;P)3X!&Xo?zms+Leed@^{`>48XB(qhQ0lK;=Yv$gvPI43jnm90WcaG z0QUBu((8`-`s0h!E0KV&`+pPnuN0N4M2K~?p0TqVFd7=ZfBOln`RltDT?E2L;)!o= z<|%_9F~6yk~FBt}EyodxgBY1Z4eS#R6JPJtIMXA9@bWf>ipN&x`B%w0qRpns*j zspE1IXw+KvekN*O?Adb>Q2?AIKAqV_<4{Wp z%uVLEp(q6tr6UST-6CZ^A~Bgv`S5<0+BnqGr=VGHFU$hC=b_gfFEtM9xn63iX23-P zxKBJyOuW*!AWi|m7?w`8ua2*g)K5Vi^~L3R&R5W9zLL`ZTx80W=`s2XZvGs7k5tyT P00000NkvXXu0mjfNUH~X literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Fuel/fuelgrade_material.rsi/meta.json b/Resources/Textures/_NF/Objects/Specific/Fuel/fuelgrade_material.rsi/meta.json new file mode 100644 index 00000000000..21b63619775 --- /dev/null +++ b/Resources/Textures/_NF/Objects/Specific/Fuel/fuelgrade_material.rsi/meta.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "copyright": "Made by Whatstone based sprites from tgstation at commit https://github.com/tgstation/tgstation/commit/c6e3401f2e7e1e55c57060cdf956a98ef1fefc24", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "bananium" + }, + { + "name": "plasma" + }, + { + "name": "uranium" + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Specific/Fuel/fuelgrade_material.rsi/plasma.png b/Resources/Textures/_NF/Objects/Specific/Fuel/fuelgrade_material.rsi/plasma.png new file mode 100644 index 0000000000000000000000000000000000000000..6a0404976141f1967eddad0033b4af5b9fd12115 GIT binary patch literal 440 zcmV;p0Z0CcP)X9_ejG8%yEGW2LO7% z163><7qr8n1+N}yBiYf)k7-?Rk>;89{im-N^c67bfC8W05+K%fB!0JRGMI`^6dTtxw(Gx;W9DWhu`6|n-P zdDeypTv>m!dN2k{4L;bJg@D(Gjhir~A$P+39Zo#)1Y69zcYUHUYg5IT-PC_yPDBT>KKAJQ;6ZJ?g=jNQfe&QW8;7 zkP1QzwB0S!+4WE$O|-N{x%GE`XP%j7-hH#sOE10ja!Hxa&W6+3*|1%mxC}5r>;c$m zo5SaI7ILpza_s*NPCs-Q92sQm;}-Q|z3sYxHgF1_nV+I$N))~nFrLA^=Hl=Ah^XM; zscvcE!UmdetoJqfPkHpd20-;G_TTQ4%qBU?9RZP+`*dxf87w1`{=t6wB7Njma%VNV zs8MOv0K^4hC2ZLX9UEu{tAs+AHCDu8XMG22+(Lwc%w&e;H_L=N#NYH0w!luo8>Jb}@VI?eT8#QEH68HgF zja~q#FEyI5s~%V@tsx!B-itll8!n_k8AU)qd9e(DOiApNjknr_lQr%(cAj0PDUku!N(nN5w4)VSI2uT+Jf5}07%_W zVSX7*$zZC6=x7xEv(b16FrLA9hS<#*)z8(F8;g#>Z4E%fLVC_YZ|ajz38W*juiI2t ztGFXB0Ef>SBexsyX}X$(x~NgN6y^725_b}mo*Z8oe438tfXvj0XX1@R>}kB0oxgFr wbYviPF9ksHagA=@_`jsnpNn34>E$B%4JMBuDd*Zhc>n+a07*qoM6N<$g6LyQxBvhE literal 0 HcmV?d00001 From 31c1befb4f59f1c81ecb20721fc4fd515b1cbe93 Mon Sep 17 00:00:00 2001 From: Whatstone <166147148+whatston3@users.noreply.github.com> Date: Wed, 16 Oct 2024 06:11:53 -0400 Subject: [PATCH 02/11] Respawn timer fix: show correct time on reconnect (#2227) --- .../Corvax/Respawn/RespawnSystem.cs | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/Content.Server/Corvax/Respawn/RespawnSystem.cs b/Content.Server/Corvax/Respawn/RespawnSystem.cs index 9c2a6ece62b..29563a3c6e9 100644 --- a/Content.Server/Corvax/Respawn/RespawnSystem.cs +++ b/Content.Server/Corvax/Respawn/RespawnSystem.cs @@ -45,12 +45,14 @@ public override void Initialize() SubscribeLocalEvent(OnCryoBeforeMindRemoved); SubscribeLocalEvent(OnCryoWakeUp); - _admin.OnPermsChanged += OnAdminPermsChanged; + _admin.OnPermsChanged += OnAdminPermsChanged; // Frontier + _player.PlayerStatusChanged += PlayerStatusChanged; // Frontier - Subs.CVar(_cfg, NFCCVars.RespawnCryoFirstTime, OnRespawnCryoFirstTimeChanged, true); - Subs.CVar(_cfg, NFCCVars.RespawnTime, OnRespawnCryoTimeChanged, true); + Subs.CVar(_cfg, NFCCVars.RespawnCryoFirstTime, OnRespawnCryoFirstTimeChanged, true); // Frontier + Subs.CVar(_cfg, NFCCVars.RespawnTime, OnRespawnCryoTimeChanged, true); // Frontier } + // Frontier: CVar setters private void OnRespawnCryoFirstTimeChanged(float value) { _respawnTimeOnFirstCryo = value; @@ -60,6 +62,7 @@ private void OnRespawnCryoTimeChanged(float value) { _respawnTime = value; } + // End Frontier private void OnMobStateChanged(EntityUid entity, MindContainerComponent component, MobStateChangedEvent e) { @@ -172,4 +175,17 @@ private ref RespawnData GetRespawnData(NetUserId player) _respawnInfo[player] = new RespawnData(); return ref CollectionsMarshal.GetValueRefOrNullRef(_respawnInfo, player); } + + // Frontier: send ghost timer on player connection + private void PlayerStatusChanged(object? _, SessionStatusEventArgs args) + { + var session = args.Session; + + if (args.NewStatus == Robust.Shared.Enums.SessionStatus.InGame && + _respawnInfo.ContainsKey(session.UserId)) + { + RaiseNetworkEvent(new RespawnResetEvent(_respawnInfo[session.UserId].RespawnTime), session); + } + } + // End Frontier } From ea0e43dc51fd6931ccf114a2d414f5029598af28 Mon Sep 17 00:00:00 2001 From: FrontierATC Date: Wed, 16 Oct 2024 10:12:20 +0000 Subject: [PATCH 03/11] Automatic Changelog (#2227) --- Resources/Changelog/Frontier.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Resources/Changelog/Frontier.yml b/Resources/Changelog/Frontier.yml index 70f061c1bc1..61b08cfb3c7 100644 --- a/Resources/Changelog/Frontier.yml +++ b/Resources/Changelog/Frontier.yml @@ -4597,3 +4597,9 @@ Entries: were increased. id: 5407 time: '2024-10-15T23:58:44.0000000+00:00' +- author: whatston3 + changes: + - type: Fix + message: Respawn timers are now properly shown on reconnect. + id: 5408 + time: '2024-10-16T10:11:54.0000000+00:00' From f6abf854bd83ac054088aed528193206eae0e685 Mon Sep 17 00:00:00 2001 From: ErhardSteinhauer <65374927+ErhardSteinhauer@users.noreply.github.com> Date: Wed, 16 Oct 2024 13:12:38 +0300 Subject: [PATCH 04/11] Halloween: new Admeme mob - The Goblinbane (#2177) * Goblinbane * goblinbane, faction clothes * fixes, toilet spawner * toilet spawners in expeds and POIs * fixes * retaliation, modest regen * ghostrole stuff * rules adjusted * rules revised again * ftl fix * Fixup * Update mob_meme_goblinbane.yml --------- Co-authored-by: Dvir <39403717+dvir001@users.noreply.github.com> Co-authored-by: Dvir --- .../advertisements/mobchatter/goblinbane.ftl | 20 ++ .../_NF/ghost/roles/ghost-role-component.ftl | 12 + Resources/Maps/_NF/Dungeon/cave_factory.yml | 2 +- Resources/Maps/_NF/Dungeon/experiment.yml | 2 +- Resources/Maps/_NF/Dungeon/haunted.yml | 2 +- Resources/Maps/_NF/Dungeon/lava_brig.yml | 2 +- Resources/Maps/_NF/Dungeon/lava_mercenary.yml | 2 +- .../Maps/_NF/Dungeon/salvage_outpost.yml | 2 +- Resources/Maps/_NF/Dungeon/snowy_labs.yml | 2 +- Resources/Maps/_NF/Dungeon/virology_lab.yml | 4 +- Resources/Maps/_NF/POI/grifty.yml | 2 +- Resources/Maps/_NF/POI/mchobo.yml | 2 +- .../Entities/Clothing/Belt/belts.yml | 2 +- .../Entities/Clothing/OuterClothing/misc.yml | 6 +- .../Clothing/OuterClothing/wintercoats.yml | 2 +- .../Entities/Clothing/Shoes/specific.yml | 2 +- .../Entities/Clothing/Uniforms/jumpskirts.yml | 2 +- .../Entities/Clothing/Uniforms/jumpsuits.yml | 4 +- .../_NF/Catalog/NPCsChatter/goblinbane.yml | 5 + .../_NF/Entities/Clothing/Belt/belts.yml | 2 +- .../_NF/Entities/Clothing/Head/hats.yml | 14 +- .../_NF/Entities/Clothing/Neck/misc.yml | 2 +- .../_NF/Entities/Clothing/Neck/scarfs.yml | 2 +- .../Entities/Clothing/OuterClothing/coats.yml | 6 +- .../Entities/Clothing/Uniforms/jumpsuits.yml | 2 +- .../Clothing/contraband_clothing_base.yml | 6 - .../Clothing/faction_clothing_base.yml | 20 ++ .../Conditional/mobs_meme_goblinbane.yml | 107 +++++++ .../Spawners/Random/mobs_meme_goblinbane.yml | 23 ++ .../Spawners/Random/possessed_toilet.yml | 19 ++ .../Mobs/NPCs/mob_meme_goblinbane.yml | 264 ++++++++++++++++ .../Mobs/NPCs/mob_meme_goblinbane_minions.yml | 282 ++++++++++++++++++ .../Guns/Ammunition/Projectiles/chem.yml | 28 +- .../Structures/Specific/aberrant_flesh.yml | 2 +- .../Entities/Structures/Specific/argocyte.yml | 2 +- .../Structures/Specific/bloodcult.yml | 2 +- .../Structures/Specific/dinosaurs.yml | 2 +- .../Structures/Specific/explorers.yml | 2 +- .../Structures/Specific/mercenaries.yml | 2 +- .../Entities/Structures/Specific/punks.yml | 2 +- .../Structures/Specific/roguesilicons.yml | 2 +- .../Structures/Specific/syndicate.yml | 2 +- Resources/Prototypes/_NF/NPCs/mobs.yml | 26 ++ Resources/Prototypes/_NF/ai_factions.yml | 119 ++++++++ .../_NF/Mobs/Meme/goblinbane.rsi/alive.png | Bin 0 -> 8996 bytes .../Meme/goblinbane.rsi/alive_unshaded.png | Bin 0 -> 1978 bytes .../Mobs/Meme/goblinbane.rsi/bucket_alive.png | Bin 0 -> 2362 bytes .../Mobs/Meme/goblinbane.rsi/bucket_dead.png | Bin 0 -> 667 bytes .../Meme/goblinbane.rsi/bucket_portal.png | Bin 0 -> 1278 bytes .../Meme/goblinbane.rsi/bucket_unshaded.png | Bin 0 -> 871 bytes .../_NF/Mobs/Meme/goblinbane.rsi/dead.png | Bin 0 -> 1037 bytes .../Meme/goblinbane.rsi/dead_unshaded.png | Bin 0 -> 107 bytes .../_NF/Mobs/Meme/goblinbane.rsi/ghost.png | Bin 0 -> 10375 bytes .../Meme/goblinbane.rsi/ghost_unshaded.png | Bin 0 -> 3833 bytes .../_NF/Mobs/Meme/goblinbane.rsi/meta.json | 111 +++++++ .../Mobs/Meme/goblinbane.rsi/mop_alive.png | Bin 0 -> 949 bytes .../_NF/Mobs/Meme/goblinbane.rsi/mop_dead.png | Bin 0 -> 536 bytes .../Meme/goblinbane.rsi/mop_dead_unshaded.png | Bin 0 -> 319 bytes .../Mobs/Meme/goblinbane.rsi/mop_unshaded.png | Bin 0 -> 596 bytes .../Mobs/Meme/goblinbane.rsi/spray_alive.png | Bin 0 -> 1081 bytes .../Mobs/Meme/goblinbane.rsi/spray_dead.png | Bin 0 -> 390 bytes .../goblinbane.rsi/spray_dead_unshaded.png | Bin 0 -> 242 bytes .../Meme/goblinbane.rsi/spray_unshaded.png | Bin 0 -> 783 bytes 63 files changed, 1072 insertions(+), 56 deletions(-) create mode 100644 Resources/Locale/en-US/_NF/advertisements/mobchatter/goblinbane.ftl create mode 100644 Resources/Prototypes/_NF/Catalog/NPCsChatter/goblinbane.yml delete mode 100644 Resources/Prototypes/_NF/Entities/Clothing/contraband_clothing_base.yml create mode 100644 Resources/Prototypes/_NF/Entities/Clothing/faction_clothing_base.yml create mode 100644 Resources/Prototypes/_NF/Entities/Markers/Spawners/Conditional/mobs_meme_goblinbane.yml create mode 100644 Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/mobs_meme_goblinbane.yml create mode 100644 Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/possessed_toilet.yml create mode 100644 Resources/Prototypes/_NF/Entities/Mobs/NPCs/mob_meme_goblinbane.yml create mode 100644 Resources/Prototypes/_NF/Entities/Mobs/NPCs/mob_meme_goblinbane_minions.yml create mode 100644 Resources/Prototypes/_NF/NPCs/mobs.yml create mode 100644 Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/alive.png create mode 100644 Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/alive_unshaded.png create mode 100644 Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/bucket_alive.png create mode 100644 Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/bucket_dead.png create mode 100644 Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/bucket_portal.png create mode 100644 Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/bucket_unshaded.png create mode 100644 Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/dead.png create mode 100644 Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/dead_unshaded.png create mode 100644 Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/ghost.png create mode 100644 Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/ghost_unshaded.png create mode 100644 Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/meta.json create mode 100644 Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/mop_alive.png create mode 100644 Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/mop_dead.png create mode 100644 Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/mop_dead_unshaded.png create mode 100644 Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/mop_unshaded.png create mode 100644 Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/spray_alive.png create mode 100644 Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/spray_dead.png create mode 100644 Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/spray_dead_unshaded.png create mode 100644 Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/spray_unshaded.png diff --git a/Resources/Locale/en-US/_NF/advertisements/mobchatter/goblinbane.ftl b/Resources/Locale/en-US/_NF/advertisements/mobchatter/goblinbane.ftl new file mode 100644 index 00000000000..40bba30b665 --- /dev/null +++ b/Resources/Locale/en-US/_NF/advertisements/mobchatter/goblinbane.ftl @@ -0,0 +1,20 @@ +advertisement-goblinbane-1 = The only good goblin is clean goblin! Clean goblin is DEAD goblin! +advertisement-goblinbane-2 = Have you washed your hands lately, goblin? With soap? +advertisement-goblinbane-3 = When was the last time you flossed? +advertisement-goblinbane-4 = Come here! I'll wash your face off! +advertisement-goblinbane-5 = You. Will. Suffer. Uhh.. I mean.. You'll become clean! +advertisement-goblinbane-6 = Soap! Ever heard of it?! +advertisement-goblinbane-7 = Filth. I despise it. I seek to eradicate it. Goblins are filthy. +advertisement-goblinbane-8 = Want to hear a joke? Knock-knock. Who's there? Goblin janitor! Hhah! +advertisement-goblinbane-9 = I'm walking, seeking, cleaning and cleansing. +advertisement-goblinbane-10 = Your untidiness makes my water boil! +advertisement-goblinbane-11 = Space Cleaner! +advertisement-goblinbane-12 = You should've used paper tovels after washing your hands. +advertisement-goblinbane-13 = I could smell you from adjacent compartment, goblin. +advertisement-goblinbane-14 = There will be no mercy, unclean one! +advertisement-goblinbane-15 = Goblins. Dirt. I hate dirt. +advertisement-goblinbane-16 = Here, gobbo-gobbo-gobbo! I wont bite! Pinky promise! +advertisement-goblinbane-17 = When I'm done scraping the dirt from you I'll make a mop handle from your bones. +advertisement-goblinbane-18 = If you don't brush your teeth, I'll brush them off off you. +advertisement-goblinbane-19 = *gurgles* +advertisement-goblinbane-20 = You didn't flush!! diff --git a/Resources/Locale/en-US/_NF/ghost/roles/ghost-role-component.ftl b/Resources/Locale/en-US/_NF/ghost/roles/ghost-role-component.ftl index f4ebc71ac45..3e3aaf75ba4 100644 --- a/Resources/Locale/en-US/_NF/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/en-US/_NF/ghost/roles/ghost-role-component.ftl @@ -55,3 +55,15 @@ ghost-role-information-dungeon-boss-rules = You are a [color=red][bold]Team Anta - [color=red]DO NOT[/color] gib players. Once they're dead, leave them be. - [color=red]DO NOT[/color] destroy or hide valuable loot in the dungeon. - [color=red]DO NOT[/color] leave the planet. + +ghost-role-information-goblinbane-name = The Goblinbane +ghost-role-information-goblinbane-ghost-name = The Ghost of Goblinbane +ghost-role-information-goblinbane-description = Hunt down those pesky-little-dirty-smelly goblins. And felinids. And also chaplains. +ghost-role-information-goblinbane-rules = You are a [color=red][bold]Solo Antagonist[/bold][/color] capable of summoning minions. [color=yellow]Do note[/color], your minions will be hostile to everyone, except you. + Search and destroy goblins/felinids/chaplains. + Please note that [color=yellow]all server rules still apply.[/color]. Additionally: + - [color=yellow]Reminder[/color] that Frontier Outpost (the station and 200m area around it) is a safe zone. + - [color=red]DO NOT[/color] attack players on the Outpost. + - [color=red]DO NOT[/color] use your abilities on the Outpost. + - [color=red]DO NOT[/color] intentionally damage Frontier Outpost, other POIs, shuttles. + - [color=red]DO NOT[/color] devour walls and airlocks on Frontier Outpost, other POIs, shuttles. diff --git a/Resources/Maps/_NF/Dungeon/cave_factory.yml b/Resources/Maps/_NF/Dungeon/cave_factory.yml index 50c5dad3f97..76763882519 100644 --- a/Resources/Maps/_NF/Dungeon/cave_factory.yml +++ b/Resources/Maps/_NF/Dungeon/cave_factory.yml @@ -13672,7 +13672,7 @@ entities: rot: 3.141592653589793 rad pos: 12.5,43.5 parent: 1 -- proto: ToiletEmpty +- proto: ToiletMemeSpawner entities: - uid: 927 components: diff --git a/Resources/Maps/_NF/Dungeon/experiment.yml b/Resources/Maps/_NF/Dungeon/experiment.yml index 94729a67b1e..dd2909a254d 100644 --- a/Resources/Maps/_NF/Dungeon/experiment.yml +++ b/Resources/Maps/_NF/Dungeon/experiment.yml @@ -10347,7 +10347,7 @@ entities: rot: 1.5707963267948966 rad pos: 45.5,1.5 parent: 1653 -- proto: ToiletEmpty +- proto: ToiletMemeSpawner entities: - uid: 799 components: diff --git a/Resources/Maps/_NF/Dungeon/haunted.yml b/Resources/Maps/_NF/Dungeon/haunted.yml index 90d75188d65..06a862770dc 100644 --- a/Resources/Maps/_NF/Dungeon/haunted.yml +++ b/Resources/Maps/_NF/Dungeon/haunted.yml @@ -2849,7 +2849,7 @@ entities: - type: Transform pos: 36.5,31.5 parent: 1653 -- proto: ToiletDirtyWater +- proto: ToiletMemeSpawner entities: - uid: 406 components: diff --git a/Resources/Maps/_NF/Dungeon/lava_brig.yml b/Resources/Maps/_NF/Dungeon/lava_brig.yml index 85a4910afda..299d8841135 100644 --- a/Resources/Maps/_NF/Dungeon/lava_brig.yml +++ b/Resources/Maps/_NF/Dungeon/lava_brig.yml @@ -12154,7 +12154,7 @@ entities: rot: 3.141592653589793 rad pos: 12.5,43.5 parent: 588 -- proto: ToiletEmpty +- proto: ToiletMemeSpawner entities: - uid: 932 components: diff --git a/Resources/Maps/_NF/Dungeon/lava_mercenary.yml b/Resources/Maps/_NF/Dungeon/lava_mercenary.yml index 95e245b0ec0..cb860f981ee 100644 --- a/Resources/Maps/_NF/Dungeon/lava_mercenary.yml +++ b/Resources/Maps/_NF/Dungeon/lava_mercenary.yml @@ -12276,7 +12276,7 @@ entities: rot: 3.141592653589793 rad pos: 12.5,43.5 parent: 588 -- proto: ToiletEmpty +- proto: ToiletMemeSpawner entities: - uid: 932 components: diff --git a/Resources/Maps/_NF/Dungeon/salvage_outpost.yml b/Resources/Maps/_NF/Dungeon/salvage_outpost.yml index a30c5a98835..b1e7319ea05 100644 --- a/Resources/Maps/_NF/Dungeon/salvage_outpost.yml +++ b/Resources/Maps/_NF/Dungeon/salvage_outpost.yml @@ -14910,7 +14910,7 @@ entities: - type: Transform pos: 22.5,28.5 parent: 1653 -- proto: ToiletDirtyWater +- proto: ToiletMemeSpawner entities: - uid: 157 components: diff --git a/Resources/Maps/_NF/Dungeon/snowy_labs.yml b/Resources/Maps/_NF/Dungeon/snowy_labs.yml index 3d12496c062..b1bbec6654e 100644 --- a/Resources/Maps/_NF/Dungeon/snowy_labs.yml +++ b/Resources/Maps/_NF/Dungeon/snowy_labs.yml @@ -13513,7 +13513,7 @@ entities: rot: 1.5707963267948966 rad pos: 45.5,1.5 parent: 1653 -- proto: ToiletEmpty +- proto: ToiletMemeSpawner entities: - uid: 889 components: diff --git a/Resources/Maps/_NF/Dungeon/virology_lab.yml b/Resources/Maps/_NF/Dungeon/virology_lab.yml index 1a5aa159999..183057b85b6 100644 --- a/Resources/Maps/_NF/Dungeon/virology_lab.yml +++ b/Resources/Maps/_NF/Dungeon/virology_lab.yml @@ -13497,7 +13497,7 @@ entities: - type: Transform pos: 20.5,24.5 parent: 1653 -- proto: ToiletDirtyWater +- proto: ToiletMemeSpawner entities: - uid: 1924 components: @@ -13505,7 +13505,7 @@ entities: rot: 3.141592653589793 rad pos: 52.5,0.5 parent: 1653 -- proto: ToiletEmpty +- proto: ToiletMemeSpawner entities: - uid: 799 components: diff --git a/Resources/Maps/_NF/POI/grifty.yml b/Resources/Maps/_NF/POI/grifty.yml index 9d877432d31..6aceed30899 100644 --- a/Resources/Maps/_NF/POI/grifty.yml +++ b/Resources/Maps/_NF/POI/grifty.yml @@ -5558,7 +5558,7 @@ entities: rot: 1.5707963267948966 rad pos: 6.5,1.5 parent: 1 -- proto: ToiletDirtyWater +- proto: ToiletMemeSpawner entities: - uid: 326 components: diff --git a/Resources/Maps/_NF/POI/mchobo.yml b/Resources/Maps/_NF/POI/mchobo.yml index e12b868e4c9..e879feb864b 100644 --- a/Resources/Maps/_NF/POI/mchobo.yml +++ b/Resources/Maps/_NF/POI/mchobo.yml @@ -5998,7 +5998,7 @@ entities: - type: Transform pos: -6.5,8.5 parent: 1 -- proto: ToiletDirtyWater +- proto: ToiletMemeSpawner entities: - uid: 932 components: diff --git a/Resources/Prototypes/Entities/Clothing/Belt/belts.yml b/Resources/Prototypes/Entities/Clothing/Belt/belts.yml index 16b73470987..c25d9474760 100644 --- a/Resources/Prototypes/Entities/Clothing/Belt/belts.yml +++ b/Resources/Prototypes/Entities/Clothing/Belt/belts.yml @@ -201,7 +201,7 @@ - type: Appearance - type: entity - parent: NFClothingBeltStorageBase # Frontier: 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/bucket_unshaded.png b/Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/bucket_unshaded.png new file mode 100644 index 0000000000000000000000000000000000000000..288bc505ff725257579c3759c712ae848dc97bd8 GIT binary patch literal 871 zcmV-t1DO1YP)Px&AxT6*RCt{2oL_F^AP~lv(e}mi4Y*GC0I{^E@eNR3vTDSk`Ver(6fidb z+Au%KauSTcA@#tAOANp;48t%C!!QiPFrDzyI)D%oQPB6JQgf?VnCIkos8AwKzOqrN zxBTI(v;_d1t&giFfN6i}wg&WtudGIA(1X5r1kiu{AyD^P>cSuw|Dr!C^;$wJ5W@rj zLv3B6F96^aIOJaPBJ5gUB2E(VwsFiYG(se3ix~Zqd;@(U5ic9ZTtYo0>&FqaK;H$4 zD16y&z64WVYu=y}q}V9P)FCPXNKgO864*XDw{JFfNFts+=QQ(#*?Mp4*Yc~*(J;sN zK$7}2D)o2c7^9o5%_0379Z-zEFNQ7s*b%@t7jS((=pc-R$k9vEbN(BZngbT)OH8Rr zK((w6VDP-Ab*BvN_j%zHd?xQ`!=kUrQeS9+f{XdE^5Q}hle06aYJK!^5G zsW(03hyH(%i@|IX@n*+SL*JqMhs0GBI>PA@@B$C-Yqrvy;9*mIaa7T_V*prePZWnO zkk22FO1;*&haU3hX0qHuzgGJlx{F`la{=Vgvp;XCzZd5SpnJ7zqd(*f0Pn5zbqvkg zuk~jDxYxLlde={}Kn(NaDRLL6)%qFMU-YxsgC6vG1Yj5+sf)r=7R=>X6le60-X?3= zeqDcaQP@WPqy=L==<^7`bPXo}!-P0$15$^7eU8I6DAoRu^E7L}KF=W=kZM1A(dQ9> z=^9P|rfWC>7-kFVgXx}bjPx&$4Nv%R9J=WmQhSwRT#&Aw-O03W4A$*-6yJG?24qRQzr>%E4(Zk+`{(ICucA* zA%Ov##-O8BiP7jRWWFrES`)X7HH-0KmAkMsPH>eVjKt22zFY&HW9o$HBFBevZ|}YB zEfpVp;h&u3-0z(4{Qu`W-#OofZERy3|1%`3K?qT{b9gws>Ev)EEJ;!UjgE@{Lgx4T zOy8;03`bu+TFlQ@fvtdGFem^fCMG1Uf2^;URB8tILvD6DAEdUNNVw6}NARQ1X!~35ma`l^% zjx5VGc|Al&$ME}o)YiF7RtI?6b2A{4h6L%9Z$doUan!QB#?>NwQoZ!h8f? zZ~3p#79q(p#^cCGpa}W2+X-{Crrl1vojh^#PHwCOIuCXNxpzRQs(uWb2rUv06S*sY zo`3%JH}CHCGVOLU^jbGHm8*Cfc5~ry7gN73a^Y}S$@4dg01&Eb8q*@-FztLf|C*)K zKl0}Fc|ry!E$NbH&hX;db5vDVZTcSAL8vMyisX=dJ|v&dev%EY9UtWJ4?p_%q!u_d zqbB6CEE63aqsi-Gq`iaBRF%2;1-%YvZ-9SbkZZ>WZONW`Z-4&75LqiKP!vf70>YRi z3c%=??wm+mB9XYHi-=sAB;MCs@)7#>jjQ<&S7EMbiDOD!x#>ltYLB=2A;AOKhrw-kC>pJh*1H$R`t6|&Q>z9N|-kjZ3N zxt9eX6becGHA9?A_t=vID2ikk87ukeeccQ#!k(^f(^%xS+LWLS#U^XQ31Vzdwf zaWdP%3Ryn>V+5W=^iQ?eim;l5rS32Pbc5&4w)6G-2|WTvNU>Ne9 zc>DWK`+w_AaOA}6!u4gTe~DWM4f DDIFZc literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/ghost.png b/Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/ghost.png new file mode 100644 index 0000000000000000000000000000000000000000..3ffbc59be75305824d922cb81bc8fc60f7530818 GIT binary patch literal 10375 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/meta.json b/Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/meta.json new file mode 100644 index 00000000000..795192db429 --- /dev/null +++ b/Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/meta.json @@ -0,0 +1,111 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Original toilet sprite made by brainfood1183 (github) for ss14, bashed with other sprites and animated by erhardsteinhauer (github/discord)", + "states": [ + { + "name": "dead" + }, + { + "name": "dead_unshaded" + }, + { + "name": "alive", + "directions": 4, + "delays": + [ + [ 0.2, 0.1, 0.1, 0.1, 0.1, 0.1 ], + [ 0.2, 0.1, 0.1, 0.1, 0.1, 0.1 ], + [ 0.2, 0.1, 0.1, 0.1, 0.1, 0.1 ], + [ 0.2, 0.1, 0.1, 0.1, 0.1, 0.1 ] + ] + }, + { + "name": "alive_unshaded", + "directions": 4, + "delays": + [ + [ 0.2, 0.1, 0.1, 0.1, 0.1, 0.1 ], + [ 0.2, 0.1, 0.1, 0.1, 0.1, 0.1 ], + [ 0.2, 0.1, 0.1, 0.1, 0.1, 0.1 ], + [ 0.2, 0.1, 0.1, 0.1, 0.1, 0.1 ] + ] + }, + { + "name": "ghost", + "directions": 4, + "delays": + [ + [ 0.2, 0.1, 0.1, 0.1, 0.1, 0.1 ], + [ 0.2, 0.1, 0.1, 0.1, 0.1, 0.1 ], + [ 0.2, 0.1, 0.1, 0.1, 0.1, 0.1 ], + [ 0.2, 0.1, 0.1, 0.1, 0.1, 0.1 ] + ] + }, + { + "name": "ghost_unshaded", + "directions": 4, + "delays": + [ + [ 0.2, 0.1, 0.1, 0.1, 0.1, 0.1 ], + [ 0.2, 0.1, 0.1, 0.1, 0.1, 0.1 ], + [ 0.2, 0.1, 0.1, 0.1, 0.1, 0.1 ], + [ 0.2, 0.1, 0.1, 0.1, 0.1, 0.1 ] + ] + }, + { + "name": "mop_alive", + "delays": + [ [ 0.2, 0.1, 0.1, 0.1, 0.1, 0.1 ] ] + }, + { + "name": "mop_unshaded", + "delays": + [ [ 0.2, 0.1, 0.1, 0.1, 0.1, 0.1 ] ] + }, + { + "name": "mop_dead" + }, + { + "name": "mop_dead_unshaded" + }, + { + "name": "spray_alive", + "delays": + [ [ 0.2, 0.1, 0.1, 0.1, 0.1, 0.1 ] ] + }, + { + "name": "spray_unshaded", + "delays": + [ [ 0.2, 0.1, 0.1, 0.1, 0.1, 0.1 ] ] + }, + { + "name": "spray_dead" + }, + { + "name": "spray_dead_unshaded" + }, + { + "name": "bucket_alive", + "delays": + [ [ 0.2, 0.2, 0.2, 0.2, 0.2, 0.2 ] ] + }, + { + "name": "bucket_unshaded", + "delays": + [ [ 0.2, 0.2, 0.2, 0.2, 0.2, 0.2 ] ] + }, + { + "name": "bucket_dead" + }, + { + "name": "bucket_portal", + "delays": + [ [ 0.2, 0.2, 0.2 ] ] + } + ] +} diff --git a/Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/mop_alive.png b/Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/mop_alive.png new file mode 100644 index 0000000000000000000000000000000000000000..4fe53b51671e20a773d57398afa61c570a18e68a GIT binary patch literal 949 zcmV;m14{gfP)Px&Z%IT!RCt{2n?FcfQ542MYiaBx>LxVZS`Z5s@1PVViL^tZi<1rkadK!k-|#vW z0*VNQcFI^0+N~Wr6G!?8S1!N3g`wLP=JykLRC&%l{37~q_8?;aP7iZ~ zgHvTq)8C+LVx?LQRQrOL!uA5bEiU5b&y$)wz5#0iOjwqMzO58kdKmNj2_(BSylRgF zz|pI#0D$>*t1HTyZ9E9+-{C>n{+m7Q%*^OH`vm;Gpa;2(a0P(s0R&(I*qH9gn#t~r zi97d?jl=Eb7suH^!*?SY`tM`_&jdh*1wdc`lf~j|rw0JQ;PsPFcA~7@AObKV0Np+U zsUARECV&mYS~HXVWBM#xhJw)3$4Pj2tb4bpr1z|fC2~rA5fda zY}bOx^Awbz|BeCB695t|01yzs|BC;O7y%dpfPPN^K+yoU_$E4;0TVm}0??O&0MIDK z0@(6M7IPy;00sciGXSzIKvV$R=yV1}J~JQyo8+^1-zR|T0c_GZfW+#-Hlnh|=TS{$U)5H#-4Q!siwd5lL5byza5dK zf1G0g0|6k*0z?I{od*DByL;=XYZHLp01V{>P&t6Do=JIzzsUyy=n=rsu0d4~pe^3D zW$FLC0vH$oSr%YRWNjHl0D1#3ycc1OMwFDwz1vb1KmhfBUn40h(fb!&pF|QWKLGp# XEkLK)A^U(_00000NkvXXu0mjfpfsR3 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/mop_dead.png b/Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/mop_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..02a1175846a77b4e329b865fc77e2fe6928de89e GIT binary patch literal 536 zcmV+z0_XjSP)Px$(n&-?R9J=Wmc2{kU>wIk)q{3bHy6iS9F%*8W|79h&81t1f;a`ybIK402L&Dc z2QnRZ+)z4++#m21-<~279D@5@K~V8!Eh2F+MGf|v=SdX=ze^yHd_VdAUY@|GKJ`&0 zh1ifnY-D}U7ZYQE3)l7b4-S!l9Rw?;06AUr3)l5ptrma(wHVr)=H~8_a>3us0+HIh zUav<>-sxvAG3syFCWL z{O?e!bpKP@CR70Bf)Bvj%wi<3o13-B_oQ$#HDS*L>>&8_459(R=-0*~3LIYYM3Vo|WN+md++9R_Dl)Lh1y%K{QW)l5d}w zcQs#Mk={gt5CWKte~vNmO!~u)bg4Q?d{M0000Px#`AI}UR9J=WmO&1KAP_}=n;vO4x~d28LOlQ%>H%=2NyC+zbTdN;sTBu=H1ThY zQT)$8FaVr7^{=u-#uAz4##JHK%&I`NHXkj~e1!Qm#T-DFYorEXEdVA?Uz006x3WmVJ!D58sYAh&2y2jD(9*Gq3m{f;_;Qmdj=3Dk3;6o4-Q;2TrY z>c|3!H>zN#oRPS36-j_WLWqg)>j1tH`Tz->hoV>j RV$T2o002ovPDHLkV1mS%eE0wW literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/mop_unshaded.png b/Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/mop_unshaded.png new file mode 100644 index 0000000000000000000000000000000000000000..13c3f430e198b437e3e1c59bd165f22e474aa123 GIT binary patch literal 596 zcmV-a0;~OrP)Px%4oO5oRCt{2n?Y`aFc3w*dM0nuRX9K{)B|v#9)PTf6!}V(y1|qZsKMBtDf9m( zidg&^&wsH42|!U4MNt$*QQOox*LKde(sfWqB^AKAuM`9XP*@fNxaL*61_CH3s{zy! zehoF41<+~$JLhhlbG?Lj%*$d8A^=(q;Naa#0zd%E)$q2__y*v*WZZcFk!rrf`%=H)g#g^N1AqYx8rLE8 zUV06b^nY3aqW~xwKv4An#%ieO`{GRikN3WH2Y4yOQUE6*Si4?x4G3UH?F9fZ8o*c$ zlHLTc@LeDc1CR{hg2qAAG9-YbvI4ky2e2MM;Aahn*Dr}01`)vD*OLKEIRXI;AOJkE zuqBr?RMh`z0Ne$Dq5%K`0aPXen87=B2LOx)aN(24+!_oz1%O8Y5RsMuN}Y+d^shi! z0Nf3LmH}w}QeJBf2w)y1?*P^VIMW5dwekKP81G8dJR1|h#NKlqflLN){*-d^n7&8d zpA8VeMCAg&bO47srZwD$_ceS00+P_0R%AqeT_0I i>G@0hQPx&^GQTORCt{2n@?yIR~*Mb5yi7m54spyN+63xWO)SEgPpy2sx^U)RMcFGNWqJ+ zP!bghmIPtT(qm7BoP-4Ylbe^xZ83}yqA`KZ!4_o27`%B9YCL3S87HG=-|W0MoBTeo zgn2K!-`{V3zwf-A%nJyDAP9mW2!bF8f*=SxpB~!*bR(`(r=w#f&zrRoi;#@2G=R+p z^tA_Krsl;2-AC6Mz-9vm+AohST#wG>77Krvh{2EJR&=c7c{kG5-HGhgd6TUx@Yfp9 zRVvjuN}f0CDn)LwFf(^(p$u>;|AB|gd&ogQFrSuofUDH4xcps|F%#^huYheEz*Xw> z%VP@e#G*IELt$uJ)dG-%#?r z+1z4bvatq@HTdqE4>Z;QDCz`|1gBY;Iq|(&P5(qsInBZhz?px?cy#!Z*&uvu*T%^A_Hr;^v&JmFc+rU6?L; z-mr-nz)thC~j44CL10Q>?x_mX~0JFEa)y?2*a3s3q1-oJat_?y?MH(>A_ zBH;FaFJN=kITF%N`)TkLF!F``r&843g6aB44fsp-9Cv=a#L3Wn$@9jx`*}JBs6(p( zi_j`S9heK|(;y2C7>xmF0DUI3Bl;sT`A-@61Aw*q$C1>4T6=-~@7P5?U2^7ty2&jO zY(D)o+JG@J^!YIu-3%AH9}4m}(fna;EA-) zODl#%TOl%l)dmbsxW%22Sumg#I%U947{J=e&p-oOB_sKFwfPbmAR`5^%5MHgl#JBh zt^rLxbrrIQ?fTo+7X+(_0R%x11VIo4L1>4M7h0c@fV!TL00000NkvXXu0mjf-k=Kf literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/spray_dead.png b/Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/spray_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..544611976bc9276d3cdc61a290583264e5e7e881 GIT binary patch literal 390 zcmV;10eSw3P)Px$KuJVFR9J=Wma$3$K@f(&h>u{UmDpQ^MK}w&Jb+P4!C++}*jO4XL32&O+R9cd zgL!~UcX(VPXqhXt&`3_(6c(<91TJR^cQ%sdzHVokfB)SXb{BGTa&o3jL6YPvwVsWY zqNpj+nw2d6vfR1-6-SjNCT2_%N>S8Ycqn?^1iA?<&VA8M0B}sTL literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/spray_dead_unshaded.png b/Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/spray_dead_unshaded.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9f4cd927479aa3cf860f1b9402265c54c4646e GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ydl>XLn2z= zPIcrutRUc8U#+HDa$QD2{1s!>LK%g1QXFzxvqjcSxc1YyljYglKZ@syMObBy7fKZ; z)=4?PIK9R@^TO*1N9&(fd+y2FB(?6EQaeY9rmb$*Wu~1Stt~UwUNw$QwEiIQtc>Y@ znC9E2S3D61ID8l$NgT4~zg`%#KYa1duJ=Fgedb7*6nAopgW^ZWm>AUwo_83|yh$!O p literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/spray_unshaded.png b/Resources/Textures/_NF/Mobs/Meme/goblinbane.rsi/spray_unshaded.png new file mode 100644 index 0000000000000000000000000000000000000000..feafcdb8b1804f42ec8a5e1a73a57ebfa35ab0e6 GIT binary patch literal 783 zcmV+q1MvKbP)Px%$w@>(RCt{2n=xt}F%*XXgj^tXNV$+A&H&5?9JL2)uOi2;Tg2dLJtG#Aa+(i0 zA7ahGry9_RRE=Y>_RfgFh};g={s<0#0dT0LJz_+zr}A%Qg4c8lm}~$eauG{*YP=*p zG@#E!990>ty?P=4>M-l?YlUOE+V4|8;F|Cza_B54fH@eE+t!-yL~j_{A*}qF^&gEE zzG9~MACe6a1QRR-};Sq2!ay<{XGiKBS~x|wDjYP%DbFXsl3N+%8YX=40q1MTRu2ji;1sQ;*2%79r0Fd{c$@{MN&N&}AO z1MqR;SN@=l3E2i@*Z)a#?sw!~0nQW0i_lR6PB9f%G2ARanSZ0JzP*RxPvx z{dFY&O@qZKTK#K~wHL_UW1r#qC1(p@-*QU?9#=n`Hee)%m5ZV2W;pM8Xw1Jw^ZVMA z`uo~b226<|do!FD$Vijs5A}LQcvT^9+4_n?MGc@RilQirq9{rV{{a1Y?ExQ%;5+~T N002ovPDHLkV1m8@XTAUc literal 0 HcmV?d00001 From cc5c54d81eba01c9e594c782bde64fe3fddff451 Mon Sep 17 00:00:00 2001 From: FrontierATC Date: Wed, 16 Oct 2024 10:13:04 +0000 Subject: [PATCH 05/11] Automatic Changelog (#2177) --- Resources/Changelog/Frontier.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Resources/Changelog/Frontier.yml b/Resources/Changelog/Frontier.yml index 61b08cfb3c7..ca1b9b04266 100644 --- a/Resources/Changelog/Frontier.yml +++ b/Resources/Changelog/Frontier.yml @@ -4603,3 +4603,12 @@ Entries: message: Respawn timers are now properly shown on reconnect. id: 5408 time: '2024-10-16T10:11:54.0000000+00:00' +- author: erhardsteinhauer + changes: + - type: Add + message: >- + Added admeme mob/boss for Halloween: The Goblinbane - a possessed toiled + hellbent on destroying goblinkind. And felinids. And folks in chaplain + clothes. Can be controlled by ghosts. + id: 5409 + time: '2024-10-16T10:12:38.0000000+00:00' From c0c17e72712a4b5fb9ee552fb0c67d7ec8cd3721 Mon Sep 17 00:00:00 2001 From: dustylens <54123313+dustylens@users.noreply.github.com> Date: Wed, 16 Oct 2024 10:18:31 +0000 Subject: [PATCH 06/11] Crafts Medical Pens (#2215) --- .../Entities/Structures/Machines/lathe.yml | 1 + .../Objects/Specific/Medical/hypospray.yml | 12 ++ .../_NF/Recipes/Cooking/medical_recipes.yml | 121 ++++++++++++++++++ .../_NF/Recipes/Lathes/chemistry.yml | 8 ++ .../medipen.rsi/medipen-inhand-left.png | Bin 0 -> 341 bytes .../medipen.rsi/medipen-inhand-right.png | Bin 0 -> 326 bytes .../Specific/Medical/medipen.rsi/medipen.png | Bin 0 -> 309 bytes .../Specific/Medical/medipen.rsi/meta.json | 20 +++ 8 files changed, 162 insertions(+) create mode 100644 Resources/Prototypes/_NF/Recipes/Cooking/medical_recipes.yml create mode 100644 Resources/Textures/_NF/Objects/Specific/Medical/medipen.rsi/medipen-inhand-left.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Medical/medipen.rsi/medipen-inhand-right.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Medical/medipen.rsi/medipen.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Medical/medipen.rsi/meta.json diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 6456143e7c2..fa2023956fa 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -1042,6 +1042,7 @@ - ClothingOuterHardsuitVoidParamed # Frontier - BaseChemistryEmptyVial # Frontier - PowerCellSmall # Frontier + - BlankMediPen # Frontier dynamicRecipes: - VialBluespace # Frontier - ChemicalPayload diff --git a/Resources/Prototypes/_NF/Entities/Objects/Specific/Medical/hypospray.yml b/Resources/Prototypes/_NF/Entities/Objects/Specific/Medical/hypospray.yml index 83a7f66cf63..b016ec162a6 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Specific/Medical/hypospray.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Specific/Medical/hypospray.yml @@ -47,3 +47,15 @@ state: hypo - type: Item sprite: _NF/Objects/Specific/Medical/hypominilimitededition.rsi + +- type: entity + name: empty medipen + parent: BaseItem + description: A empty medipen with endless potential. Does not allow for deviation from Nanotrasen recipes. + id: BlankMediPen + components: + - type: Sprite + sprite: _NF/Objects/Specific/Medical/medipen.rsi + state: medipen + - type: Item + sprite: _NF/Objects/Specific/Medical/medipen.rsi diff --git a/Resources/Prototypes/_NF/Recipes/Cooking/medical_recipes.yml b/Resources/Prototypes/_NF/Recipes/Cooking/medical_recipes.yml new file mode 100644 index 00000000000..e64754b855e --- /dev/null +++ b/Resources/Prototypes/_NF/Recipes/Cooking/medical_recipes.yml @@ -0,0 +1,121 @@ + #pen recycling recipes + +- type: microwaveMealRecipe + id: RecipeCleanEmergencyMedipen + name: sterilize and reset pen + result: BlankMediPen + time: 10 + solids: + EmergencyMedipen: 1 + reagents: + SpaceCleaner: 1 + recipeType: MedicalAssembler # Frontier + +- type: microwaveMealRecipe + id: RecipeCleanAntiPoisonMedipen + name: sterilize and reset pen + result: BlankMediPen + time: 10 + solids: + AntiPoisonMedipen: 1 + reagents: + SpaceCleaner: 5 + recipeType: MedicalAssembler # Frontier + +- type: microwaveMealRecipe + id: RecipeCleanBruteAutoInjector + name: sterilize and reset pen + result: BlankMediPen + time: 10 + solids: + BruteAutoInjector: 1 + reagents: + SpaceCleaner: 5 + recipeType: MedicalAssembler # Frontier + +- type: microwaveMealRecipe + id: RecipeCleanBurnAutoInjector + name: sterilize and reset pen + result: BlankMediPen + time: 10 + solids: + BurnAutoInjector: 1 + reagents: + SpaceCleaner: 5 + recipeType: MedicalAssembler # Frontier + +- type: microwaveMealRecipe + id: RecipeCleanRadAutoInjector + name: sterilize and reset pen + result: BlankMediPen + time: 10 + solids: + RadAutoInjector: 1 + reagents: + SpaceCleaner: 5 + recipeType: MedicalAssembler # Frontier + + #pen recipes + #Upstream recipes + +- type: microwaveMealRecipe + id: RecipeEmergencyMedipen + name: emergency medipen + result: EmergencyMedipen + time: 10 + solids: + BlankMediPen: 1 + reagents: + Epinephrine: 12 + TranexamicAcid: 3 + recipeType: MedicalAssembler # Frontier + +- type: microwaveMealRecipe + id: RecipeAntiPoisonMedipen + name: poison auto-injector + result: AntiPoisonMedipen + time: 10 + solids: + BlankMediPen: 1 + reagents: + Ultravasculine: 10 + Epinephrine: 5 + recipeType: MedicalAssembler # Frontier + +- type: microwaveMealRecipe + id: RecipeBruteAutoInjector + name: brute auto-injector + result: BruteAutoInjector + time: 10 + solids: + BlankMediPen: 1 + reagents: + Bicaridine: 15 + TranexamicAcid: 5 + recipeType: MedicalAssembler # Frontier + +- type: microwaveMealRecipe + id: RecipeBurnAutoInjector + name: burn auto-injector + result: BurnAutoInjector + time: 10 + solids: + BlankMediPen: 1 + reagents: + Dermaline: 10 + Leporazine: 10 + recipeType: MedicalAssembler # Frontier + +- type: microwaveMealRecipe + id: RecipeRadAutoInjector + name: rad auto-injector + result: RadAutoInjector + time: 10 + solids: + BlankMediPen: 1 + reagents: + Arithrazine: 15 + Bicaridine: 5 + recipeType: MedicalAssembler # Frontier + +#Frontier pen recipes diff --git a/Resources/Prototypes/_NF/Recipes/Lathes/chemistry.yml b/Resources/Prototypes/_NF/Recipes/Lathes/chemistry.yml index 821ba3bc9e3..afd1f18c1a2 100644 --- a/Resources/Prototypes/_NF/Recipes/Lathes/chemistry.yml +++ b/Resources/Prototypes/_NF/Recipes/Lathes/chemistry.yml @@ -15,3 +15,11 @@ Plasma: 15 Silver: 15 Bluespace: 30 #DeltaV: Bluespace + +- type: latheRecipe + id: BlankMediPen + result: BlankMediPen + completetime: 2 + materials: + Plastic: 50 + Steel: 25 diff --git a/Resources/Textures/_NF/Objects/Specific/Medical/medipen.rsi/medipen-inhand-left.png b/Resources/Textures/_NF/Objects/Specific/Medical/medipen.rsi/medipen-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..993468f79b25b225ed903f2e6b3f2e1db7a831b9 GIT binary patch literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|O(w zr;B4q#hkaZ9Qh6_@UXD2wD=(s|3@7Gnun!gLy#4q8G8r-buKZz%=cf;*5>V%Z}~&u4}-^ e?H~h2bIkYjsSA3!{;mav6N9I#pUXO@geCwh5`?n= literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Medical/medipen.rsi/medipen-inhand-right.png b/Resources/Textures/_NF/Objects/Specific/Medical/medipen.rsi/medipen-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..9b62a31f1f8ab172e2fcfb5e5f125d7b535e1512 GIT binary patch literal 326 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fAQ1FMR zi(^Q|oVT|e`I-zwTrYY*>bvt_C?~cMM{)CaTuA2MQOYMj#qF=_^5<$5m3;CBUp~J2D<)z1 k;=m8wv{=|6iv7@^CXLBb_U>GoXy85}Sb4q9e07U71D*ylh literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Medical/medipen.rsi/medipen.png b/Resources/Textures/_NF/Objects/Specific/Medical/medipen.rsi/medipen.png new file mode 100644 index 0000000000000000000000000000000000000000..75f472fd125b59cd7c703cee1282ee35ecdf6506 GIT binary patch literal 309 zcmV-50m}Y~P)Px#?@2^KR9J=Wk}-~gKp2Ie$riLUQ||#Rs5k-{60V@0fHN2q^#YXKLMi47(^0U6 zRx0_?5E`PEgsql{j>ght|F4U7t2A*D11Dy1N$gi;Dgk|3LYx5L@4SHf7} za=xN0OXJWy&#^!3d-phwpL+k!s;Z10V}a}^gX1_ottbir01@F>oI0I|jDv3>BGh&L zeu4FBJpl0V2Q15i)*9Q*w$rrMFT;J`?>zVGXBdWIn2+EW-SJolw0@Zp00000NkvXX Hu0mjff60gv literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Medical/medipen.rsi/meta.json b/Resources/Textures/_NF/Objects/Specific/Medical/medipen.rsi/meta.json new file mode 100644 index 00000000000..b1b80617201 --- /dev/null +++ b/Resources/Textures/_NF/Objects/Specific/Medical/medipen.rsi/meta.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "tgstation at 986af32e22a88dae14fd147d812a5a4d27c1bc30 | stimpen sprites made by PuroSlavKing (Github) for Space Station 14. Nearly all resprited by joshepvodka", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "medipen" + }, + { + "name": "medipen-inhand-left" + }, + { + "name": "medipen-inhand-right" + } + ] +} From efbb6a99c3d8319f8b0facff8f984b2cb55f878d Mon Sep 17 00:00:00 2001 From: FrontierATC Date: Wed, 16 Oct 2024 10:18:57 +0000 Subject: [PATCH 07/11] Automatic Changelog (#2215) --- Resources/Changelog/Frontier.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Resources/Changelog/Frontier.yml b/Resources/Changelog/Frontier.yml index ca1b9b04266..5398a275a7b 100644 --- a/Resources/Changelog/Frontier.yml +++ b/Resources/Changelog/Frontier.yml @@ -4612,3 +4612,9 @@ Entries: clothes. Can be controlled by ghosts. id: 5409 time: '2024-10-16T10:12:38.0000000+00:00' +- author: dustylens + changes: + - type: Add + message: Adds medical pen recipes to the medical assembler. + id: 5410 + time: '2024-10-16T10:18:31.0000000+00:00' From 325f1643fd9495a5c9b728bce2aee5151892edb1 Mon Sep 17 00:00:00 2001 From: Dvir <39403717+dvir001@users.noreply.github.com> Date: Wed, 16 Oct 2024 14:10:44 +0300 Subject: [PATCH 08/11] Price Fixup (#2257) --- Resources/Prototypes/_NF/Shipyard/Nfsd/broadhead.yml | 2 +- Resources/Prototypes/_NF/Shipyard/Nfsd/inquisitor.yml | 2 +- Resources/Prototypes/_NF/Shipyard/Scrap/orange.yml | 2 +- Resources/Prototypes/_NF/Shipyard/Sr/chauffeur.yml | 2 +- Resources/Prototypes/_NF/Shipyard/bookworm.yml | 2 +- Resources/Prototypes/_NF/Shipyard/caduceus.yml | 8 ++++---- Resources/Prototypes/_NF/Shipyard/ceres.yml | 2 +- Resources/Prototypes/_NF/Shipyard/garden.yml | 2 +- Resources/Prototypes/_NF/Shipyard/kilderkin.yml | 8 ++++---- Resources/Prototypes/_NF/Shipyard/lantern.yml | 8 ++++---- Resources/Prototypes/_NF/Shipyard/mccargo.yml | 2 +- Resources/Prototypes/_NF/Shipyard/pts.yml | 2 +- Resources/Prototypes/_NF/Shipyard/spirit.yml | 2 +- 13 files changed, 22 insertions(+), 22 deletions(-) diff --git a/Resources/Prototypes/_NF/Shipyard/Nfsd/broadhead.yml b/Resources/Prototypes/_NF/Shipyard/Nfsd/broadhead.yml index f92a7e90e73..0f39fb0ea03 100644 --- a/Resources/Prototypes/_NF/Shipyard/Nfsd/broadhead.yml +++ b/Resources/Prototypes/_NF/Shipyard/Nfsd/broadhead.yml @@ -12,7 +12,7 @@ id: Broadhead name: NSF Broadhead description: A medium size detective ship with facilities for autopsies, interrogations and detailed investigations. - price: 50000 #Appraises at 46495 and added markup of ~8% - TODO: fix these values, getting tests to pass - Whatstone + price: 60000 # TODO: fix these values, getting tests to pass - Whatstone category: Medium group: Security access: Detective diff --git a/Resources/Prototypes/_NF/Shipyard/Nfsd/inquisitor.yml b/Resources/Prototypes/_NF/Shipyard/Nfsd/inquisitor.yml index 2aee91db4f9..3f854549638 100644 --- a/Resources/Prototypes/_NF/Shipyard/Nfsd/inquisitor.yml +++ b/Resources/Prototypes/_NF/Shipyard/Nfsd/inquisitor.yml @@ -2,7 +2,7 @@ id: Inquisitor name: NSF Inquisitor description: A small detective-oriented ship with two cells for holding prisoners - price: 29000 + price: 30000 category: Small group: Security access: Detective diff --git a/Resources/Prototypes/_NF/Shipyard/Scrap/orange.yml b/Resources/Prototypes/_NF/Shipyard/Scrap/orange.yml index 44ef9fccdcf..c96e0bd6946 100644 --- a/Resources/Prototypes/_NF/Shipyard/Scrap/orange.yml +++ b/Resources/Prototypes/_NF/Shipyard/Scrap/orange.yml @@ -2,7 +2,7 @@ id: Orange name: SV Orange description: A cargo slash salvage shuttle made from scavenged wrecks, comes with some damage. - price: 17000 #Appraisal is 15800, +5% margin - TODO: fix this value, getting tests to pass - Whatstone + price: 18000 #Appraisal is 15800, +5% margin - TODO: fix this value, getting tests to pass - Whatstone category: Small group: Scrap shuttlePath: /Maps/_NF/Shuttles/Scrap/orange.yml diff --git a/Resources/Prototypes/_NF/Shipyard/Sr/chauffeur.yml b/Resources/Prototypes/_NF/Shipyard/Sr/chauffeur.yml index ca0052347aa..0850b7c93e8 100644 --- a/Resources/Prototypes/_NF/Shipyard/Sr/chauffeur.yml +++ b/Resources/Prototypes/_NF/Shipyard/Sr/chauffeur.yml @@ -13,7 +13,7 @@ id: Chauffeur name: NC Chauffeur description: A small transport shuttle with space for 4 passengers. Comes with the latest audio entertainment technology. - price: 15500 # $14325 after appraisal + ~$1200 (~5% markup) - TODO: fix this value, getting tests to pass - Whatstone + price: 16500 # $14325 after appraisal + ~$1200 (~5% markup) - TODO: fix this value, getting tests to pass - Whatstone category: Small group: Sr access: Service diff --git a/Resources/Prototypes/_NF/Shipyard/bookworm.yml b/Resources/Prototypes/_NF/Shipyard/bookworm.yml index 1c122bc8831..d23343683a5 100644 --- a/Resources/Prototypes/_NF/Shipyard/bookworm.yml +++ b/Resources/Prototypes/_NF/Shipyard/bookworm.yml @@ -12,7 +12,7 @@ id: Bookworm name: SBB Bookworm description: A cozy medium-size library for travellers who wish to relax with a book or perhaps a board game. - price: 27000 # ~24660 after purchase + ~9% markup + price: 30000 # ~24660 after purchase + ~9% markup category: Medium group: Shipyard shuttlePath: /Maps/_NF/Shuttles/bookworm.yml diff --git a/Resources/Prototypes/_NF/Shipyard/caduceus.yml b/Resources/Prototypes/_NF/Shipyard/caduceus.yml index 9795058c879..56fcf5b365a 100644 --- a/Resources/Prototypes/_NF/Shipyard/caduceus.yml +++ b/Resources/Prototypes/_NF/Shipyard/caduceus.yml @@ -1,8 +1,8 @@ - type: vessel - id: caduceus + id: Caduceus name: NM Caduceus description: A former humanitarian vessel, the Caduceus now works as the best mobile hospital money can buy. - price: 110000 # Appraises at 101889, ~9% margin - TODO: fix this value, getting tests to pass - Whatstone + price: 115000 # Appraises at 101889, ~9% margin - TODO: fix this value, getting tests to pass - Whatstone category: Large group: Shipyard shuttlePath: /Maps/_NF/Shuttles/caduceus.yml @@ -12,12 +12,12 @@ - Chemistry - type: gameMap - id: caduceus + id: Caduceus mapName: 'NM Caduceus' mapPath: /Maps/_NF/Shuttles/caduceus.yml minPlayers: 0 stations: - caduceus: + Caduceus: stationProto: StandardFrontierVessel components: - type: StationNameSetup diff --git a/Resources/Prototypes/_NF/Shipyard/ceres.yml b/Resources/Prototypes/_NF/Shipyard/ceres.yml index 28d56a60451..c726475ca83 100644 --- a/Resources/Prototypes/_NF/Shipyard/ceres.yml +++ b/Resources/Prototypes/_NF/Shipyard/ceres.yml @@ -12,7 +12,7 @@ id: Ceres name: SBB Ceres description: A medium-size, high-class restaurant ship with ample seating, integrated botany and a dining room for VIP guests - price: 56000 # ~5% markup - TODO: fix this value, just getting tests to pass - Whatstone + price: 60000 # ~5% markup - TODO: fix this value, just getting tests to pass - Whatstone category: Medium group: Shipyard shuttlePath: /Maps/_NF/Shuttles/ceres.yml diff --git a/Resources/Prototypes/_NF/Shipyard/garden.yml b/Resources/Prototypes/_NF/Shipyard/garden.yml index c087f0e0df9..a8be30f7588 100644 --- a/Resources/Prototypes/_NF/Shipyard/garden.yml +++ b/Resources/Prototypes/_NF/Shipyard/garden.yml @@ -12,7 +12,7 @@ id: Garden name: HS Garden description: A small botany vessel dedicated to horiticultural experimentation. - price: 24750 + price: 26000 category: Small group: Shipyard shuttlePath: /Maps/_NF/Shuttles/garden.yml diff --git a/Resources/Prototypes/_NF/Shipyard/kilderkin.yml b/Resources/Prototypes/_NF/Shipyard/kilderkin.yml index 2cef0f4f898..98a2f657ac2 100644 --- a/Resources/Prototypes/_NF/Shipyard/kilderkin.yml +++ b/Resources/Prototypes/_NF/Shipyard/kilderkin.yml @@ -9,10 +9,10 @@ # Shuttle Notes: # - type: vessel - id: kilderkin + id: Kilderkin name: LVHI Kilderkin description: "Spaceworthy bar/microbrewery with everything one needs to facilitate poor life choices: lots of booze, smokes, and lack of food. Manufactured by Langstad-Voigt Heavy Industries." - price: 45500 # ~39600$ on mapinit + ~5950$ from 15% markup + price: 47000 # ~39600$ on mapinit + ~5950$ from 15% markup category: Medium group: Shipyard shuttlePath: /Maps/_NF/Shuttles/kilderkin.yml @@ -21,12 +21,12 @@ - Civilian - type: gameMap - id: kilderkin + id: Kilderkin mapName: 'Kilderkin' mapPath: /Maps/_NF/Shuttles/kilderkin.yml minPlayers: 0 stations: - kilderkin: + Kilderkin: stationProto: StandardFrontierVessel components: - type: StationNameSetup diff --git a/Resources/Prototypes/_NF/Shipyard/lantern.yml b/Resources/Prototypes/_NF/Shipyard/lantern.yml index 3cf4aba934f..614dc936bcd 100644 --- a/Resources/Prototypes/_NF/Shipyard/lantern.yml +++ b/Resources/Prototypes/_NF/Shipyard/lantern.yml @@ -9,10 +9,10 @@ # Shuttle Notes: # - type: vessel - id: lantern + id: Lantern name: LVHI Lantern description: The Lantern is a medium-sized chapel-vessel equipped with everything chaplain might need in their never ending battle for salvation of NT personnel souls. Manufactured by Langstad-Voigt Heavy Industries. - price: 32100 # ~27900$ on mapinit + ~4200$ from 10% markup + price: 34000 # ~27900$ on mapinit + ~4200$ from 10% markup category: Medium group: Shipyard shuttlePath: /Maps/_NF/Shuttles/lantern.yml @@ -21,12 +21,12 @@ - Civilian - type: gameMap - id: lantern + id: Lantern mapName: 'Lantern' mapPath: /Maps/_NF/Shuttles/lantern.yml minPlayers: 0 stations: - lantern: + Lantern: stationProto: StandardFrontierVessel components: - type: StationNameSetup diff --git a/Resources/Prototypes/_NF/Shipyard/mccargo.yml b/Resources/Prototypes/_NF/Shipyard/mccargo.yml index 94b7c453c13..19f44fe89a2 100644 --- a/Resources/Prototypes/_NF/Shipyard/mccargo.yml +++ b/Resources/Prototypes/_NF/Shipyard/mccargo.yml @@ -9,7 +9,7 @@ id: McCargo name: DC McCargo description: "Your very own McCargo™ franchise! Comes fully stocked and ready for production of McMeals." - price: 72000 # appraises at 67456, ~10% margin - TODO: fix these values, getting tests to pass - Whatstone + price: 75000 # appraises at 67456, ~10% margin - TODO: fix these values, getting tests to pass - Whatstone category: Medium group: Shipyard shuttlePath: /Maps/_NF/Shuttles/mccargo.yml diff --git a/Resources/Prototypes/_NF/Shipyard/pts.yml b/Resources/Prototypes/_NF/Shipyard/pts.yml index 629aefb3f1f..e4f7ee0b0c8 100644 --- a/Resources/Prototypes/_NF/Shipyard/pts.yml +++ b/Resources/Prototypes/_NF/Shipyard/pts.yml @@ -12,7 +12,7 @@ id: PTS name: NC Personal Transport description: A small transport shuttle with space for 4 passengers. Comes with the latest audio entertainment technology. - price: 15500 # $14325 after appraisal + $1200 (~5% markup) + price: 16500 # $14325 after appraisal + $1200 (~5% markup) category: Small group: Shipyard shuttlePath: /Maps/_NF/Shuttles/pts.yml diff --git a/Resources/Prototypes/_NF/Shipyard/spirit.yml b/Resources/Prototypes/_NF/Shipyard/spirit.yml index ae7dfd0ed5c..aa792192836 100644 --- a/Resources/Prototypes/_NF/Shipyard/spirit.yml +++ b/Resources/Prototypes/_NF/Shipyard/spirit.yml @@ -12,7 +12,7 @@ id: Spirit name: FSB Spirit description: A tiny medical search and rescue shuttle, as nimble as it is cramped. Running costs guarenteed* to be 5% lower than competing models! - price: 15500 + price: 16500 category: Small group: Shipyard shuttlePath: /Maps/_NF/Shuttles/spirit.yml From a88085723b60f34b24b34f074c4920ab5af1bd96 Mon Sep 17 00:00:00 2001 From: Dvir <39403717+dvir001@users.noreply.github.com> Date: Wed, 16 Oct 2024 16:55:23 +0300 Subject: [PATCH 09/11] Frontier Mobs Fixup (#2258) * Split base * Prefixing MobRestrictions, MobTimedDespawn --------- Co-authored-by: Whatstone --- .../Prototypes/Entities/Mobs/NPCs/carp.yml | 8 +-- .../Prototypes/Entities/Mobs/NPCs/flesh.yml | 3 +- .../Prototypes/Entities/Mobs/NPCs/space.yml | 12 +--- .../Entities/Mobs/NPCs/spacetick.yml | 4 +- .../Prototypes/Entities/Mobs/NPCs/xeno.yml | 6 +- .../Entities/Mobs/Player/dragon.yml | 3 +- .../_NF/Entities/Mobs/NPCs/corpses.yml | 1 - .../_NF/Entities/Mobs/NPCs/elemental.yml | 6 +- .../Entities/Mobs/NPCs/mob_hostile_base.yml | 68 +++++++++++++++++-- .../Mobs/NPCs/mob_hostile_bloodcultist.yml | 23 +++---- ...mob_hostile_expeditions_aberrant_flesh.yml | 5 +- .../NPCs/mob_hostile_expeditions_argocyte.yml | 2 +- .../NPCs/mob_hostile_expeditions_carp.yml | 1 + .../mob_hostile_expeditions_dinosaurs.yml | 2 +- .../mob_hostile_expeditions_explorers.yml | 1 + .../NPCs/mob_hostile_expeditions_xeno.yml | 3 +- .../Mobs/NPCs/mob_hostile_mercenaries.yml | 1 + .../Mobs/NPCs/mob_hostile_rogue_ai.yml | 9 +-- .../NPCs/mob_hostile_wizardfederation.yml | 12 +--- .../Mobs/NPCs/mob_meme_goblinbane.yml | 11 ++- .../Mobs/NPCs/mob_meme_goblinbane_minions.yml | 16 ++--- .../_NF/Entities/Objects/base_contraband.yml | 22 ++++-- 22 files changed, 126 insertions(+), 93 deletions(-) diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml index cb811a761e1..380b741c391 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml @@ -152,10 +152,8 @@ - type: entity id: MobCarpSalvage - parent: MobCarp + parent: [NFMobRestrictions, MobCarp] # Frontier: add NFMobRestrictions, remove components suffix: "Salvage Ruleset" - components: - - type: NFSalvageMobRestrictions # Frontier - type: entity name: space carp @@ -244,7 +242,5 @@ - type: entity id: MobSharkSalvage - parent: MobShark + parent: [NFMobRestrictions, MobShark] # Frontier: add NFMobRestrictions suffix: "Salvage Ruleset" - components: - - type: NFSalvageMobRestrictions diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml b/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml index 64f8418d7bc..b4f6227c005 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/flesh.yml @@ -205,7 +205,7 @@ Blunt: 10 - type: entity - parent: [ SimpleSpaceMobBase, MobCombat ] + parent: [ NFMobRestrictions, SimpleSpaceMobBase, MobCombat ] # Frontier: add NFMobRestrictions id: BaseMobFleshSalvage #This one is immune to space! name: aberrant flesh suffix: "Salvage Ruleset" @@ -261,7 +261,6 @@ Slash: 6 - type: ReplacementAccent accent: genericAggressive - - type: NFSalvageMobRestrictions # Frontier - type: entity parent: BaseMobFleshSalvage diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml index aacf17d4165..e590eea848d 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml @@ -113,10 +113,8 @@ - type: entity id: MobBearSpaceSalvage - parent: MobBearSpace + parent: [NFMobRestrictions, MobBearSpace] # Frontier: add NFMobRestrictions, remove components suffix: "Salvage Ruleset" - components: - - type: NFSalvageMobRestrictions # Frontier - type: entity name: space kangaroo @@ -268,10 +266,8 @@ - type: entity id: MobSpiderSpaceSalvage - parent: MobSpiderSpace + parent: [NFMobRestrictions, MobSpiderSpace] # Frontier: add NFMobRestrictions, remove components suffix: "Salvage Ruleset" - components: - - type: NFSalvageMobRestrictions - type: entity name: space cobra @@ -365,10 +361,8 @@ - type: entity id: MobCobraSpaceSalvage - parent: MobCobraSpace + parent: [NFMobRestrictions, MobCobraSpace] # Frontier: add NFMobRestrictions, remove components suffix: "Salvage Ruleset" - components: - - type: NFSalvageMobRestrictions # Frontier: SalvageMobRestrictions Date: Wed, 16 Oct 2024 16:56:01 +0300 Subject: [PATCH 10/11] Board (#2259) --- .../Tests/MachineBoardTest.cs | 9 +++++++-- .../Objects/Devices/Circuitboards/computer.yml | 13 ------------- .../Objects/Devices/Circuitboards/computer.yml | 15 ++++++++++++++- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/Content.IntegrationTests/Tests/MachineBoardTest.cs b/Content.IntegrationTests/Tests/MachineBoardTest.cs index a379ef8e0e4..01a4d324382 100644 --- a/Content.IntegrationTests/Tests/MachineBoardTest.cs +++ b/Content.IntegrationTests/Tests/MachineBoardTest.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using Content.Server.Construction.Components; using Content.Shared.Construction.Components; @@ -57,7 +57,7 @@ await server.WaitAssertion(() => Assert.Multiple(() => { Assert.That(protoMan.TryIndex(mId, out var mProto), - $"Machine board {p.ID}'s corresponding machine has an invalid prototype."); // Frontier + $"Machine board {p.ID}'s corresponding machine has an invalid prototype."); Assert.That(mProto.TryGetComponent(out var mComp, compFact), $"Machine board {p.ID}'s corresponding machine {mId} does not have MachineComponent"); Assert.That(mComp.Board, Is.EqualTo(p.ID), @@ -93,6 +93,11 @@ await server.WaitAssertion(() => continue; var cId = cbc.Prototype; + // Frontier: we accept null as board prototypes, but this will fail the assertions. + if (cId == "Null") + continue; + // End Frontier + Assert.Multiple(() => { Assert.That(cId, Is.Not.Null, $"Computer board \"{p.ID}\" does not have a corresponding computer."); diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml index c65f82c0070..79e3c92278a 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml @@ -444,19 +444,6 @@ - type: ComputerTabletopBoard # Frontier prototype: ComputerTabletopIFFSyndicate # Frontier -- type: entity - parent: BaseComputerCircuitboard - id: ShipyardComputerCircuitboard - name: shipyard computer board - description: A computer printed circuit board for a shipyard computer. - components: - - type: Sprite - state: cpu_supply - - type: ComputerBoard - prototype: ComputerShipyard - - type: ComputerTabletopBoard # Frontier - prototype: ComputerTabletopShipyard # Frontier - - type: entity parent: BaseComputerCircuitboard id: ComputerMassMediaCircuitboard diff --git a/Resources/Prototypes/_NF/Entities/Objects/Devices/Circuitboards/computer.yml b/Resources/Prototypes/_NF/Entities/Objects/Devices/Circuitboards/computer.yml index 41d659e9197..e36935485e2 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Devices/Circuitboards/computer.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Devices/Circuitboards/computer.yml @@ -23,4 +23,17 @@ # - type: ComputerBoard # prototype: ComputerAdvancedRadar # - type: ComputerTabletopBoard # Frontier - # prototype: ComputerTabletopAdvancedRadar # Frontier \ No newline at end of file + # prototype: ComputerTabletopAdvancedRadar # Frontier + +# - type: entity + # parent: BaseComputerCircuitboard + # id: ShipyardComputerCircuitboard + # name: shipyard computer board + # description: A computer printed circuit board for a shipyard computer. + # components: + # - type: Sprite + # state: cpu_supply + # - type: ComputerBoard + # prototype: ComputerShipyard + # - type: ComputerTabletopBoard # Frontier + # prototype: ComputerTabletopShipyard # Frontier \ No newline at end of file From d6d0d8c29175497821d0a32db3a2fd26c1a009e8 Mon Sep 17 00:00:00 2001 From: Dvir <39403717+dvir001@users.noreply.github.com> Date: Wed, 16 Oct 2024 18:05:03 +0300 Subject: [PATCH 11/11] Fixup (#2260) --- Resources/Maps/_NF/Dungeon/cave_factory.yml | 62 ++++--------- Resources/Maps/_NF/Dungeon/haunted.yml | 92 +++++++------------ Resources/Maps/_NF/Dungeon/lava_brig.yml | 22 ++--- Resources/Maps/_NF/Dungeon/lava_mercenary.yml | 22 ++--- .../Maps/_NF/Dungeon/salvage_outpost.yml | 2 +- Resources/Maps/_NF/Dungeon/snowy_labs.yml | 24 ----- Resources/Maps/_NF/Dungeon/virology_lab.yml | 2 +- 7 files changed, 74 insertions(+), 152 deletions(-) diff --git a/Resources/Maps/_NF/Dungeon/cave_factory.yml b/Resources/Maps/_NF/Dungeon/cave_factory.yml index 76763882519..af7d009cb09 100644 --- a/Resources/Maps/_NF/Dungeon/cave_factory.yml +++ b/Resources/Maps/_NF/Dungeon/cave_factory.yml @@ -8247,18 +8247,6 @@ entities: - type: Transform pos: 26.5,30.5 parent: 1 -- proto: DebugSMES - entities: - - uid: 966 - components: - - type: Transform - pos: 22.5,32.5 - parent: 1 - - uid: 969 - components: - - type: Transform - pos: 18.5,32.5 - parent: 1 - proto: DiseaseDiagnoser entities: - uid: 1419 @@ -8273,18 +8261,6 @@ entities: - type: Transform pos: 22.5,16.5 parent: 1 - - type: ContainerContainer - containers: - DisposalUnit: !type:Container - showEnts: False - occludes: True - ents: - - 551 - disposals: !type:Container - showEnts: False - occludes: True - ents: [] - - type: Timer - uid: 724 components: - type: Transform @@ -8737,16 +8713,12 @@ entities: rot: 1.5707963267948966 rad pos: 8.5,28.5 parent: 1 - - type: Fixtures - fixtures: {} - uid: 940 components: - type: Transform rot: 1.5707963267948966 rad pos: 10.5,28.5 parent: 1 - - type: Fixtures - fixtures: {} - proto: FloraRockSolid01 entities: - uid: 1954 @@ -9134,18 +9106,6 @@ entities: parent: 1 - proto: HospitalCurtains entities: - - uid: 944 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,24.5 - parent: 1 - - type: Occluder - enabled: False - - type: Door - state: Open - - type: Physics - canCollide: False - uid: 945 components: - type: Transform @@ -9160,6 +9120,12 @@ entities: parent: 1 - proto: HospitalCurtainsOpen entities: + - uid: 944 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,24.5 + parent: 1 - uid: 941 components: - type: Transform @@ -9329,8 +9295,6 @@ entities: components: - type: Transform parent: 550 - - type: Physics - canCollide: False - proto: MedicalBed entities: - uid: 1141 @@ -9492,15 +9456,13 @@ entities: - type: Transform pos: 20.590317,3.594551 parent: 1 -- proto: PortableGeneratorHyperPacmanShuttle +- proto: PortableGeneratorHyperPacman entities: - uid: 2077 components: - type: Transform pos: 32.5,20.5 parent: 1 - - type: FuelGenerator - on: False - proto: PortableGeneratorPacman entities: - uid: 962 @@ -11393,6 +11355,16 @@ entities: parent: 1 - proto: SMESBasic entities: + - uid: 966 + components: + - type: Transform + pos: 22.5,32.5 + parent: 1 + - uid: 969 + components: + - type: Transform + pos: 18.5,32.5 + parent: 1 - uid: 47 components: - type: Transform diff --git a/Resources/Maps/_NF/Dungeon/haunted.yml b/Resources/Maps/_NF/Dungeon/haunted.yml index 06a862770dc..0b95c70ba4c 100644 --- a/Resources/Maps/_NF/Dungeon/haunted.yml +++ b/Resources/Maps/_NF/Dungeon/haunted.yml @@ -473,13 +473,6 @@ entities: - type: Transform pos: 9.5,28.5 parent: 1653 -- proto: CigaretteCapsaicinOil - entities: - - uid: 322 - components: - - type: Transform - pos: 31.649122,18.823664 - parent: 1653 - proto: ClothingHeadHatFlowerWreath entities: - uid: 233 @@ -1456,28 +1449,26 @@ entities: parent: 1653 - proto: OreBox entities: - - uid: 184 + - uid: 161 components: - type: Transform pos: 2.5,24.5 parent: 1653 - - uid: 270 + - uid: 164 components: - type: Transform pos: 37.5,4.5 parent: 1653 - - uid: 283 + - uid: 165 components: - type: Transform pos: 17.5,8.5 parent: 1653 - - uid: 488 + - uid: 184 components: - type: Transform - pos: 29.496475,8.499265 + pos: 29.5,8.5 parent: 1653 - - type: Physics - fixedRotation: False - proto: OreProcessor entities: - uid: 231 @@ -1564,13 +1555,6 @@ entities: rot: 1.5707963267948966 rad pos: 10.5,45.5 parent: 1653 -- proto: PuddleVomit - entities: - - uid: 229 - components: - - type: Transform - pos: 3.5,45.5 - parent: 1653 - proto: Rack entities: - uid: 276 @@ -1809,6 +1793,16 @@ entities: - type: Transform pos: 2.6439443,45.462845 parent: 1653 + - uid: 229 + components: + - type: Transform + pos: 4.4356813,1.5142399 + parent: 1653 + - uid: 232 + components: + - type: Transform + pos: 13.473847,3.4530866 + parent: 1653 - uid: 240 components: - type: Transform @@ -1839,6 +1833,11 @@ entities: - type: Transform pos: 31.586864,30.529964 parent: 1653 + - uid: 509 + components: + - type: Transform + pos: 14.9959345,10.159707 + parent: 1653 - uid: 563 components: - type: Transform @@ -2467,23 +2466,6 @@ entities: - type: Transform pos: 2.6935458,19.305508 parent: 1653 -- proto: SpawnDungeonLootMeleeT1 - entities: - - uid: 503 - components: - - type: Transform - pos: 4.279275,1.5174387 - parent: 1653 - - uid: 504 - components: - - type: Transform - pos: 13.09337,3.5103157 - parent: 1653 - - uid: 509 - components: - - type: Transform - pos: 14.9959345,10.159707 - parent: 1653 - proto: SpawnDungeonLootOresFull entities: - uid: 191 @@ -2779,13 +2761,6 @@ entities: - type: Transform pos: 4.5500164,45.666206 parent: 1653 -- proto: SpawnMobFrog - entities: - - uid: 386 - components: - - type: Transform - pos: 18.5,44.5 - parent: 1653 - proto: SteelBench entities: - uid: 71 @@ -2917,35 +2892,38 @@ entities: - type: Transform pos: 2.5,47.5 parent: 1653 - - uid: 161 + - uid: 163 components: - type: Transform - pos: 1.5,44.5 + pos: 5.5,45.5 parent: 1653 - - uid: 163 + - uid: 247 components: - type: Transform - pos: 5.5,45.5 + pos: 10.5,47.5 parent: 1653 - - uid: 164 + - uid: 265 components: - type: Transform - pos: 1.5,46.5 + pos: 21.5,46.5 parent: 1653 - - uid: 165 + - uid: 269 components: - type: Transform - pos: 1.5,45.5 + rot: -1.5707963267948966 rad + pos: 1.5,44.5 parent: 1653 - - uid: 247 + - uid: 270 components: - type: Transform - pos: 10.5,47.5 + rot: -1.5707963267948966 rad + pos: 1.5,46.5 parent: 1653 - - uid: 265 + - uid: 283 components: - type: Transform - pos: 21.5,46.5 + rot: -1.5707963267948966 rad + pos: 1.5,45.5 parent: 1653 - uid: 329 components: diff --git a/Resources/Maps/_NF/Dungeon/lava_brig.yml b/Resources/Maps/_NF/Dungeon/lava_brig.yml index 299d8841135..20b358c13ca 100644 --- a/Resources/Maps/_NF/Dungeon/lava_brig.yml +++ b/Resources/Maps/_NF/Dungeon/lava_brig.yml @@ -7212,18 +7212,6 @@ entities: - type: Transform pos: 14.5,47.5 parent: 588 -- proto: DebugSMES - entities: - - uid: 971 - components: - - type: Transform - pos: 22.5,32.5 - parent: 588 - - uid: 974 - components: - - type: Transform - pos: 18.5,32.5 - parent: 588 - proto: DeployableBarrier entities: - uid: 1233 @@ -10248,6 +10236,16 @@ entities: parent: 588 - proto: SMESBasic entities: + - uid: 971 + components: + - type: Transform + pos: 22.5,32.5 + parent: 588 + - uid: 974 + components: + - type: Transform + pos: 18.5,32.5 + parent: 588 - uid: 46 components: - type: Transform diff --git a/Resources/Maps/_NF/Dungeon/lava_mercenary.yml b/Resources/Maps/_NF/Dungeon/lava_mercenary.yml index cb860f981ee..4d130f1c69f 100644 --- a/Resources/Maps/_NF/Dungeon/lava_mercenary.yml +++ b/Resources/Maps/_NF/Dungeon/lava_mercenary.yml @@ -7334,18 +7334,6 @@ entities: - type: Transform pos: 19.5,35.5 parent: 588 -- proto: DebugSMES - entities: - - uid: 971 - components: - - type: Transform - pos: 22.5,32.5 - parent: 588 - - uid: 974 - components: - - type: Transform - pos: 18.5,32.5 - parent: 588 - proto: DiseaseDiagnoser entities: - uid: 1424 @@ -10262,6 +10250,16 @@ entities: parent: 588 - proto: SMESBasic entities: + - uid: 971 + components: + - type: Transform + pos: 22.5,32.5 + parent: 588 + - uid: 974 + components: + - type: Transform + pos: 18.5,32.5 + parent: 588 - uid: 46 components: - type: Transform diff --git a/Resources/Maps/_NF/Dungeon/salvage_outpost.yml b/Resources/Maps/_NF/Dungeon/salvage_outpost.yml index b1e7319ea05..703560cc05d 100644 --- a/Resources/Maps/_NF/Dungeon/salvage_outpost.yml +++ b/Resources/Maps/_NF/Dungeon/salvage_outpost.yml @@ -10995,7 +10995,7 @@ entities: - type: Transform pos: 36.5,32.5 parent: 1653 -- proto: ResearchAndDevelopmentServer +- proto: MachineFrame entities: - uid: 1883 components: diff --git a/Resources/Maps/_NF/Dungeon/snowy_labs.yml b/Resources/Maps/_NF/Dungeon/snowy_labs.yml index b1bbec6654e..17ee0f8c8ad 100644 --- a/Resources/Maps/_NF/Dungeon/snowy_labs.yml +++ b/Resources/Maps/_NF/Dungeon/snowy_labs.yml @@ -7172,8 +7172,6 @@ entities: - type: Transform pos: 0.5,22.5 parent: 1653 - - type: Fixtures - fixtures: {} - proto: FloraTreeSnow01 entities: - uid: 1133 @@ -7215,13 +7213,6 @@ entities: - type: Transform pos: 12.556688,14.57218 parent: 1653 - - uid: 805 - components: - - type: MetaData - name: strange berries - - type: Transform - pos: 10.525438,14.587805 - parent: 1653 - proto: FoodCondimentBottleColdsauce entities: - uid: 1841 @@ -7229,13 +7220,6 @@ entities: - type: Transform pos: 5.5153017,13.652036 parent: 1653 -- proto: FoodGatfruit - entities: - - uid: 295 - components: - - type: Transform - pos: 3.4733143,14.462859 - parent: 1653 - proto: FoodPotato entities: - uid: 1396 @@ -10093,14 +10077,6 @@ entities: rot: -1.5707963267948966 rad pos: 4.5,26.5 parent: 1653 -- proto: MagicalLamp - entities: - - uid: 1204 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5085075,47.438328 - parent: 1653 - proto: MaintenanceFluffSpawner entities: - uid: 1245 diff --git a/Resources/Maps/_NF/Dungeon/virology_lab.yml b/Resources/Maps/_NF/Dungeon/virology_lab.yml index 183057b85b6..32485971122 100644 --- a/Resources/Maps/_NF/Dungeon/virology_lab.yml +++ b/Resources/Maps/_NF/Dungeon/virology_lab.yml @@ -9984,7 +9984,7 @@ entities: - type: Transform pos: 10.5,1.5 parent: 1653 -- proto: ResearchAndDevelopmentServer +- proto: MachineFrame entities: - uid: 864 components: