diff --git a/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs b/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs index fee4c1a0fb6..716f77772cf 100644 --- a/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs +++ b/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs @@ -36,6 +36,8 @@ using Robust.Shared.Random; using Robust.Shared.Serialization; using Robust.Shared.Utility; +using Content.Shared.Construction.Steps; +using Content.Shared.Tag; namespace Content.Shared.Storage.EntitySystems; @@ -61,6 +63,7 @@ public abstract class SharedStorageSystem : EntitySystem [Dependency] protected readonly UseDelaySystem UseDelay = default!; [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; [Dependency] private readonly ISharedAdminLogManager _adminLog = default!; + [Dependency] private readonly TagSystem _tag = default!; private EntityQuery _itemQuery; private EntityQuery _stackQuery; @@ -824,7 +827,8 @@ public bool CanInsert( } if (_whitelistSystem.IsWhitelistFail(storageComp.Whitelist, insertEnt) || - _whitelistSystem.IsBlacklistPass(storageComp.Blacklist, insertEnt)) + _whitelistSystem.IsBlacklistPass(storageComp.Blacklist, insertEnt) || + _tag.HasTag(insertEnt, "ADTStorageBlacklist")) // ADT tweak { reason = "comp-storage-invalid-container"; return false; diff --git a/Resources/Locale/ru-RU/ADT/prototypes/Entities/Objects/Specific/Salvage/equip.ftl b/Resources/Locale/ru-RU/ADT/prototypes/Entities/Objects/Specific/Salvage/equip.ftl index b84b3c656bf..3506e0fc7db 100644 --- a/Resources/Locale/ru-RU/ADT/prototypes/Entities/Objects/Specific/Salvage/equip.ftl +++ b/Resources/Locale/ru-RU/ADT/prototypes/Entities/Objects/Specific/Salvage/equip.ftl @@ -1,2 +1,5 @@ ent-ADTJaunter = генератор червоточин .desc = Инструмент, создающий нестабильные порталы. Может спасти вас, если вы провалились в дыру. + +ent-ADTAdvancedOreBag = промышленная сумка для руды + .desc = Улучшенная версия сумки для руды, позволяющая хранить больше материалов. Притягивает руду с чуть большего расстояния. diff --git a/Resources/Locale/ru-RU/ADT/prototypes/Entities/Structures/Specific/tendril.ftl b/Resources/Locale/ru-RU/ADT/prototypes/Entities/Structures/Specific/tendril.ftl index 46d3f37b5c0..a784c3572fa 100644 --- a/Resources/Locale/ru-RU/ADT/prototypes/Entities/Structures/Specific/tendril.ftl +++ b/Resources/Locale/ru-RU/ADT/prototypes/Entities/Structures/Specific/tendril.ftl @@ -15,3 +15,5 @@ ent-ADTTendrilIcewingWatcher = { ent-ADTTendrilBase } ent-ADTTendrilMagmawingWatcher = { ent-ADTTendrilBase } .desc = { ent-ADTTendrilBase.desc } + +tendril-destruction-popup = Земля под шипом обваливается! diff --git a/Resources/Locale/ru-RU/ADT/prototypes/Entities/Structures/Storage/crates/necropolis.ftl b/Resources/Locale/ru-RU/ADT/prototypes/Entities/Structures/Storage/crates/necropolis.ftl index 30e735c8292..81237e4b388 100644 --- a/Resources/Locale/ru-RU/ADT/prototypes/Entities/Structures/Storage/crates/necropolis.ftl +++ b/Resources/Locale/ru-RU/ADT/prototypes/Entities/Structures/Storage/crates/necropolis.ftl @@ -1,4 +1,4 @@ -ent-ADTCrateNecropolis = суднук некрополя +ent-ADTCrateNecropolis = сундук некрополя .desc = Сундук, состоящий из костей и мяса. Таит внутри себя неизведанные артефакты. ent-ADTCrateNecropolisHeart = { ent-ADTCrateNecropolis } diff --git a/Resources/Prototypes/ADT/Entities/Objects/Specific/Salvage/advanced_ore_bag.yml b/Resources/Prototypes/ADT/Entities/Objects/Specific/Salvage/advanced_ore_bag.yml new file mode 100644 index 00000000000..f5f2d530713 --- /dev/null +++ b/Resources/Prototypes/ADT/Entities/Objects/Specific/Salvage/advanced_ore_bag.yml @@ -0,0 +1,15 @@ +- type: entity + name: advanced ore bag + id: ADTAdvancedOreBag + parent: OreBag + components: + - type: Sprite + sprite: ADT/Objects/Specific/Salvage/advanced_ore_bag.rsi + state: icon + - type: Clothing + sprite: ADT/Objects/Specific/Salvage/advanced_ore_bag.rsi + - type: Storage + grid: + - 0,0,11,5 + - type: MagnetPickup + range: 1.5 diff --git a/Resources/Prototypes/ADT/Entities/Structures/Specific/tendril.yml b/Resources/Prototypes/ADT/Entities/Structures/Specific/tendril.yml index 87cd8f5c093..5e7b362c95a 100644 --- a/Resources/Prototypes/ADT/Entities/Structures/Specific/tendril.yml +++ b/Resources/Prototypes/ADT/Entities/Structures/Specific/tendril.yml @@ -27,6 +27,13 @@ ADTCrateNecropolisRandom: min: 1 max: 1 + - !type:PlaySoundBehavior + sound: + path: /Audio/ADT/SoundGen/destruction_1.ogg + radius: 7 + - !type:PopupBehavior + popup: tendril-destruction-popup + popupType: MediumCaution - type: Physics bodyType: Static - type: Transform diff --git a/Resources/Prototypes/ADT/mining_shop.yml b/Resources/Prototypes/ADT/mining_shop.yml index af31561171a..99f3e44fe44 100644 --- a/Resources/Prototypes/ADT/mining_shop.yml +++ b/Resources/Prototypes/ADT/mining_shop.yml @@ -52,20 +52,22 @@ entries: - id: ClothingBeltSalvageWebbing price: 500 - - id: ClothingOuterHardsuitSalvage - price: 3000 + - id: ADTAdvancedOreBag + price: 500 + - id: ADTWeaponCutter + price: 500 + - id: ADTJaunter + price: 900 - id: ADTClothingOuterArmorMiner price: 1000 + - id: ClothingOuterHardsuitSalvage + price: 3000 - id: ADTClothingOuterArmorMinerHeavy price: 3600 - id: ClothingOuterArmorMinerLight price: 4000 - - id: ADTWeaponCutter - price: 500 - id: ADTClothingJumpBoots price: 2500 - - id: ADTJaunter - price: 900 - type: miningShopSection id: Upgrades diff --git a/Resources/Prototypes/ADT/tags.yml b/Resources/Prototypes/ADT/tags.yml index 519e46a3a13..a98396a3450 100644 --- a/Resources/Prototypes/ADT/tags.yml +++ b/Resources/Prototypes/ADT/tags.yml @@ -454,5 +454,9 @@ - type: Tag id: PKA +- type: Tag + id: ADTStorageBlacklist + - type: Tag id: LavaDungeonBloodMiner + diff --git a/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml b/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml index b589b2bbc08..616a8882352 100644 --- a/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml +++ b/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml @@ -17,6 +17,11 @@ grid: - 0,0,6,3 maxItemSize: Huge + # ADT Start + blacklist: + tags: + - ADTOreBag + # ADT End - type: ContainerContainer containers: storagebase: !type:Container diff --git a/Resources/Prototypes/Entities/Objects/Specific/Salvage/ore_bag.yml b/Resources/Prototypes/Entities/Objects/Specific/Salvage/ore_bag.yml index 887fd10dca1..216872c465b 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Salvage/ore_bag.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Salvage/ore_bag.yml @@ -31,4 +31,5 @@ - type: Tag tags: - ADTOreBag + - ADTStorageBlacklist # ADT tweak end diff --git a/Resources/Prototypes/Entities/Objects/Specific/Salvage/ore_bag_holding.yml b/Resources/Prototypes/Entities/Objects/Specific/Salvage/ore_bag_holding.yml index e8c7fa37dd4..3386840b251 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Salvage/ore_bag_holding.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Salvage/ore_bag_holding.yml @@ -5,7 +5,7 @@ description: A robust bag of holding for salvage billionaires and rich miners alike to carry large amounts of ore. Magnetises any nearby ores when attached to a belt. components: - type: MagnetPickup - range: 2 + range: 2.5 # ADT tweak: 2 -> 2.5 - type: Sprite sprite: Objects/Specific/Mining/ore_bag_holding.rsi state: icon diff --git a/Resources/Textures/ADT/Objects/Specific/Salvage/advanced_ore_bag.rsi/equipped-BELT.png b/Resources/Textures/ADT/Objects/Specific/Salvage/advanced_ore_bag.rsi/equipped-BELT.png new file mode 100644 index 00000000000..f89424ad821 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Specific/Salvage/advanced_ore_bag.rsi/equipped-BELT.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Salvage/advanced_ore_bag.rsi/icon.png b/Resources/Textures/ADT/Objects/Specific/Salvage/advanced_ore_bag.rsi/icon.png new file mode 100644 index 00000000000..74fbbaee656 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Specific/Salvage/advanced_ore_bag.rsi/icon.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Salvage/advanced_ore_bag.rsi/inhand-left.png b/Resources/Textures/ADT/Objects/Specific/Salvage/advanced_ore_bag.rsi/inhand-left.png new file mode 100644 index 00000000000..dacc80f72e2 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Specific/Salvage/advanced_ore_bag.rsi/inhand-left.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Salvage/advanced_ore_bag.rsi/inhand-right.png b/Resources/Textures/ADT/Objects/Specific/Salvage/advanced_ore_bag.rsi/inhand-right.png new file mode 100644 index 00000000000..9f365763128 Binary files /dev/null and b/Resources/Textures/ADT/Objects/Specific/Salvage/advanced_ore_bag.rsi/inhand-right.png differ diff --git a/Resources/Textures/ADT/Objects/Specific/Salvage/advanced_ore_bag.rsi/meta.json b/Resources/Textures/ADT/Objects/Specific/Salvage/advanced_ore_bag.rsi/meta.json new file mode 100644 index 00000000000..11902327757 --- /dev/null +++ b/Resources/Textures/ADT/Objects/Specific/Salvage/advanced_ore_bag.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from ss220, resprite by unlumination", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-BELT", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +}