From a9434f50124a7c58db319c9c3e81855f32f38294 Mon Sep 17 00:00:00 2001 From: Grom1halo Date: Sun, 14 Jun 2026 18:17:58 +0700 Subject: [PATCH 01/11] Rebalance Dermal Armor and Platelet Factories traits - Dermal Armor: flat reduction 3.5 -> 5 for Blunt/Slash/Piercing, Shock coefficient 1.25 -> 1.4, added Heat vulnerability (-2.5) - Platelet Factories: cost 6 -> 3, Burn healing -2 -> -1 - Updated trait descriptions (en-US, ru-RU) to match new values --- Resources/Locale/en-US/_Mono/traits/traits.ftl | 2 +- Resources/Locale/ru-RU/_Mono/traits/traits.ftl | 2 +- Resources/Prototypes/_Mono/Traits/physical.yml | 13 +++++++------ 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Resources/Locale/en-US/_Mono/traits/traits.ftl b/Resources/Locale/en-US/_Mono/traits/traits.ftl index eb1ceb20e08..ad3ea2d7e72 100644 --- a/Resources/Locale/en-US/_Mono/traits/traits.ftl +++ b/Resources/Locale/en-US/_Mono/traits/traits.ftl @@ -69,7 +69,7 @@ trait-steadfast-name = Steadfast trait-steadfast-desc = When others would buckle from the weight of your injuries, you still march forward unrelentingly. For most species, this reduces your movement slow: 25% at 60 damage becomes 17% at 70 damage, and 45% at 80 damage becomes 30% at 90 damage. trait-dermal-armor-name = Dermal Armor -trait-dermal-armor-desc = Your skin has been replaced with a flexible, yet sturdy, hard-polymer shell wrapped in a layer of synthetic flesh. Provides 3.5 flat reduction to Blunt, Slash, and Piercing damage, but you take 25% more Shock damage. +trait-dermal-armor-desc = Your skin has been replaced with a flexible, yet sturdy, hard-polymer shell wrapped in a layer of synthetic flesh. Provides 5 flat reduction to Blunt, Slash, and Piercing damage, but you take 40% more Shock damage and an extra 2.5 Heat damage. trait-ironman-name = Ironman trait-ironman-desc = You live strictly on hard cash. You can't withdraw from your bank account, but you start the shift with a Baeg Voucher to make your way. diff --git a/Resources/Locale/ru-RU/_Mono/traits/traits.ftl b/Resources/Locale/ru-RU/_Mono/traits/traits.ftl index b0bc587d125..6b6553d4eb3 100644 --- a/Resources/Locale/ru-RU/_Mono/traits/traits.ftl +++ b/Resources/Locale/ru-RU/_Mono/traits/traits.ftl @@ -87,7 +87,7 @@ trait-steadfast-name = Несгибаемость trait-steadfast-desc = Когда другие сгибаются под тяжестью ран, вы продолжаете идти вперёд. Для большинства видов эта черта снижает замедление от урона: 25% при 60 урона становится 17% при 70, а 45% при 80 — 30% при 90. trait-dermal-armor-name = Дермальная броня -trait-dermal-armor-desc = Ваша кожа заменена гибким, но прочным полимерным панцирем с покрытием из синтетической плоти. Даёт плоское снижение урона на 3.5 от тупого, режущего и колющего урона, но вы получаете на 25% больше урона от электрошока. +trait-dermal-armor-desc = Ваша кожа заменена гибким, но прочным полимерным панцирем с покрытием из синтетической плоти. Даёт плоское снижение урона на 5 от тупого, режущего и колющего урона, но вы получаете на 40% больше урона от электрошока и дополнительно на 2.5 больше урона от жара. trait-temperature-tolerance-name = Устойчивость к холоду trait-temperature-tolerance-desc = У вас заметно повышенная устойчивость к низким температурам. Вы можете дольше находиться в условиях чуть ниже нуля, например в холодильной камере или на освещённых склонах Глейсера. diff --git a/Resources/Prototypes/_Mono/Traits/physical.yml b/Resources/Prototypes/_Mono/Traits/physical.yml index 273f392c33d..1f64ea5f7c2 100644 --- a/Resources/Prototypes/_Mono/Traits/physical.yml +++ b/Resources/Prototypes/_Mono/Traits/physical.yml @@ -303,11 +303,12 @@ dermal: id: DermalArmorTrait coefficients: - Shock: 1.25 + Shock: 1.4 flatReductions: - Blunt: 3.5 - Slash: 3.5 - Piercing: 3.5 + Blunt: 5 + Slash: 5 + Piercing: 5 + Heat: -2.5 - type: trait id: HardenedLymphocytes @@ -372,7 +373,7 @@ name: trait-platelet-factories-name description: trait-platelet-factories-desc category: Physical - cost: 6 + cost: 3 mutuallyExclusiveTraits: - Hemophilia speciesBlacklist: @@ -386,7 +387,7 @@ damagePerInterval: groups: Brute: -1.5 - Burn: -2 + Burn: -1 critMultiplier: .25 - type: trait From 03e88c58bf860524ad9f37e543a55e101d7bc67d Mon Sep 17 00:00:00 2001 From: Grom1halo Date: Sun, 14 Jun 2026 18:35:04 +0700 Subject: [PATCH 02/11] Revert Platelet Factories cost back to 6 per reviewer feedback --- Resources/Prototypes/_Mono/Traits/physical.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/_Mono/Traits/physical.yml b/Resources/Prototypes/_Mono/Traits/physical.yml index 1f64ea5f7c2..06b90da4b3a 100644 --- a/Resources/Prototypes/_Mono/Traits/physical.yml +++ b/Resources/Prototypes/_Mono/Traits/physical.yml @@ -373,7 +373,7 @@ name: trait-platelet-factories-name description: trait-platelet-factories-desc category: Physical - cost: 3 + cost: 6 mutuallyExclusiveTraits: - Hemophilia speciesBlacklist: From 8a3af6e41630921fecd44160da213d15706bf0f6 Mon Sep 17 00:00:00 2001 From: Grom1halo Date: Sun, 14 Jun 2026 18:41:48 +0700 Subject: [PATCH 03/11] Remove Killer Tomato mob and all references Removes the MobTomatoKiller entity (ghost role, sprite, accent, butcher loot) along with its killerTomato seed mutation, KillerTomatoSeeds packet, spawn table entries, map placements, and locale strings in en-US and ru-RU. --- Resources/Locale/en-US/accent/accents.ftl | 7 - .../ghost/roles/ghost-role-component.ftl | 3 - Resources/Locale/en-US/seeds/seeds.ftl | 2 - Resources/Locale/ru-RU/accent/accents.ftl | 5 - .../ghost/roles/ghost-role-component.ftl | 2 - Resources/Locale/ru-RU/seeds/seeds.ftl | 2 - .../entities/mobs/npcs/miscellaneous.ftl | 2 - .../objects/specific/hydroponics/seeds.ftl | 2 - Resources/Maps/Salvage/small-chapel.yml | 7 - Resources/Maps/centcomm.yml | 22 --- .../Prototypes/Accents/full_replacements.yml | 9 - .../Prototypes/Entities/Effects/mobspawn.yml | 1 - .../Entities/Mobs/NPCs/miscellaneous.yml | 155 ------------------ .../Objects/Specific/Hydroponics/seeds.yml | 10 -- Resources/Prototypes/Hydroponics/seeds.yml | 33 ---- .../Random/dungeon_items_hydroponics.yml | 1 - .../Mobs/Demons/tomatokiller.rsi/alive.png | Bin 3843 -> 0 bytes .../Mobs/Demons/tomatokiller.rsi/dead.png | Bin 1092 -> 0 bytes .../Mobs/Demons/tomatokiller.rsi/meta.json | 40 ----- .../Hydroponics/tomatokiller.rsi/dead.png | Bin 475 -> 0 bytes .../Hydroponics/tomatokiller.rsi/harvest.png | Bin 352 -> 0 bytes .../Hydroponics/tomatokiller.rsi/meta.json | 26 --- .../Hydroponics/tomatokiller.rsi/seed.png | Bin 423 -> 0 bytes .../Hydroponics/tomatokiller.rsi/stage-1.png | Bin 206 -> 0 bytes .../Hydroponics/tomatokiller.rsi/stage-2.png | Bin 290 -> 0 bytes 25 files changed, 329 deletions(-) delete mode 100644 Resources/Textures/Mobs/Demons/tomatokiller.rsi/alive.png delete mode 100644 Resources/Textures/Mobs/Demons/tomatokiller.rsi/dead.png delete mode 100644 Resources/Textures/Mobs/Demons/tomatokiller.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/dead.png delete mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/harvest.png delete mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/seed.png delete mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/stage-1.png delete mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/stage-2.png diff --git a/Resources/Locale/en-US/accent/accents.ftl b/Resources/Locale/en-US/accent/accents.ftl index 7ce882b41bb..ac77fcbca35 100644 --- a/Resources/Locale/en-US/accent/accents.ftl +++ b/Resources/Locale/en-US/accent/accents.ftl @@ -124,10 +124,3 @@ accent-words-nymph-1 = Chirp! accent-words-nymph-2 = Churr... accent-words-nymph-3 = Cheep? accent-words-nymph-4 = Chrrup! - -# TomatoKiller -accent-words-tomato-1 = Totato! -accent-words-tomato-2 = Trotect -accent-words-tomato-3 = Mastet? -accent-words-tomato-4 = Reaty! -accent-words-tomato-5 = Water... diff --git a/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl b/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl index 6f1af23fa26..15373620387 100644 --- a/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl @@ -308,9 +308,6 @@ ghost-role-information-pirate-captain-description = Argh matey! You are in charg ghost-role-information-artifact-name = Sentient Artifact ghost-role-information-artifact-description = Enact your eldritch whims. Forcibly activate your nodes for good or for evil. -ghost-role-information-tomatokiller-name = Tomato Killer -ghost-role-information-tomatokiller-description = This little tomato will serve the botanist for the rest of his life... that is, a couple of minutes. - ghost-role-information-gingerbread-name = Gingerbread Man ghost-role-information-gingerbread-description = A being of pure holiday spirit. Spread molassesy goodness and to all good cheer. diff --git a/Resources/Locale/en-US/seeds/seeds.ftl b/Resources/Locale/en-US/seeds/seeds.ftl index 567626fa49f..f43b52f8cd6 100644 --- a/Resources/Locale/en-US/seeds/seeds.ftl +++ b/Resources/Locale/en-US/seeds/seeds.ftl @@ -48,8 +48,6 @@ seeds-bluetomato-name = blue tomato seeds-bluetomato-display-name = blue tomato plant seeds-bloodtomato-name = blood tomato seeds-bloodtomato-display-name = blood tomato plant -seeds-killertomato-name = tomato killer -seeds-killertomato-display-name = tomato killer plant seeds-eggplant-name = eggplant seeds-eggplant-display-name = eggplants seeds-apple-name = apple diff --git a/Resources/Locale/ru-RU/accent/accents.ftl b/Resources/Locale/ru-RU/accent/accents.ftl index 68dba94ae22..16b05d8cca8 100644 --- a/Resources/Locale/ru-RU/accent/accents.ftl +++ b/Resources/Locale/ru-RU/accent/accents.ftl @@ -115,8 +115,3 @@ accent-words-mothroach-2 = Чирик! accent-words-mothroach-3 = Чиик! accent-words-mothroach-4 = Иии! accent-words-mothroach-5 = Ийип! -accent-words-tomato-1 = Томато! -accent-words-tomato-2 = Тротект -accent-words-tomato-3 = Мастер? -accent-words-tomato-4 = Рити! -accent-words-tomato-5 = Вода... diff --git a/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl b/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl index c5513472a85..ff11c53a4ce 100644 --- a/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl @@ -266,8 +266,6 @@ ghost-role-information-pirate-name = Космический пират ghost-role-information-pirate-description = Аррр, приятель! Собери крутую добычу, но избегай охраны и утилизаторов! ghost-role-information-pirate-captain-name = Капитан космических пиратов ghost-role-information-pirate-captain-description = Аррр, приятель! Ты здесь главный и должен придумать план, как добыть эту сочную добычу любыми средствами. Главное — избегай охраны и утилизаторов! -ghost-role-information-tomatokiller-name = Томат-убийца -ghost-role-information-tomatokiller-description = Этот маленький помидор будет служить ботанику всю оставшуюся жизнь... то есть пару минут. ghost-role-information-gingerbread-name = Пряничный человечек ghost-role-information-gingerbread-description = Существо чисто праздничного духа. ghost-role-information-wizard-name = Волшебник diff --git a/Resources/Locale/ru-RU/seeds/seeds.ftl b/Resources/Locale/ru-RU/seeds/seeds.ftl index bb20091e389..4c34933e996 100644 --- a/Resources/Locale/ru-RU/seeds/seeds.ftl +++ b/Resources/Locale/ru-RU/seeds/seeds.ftl @@ -40,8 +40,6 @@ seeds-bluetomato-name = синий томат seeds-bluetomato-display-name = куст синего томата seeds-bloodtomato-name = кровяной томат seeds-bloodtomato-display-name = куст кровяного томата -seeds-killertomato-name = томат-убийца -seeds-killertomato-display-name = куст томата-убийцы seeds-eggplant-name = баклажан seeds-eggplant-display-name = баклажан seeds-apple-name = яблоко diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/miscellaneous.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/miscellaneous.ftl index 63c392ec114..6e75cc430f7 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/miscellaneous.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/miscellaneous.ftl @@ -1,4 +1,2 @@ ent-MobLaserRaptor = лазерный раптор .desc = Из эпохи викингов. -ent-MobTomatoKiller = помидор-убийца - .desc = Похоже, сегодня не вы едите помидоры, а помидоры едят вас. diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/hydroponics/seeds.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/hydroponics/seeds.ftl index e0dd0d2f4b1..dbbb57c4639 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/hydroponics/seeds.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/hydroponics/seeds.ftl @@ -122,8 +122,6 @@ ent-PapercaneSeeds = пакет семян (бумажный тростник) .desc = { ent-SeedBase.desc } ent-MeatwheatSeeds = пакет семян (мясница) .desc = Если вы когда-нибудь хотели довести вегетарианца до безумия, то вот как это сделать. -ent-KillerTomatoSeeds = пакет семян (томат-убийца) - .desc = { ent-SeedBase.desc } ent-HolymelonSeeds = пакет семян (святой арбуз) .desc = { ent-SeedBase.desc } ent-GoldenAppleSeeds = пакет семян (золотое яблоко) diff --git a/Resources/Maps/Salvage/small-chapel.yml b/Resources/Maps/Salvage/small-chapel.yml index 2c3b117a4a9..9b3540e0aa5 100644 --- a/Resources/Maps/Salvage/small-chapel.yml +++ b/Resources/Maps/Salvage/small-chapel.yml @@ -616,13 +616,6 @@ entities: - type: Transform pos: 6.5,5.5 parent: 1 -- proto: KillerTomatoSeeds - entities: - - uid: 51 - components: - - type: Transform - pos: 4.6947265,8.268279 - parent: 1 - proto: Lamp entities: - uid: 66 diff --git a/Resources/Maps/centcomm.yml b/Resources/Maps/centcomm.yml index 5e10e05e1e7..fa966a87bae 100644 --- a/Resources/Maps/centcomm.yml +++ b/Resources/Maps/centcomm.yml @@ -41293,28 +41293,6 @@ entities: - type: Transform pos: -3.3831449,-0.61700773 parent: 1668 -- proto: KillerTomatoSeeds - entities: - - uid: 1015 - components: - - type: Transform - pos: 8.239295,-23.358154 - parent: 1668 - - uid: 1016 - components: - - type: Transform - pos: 8.239295,-23.295654 - parent: 1668 - - uid: 1017 - components: - - type: Transform - pos: 8.239295,-23.420654 - parent: 1668 - - uid: 1018 - components: - - type: Transform - pos: 8.239295,-23.483154 - parent: 1668 - proto: KitchenElectricGrill entities: - uid: 1174 diff --git a/Resources/Prototypes/Accents/full_replacements.yml b/Resources/Prototypes/Accents/full_replacements.yml index f495de250fc..1d1efdcad0e 100644 --- a/Resources/Prototypes/Accents/full_replacements.yml +++ b/Resources/Prototypes/Accents/full_replacements.yml @@ -174,12 +174,3 @@ - accent-words-nymph-2 - accent-words-nymph-3 - accent-words-nymph-4 - -- type: accent - id: tomatoKiller - fullReplacements: - - accent-words-tomato-1 - - accent-words-tomato-2 - - accent-words-tomato-3 - - accent-words-tomato-4 - - accent-words-tomato-5 diff --git a/Resources/Prototypes/Entities/Effects/mobspawn.yml b/Resources/Prototypes/Entities/Effects/mobspawn.yml index 1489c26493a..5c3ef75b2d9 100644 --- a/Resources/Prototypes/Entities/Effects/mobspawn.yml +++ b/Resources/Prototypes/Entities/Effects/mobspawn.yml @@ -102,7 +102,6 @@ - id: FoodOnionRed - id: FoodWatermelon - id: FoodCherry - - id: MobTomatoKiller - id: MobLuminousEntity - id: MobLuminousObject - id: FoodGatfruit # 0.007% spawn chance. 1 / 141 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml b/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml index 24db6001e1b..b2bca4cb68a 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml @@ -72,158 +72,3 @@ interactFailureString: petting-failure-generic interactSuccessSound: path: /Audio/Animals/lizard_happy.ogg - -- type: entity - id: MobTomatoKiller - parent: - - BaseSimpleMob - - MobDamageable - - MobPolymorphable - - MobBloodstream - - MobFlammable - - MobCombat - name: tomato killer - description: Looks like it's not you eating tomatoes today, it's the tomatoes eating you. - components: - - type: GhostRole - prob: 0.05 - makeSentient: true - allowSpeech: true - name: ghost-role-information-tomatokiller-name - description: ghost-role-information-tomatokiller-description - rules: ghost-role-information-familiar-rules - raffle: - settings: short - - type: GhostTakeoverAvailable - - type: CanEscapeInventory - baseResistTime: 3 - - type: Reactive - groups: - Flammable: [ Touch ] - Extinguish: [ Touch ] - reactions: - - reagents: [ Water ] - methods: [ Touch ] - effects: - - !type:HealthChange - scaleByQuantity: true - damage: - groups: - Brute: -0.25 - - reagents: [ Blood ] - methods: [ Touch ] - effects: - - !type:HealthChange - scaleByQuantity: true - damage: - groups: - Brute: -0.5 - Burn: -0.5 - - reagents: [ RobustHarvest ] - methods: [ Touch ] - effects: - - !type:HealthChange - scaleByQuantity: true - damage: - groups: - Brute: -2 - Burn: -2 - - type: ReplacementAccent - accent: tomatoKiller - - type: Item - - type: NpcFactionMember - factions: - - SimpleHostile - - type: HTN - rootTask: - task: KillerTomatoCompound - - type: NPCImprintingOnSpawnBehaviour - whitelist: - components: - - HumanoidAppearance - - type: Sprite - sprite: Mobs/Demons/tomatokiller.rsi - noRot: true - layers: - - map: [ "enum.DamageStateVisualLayers.Base" ] - state: alive - - type: Bloodstream - bloodReagent: JuiceTomato - bloodMaxVolume: 50 - chemicalMaxVolume: 30 - - type: DamageStateVisuals - states: - Alive: - Base: alive - Dead: - Base: dead - - type: Butcherable - spawned: - - id: FoodMeatTomato - amount: 2 - - type: Destructible - thresholds: - - trigger: - !type:DamageTypeTrigger - damageType: Blunt - damage: 40 - behaviors: - - !type:SpawnEntitiesBehavior - spawn: - FoodMeatTomato: - min: 1 - max: 2 - - !type:DoActsBehavior - acts: ["Destruction"] - - !type:PlaySoundBehavior - sound: - collection: gib - - type: MobThresholds - thresholds: - 0: Alive - 35: Dead - - type: Fixtures - fixtures: - fix1: - shape: - !type:PhysShapeCircle - radius: 0.30 - density: 80 - mask: - - MobMask - layer: - - MobLayer - - type: MeleeWeapon - hidden: true - damage: - groups: - Brute: 15 - animation: WeaponArcBite - - type: Climbing - - type: NameIdentifier - group: GenericNumber - - type: FootstepModifier - footstepSoundCollection: - path: /Audio/Effects/Footsteps/slime1.ogg - params: - volume: 3 - - type: Tag - tags: - - FootstepSound - - Fruit - - type: Extractable - grindableSolutionName: bloodstream - - type: PotencyVisuals - - type: Appearance - - type: Produce - seedId: killerTomato - - type: PassiveDamage # Slight passive damage. 35 hp \ 5 min \ 60 sec = 0.08 - allowedStates: - - Alive - - Dead - damageCap: 50 - damage: - types: - Blunt: 0.11 - - type: StaticPrice - price: 400 diff --git a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml index 816899dec4b..b571b4dcf47 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml @@ -281,16 +281,6 @@ - type: Sprite sprite: Objects/Specific/Hydroponics/blood_tomato.rsi -- type: entity - parent: SeedBase - name: packet of killer tomato seeds - id: KillerTomatoSeeds - components: - - type: Seed - seedId: killerTomato - - type: Sprite - sprite: Objects/Specific/Hydroponics/tomatokiller.rsi - - type: entity parent: SeedBase name: packet of eggplant seeds diff --git a/Resources/Prototypes/Hydroponics/seeds.yml b/Resources/Prototypes/Hydroponics/seeds.yml index 370340e55e3..382a8d730a7 100644 --- a/Resources/Prototypes/Hydroponics/seeds.yml +++ b/Resources/Prototypes/Hydroponics/seeds.yml @@ -593,8 +593,6 @@ packetPrototype: BloodTomatoSeeds productPrototypes: - FoodBloodTomato - mutationPrototypes: - - killerTomato harvestRepeat: Repeat lifespan: 60 maturation: 8 @@ -616,37 +614,6 @@ Max: 4 PotencyDivisor: 25 -- type: seed - id: killerTomato - name: seeds-killertomato-name - noun: seeds-noun-seeds - displayName: seeds-killertomato-display-name - plantRsi: Objects/Specific/Hydroponics/tomatokiller.rsi - packetPrototype: KillerTomatoSeeds - productPrototypes: - - MobTomatoKiller - harvestRepeat: Repeat - lifespan: 25 - maturation: 15 - production: 6 - yield: 2 - potency: 10 - waterConsumption: 0.60 - nutrientConsumption: 0.70 - idealLight: 8 - idealHeat: 298 - growthStages: 2 - splatPrototype: PuddleSplatter - chemicals: - Blood: - Min: 1 - Max: 10 - PotencyDivisor: 10 - JuiceTomato: - Min: 1 - Max: 4 - PotencyDivisor: 25 - - type: seed id: eggplant name: seeds-eggplant-name diff --git a/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_hydroponics.yml b/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_hydroponics.yml index 2e0352e99a5..3199da29fe2 100644 --- a/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_hydroponics.yml +++ b/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_hydroponics.yml @@ -285,7 +285,6 @@ chance: 0.95 offset: 0.0 rarePrototypes: - - KillerTomatoSeeds - DeathNettleSeeds - SteelcapSeeds - LaughinPeaSeeds diff --git a/Resources/Textures/Mobs/Demons/tomatokiller.rsi/alive.png b/Resources/Textures/Mobs/Demons/tomatokiller.rsi/alive.png deleted file mode 100644 index 5f459d518b552ad026938fa2b292a28657913a96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3843 zcmV+e5B%_nP)Px@y-7qtRCt{2oo$RA)p^H%=gi!>FMIF4c-M<z&xAE=ztL;-54qC!p8mX|b9D6T>%A_9sUj16@Cy1Tx+ zd-uN1%$=F1ALicOwX?o^UuHe)-T7Nhtx3 zYAfkV$xT`Tt{Q$z z|9Y;m;qsS)5-v2)BP4fW=qe z;)DPFn1|itygYgf=ifWQaJkA<5a9Sevl08)to)wt0xcZASAO+#zsw%f%hAAKQvAq#Y-WDf2{3=?X0dY?&D-`d{CkJE<9816Z9awCF8uhzTM^e| zk8MM}9%=Afo$rnoWO4s47Eeu6`j?krWSF2>f<}X&TBdSxijoePotj~GzDmXQX__hO znB*h!ky&i?#g9sZ#J`rhN`T8{;NGdTOBrZff6cm8008sjnV$GjD$e-r>nB*K)k%$5 z1d9fZlRw3tJ5Hnc3H9PMm4y^{mP+t6tT^M;%7PoBZQFppoY&}jNpKl}u*5m3aywo=%Bfa!UF7s)ko z+e3A7s0Y3s+4cD8&)+Kj#{ac`Z#4t;y}P7XtutM(U}n;2E6d{kA-qp!NLM^`ew302 zvllA(Kofq@ADleZcl^zAz2g|H zxdN=LK+|8nyQ>Vm@aK0#UV#>B^`7`qu~$~0e&QcQ=c;v1SL?WSA9udag+`O=@e*@$ z!i-}ueW5~ezJia!Mk5FTAb@3Q49j3_`%p9<`rr@BuJ7F?rE?1d#h)L|a-@*I>?+VP zGuzq!=3JH0;T*3NvV3W8descn5KaITZ;Qi073S8C5i61k^yXZZpI$rO6Ms-Pgca!3 z|2f@v{Lud`!DAzNamzKd2y-Yz88pz?DAEWH3ISXI6h7hLrvTH^jBU>_JfxXAXZL*$ z+8!2!p80$B<_2P)oEVjvY8}^h`;Nbm)ts8XyoZh}Ks)<)ibttj=eH^is>e%YCC_(j zYAFLX@R|;&;Sm6zRcQbw#&eNXpq=9N#E*jAu0VstKgcSi(NCDAORaZ${p zsiCN&@KAWL^gxW6H^I{Qf#5iUt%7Y2{qP56&uH+1V4(QjW@ir_->RQ)dbmy#4Jh#` zmFqOnoW=IfL(7+cva zcs|wu@jH%i($4_ZRT&+pNIUzFW-LxAbx{UpF>nb7KR_)FK7<)qb8X(P+mThEqZz9w zeiZEUO%K~?4ix`Dt58O$2O-0=Qlyl^LfA$?5uYMHA7=}k&gK!q3K(2+h(@*9ngD}& z=!ZWjdqEV&fbqLQ=epA|0h*439r&co6wfHlJ#QVOq(PgC zX>#484+9S4U->$Jr!*1>j&rG{-n7y~FZ?Lje#WD$7%2YA0F$6S0lbu^iN>@vIR!<0 zvKVAA*xRUZW23^^Y#zn(1gO6zqQ-&xm37AOA@|)A8JQTmjnI4qQDmk zKlUjDAH|T;n4)OEC5fs60X^~uXSXX5^dJ9P6=*FreaO`sG%b^?21Pjd4W-Ch;m4V5 zA^dvlLcj-{ssq6J?ARcuV97&2{3zJ>&)I5__}4o39TT8E0e0m~el4ZB4WDf&iV|=@ zeD0eZz!mWG9+*K0WXRSm~h`eiUp72Y-&)KRpn#O2^ z1DX|ZfNd$*?l^3B9IkCtIh`%wx9*0R_-JI!>esD&U;5%lr9t9fOKaXIX;+{TL-VaS z-{5x*#hcF`Wxvw!$m4u8Z*$$F4|AO|`TGa|nBPEi#{>7XUBVL(RRzk`8a?r&Vz(<$ zzwt*g0Uszi${)|*Y5_x$&uEHnxGesx_4x13#sVJUPoK|ZN0`cvM#A3g{H_ch9ZgHR z4kJ!=3U`rc6ePm z8LF1~I-;yt2R?3oTN}kk zq8JqS;BR$)qC|-jB}$YiQKCeN5+zEMC{dzBi4rABlxVXl?hYXv#Yf!yl|HrtbHjLe z8o_VDxJfpKMGKLAazzF z7U&NZb3bq+k2MbFmGp7d^#|A}KH}iFnGf;?Y5_!p4is)7;4lBp-89TA=_Atq0PTaV z*Z%w)#YY_cmCV0-J%fK!$P8@Z2R~%fFt4uZ_=B+eu z+lLhLj2_s7<-#im4)XFd9-c3Z7~%Hh>!CQ#!)nZD-nj|2UHDP%mQBNq!^c(AA0TcI zJKnisdd$%W14`|-@HB24kdB(JRXKr9#@Y z7%${5+o5BwwNc=?YbV%yb}^C;C2{lP^sriYnCDHCFG$!R;<{~xb?XijC;LkCJFWm{ z8xF_o4$28g)fyc;bYw^Yuhx>W;Ge>>_h>f+2L> z9mZ06*C zSo}CWwEH4FD8d;OQm(TNP00zl3uv-Pt2;`#d-F=}*hmJY!Ij?Oak8&8zvI7{Rf4HC ziy2z`N;yVk_gK>QE9l|Fww`IajVSW2UKVO(igxZe4SF2$dC+f7*f> z6(EE=6PtOH;qf$SQ~GKXbh+*@r<8Ck4Mi1pP6<}D2FfbADE6rjD^TsdLB*YmRh8L3 zg0@U@2&Q;A0uG833f@l#oL0*XE7~%ZfTdYjbXlnQP;GKV^}c7%mE?C!fT=~BMK64P z(=>5axb<{6lHu?hnc_tPe*L-caG@6Nkw1NYk>;1b(rf$)pRg~&>_d+sD7?qM zfe+mN+;@19fRveH;*#p7foAKGqoJIMU3J*Czt9(ZEAcy4rDs!N_IO^{bgbIikThuR z#om5#lduZ@7@^58?%`jQ{`M)~>ih|%#UQ*+RlqJ~kOB^&7!#iiCLYU4sep9eWGEM2 z*;-n#i#C7M>~HJ9t-!zR3h*C=oE*$sj2S)-vNZVNi==hcC9Qj1p`k-4Y~U_|y~-G9 z@V7dj)@yyjW8EcTe}v`1Z|{ar%K@ZYPhGF<4%6`AyTiG@Zb@zh{x2lJD~6UQl_6t$ za}-^dl+tX^85oxgqlsGT$pM1ddO!Wlv)|*s$uSP}c@KK4^H)>57r`^nesAe(E7|SA zcSJ$0N!D&soV6*=+B8Iw%33_B4C!|wZf5>P!}?U~4a2Y%@KIB707U~BGXiWh4Ii== zw3=_A2s5blDIOjRt^L|>dE^m}KlLP^dgL+gee$ons)Adcf2scIv2RHG81Fvy6ac@J zQn*bB)vmv=se-h97kGtjw0;ulIA^ofIc~ zBY9YFZG;%(_Rx{PRg)m@LAesz2r+I153q53BuW&k{vRg|@P59#oJRlv002ovPDHLk FV1mdja^U~~ diff --git a/Resources/Textures/Mobs/Demons/tomatokiller.rsi/dead.png b/Resources/Textures/Mobs/Demons/tomatokiller.rsi/dead.png deleted file mode 100644 index 4b3ee970a0c36fd06b9c33eab7db785200cc2a55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1092 zcmV-K1iSl*P)H-l1~-0W$dzIjjIzW?9*e7wi)SAOoLxw*%-0I&eC0B~0T{-b{7jIa5% z{|#WasN*uvy7#({XMBdEw z0?3_Ov!G}~LwyDBO^f(hH<}G<3JwgIL^T)h?(sqmc|+s}kPY=Qzfx~N*)tyOutH0L z=c0!Btj+0u_@k_h3R&BEC{DzlhZOj?`?WP2Pbp7%37h{sPfB>q&H!3V!wA~G5vs@r4&K|;7l7I{d!J*bR^p)z?v zj}ZO#CzR5$f>YE6t`YL;ByF8kb`2Vtl*Pop7Hal?hpm)ASVZnN0=sLEsw>S+=)nN) zx<>5LtB^>bFRLaMm>^`zLFHo!Kw5mve~vOumzIGgQ*`j%3##q|k!I8crtP?2HvuLLbkfyaQSUYwR>FcFoXFFrPhpB7d&92@aO8O4dDv4PoV5Vso z4sbPXVrJ3|7^SqtOtoxNHc|s8Fb7UL;#rHuGb~HQ z2p0k{9PHE@s}8A$CX?B==fe68EY&rJx4ul3OWUvrH0QLuSmYh7QRpN9((=2 zdl~)u4@jBZ?YU>yeHH&MnAL6h3f~bx&St+@ZdKXy1~4DC0Pr`2#<2Ybw|2$=0000< KMNUMnLSTYUo(x0) diff --git a/Resources/Textures/Mobs/Demons/tomatokiller.rsi/meta.json b/Resources/Textures/Mobs/Demons/tomatokiller.rsi/meta.json deleted file mode 100644 index 57e4c7351f8..00000000000 --- a/Resources/Textures/Mobs/Demons/tomatokiller.rsi/meta.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "license": "CC-BY-SA-3.0", - "copyright": " taken from TG on commit https://github.com/tgstation/tgstation/commit/7e5f13f558253e76865e81c9641b7ec68e57754b", - "states": [ - { - "name": "alive", - "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 - ] - ] - }, - { - "name": "dead" - } - ] -} diff --git a/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/dead.png b/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/dead.png deleted file mode 100644 index 0051c4dc7376bffc73143d68633bef15506348f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 475 zcmV<10VMv3P)Px$l}SWFR9J=Wl(9?0KorKmYlYIG4n-)WlP&%Qp-ZPyp>AC)Lg=D{n5p34;^5%m zAK=uG#YKdoi=#t19J)wBaHtS!LFtg?bPFxCanK7nTH*zC@_y4h-b>z>FYg|pP$(3N z{|<>tQc8t$r`z%YV5fR6JlDS3_j#PnrGBBQd?ZTZag0070+EukT&VL7-y z*pPXhKq5}_hUMTreGdT8C&{2Dn@eK~pl&%}t`|7n_ZUY1m}_bsFodr3HlT&-doRxu2RrqcjlHPtCww4|U4{05I2EIw!FOaP&zM z<8lJb^^h4bn1(GlVH!56TMowML?A+z$Xmc%5BemD(r%joKxs+M<;k|+JiQ?rr9|U` zVhD(Iz%*>an}`3gti3XGA+-mhczpXn^E-YxuKED5-kW1BG$T<+--7U94ewq60GR

Ij_-Jp_2M{#l0*bZ5LVP%yf$sy;u*pxWSfNlTJ^`8Nsg!!Q RA0Yq$002ovPDHLkV1hzk*LMH_ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/harvest.png b/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/harvest.png deleted file mode 100644 index 46a3b389827c2d64cd26a7d9696ddf40099f0c0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 352 zcmV-m0iXVfP)Px$8c9S!R9J=Wl)a6^FbsvC4qhNYx@$ay2VjvA(q#>GsndB4cLr{OD>y)g&;VY* zfB~hj75zk~D8XHI`~U%>Xp2u2ML-Y)LHO^el9QPuo2G*W0N#H`|IwA~-DsQ0Peerl zO^r&L4i;wdwh01mj2bxhHM_-pyb^rW0NRY^w!sWw&;ZPG&(yC72$_TVpkv=BvpW4n z1{|YagQV-+v3m8?)dIrw&x!pY#w%el!MTfrbH~aBPp{?~#b<~fHW$$0 zPWh7`c>WBF8Q_kU+dRDE+Vs}cMO7ataslwQPABrh_L+jsQC|aLVO@gtv!Bkvpeseq y>n)ghZO1!U>|oJvBeawG0RLUu$^}6Xa@+up@`L&MewR-G0000Px$VM#Y<6bk{QAx+0C&x6Kr9KV z1QPN&{mbj({U5-h_#GTrI#Y#MJ^tulA{?)ee8pz}sDI9G?=OIru@qRTKOmAl4lo4~HgXQV>oc zS(zUM_^wM?(^zpF%9@7ny264#Ht>;36tUT8P>CV{>XS6kYKLj8a|ipW;6@ZtA3X04 z#wYd_ylZY*tc{ujy1l+|PwBJZJG#9-PvJ9r_cublrGLdDb)w=5g+lQ!cmZ9Gi3*5u R5q$sv002ovPDHLkV1oHOu@L|O diff --git a/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/stage-1.png b/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/stage-1.png deleted file mode 100644 index 0b1d58de9de4475839a3f7b766fd49f1d00e0b6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}9iA?ZArY-_ zCvFrxWFWxe&m+4-Vre)dui$RQ@B&TS6|C14)Y*>7vA!_nVcb4((*NkcjK?IBdkpQ> zzVdlg?cKR4E2x75`!)IX}la+JzYu2_~QUzmZY=fqGZ#*YC%GZes9s^>bP0l+XkK DuvPx#+(|@1R9J=Wl-mu%APhw>O-JY)nZaVMO8M(r(VZc4WC!|@lA1iI)5lkRq)0Is ze6bCH<2a71tUWq+so7* zb>|MLwrM_PE$FLjSj~VwnXa)ly_UXs`xeaHK3i@Vpc_jEy>7cpUujq?B&X-NK|+Is o?(u1R@lO)jZ~2rvj^k``2j0$bCf_A20ssI207*qoM6N<$f=0}EA^-pY From 144a6b7db73fe92a5cbae60c505f5b59f3e2d7af Mon Sep 17 00:00:00 2001 From: Grom1halo Date: Sun, 14 Jun 2026 18:48:00 +0700 Subject: [PATCH 04/11] Reduce VFD XLR-556 inventory size from Huge to Large (2x4) Previously inherited the BaseWeaponRifle default of Huge (4x4 grid slots), which was disproportionately large compared to other rifles. Now occupies a 2x4 footprint per community feedback. --- .../_Mono/Entities/Objects/Weapons/Guns/Rifles/rifles.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/Resources/Prototypes/_Mono/Entities/Objects/Weapons/Guns/Rifles/rifles.yml b/Resources/Prototypes/_Mono/Entities/Objects/Weapons/Guns/Rifles/rifles.yml index 5435d45378b..4a6d7f47564 100644 --- a/Resources/Prototypes/_Mono/Entities/Objects/Weapons/Guns/Rifles/rifles.yml +++ b/Resources/Prototypes/_Mono/Entities/Objects/Weapons/Guns/Rifles/rifles.yml @@ -274,6 +274,7 @@ - type: Clothing sprite: _Mono/Objects/Weapons/Guns/Rifles/xlr556_inhands_32x.rsi - type: Item + size: Large sprite: _Mono/Objects/Weapons/Guns/Rifles/xlr556_inhands_32x.rsi - type: ItemSlots slots: From e8a495d32eba5211da25dab410db515e61e9a0e7 Mon Sep 17 00:00:00 2001 From: Grom1halo Date: Sun, 14 Jun 2026 18:51:54 +0700 Subject: [PATCH 05/11] Revert "Remove Killer Tomato mob and all references" This reverts commit 8a3af6e41630921fecd44160da213d15706bf0f6. --- Resources/Locale/en-US/accent/accents.ftl | 7 + .../ghost/roles/ghost-role-component.ftl | 3 + Resources/Locale/en-US/seeds/seeds.ftl | 2 + Resources/Locale/ru-RU/accent/accents.ftl | 5 + .../ghost/roles/ghost-role-component.ftl | 2 + Resources/Locale/ru-RU/seeds/seeds.ftl | 2 + .../entities/mobs/npcs/miscellaneous.ftl | 2 + .../objects/specific/hydroponics/seeds.ftl | 2 + Resources/Maps/Salvage/small-chapel.yml | 7 + Resources/Maps/centcomm.yml | 22 +++ .../Prototypes/Accents/full_replacements.yml | 9 + .../Prototypes/Entities/Effects/mobspawn.yml | 1 + .../Entities/Mobs/NPCs/miscellaneous.yml | 155 ++++++++++++++++++ .../Objects/Specific/Hydroponics/seeds.yml | 10 ++ Resources/Prototypes/Hydroponics/seeds.yml | 33 ++++ .../Random/dungeon_items_hydroponics.yml | 1 + .../Mobs/Demons/tomatokiller.rsi/alive.png | Bin 0 -> 3843 bytes .../Mobs/Demons/tomatokiller.rsi/dead.png | Bin 0 -> 1092 bytes .../Mobs/Demons/tomatokiller.rsi/meta.json | 40 +++++ .../Hydroponics/tomatokiller.rsi/dead.png | Bin 0 -> 475 bytes .../Hydroponics/tomatokiller.rsi/harvest.png | Bin 0 -> 352 bytes .../Hydroponics/tomatokiller.rsi/meta.json | 26 +++ .../Hydroponics/tomatokiller.rsi/seed.png | Bin 0 -> 423 bytes .../Hydroponics/tomatokiller.rsi/stage-1.png | Bin 0 -> 206 bytes .../Hydroponics/tomatokiller.rsi/stage-2.png | Bin 0 -> 290 bytes 25 files changed, 329 insertions(+) create mode 100644 Resources/Textures/Mobs/Demons/tomatokiller.rsi/alive.png create mode 100644 Resources/Textures/Mobs/Demons/tomatokiller.rsi/dead.png create mode 100644 Resources/Textures/Mobs/Demons/tomatokiller.rsi/meta.json create mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/dead.png create mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/harvest.png create mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/meta.json create mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/seed.png create mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/stage-1.png create mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/stage-2.png diff --git a/Resources/Locale/en-US/accent/accents.ftl b/Resources/Locale/en-US/accent/accents.ftl index ac77fcbca35..7ce882b41bb 100644 --- a/Resources/Locale/en-US/accent/accents.ftl +++ b/Resources/Locale/en-US/accent/accents.ftl @@ -124,3 +124,10 @@ accent-words-nymph-1 = Chirp! accent-words-nymph-2 = Churr... accent-words-nymph-3 = Cheep? accent-words-nymph-4 = Chrrup! + +# TomatoKiller +accent-words-tomato-1 = Totato! +accent-words-tomato-2 = Trotect +accent-words-tomato-3 = Mastet? +accent-words-tomato-4 = Reaty! +accent-words-tomato-5 = Water... diff --git a/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl b/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl index 15373620387..6f1af23fa26 100644 --- a/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl @@ -308,6 +308,9 @@ ghost-role-information-pirate-captain-description = Argh matey! You are in charg ghost-role-information-artifact-name = Sentient Artifact ghost-role-information-artifact-description = Enact your eldritch whims. Forcibly activate your nodes for good or for evil. +ghost-role-information-tomatokiller-name = Tomato Killer +ghost-role-information-tomatokiller-description = This little tomato will serve the botanist for the rest of his life... that is, a couple of minutes. + ghost-role-information-gingerbread-name = Gingerbread Man ghost-role-information-gingerbread-description = A being of pure holiday spirit. Spread molassesy goodness and to all good cheer. diff --git a/Resources/Locale/en-US/seeds/seeds.ftl b/Resources/Locale/en-US/seeds/seeds.ftl index f43b52f8cd6..567626fa49f 100644 --- a/Resources/Locale/en-US/seeds/seeds.ftl +++ b/Resources/Locale/en-US/seeds/seeds.ftl @@ -48,6 +48,8 @@ seeds-bluetomato-name = blue tomato seeds-bluetomato-display-name = blue tomato plant seeds-bloodtomato-name = blood tomato seeds-bloodtomato-display-name = blood tomato plant +seeds-killertomato-name = tomato killer +seeds-killertomato-display-name = tomato killer plant seeds-eggplant-name = eggplant seeds-eggplant-display-name = eggplants seeds-apple-name = apple diff --git a/Resources/Locale/ru-RU/accent/accents.ftl b/Resources/Locale/ru-RU/accent/accents.ftl index 16b05d8cca8..68dba94ae22 100644 --- a/Resources/Locale/ru-RU/accent/accents.ftl +++ b/Resources/Locale/ru-RU/accent/accents.ftl @@ -115,3 +115,8 @@ accent-words-mothroach-2 = Чирик! accent-words-mothroach-3 = Чиик! accent-words-mothroach-4 = Иии! accent-words-mothroach-5 = Ийип! +accent-words-tomato-1 = Томато! +accent-words-tomato-2 = Тротект +accent-words-tomato-3 = Мастер? +accent-words-tomato-4 = Рити! +accent-words-tomato-5 = Вода... diff --git a/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl b/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl index ff11c53a4ce..c5513472a85 100644 --- a/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/ru-RU/ghost/roles/ghost-role-component.ftl @@ -266,6 +266,8 @@ ghost-role-information-pirate-name = Космический пират ghost-role-information-pirate-description = Аррр, приятель! Собери крутую добычу, но избегай охраны и утилизаторов! ghost-role-information-pirate-captain-name = Капитан космических пиратов ghost-role-information-pirate-captain-description = Аррр, приятель! Ты здесь главный и должен придумать план, как добыть эту сочную добычу любыми средствами. Главное — избегай охраны и утилизаторов! +ghost-role-information-tomatokiller-name = Томат-убийца +ghost-role-information-tomatokiller-description = Этот маленький помидор будет служить ботанику всю оставшуюся жизнь... то есть пару минут. ghost-role-information-gingerbread-name = Пряничный человечек ghost-role-information-gingerbread-description = Существо чисто праздничного духа. ghost-role-information-wizard-name = Волшебник diff --git a/Resources/Locale/ru-RU/seeds/seeds.ftl b/Resources/Locale/ru-RU/seeds/seeds.ftl index 4c34933e996..bb20091e389 100644 --- a/Resources/Locale/ru-RU/seeds/seeds.ftl +++ b/Resources/Locale/ru-RU/seeds/seeds.ftl @@ -40,6 +40,8 @@ seeds-bluetomato-name = синий томат seeds-bluetomato-display-name = куст синего томата seeds-bloodtomato-name = кровяной томат seeds-bloodtomato-display-name = куст кровяного томата +seeds-killertomato-name = томат-убийца +seeds-killertomato-display-name = куст томата-убийцы seeds-eggplant-name = баклажан seeds-eggplant-display-name = баклажан seeds-apple-name = яблоко diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/miscellaneous.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/miscellaneous.ftl index 6e75cc430f7..63c392ec114 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/miscellaneous.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/miscellaneous.ftl @@ -1,2 +1,4 @@ ent-MobLaserRaptor = лазерный раптор .desc = Из эпохи викингов. +ent-MobTomatoKiller = помидор-убийца + .desc = Похоже, сегодня не вы едите помидоры, а помидоры едят вас. diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/hydroponics/seeds.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/hydroponics/seeds.ftl index dbbb57c4639..e0dd0d2f4b1 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/hydroponics/seeds.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/hydroponics/seeds.ftl @@ -122,6 +122,8 @@ ent-PapercaneSeeds = пакет семян (бумажный тростник) .desc = { ent-SeedBase.desc } ent-MeatwheatSeeds = пакет семян (мясница) .desc = Если вы когда-нибудь хотели довести вегетарианца до безумия, то вот как это сделать. +ent-KillerTomatoSeeds = пакет семян (томат-убийца) + .desc = { ent-SeedBase.desc } ent-HolymelonSeeds = пакет семян (святой арбуз) .desc = { ent-SeedBase.desc } ent-GoldenAppleSeeds = пакет семян (золотое яблоко) diff --git a/Resources/Maps/Salvage/small-chapel.yml b/Resources/Maps/Salvage/small-chapel.yml index 9b3540e0aa5..2c3b117a4a9 100644 --- a/Resources/Maps/Salvage/small-chapel.yml +++ b/Resources/Maps/Salvage/small-chapel.yml @@ -616,6 +616,13 @@ entities: - type: Transform pos: 6.5,5.5 parent: 1 +- proto: KillerTomatoSeeds + entities: + - uid: 51 + components: + - type: Transform + pos: 4.6947265,8.268279 + parent: 1 - proto: Lamp entities: - uid: 66 diff --git a/Resources/Maps/centcomm.yml b/Resources/Maps/centcomm.yml index fa966a87bae..5e10e05e1e7 100644 --- a/Resources/Maps/centcomm.yml +++ b/Resources/Maps/centcomm.yml @@ -41293,6 +41293,28 @@ entities: - type: Transform pos: -3.3831449,-0.61700773 parent: 1668 +- proto: KillerTomatoSeeds + entities: + - uid: 1015 + components: + - type: Transform + pos: 8.239295,-23.358154 + parent: 1668 + - uid: 1016 + components: + - type: Transform + pos: 8.239295,-23.295654 + parent: 1668 + - uid: 1017 + components: + - type: Transform + pos: 8.239295,-23.420654 + parent: 1668 + - uid: 1018 + components: + - type: Transform + pos: 8.239295,-23.483154 + parent: 1668 - proto: KitchenElectricGrill entities: - uid: 1174 diff --git a/Resources/Prototypes/Accents/full_replacements.yml b/Resources/Prototypes/Accents/full_replacements.yml index 1d1efdcad0e..f495de250fc 100644 --- a/Resources/Prototypes/Accents/full_replacements.yml +++ b/Resources/Prototypes/Accents/full_replacements.yml @@ -174,3 +174,12 @@ - accent-words-nymph-2 - accent-words-nymph-3 - accent-words-nymph-4 + +- type: accent + id: tomatoKiller + fullReplacements: + - accent-words-tomato-1 + - accent-words-tomato-2 + - accent-words-tomato-3 + - accent-words-tomato-4 + - accent-words-tomato-5 diff --git a/Resources/Prototypes/Entities/Effects/mobspawn.yml b/Resources/Prototypes/Entities/Effects/mobspawn.yml index 5c3ef75b2d9..1489c26493a 100644 --- a/Resources/Prototypes/Entities/Effects/mobspawn.yml +++ b/Resources/Prototypes/Entities/Effects/mobspawn.yml @@ -102,6 +102,7 @@ - id: FoodOnionRed - id: FoodWatermelon - id: FoodCherry + - id: MobTomatoKiller - id: MobLuminousEntity - id: MobLuminousObject - id: FoodGatfruit # 0.007% spawn chance. 1 / 141 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml b/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml index b2bca4cb68a..24db6001e1b 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml @@ -72,3 +72,158 @@ interactFailureString: petting-failure-generic interactSuccessSound: path: /Audio/Animals/lizard_happy.ogg + +- type: entity + id: MobTomatoKiller + parent: + - BaseSimpleMob + - MobDamageable + - MobPolymorphable + - MobBloodstream + - MobFlammable + - MobCombat + name: tomato killer + description: Looks like it's not you eating tomatoes today, it's the tomatoes eating you. + components: + - type: GhostRole + prob: 0.05 + makeSentient: true + allowSpeech: true + name: ghost-role-information-tomatokiller-name + description: ghost-role-information-tomatokiller-description + rules: ghost-role-information-familiar-rules + raffle: + settings: short + - type: GhostTakeoverAvailable + - type: CanEscapeInventory + baseResistTime: 3 + - type: Reactive + groups: + Flammable: [ Touch ] + Extinguish: [ Touch ] + reactions: + - reagents: [ Water ] + methods: [ Touch ] + effects: + - !type:HealthChange + scaleByQuantity: true + damage: + groups: + Brute: -0.25 + - reagents: [ Blood ] + methods: [ Touch ] + effects: + - !type:HealthChange + scaleByQuantity: true + damage: + groups: + Brute: -0.5 + Burn: -0.5 + - reagents: [ RobustHarvest ] + methods: [ Touch ] + effects: + - !type:HealthChange + scaleByQuantity: true + damage: + groups: + Brute: -2 + Burn: -2 + - type: ReplacementAccent + accent: tomatoKiller + - type: Item + - type: NpcFactionMember + factions: + - SimpleHostile + - type: HTN + rootTask: + task: KillerTomatoCompound + - type: NPCImprintingOnSpawnBehaviour + whitelist: + components: + - HumanoidAppearance + - type: Sprite + sprite: Mobs/Demons/tomatokiller.rsi + noRot: true + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + - type: Bloodstream + bloodReagent: JuiceTomato + bloodMaxVolume: 50 + chemicalMaxVolume: 30 + - type: DamageStateVisuals + states: + Alive: + Base: alive + Dead: + Base: dead + - type: Butcherable + spawned: + - id: FoodMeatTomato + amount: 2 + - type: Destructible + thresholds: + - trigger: + !type:DamageTypeTrigger + damageType: Blunt + damage: 40 + behaviors: + - !type:SpawnEntitiesBehavior + spawn: + FoodMeatTomato: + min: 1 + max: 2 + - !type:DoActsBehavior + acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: gib + - type: MobThresholds + thresholds: + 0: Alive + 35: Dead + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.30 + density: 80 + mask: + - MobMask + layer: + - MobLayer + - type: MeleeWeapon + hidden: true + damage: + groups: + Brute: 15 + animation: WeaponArcBite + - type: Climbing + - type: NameIdentifier + group: GenericNumber + - type: FootstepModifier + footstepSoundCollection: + path: /Audio/Effects/Footsteps/slime1.ogg + params: + volume: 3 + - type: Tag + tags: + - FootstepSound + - Fruit + - type: Extractable + grindableSolutionName: bloodstream + - type: PotencyVisuals + - type: Appearance + - type: Produce + seedId: killerTomato + - type: PassiveDamage # Slight passive damage. 35 hp \ 5 min \ 60 sec = 0.08 + allowedStates: + - Alive + - Dead + damageCap: 50 + damage: + types: + Blunt: 0.11 + - type: StaticPrice + price: 400 diff --git a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml index b571b4dcf47..816899dec4b 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml @@ -281,6 +281,16 @@ - type: Sprite sprite: Objects/Specific/Hydroponics/blood_tomato.rsi +- type: entity + parent: SeedBase + name: packet of killer tomato seeds + id: KillerTomatoSeeds + components: + - type: Seed + seedId: killerTomato + - type: Sprite + sprite: Objects/Specific/Hydroponics/tomatokiller.rsi + - type: entity parent: SeedBase name: packet of eggplant seeds diff --git a/Resources/Prototypes/Hydroponics/seeds.yml b/Resources/Prototypes/Hydroponics/seeds.yml index 382a8d730a7..370340e55e3 100644 --- a/Resources/Prototypes/Hydroponics/seeds.yml +++ b/Resources/Prototypes/Hydroponics/seeds.yml @@ -593,6 +593,8 @@ packetPrototype: BloodTomatoSeeds productPrototypes: - FoodBloodTomato + mutationPrototypes: + - killerTomato harvestRepeat: Repeat lifespan: 60 maturation: 8 @@ -614,6 +616,37 @@ Max: 4 PotencyDivisor: 25 +- type: seed + id: killerTomato + name: seeds-killertomato-name + noun: seeds-noun-seeds + displayName: seeds-killertomato-display-name + plantRsi: Objects/Specific/Hydroponics/tomatokiller.rsi + packetPrototype: KillerTomatoSeeds + productPrototypes: + - MobTomatoKiller + harvestRepeat: Repeat + lifespan: 25 + maturation: 15 + production: 6 + yield: 2 + potency: 10 + waterConsumption: 0.60 + nutrientConsumption: 0.70 + idealLight: 8 + idealHeat: 298 + growthStages: 2 + splatPrototype: PuddleSplatter + chemicals: + Blood: + Min: 1 + Max: 10 + PotencyDivisor: 10 + JuiceTomato: + Min: 1 + Max: 4 + PotencyDivisor: 25 + - type: seed id: eggplant name: seeds-eggplant-name diff --git a/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_hydroponics.yml b/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_hydroponics.yml index 3199da29fe2..2e0352e99a5 100644 --- a/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_hydroponics.yml +++ b/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_hydroponics.yml @@ -285,6 +285,7 @@ chance: 0.95 offset: 0.0 rarePrototypes: + - KillerTomatoSeeds - DeathNettleSeeds - SteelcapSeeds - LaughinPeaSeeds diff --git a/Resources/Textures/Mobs/Demons/tomatokiller.rsi/alive.png b/Resources/Textures/Mobs/Demons/tomatokiller.rsi/alive.png new file mode 100644 index 0000000000000000000000000000000000000000..5f459d518b552ad026938fa2b292a28657913a96 GIT binary patch literal 3843 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 FV1mdja^U~~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Demons/tomatokiller.rsi/dead.png b/Resources/Textures/Mobs/Demons/tomatokiller.rsi/dead.png new file mode 100644 index 0000000000000000000000000000000000000000..4b3ee970a0c36fd06b9c33eab7db785200cc2a55 GIT binary patch literal 1092 zcmV-K1iSl*P)H-l1~-0W$dzIjjIzW?9*e7wi)SAOoLxw*%-0I&eC0B~0T{-b{7jIa5% z{|#WasN*uvy7#({XMBdEw z0?3_Ov!G}~LwyDBO^f(hH<}G<3JwgIL^T)h?(sqmc|+s}kPY=Qzfx~N*)tyOutH0L z=c0!Btj+0u_@k_h3R&BEC{DzlhZOj?`?WP2Pbp7%37h{sPfB>q&H!3V!wA~G5vs@r4&K|;7l7I{d!J*bR^p)z?v zj}ZO#CzR5$f>YE6t`YL;ByF8kb`2Vtl*Pop7Hal?hpm)ASVZnN0=sLEsw>S+=)nN) zx<>5LtB^>bFRLaMm>^`zLFHo!Kw5mve~vOumzIGgQ*`j%3##q|k!I8crtP?2HvuLLbkfyaQSUYwR>FcFoXFFrPhpB7d&92@aO8O4dDv4PoV5Vso z4sbPXVrJ3|7^SqtOtoxNHc|s8Fb7UL;#rHuGb~HQ z2p0k{9PHE@s}8A$CX?B==fe68EY&rJx4ul3OWUvrH0QLuSmYh7QRpN9((=2 zdl~)u4@jBZ?YU>yeHH&MnAL6h3f~bx&St+@ZdKXy1~4DC0Pr`2#<2Ybw|2$=0000< KMNUMnLSTYUo(x0) literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Demons/tomatokiller.rsi/meta.json b/Resources/Textures/Mobs/Demons/tomatokiller.rsi/meta.json new file mode 100644 index 00000000000..57e4c7351f8 --- /dev/null +++ b/Resources/Textures/Mobs/Demons/tomatokiller.rsi/meta.json @@ -0,0 +1,40 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": " taken from TG on commit https://github.com/tgstation/tgstation/commit/7e5f13f558253e76865e81c9641b7ec68e57754b", + "states": [ + { + "name": "alive", + "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 + ] + ] + }, + { + "name": "dead" + } + ] +} diff --git a/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/dead.png b/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/dead.png new file mode 100644 index 0000000000000000000000000000000000000000..0051c4dc7376bffc73143d68633bef15506348f5 GIT binary patch literal 475 zcmV<10VMv3P)Px$l}SWFR9J=Wl(9?0KorKmYlYIG4n-)WlP&%Qp-ZPyp>AC)Lg=D{n5p34;^5%m zAK=uG#YKdoi=#t19J)wBaHtS!LFtg?bPFxCanK7nTH*zC@_y4h-b>z>FYg|pP$(3N z{|<>tQc8t$r`z%YV5fR6JlDS3_j#PnrGBBQd?ZTZag0070+EukT&VL7-y z*pPXhKq5}_hUMTreGdT8C&{2Dn@eK~pl&%}t`|7n_ZUY1m}_bsFodr3HlT&-doRxu2RrqcjlHPtCww4|U4{05I2EIw!FOaP&zM z<8lJb^^h4bn1(GlVH!56TMowML?A+z$Xmc%5BemD(r%joKxs+M<;k|+JiQ?rr9|U` zVhD(Iz%*>an}`3gti3XGA+-mhczpXn^E-YxuKED5-kW1BG$T<+--7U94ewq60GR

Ij_-Jp_2M{#l0*bZ5LVP%yf$sy;u*pxWSfNlTJ^`8Nsg!!Q RA0Yq$002ovPDHLkV1hzk*LMH_ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/harvest.png b/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/harvest.png new file mode 100644 index 0000000000000000000000000000000000000000..46a3b389827c2d64cd26a7d9696ddf40099f0c0a GIT binary patch literal 352 zcmV-m0iXVfP)Px$8c9S!R9J=Wl)a6^FbsvC4qhNYx@$ay2VjvA(q#>GsndB4cLr{OD>y)g&;VY* zfB~hj75zk~D8XHI`~U%>Xp2u2ML-Y)LHO^el9QPuo2G*W0N#H`|IwA~-DsQ0Peerl zO^r&L4i;wdwh01mj2bxhHM_-pyb^rW0NRY^w!sWw&;ZPG&(yC72$_TVpkv=BvpW4n z1{|YagQV-+v3m8?)dIrw&x!pY#w%el!MTfrbH~aBPp{?~#b<~fHW$$0 zPWh7`c>WBF8Q_kU+dRDE+Vs}cMO7ataslwQPABrh_L+jsQC|aLVO@gtv!Bkvpeseq y>n)ghZO1!U>|oJvBeawG0RLUu$^}6Xa@+up@`L&MewR-G0000Px$VM#Y<6bk{QAx+0C&x6Kr9KV z1QPN&{mbj({U5-h_#GTrI#Y#MJ^tulA{?)ee8pz}sDI9G?=OIru@qRTKOmAl4lo4~HgXQV>oc zS(zUM_^wM?(^zpF%9@7ny264#Ht>;36tUT8P>CV{>XS6kYKLj8a|ipW;6@ZtA3X04 z#wYd_ylZY*tc{ujy1l+|PwBJZJG#9-PvJ9r_cublrGLdDb)w=5g+lQ!cmZ9Gi3*5u R5q$sv002ovPDHLkV1oHOu@L|O literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/stage-1.png b/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/stage-1.png new file mode 100644 index 0000000000000000000000000000000000000000..0b1d58de9de4475839a3f7b766fd49f1d00e0b6f GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}9iA?ZArY-_ zCvFrxWFWxe&m+4-Vre)dui$RQ@B&TS6|C14)Y*>7vA!_nVcb4((*NkcjK?IBdkpQ> zzVdlg?cKR4E2x75`!)IX}la+JzYu2_~QUzmZY=fqGZ#*YC%GZes9s^>bP0l+XkK DuvPx#+(|@1R9J=Wl-mu%APhw>O-JY)nZaVMO8M(r(VZc4WC!|@lA1iI)5lkRq)0Is ze6bCH<2a71tUWq+so7* zb>|MLwrM_PE$FLjSj~VwnXa)ly_UXs`xeaHK3i@Vpc_jEy>7cpUujq?B&X-NK|+Is o?(u1R@lO)jZ~2rvj^k``2j0$bCf_A20ssI207*qoM6N<$f=0}EA^-pY literal 0 HcmV?d00001 From d62dbdafb3c4bdb079fb659d4e5745f85ddf1c2e Mon Sep 17 00:00:00 2001 From: Grom1halo Date: Sun, 14 Jun 2026 18:55:41 +0700 Subject: [PATCH 06/11] Narrow Killer Tomato removal to mutation/seed only Reverts the previous full mob removal and instead surgically removes only the killerTomato seed mutation path: - bloodTomato no longer mutates into killerTomato - killerTomato seed prototype and KillerTomatoSeeds packet (+ sprite) removed, along with map/loot-table references and locale strings - MobTomatoKiller's Produce/seedId link to the removed seed dropped The MobTomatoKiller mob itself, its ghost role, accent, sprite and AnomalyFloraLootTable entry are kept. Marked changes with # Forge-Change comments for future upstream merges. --- Resources/Locale/en-US/seeds/seeds.ftl | 2 -- Resources/Locale/ru-RU/seeds/seeds.ftl | 2 -- .../objects/specific/hydroponics/seeds.ftl | 2 -- Resources/Maps/Salvage/small-chapel.yml | 7 ---- Resources/Maps/centcomm.yml | 22 ------------ .../Entities/Mobs/NPCs/miscellaneous.yml | 3 +- .../Objects/Specific/Hydroponics/seeds.yml | 11 +----- Resources/Prototypes/Hydroponics/seeds.yml | 34 +----------------- .../Random/dungeon_items_hydroponics.yml | 1 - .../Hydroponics/tomatokiller.rsi/dead.png | Bin 475 -> 0 bytes .../Hydroponics/tomatokiller.rsi/harvest.png | Bin 352 -> 0 bytes .../Hydroponics/tomatokiller.rsi/meta.json | 26 -------------- .../Hydroponics/tomatokiller.rsi/seed.png | Bin 423 -> 0 bytes .../Hydroponics/tomatokiller.rsi/stage-1.png | Bin 206 -> 0 bytes .../Hydroponics/tomatokiller.rsi/stage-2.png | Bin 290 -> 0 bytes 15 files changed, 3 insertions(+), 107 deletions(-) delete mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/dead.png delete mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/harvest.png delete mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/seed.png delete mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/stage-1.png delete mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/stage-2.png diff --git a/Resources/Locale/en-US/seeds/seeds.ftl b/Resources/Locale/en-US/seeds/seeds.ftl index 567626fa49f..f43b52f8cd6 100644 --- a/Resources/Locale/en-US/seeds/seeds.ftl +++ b/Resources/Locale/en-US/seeds/seeds.ftl @@ -48,8 +48,6 @@ seeds-bluetomato-name = blue tomato seeds-bluetomato-display-name = blue tomato plant seeds-bloodtomato-name = blood tomato seeds-bloodtomato-display-name = blood tomato plant -seeds-killertomato-name = tomato killer -seeds-killertomato-display-name = tomato killer plant seeds-eggplant-name = eggplant seeds-eggplant-display-name = eggplants seeds-apple-name = apple diff --git a/Resources/Locale/ru-RU/seeds/seeds.ftl b/Resources/Locale/ru-RU/seeds/seeds.ftl index bb20091e389..4c34933e996 100644 --- a/Resources/Locale/ru-RU/seeds/seeds.ftl +++ b/Resources/Locale/ru-RU/seeds/seeds.ftl @@ -40,8 +40,6 @@ seeds-bluetomato-name = синий томат seeds-bluetomato-display-name = куст синего томата seeds-bloodtomato-name = кровяной томат seeds-bloodtomato-display-name = куст кровяного томата -seeds-killertomato-name = томат-убийца -seeds-killertomato-display-name = куст томата-убийцы seeds-eggplant-name = баклажан seeds-eggplant-display-name = баклажан seeds-apple-name = яблоко diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/hydroponics/seeds.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/hydroponics/seeds.ftl index e0dd0d2f4b1..dbbb57c4639 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/hydroponics/seeds.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/hydroponics/seeds.ftl @@ -122,8 +122,6 @@ ent-PapercaneSeeds = пакет семян (бумажный тростник) .desc = { ent-SeedBase.desc } ent-MeatwheatSeeds = пакет семян (мясница) .desc = Если вы когда-нибудь хотели довести вегетарианца до безумия, то вот как это сделать. -ent-KillerTomatoSeeds = пакет семян (томат-убийца) - .desc = { ent-SeedBase.desc } ent-HolymelonSeeds = пакет семян (святой арбуз) .desc = { ent-SeedBase.desc } ent-GoldenAppleSeeds = пакет семян (золотое яблоко) diff --git a/Resources/Maps/Salvage/small-chapel.yml b/Resources/Maps/Salvage/small-chapel.yml index 2c3b117a4a9..9b3540e0aa5 100644 --- a/Resources/Maps/Salvage/small-chapel.yml +++ b/Resources/Maps/Salvage/small-chapel.yml @@ -616,13 +616,6 @@ entities: - type: Transform pos: 6.5,5.5 parent: 1 -- proto: KillerTomatoSeeds - entities: - - uid: 51 - components: - - type: Transform - pos: 4.6947265,8.268279 - parent: 1 - proto: Lamp entities: - uid: 66 diff --git a/Resources/Maps/centcomm.yml b/Resources/Maps/centcomm.yml index 5e10e05e1e7..fa966a87bae 100644 --- a/Resources/Maps/centcomm.yml +++ b/Resources/Maps/centcomm.yml @@ -41293,28 +41293,6 @@ entities: - type: Transform pos: -3.3831449,-0.61700773 parent: 1668 -- proto: KillerTomatoSeeds - entities: - - uid: 1015 - components: - - type: Transform - pos: 8.239295,-23.358154 - parent: 1668 - - uid: 1016 - components: - - type: Transform - pos: 8.239295,-23.295654 - parent: 1668 - - uid: 1017 - components: - - type: Transform - pos: 8.239295,-23.420654 - parent: 1668 - - uid: 1018 - components: - - type: Transform - pos: 8.239295,-23.483154 - parent: 1668 - proto: KitchenElectricGrill entities: - uid: 1174 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml b/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml index 24db6001e1b..004a3c9ca1a 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml @@ -215,8 +215,7 @@ grindableSolutionName: bloodstream - type: PotencyVisuals - type: Appearance - - type: Produce - seedId: killerTomato + # Forge-Change: removed Produce/seedId killerTomato (killerTomato seed prototype removed) - type: PassiveDamage # Slight passive damage. 35 hp \ 5 min \ 60 sec = 0.08 allowedStates: - Alive diff --git a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml index 816899dec4b..1d85749e3bc 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml @@ -280,16 +280,7 @@ seedId: bloodTomato - type: Sprite sprite: Objects/Specific/Hydroponics/blood_tomato.rsi - -- type: entity - parent: SeedBase - name: packet of killer tomato seeds - id: KillerTomatoSeeds - components: - - type: Seed - seedId: killerTomato - - type: Sprite - sprite: Objects/Specific/Hydroponics/tomatokiller.rsi +# Forge-Change: removed KillerTomatoSeeds packet (killerTomato mutation/seed removed) - type: entity parent: SeedBase diff --git a/Resources/Prototypes/Hydroponics/seeds.yml b/Resources/Prototypes/Hydroponics/seeds.yml index 370340e55e3..5d0c6ed1a5a 100644 --- a/Resources/Prototypes/Hydroponics/seeds.yml +++ b/Resources/Prototypes/Hydroponics/seeds.yml @@ -593,8 +593,7 @@ packetPrototype: BloodTomatoSeeds productPrototypes: - FoodBloodTomato - mutationPrototypes: - - killerTomato + # Forge-Change: removed killerTomato mutation and seed prototype harvestRepeat: Repeat lifespan: 60 maturation: 8 @@ -616,37 +615,6 @@ Max: 4 PotencyDivisor: 25 -- type: seed - id: killerTomato - name: seeds-killertomato-name - noun: seeds-noun-seeds - displayName: seeds-killertomato-display-name - plantRsi: Objects/Specific/Hydroponics/tomatokiller.rsi - packetPrototype: KillerTomatoSeeds - productPrototypes: - - MobTomatoKiller - harvestRepeat: Repeat - lifespan: 25 - maturation: 15 - production: 6 - yield: 2 - potency: 10 - waterConsumption: 0.60 - nutrientConsumption: 0.70 - idealLight: 8 - idealHeat: 298 - growthStages: 2 - splatPrototype: PuddleSplatter - chemicals: - Blood: - Min: 1 - Max: 10 - PotencyDivisor: 10 - JuiceTomato: - Min: 1 - Max: 4 - PotencyDivisor: 25 - - type: seed id: eggplant name: seeds-eggplant-name diff --git a/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_hydroponics.yml b/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_hydroponics.yml index 2e0352e99a5..3199da29fe2 100644 --- a/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_hydroponics.yml +++ b/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_hydroponics.yml @@ -285,7 +285,6 @@ chance: 0.95 offset: 0.0 rarePrototypes: - - KillerTomatoSeeds - DeathNettleSeeds - SteelcapSeeds - LaughinPeaSeeds diff --git a/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/dead.png b/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/dead.png deleted file mode 100644 index 0051c4dc7376bffc73143d68633bef15506348f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 475 zcmV<10VMv3P)Px$l}SWFR9J=Wl(9?0KorKmYlYIG4n-)WlP&%Qp-ZPyp>AC)Lg=D{n5p34;^5%m zAK=uG#YKdoi=#t19J)wBaHtS!LFtg?bPFxCanK7nTH*zC@_y4h-b>z>FYg|pP$(3N z{|<>tQc8t$r`z%YV5fR6JlDS3_j#PnrGBBQd?ZTZag0070+EukT&VL7-y z*pPXhKq5}_hUMTreGdT8C&{2Dn@eK~pl&%}t`|7n_ZUY1m}_bsFodr3HlT&-doRxu2RrqcjlHPtCww4|U4{05I2EIw!FOaP&zM z<8lJb^^h4bn1(GlVH!56TMowML?A+z$Xmc%5BemD(r%joKxs+M<;k|+JiQ?rr9|U` zVhD(Iz%*>an}`3gti3XGA+-mhczpXn^E-YxuKED5-kW1BG$T<+--7U94ewq60GR

Ij_-Jp_2M{#l0*bZ5LVP%yf$sy;u*pxWSfNlTJ^`8Nsg!!Q RA0Yq$002ovPDHLkV1hzk*LMH_ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/harvest.png b/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/harvest.png deleted file mode 100644 index 46a3b389827c2d64cd26a7d9696ddf40099f0c0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 352 zcmV-m0iXVfP)Px$8c9S!R9J=Wl)a6^FbsvC4qhNYx@$ay2VjvA(q#>GsndB4cLr{OD>y)g&;VY* zfB~hj75zk~D8XHI`~U%>Xp2u2ML-Y)LHO^el9QPuo2G*W0N#H`|IwA~-DsQ0Peerl zO^r&L4i;wdwh01mj2bxhHM_-pyb^rW0NRY^w!sWw&;ZPG&(yC72$_TVpkv=BvpW4n z1{|YagQV-+v3m8?)dIrw&x!pY#w%el!MTfrbH~aBPp{?~#b<~fHW$$0 zPWh7`c>WBF8Q_kU+dRDE+Vs}cMO7ataslwQPABrh_L+jsQC|aLVO@gtv!Bkvpeseq y>n)ghZO1!U>|oJvBeawG0RLUu$^}6Xa@+up@`L&MewR-G0000Px$VM#Y<6bk{QAx+0C&x6Kr9KV z1QPN&{mbj({U5-h_#GTrI#Y#MJ^tulA{?)ee8pz}sDI9G?=OIru@qRTKOmAl4lo4~HgXQV>oc zS(zUM_^wM?(^zpF%9@7ny264#Ht>;36tUT8P>CV{>XS6kYKLj8a|ipW;6@ZtA3X04 z#wYd_ylZY*tc{ujy1l+|PwBJZJG#9-PvJ9r_cublrGLdDb)w=5g+lQ!cmZ9Gi3*5u R5q$sv002ovPDHLkV1oHOu@L|O diff --git a/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/stage-1.png b/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/stage-1.png deleted file mode 100644 index 0b1d58de9de4475839a3f7b766fd49f1d00e0b6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}9iA?ZArY-_ zCvFrxWFWxe&m+4-Vre)dui$RQ@B&TS6|C14)Y*>7vA!_nVcb4((*NkcjK?IBdkpQ> zzVdlg?cKR4E2x75`!)IX}la+JzYu2_~QUzmZY=fqGZ#*YC%GZes9s^>bP0l+XkK DuvPx#+(|@1R9J=Wl-mu%APhw>O-JY)nZaVMO8M(r(VZc4WC!|@lA1iI)5lkRq)0Is ze6bCH<2a71tUWq+so7* zb>|MLwrM_PE$FLjSj~VwnXa)ly_UXs`xeaHK3i@Vpc_jEy>7cpUujq?B&X-NK|+Is o?(u1R@lO)jZ~2rvj^k``2j0$bCf_A20ssI207*qoM6N<$f=0}EA^-pY From cf0a4f69f8d019ea7385695a78f6fd1ee629a685 Mon Sep 17 00:00:00 2001 From: Grom1halo Date: Mon, 15 Jun 2026 14:57:36 +0700 Subject: [PATCH 07/11] Hide killerTomato instead of deleting lines/textures Restores the tomatokiller.rsi sprite assets and turns every removed line (locale entries, seed/packet prototypes, mutation reference, map placements, dungeon loot entry) into a commented-out block marked with # Forge-Change, so the content stays for upstream merges and can be re-enabled by uncommenting. --- Resources/Locale/en-US/seeds/seeds.ftl | 3 ++ Resources/Locale/ru-RU/seeds/seeds.ftl | 3 ++ .../objects/specific/hydroponics/seeds.ftl | 3 ++ Resources/Maps/Salvage/small-chapel.yml | 8 ++++ Resources/Maps/centcomm.yml | 23 +++++++++++ .../Entities/Mobs/NPCs/miscellaneous.yml | 4 +- .../Objects/Specific/Hydroponics/seeds.yml | 12 +++++- Resources/Prototypes/Hydroponics/seeds.yml | 36 +++++++++++++++++- .../Random/dungeon_items_hydroponics.yml | 2 + .../Hydroponics/tomatokiller.rsi/dead.png | Bin 0 -> 475 bytes .../Hydroponics/tomatokiller.rsi/harvest.png | Bin 0 -> 352 bytes .../Hydroponics/tomatokiller.rsi/meta.json | 26 +++++++++++++ .../Hydroponics/tomatokiller.rsi/seed.png | Bin 0 -> 423 bytes .../Hydroponics/tomatokiller.rsi/stage-1.png | Bin 0 -> 206 bytes .../Hydroponics/tomatokiller.rsi/stage-2.png | Bin 0 -> 290 bytes 15 files changed, 117 insertions(+), 3 deletions(-) create mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/dead.png create mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/harvest.png create mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/meta.json create mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/seed.png create mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/stage-1.png create mode 100644 Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/stage-2.png diff --git a/Resources/Locale/en-US/seeds/seeds.ftl b/Resources/Locale/en-US/seeds/seeds.ftl index f43b52f8cd6..aa5ff2f1e16 100644 --- a/Resources/Locale/en-US/seeds/seeds.ftl +++ b/Resources/Locale/en-US/seeds/seeds.ftl @@ -48,6 +48,9 @@ seeds-bluetomato-name = blue tomato seeds-bluetomato-display-name = blue tomato plant seeds-bloodtomato-name = blood tomato seeds-bloodtomato-display-name = blood tomato plant +# Forge-Change: hidden, killerTomato seed/mutation disabled (kept for upstream merges) +# seeds-killertomato-name = tomato killer +# seeds-killertomato-display-name = tomato killer plant seeds-eggplant-name = eggplant seeds-eggplant-display-name = eggplants seeds-apple-name = apple diff --git a/Resources/Locale/ru-RU/seeds/seeds.ftl b/Resources/Locale/ru-RU/seeds/seeds.ftl index 4c34933e996..36af074f5e9 100644 --- a/Resources/Locale/ru-RU/seeds/seeds.ftl +++ b/Resources/Locale/ru-RU/seeds/seeds.ftl @@ -40,6 +40,9 @@ seeds-bluetomato-name = синий томат seeds-bluetomato-display-name = куст синего томата seeds-bloodtomato-name = кровяной томат seeds-bloodtomato-display-name = куст кровяного томата +# Forge-Change: скрыто, мутация/семя killerTomato отключены (оставлено для апстрим-мерджей) +# seeds-killertomato-name = томат-убийца +# seeds-killertomato-display-name = куст томата-убийцы seeds-eggplant-name = баклажан seeds-eggplant-display-name = баклажан seeds-apple-name = яблоко diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/hydroponics/seeds.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/hydroponics/seeds.ftl index dbbb57c4639..2c463e6cded 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/hydroponics/seeds.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/hydroponics/seeds.ftl @@ -122,6 +122,9 @@ ent-PapercaneSeeds = пакет семян (бумажный тростник) .desc = { ent-SeedBase.desc } ent-MeatwheatSeeds = пакет семян (мясница) .desc = Если вы когда-нибудь хотели довести вегетарианца до безумия, то вот как это сделать. +# Forge-Change: скрыто, пакет семян KillerTomatoSeeds отключён (оставлено для апстрим-мерджей) +# ent-KillerTomatoSeeds = пакет семян (томат-убийца) +# .desc = { ent-SeedBase.desc } ent-HolymelonSeeds = пакет семян (святой арбуз) .desc = { ent-SeedBase.desc } ent-GoldenAppleSeeds = пакет семян (золотое яблоко) diff --git a/Resources/Maps/Salvage/small-chapel.yml b/Resources/Maps/Salvage/small-chapel.yml index 9b3540e0aa5..5fa626f29e8 100644 --- a/Resources/Maps/Salvage/small-chapel.yml +++ b/Resources/Maps/Salvage/small-chapel.yml @@ -616,6 +616,14 @@ entities: - type: Transform pos: 6.5,5.5 parent: 1 +# Forge-Change: hidden, KillerTomatoSeeds prototype disabled (kept for upstream merges) +# - proto: KillerTomatoSeeds +# entities: +# - uid: 51 +# components: +# - type: Transform +# pos: 4.6947265,8.268279 +# parent: 1 - proto: Lamp entities: - uid: 66 diff --git a/Resources/Maps/centcomm.yml b/Resources/Maps/centcomm.yml index fa966a87bae..2945421e59a 100644 --- a/Resources/Maps/centcomm.yml +++ b/Resources/Maps/centcomm.yml @@ -41293,6 +41293,29 @@ entities: - type: Transform pos: -3.3831449,-0.61700773 parent: 1668 +# Forge-Change: hidden, KillerTomatoSeeds prototype disabled (kept for upstream merges) +# - proto: KillerTomatoSeeds +# entities: +# - uid: 1015 +# components: +# - type: Transform +# pos: 8.239295,-23.358154 +# parent: 1668 +# - uid: 1016 +# components: +# - type: Transform +# pos: 8.239295,-23.295654 +# parent: 1668 +# - uid: 1017 +# components: +# - type: Transform +# pos: 8.239295,-23.420654 +# parent: 1668 +# - uid: 1018 +# components: +# - type: Transform +# pos: 8.239295,-23.483154 +# parent: 1668 - proto: KitchenElectricGrill entities: - uid: 1174 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml b/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml index 004a3c9ca1a..187c02db681 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/miscellaneous.yml @@ -215,7 +215,9 @@ grindableSolutionName: bloodstream - type: PotencyVisuals - type: Appearance - # Forge-Change: removed Produce/seedId killerTomato (killerTomato seed prototype removed) + # Forge-Change: hidden, killerTomato seed prototype disabled (kept for upstream merges) + # - type: Produce + # seedId: killerTomato - type: PassiveDamage # Slight passive damage. 35 hp \ 5 min \ 60 sec = 0.08 allowedStates: - Alive diff --git a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml index 1d85749e3bc..967152e3b46 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml @@ -280,7 +280,17 @@ seedId: bloodTomato - type: Sprite sprite: Objects/Specific/Hydroponics/blood_tomato.rsi -# Forge-Change: removed KillerTomatoSeeds packet (killerTomato mutation/seed removed) + +# Forge-Change: hidden, KillerTomatoSeeds packet disabled (kept for upstream merges) +# - type: entity +# parent: SeedBase +# name: packet of killer tomato seeds +# id: KillerTomatoSeeds +# components: +# - type: Seed +# seedId: killerTomato +# - type: Sprite +# sprite: Objects/Specific/Hydroponics/tomatokiller.rsi - type: entity parent: SeedBase diff --git a/Resources/Prototypes/Hydroponics/seeds.yml b/Resources/Prototypes/Hydroponics/seeds.yml index 5d0c6ed1a5a..37e5ad63da1 100644 --- a/Resources/Prototypes/Hydroponics/seeds.yml +++ b/Resources/Prototypes/Hydroponics/seeds.yml @@ -593,7 +593,9 @@ packetPrototype: BloodTomatoSeeds productPrototypes: - FoodBloodTomato - # Forge-Change: removed killerTomato mutation and seed prototype + # Forge-Change: hidden, killerTomato mutation disabled (kept for upstream merges) + # mutationPrototypes: + # - killerTomato harvestRepeat: Repeat lifespan: 60 maturation: 8 @@ -615,6 +617,38 @@ Max: 4 PotencyDivisor: 25 +# Forge-Change: hidden, killerTomato seed prototype disabled (kept for upstream merges) +# - type: seed +# id: killerTomato +# name: seeds-killertomato-name +# noun: seeds-noun-seeds +# displayName: seeds-killertomato-display-name +# plantRsi: Objects/Specific/Hydroponics/tomatokiller.rsi +# packetPrototype: KillerTomatoSeeds +# productPrototypes: +# - MobTomatoKiller +# harvestRepeat: Repeat +# lifespan: 25 +# maturation: 15 +# production: 6 +# yield: 2 +# potency: 10 +# waterConsumption: 0.60 +# nutrientConsumption: 0.70 +# idealLight: 8 +# idealHeat: 298 +# growthStages: 2 +# splatPrototype: PuddleSplatter +# chemicals: +# Blood: +# Min: 1 +# Max: 10 +# PotencyDivisor: 10 +# JuiceTomato: +# Min: 1 +# Max: 4 +# PotencyDivisor: 25 + - type: seed id: eggplant name: seeds-eggplant-name diff --git a/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_hydroponics.yml b/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_hydroponics.yml index 3199da29fe2..d86c6a64678 100644 --- a/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_hydroponics.yml +++ b/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_hydroponics.yml @@ -285,6 +285,8 @@ chance: 0.95 offset: 0.0 rarePrototypes: + # Forge-Change: hidden, KillerTomatoSeeds packet disabled (kept for upstream merges) + # - KillerTomatoSeeds - DeathNettleSeeds - SteelcapSeeds - LaughinPeaSeeds diff --git a/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/dead.png b/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/dead.png new file mode 100644 index 0000000000000000000000000000000000000000..0051c4dc7376bffc73143d68633bef15506348f5 GIT binary patch literal 475 zcmV<10VMv3P)Px$l}SWFR9J=Wl(9?0KorKmYlYIG4n-)WlP&%Qp-ZPyp>AC)Lg=D{n5p34;^5%m zAK=uG#YKdoi=#t19J)wBaHtS!LFtg?bPFxCanK7nTH*zC@_y4h-b>z>FYg|pP$(3N z{|<>tQc8t$r`z%YV5fR6JlDS3_j#PnrGBBQd?ZTZag0070+EukT&VL7-y z*pPXhKq5}_hUMTreGdT8C&{2Dn@eK~pl&%}t`|7n_ZUY1m}_bsFodr3HlT&-doRxu2RrqcjlHPtCww4|U4{05I2EIw!FOaP&zM z<8lJb^^h4bn1(GlVH!56TMowML?A+z$Xmc%5BemD(r%joKxs+M<;k|+JiQ?rr9|U` zVhD(Iz%*>an}`3gti3XGA+-mhczpXn^E-YxuKED5-kW1BG$T<+--7U94ewq60GR

Ij_-Jp_2M{#l0*bZ5LVP%yf$sy;u*pxWSfNlTJ^`8Nsg!!Q RA0Yq$002ovPDHLkV1hzk*LMH_ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/harvest.png b/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/harvest.png new file mode 100644 index 0000000000000000000000000000000000000000..46a3b389827c2d64cd26a7d9696ddf40099f0c0a GIT binary patch literal 352 zcmV-m0iXVfP)Px$8c9S!R9J=Wl)a6^FbsvC4qhNYx@$ay2VjvA(q#>GsndB4cLr{OD>y)g&;VY* zfB~hj75zk~D8XHI`~U%>Xp2u2ML-Y)LHO^el9QPuo2G*W0N#H`|IwA~-DsQ0Peerl zO^r&L4i;wdwh01mj2bxhHM_-pyb^rW0NRY^w!sWw&;ZPG&(yC72$_TVpkv=BvpW4n z1{|YagQV-+v3m8?)dIrw&x!pY#w%el!MTfrbH~aBPp{?~#b<~fHW$$0 zPWh7`c>WBF8Q_kU+dRDE+Vs}cMO7ataslwQPABrh_L+jsQC|aLVO@gtv!Bkvpeseq y>n)ghZO1!U>|oJvBeawG0RLUu$^}6Xa@+up@`L&MewR-G0000Px$VM#Y<6bk{QAx+0C&x6Kr9KV z1QPN&{mbj({U5-h_#GTrI#Y#MJ^tulA{?)ee8pz}sDI9G?=OIru@qRTKOmAl4lo4~HgXQV>oc zS(zUM_^wM?(^zpF%9@7ny264#Ht>;36tUT8P>CV{>XS6kYKLj8a|ipW;6@ZtA3X04 z#wYd_ylZY*tc{ujy1l+|PwBJZJG#9-PvJ9r_cublrGLdDb)w=5g+lQ!cmZ9Gi3*5u R5q$sv002ovPDHLkV1oHOu@L|O literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/stage-1.png b/Resources/Textures/Objects/Specific/Hydroponics/tomatokiller.rsi/stage-1.png new file mode 100644 index 0000000000000000000000000000000000000000..0b1d58de9de4475839a3f7b766fd49f1d00e0b6f GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}9iA?ZArY-_ zCvFrxWFWxe&m+4-Vre)dui$RQ@B&TS6|C14)Y*>7vA!_nVcb4((*NkcjK?IBdkpQ> zzVdlg?cKR4E2x75`!)IX}la+JzYu2_~QUzmZY=fqGZ#*YC%GZes9s^>bP0l+XkK DuvPx#+(|@1R9J=Wl-mu%APhw>O-JY)nZaVMO8M(r(VZc4WC!|@lA1iI)5lkRq)0Is ze6bCH<2a71tUWq+so7* zb>|MLwrM_PE$FLjSj~VwnXa)ly_UXs`xeaHK3i@Vpc_jEy>7cpUujq?B&X-NK|+Is o?(u1R@lO)jZ~2rvj^k``2j0$bCf_A20ssI207*qoM6N<$f=0}EA^-pY literal 0 HcmV?d00001 From 5313aa2d3ce74994813c2837e95dded6da0a204a Mon Sep 17 00:00:00 2001 From: Grom1halo Date: Mon, 15 Jun 2026 15:05:33 +0700 Subject: [PATCH 08/11] Give base hoverbike storage and swap Ironman voucher for a hoverbike flatpack VehicleHoverbikeNF now has its own Storage/trunk like the other hoverbike variants. The Ironman trait now spawns players with a HoverbikeFlatpack box instead of the Baeg shipyard voucher. --- Resources/Locale/en-US/_Mono/traits/traits.ftl | 2 +- Resources/Locale/ru-RU/_Mono/traits/traits.ftl | 2 +- Resources/Prototypes/_Mono/Traits/physical.yml | 2 +- .../_NF/Entities/Objects/Vehicles/vehicles.yml | 14 ++++++++++++++ 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/Resources/Locale/en-US/_Mono/traits/traits.ftl b/Resources/Locale/en-US/_Mono/traits/traits.ftl index eb1ceb20e08..9c4d86d0a2f 100644 --- a/Resources/Locale/en-US/_Mono/traits/traits.ftl +++ b/Resources/Locale/en-US/_Mono/traits/traits.ftl @@ -72,7 +72,7 @@ trait-dermal-armor-name = Dermal Armor trait-dermal-armor-desc = Your skin has been replaced with a flexible, yet sturdy, hard-polymer shell wrapped in a layer of synthetic flesh. Provides 3.5 flat reduction to Blunt, Slash, and Piercing damage, but you take 25% more Shock damage. trait-ironman-name = Ironman -trait-ironman-desc = You live strictly on hard cash. You can't withdraw from your bank account, but you start the shift with a Baeg Voucher to make your way. +trait-ironman-desc = You live strictly on hard cash. You can't withdraw from your bank account, but you start the shift with a flatpacked hoverbike in a box to make your way. trait-temperature-tolerance-name = Temperature Tolerance trait-temperature-tolerance-desc = You have a notable tolerance for lower temperatures. You can stand for extended periods in conditions just below freezing, like a walk-in fridge or the sunlit slopes of Glacier. diff --git a/Resources/Locale/ru-RU/_Mono/traits/traits.ftl b/Resources/Locale/ru-RU/_Mono/traits/traits.ftl index b0bc587d125..753b0ab729c 100644 --- a/Resources/Locale/ru-RU/_Mono/traits/traits.ftl +++ b/Resources/Locale/ru-RU/_Mono/traits/traits.ftl @@ -69,7 +69,7 @@ trait-self-aware-desc = У тебя развитая интуиция тела trait-ironman-name = Железный человек trait-ironman-desc = Вы живёте исключительно на наличные. Вы не можете снимать деньги со своего банковского счёта. - Вы получаете ваучер на шаттл, Удачи. + Вы получаете коробку с упакованным ховербайком, Удачи. trait-thieving-name = Воровская сноровка trait-thieving-desc = У вас ловкие руки и талант убеждать людей расставаться с имуществом. Вы распознаёте спрятанные по карманам предметы и воруете на 50% быстрее. diff --git a/Resources/Prototypes/_Mono/Traits/physical.yml b/Resources/Prototypes/_Mono/Traits/physical.yml index 273f392c33d..6e057edcab6 100644 --- a/Resources/Prototypes/_Mono/Traits/physical.yml +++ b/Resources/Prototypes/_Mono/Traits/physical.yml @@ -336,7 +336,7 @@ cost: -5 # This shit was FREE for factions practically components: - type: Ironman - traitGear: ShipVoucherFrontierIronMan + traitGear: HoverbikeFlatpack - type: trait id: TemperatureTolerance diff --git a/Resources/Prototypes/_NF/Entities/Objects/Vehicles/vehicles.yml b/Resources/Prototypes/_NF/Entities/Objects/Vehicles/vehicles.yml index 943ffe0d4fd..7167cb7f88c 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Vehicles/vehicles.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Vehicles/vehicles.yml @@ -92,6 +92,20 @@ name: hoverbike description: A turbine with bike handles. Very safe. components: + - type: Storage + grid: + - 0,0,5,3 + maxItemSize: Huge + blacklist: + components: + - HumanoidAppearance + - type: ContainerContainer + containers: + storagebase: !type:Container + - type: UserInterface + interfaces: + enum.StorageUiKey.Key: + type: StorageBoundUserInterface - type: MovementAlwaysTouching - type: CanMoveInAir - type: AmbientSound From 3288331b74826c71dd71873ce89170492ccda7f5 Mon Sep 17 00:00:00 2001 From: Grom1halo Date: Mon, 15 Jun 2026 16:16:07 +0700 Subject: [PATCH 09/11] Redirect gun recoil impulse to vehicle when shooter is buckled Firing a weapon while buckled (e.g. riding a hoverbike) pushed the shooter's body away from the seat, which could exceed the strap's unbuckle distance and throw them off the vehicle. Recoil now applies to whatever the shooter is buckled to instead. --- Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs index ed634a59577..91521a3b0ff 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs @@ -76,6 +76,7 @@ public abstract partial class SharedGunSystem : EntitySystem protected EntityQuery _physQuery; // Mono protected EntityQuery _projQuery; // Mono + protected EntityQuery _buckleQuery; // Mono private EntityQuery _autoShootGunQuery; // Mono private const float InteractNextFire = 0.3f; @@ -118,6 +119,7 @@ public override void Initialize() _physQuery = GetEntityQuery(); // Mono _projQuery = GetEntityQuery(); // Mono + _buckleQuery = GetEntityQuery(); // Mono _autoShootGunQuery = GetEntityQuery(); } @@ -727,6 +729,12 @@ public void CauseImpulse(EntityCoordinates toCoordinates, Entity e impulseCoord = TransformSystem.WithEntityId(impulseCoord, selfXform.ParentUid); var toEnt = impulseCoord.EntityId; + + // Mono - if the shooter is buckled (e.g. riding a vehicle), apply the recoil to whatever + // they're buckled to instead, so the kick doesn't shove them out of their seat. + if (_buckleQuery.TryComp(toEnt, out var buckle) && buckle.BuckledTo is { } buckledTo) + toEnt = buckledTo; + if (!_physQuery.TryComp(toEnt, out var toBody)) return; From 6e9c70e6d125a0cd39b0b308b957451e525ac3a7 Mon Sep 17 00:00:00 2001 From: Grom1halo Date: Mon, 15 Jun 2026 16:16:07 +0700 Subject: [PATCH 10/11] Redirect gun recoil impulse to vehicle when shooter is buckled Firing a weapon while buckled (e.g. riding a hoverbike) pushed the shooter's body away from the seat, which could exceed the strap's unbuckle distance and throw them off the vehicle. Recoil now applies to whatever the shooter is buckled to instead. --- Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs index ed634a59577..91521a3b0ff 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs @@ -76,6 +76,7 @@ public abstract partial class SharedGunSystem : EntitySystem protected EntityQuery _physQuery; // Mono protected EntityQuery _projQuery; // Mono + protected EntityQuery _buckleQuery; // Mono private EntityQuery _autoShootGunQuery; // Mono private const float InteractNextFire = 0.3f; @@ -118,6 +119,7 @@ public override void Initialize() _physQuery = GetEntityQuery(); // Mono _projQuery = GetEntityQuery(); // Mono + _buckleQuery = GetEntityQuery(); // Mono _autoShootGunQuery = GetEntityQuery(); } @@ -727,6 +729,12 @@ public void CauseImpulse(EntityCoordinates toCoordinates, Entity e impulseCoord = TransformSystem.WithEntityId(impulseCoord, selfXform.ParentUid); var toEnt = impulseCoord.EntityId; + + // Mono - if the shooter is buckled (e.g. riding a vehicle), apply the recoil to whatever + // they're buckled to instead, so the kick doesn't shove them out of their seat. + if (_buckleQuery.TryComp(toEnt, out var buckle) && buckle.BuckledTo is { } buckledTo) + toEnt = buckledTo; + if (!_physQuery.TryComp(toEnt, out var toBody)) return; From 88dd8961511da382e65a4eb2e82aa4b6bd1d48fe Mon Sep 17 00:00:00 2001 From: Grom1halo Date: Mon, 15 Jun 2026 17:19:48 +0700 Subject: [PATCH 11/11] Add facing-direction arrow to radar UI The handheld mass scanner's radar stays north-up (no rotation), which made it hard to tell which way the character is currently facing. Draws a small arrow from the "you are here" marker pointing in the direction the controlling entity faces, for radars with FollowEntity set. --- .../Shuttles/UI/BaseShuttleControl.xaml.cs | 2 +- .../Shuttles/UI/ShuttleNavControl.xaml.cs | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Content.Client/Shuttles/UI/BaseShuttleControl.xaml.cs b/Content.Client/Shuttles/UI/BaseShuttleControl.xaml.cs index 0b3548a55e6..0478e95e5b6 100644 --- a/Content.Client/Shuttles/UI/BaseShuttleControl.xaml.cs +++ b/Content.Client/Shuttles/UI/BaseShuttleControl.xaml.cs @@ -327,7 +327,7 @@ private void DrawCompassNeedle( handle.DrawString(Font, labelPosition, label, 0.9f, color.WithAlpha(0.7f)); } - private static void DrawArrowLine( + protected static void DrawArrowLine( DrawingHandleScreen handle, Vector2 start, Vector2 end, diff --git a/Content.Client/Shuttles/UI/ShuttleNavControl.xaml.cs b/Content.Client/Shuttles/UI/ShuttleNavControl.xaml.cs index 142e60ee798..decf317fa98 100644 --- a/Content.Client/Shuttles/UI/ShuttleNavControl.xaml.cs +++ b/Content.Client/Shuttles/UI/ShuttleNavControl.xaml.cs @@ -14,6 +14,7 @@ using JetBrains.Annotations; using Robust.Client.AutoGenerated; using Robust.Client.Graphics; +using Robust.Client.Player; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.XAML; @@ -34,6 +35,7 @@ public partial class ShuttleNavControl : BaseShuttleControl // Mono { [Dependency] private IMapManager _mapManager = default!; [Dependency] private IUserInterfaceManager _uiManager = default!; + [Dependency] private IPlayerManager _player = default!; // Mono private readonly DetectionSystem _detection; // Mono private readonly StationSystem _station; // Frontier private readonly SharedShuttleSystem _shuttles; @@ -647,6 +649,20 @@ protected override void Draw(DrawingHandleScreen handle) handle.DrawPrimitives(DrawPrimitiveTopology.TriangleFan, radarPosVerts, Color.Lime); + // Mono - draw an arrow from our position showing which way our character is facing + if (radar is { FollowEntity: true } && _player.LocalEntity is { } localPlayer) + { + var facingWorldDir = _transform.GetWorldRotation(localPlayer).ToWorldVec(); + var facingScreenDir = Vector2.TransformNormal(facingWorldDir, worldToView); + if (facingScreenDir != Vector2.Zero) + { + facingScreenDir = Vector2.Normalize(facingScreenDir); + var facingOrigin = MidPointVector; + var facingTip = facingOrigin + facingScreenDir * 18f; + DrawArrowLine(handle, facingOrigin, facingTip, Color.Yellow, 6f); + } + } + var viewBounds = new Box2Rotated(new Box2(-WorldRange, -WorldRange, WorldRange, WorldRange).Translated(mapPos.Position), worldRot, mapPos.Position); var viewAABB = viewBounds.CalcBoundingBox();