feat: Ношение страпона на поясе теперь открывает доступ к взаимодействиям#499
feat: Ношение страпона на поясе теперь открывает доступ к взаимодействиям#499Soragy-bot wants to merge 1 commit intospace-sunrise:masterfrom
Conversation
📝 WalkthroughWalkthroughОбновление конфигурации взаимодействий с игрушками в файле YAML: добавлена обязательная проверка экипировки пояса (checkEquipped: true с equipmentSlots: belt) и расширены списки разрешённых предметов (itemWhiteList) для включения ERPStrapOn в несколько блоков взаимодействий. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes Suggested labels
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
Resources/Prototypes/_Lust/Interactions/toyInteractions.yml (1)
207-220:⚠️ Potential issue | 🟠 MajorСамо-взаимодействия с ERPStrapOn не учитывают надетый поясной слот.
В
ERPSelftoyPlaceholderDildoиERPSelftoyPlaceholderDildo2добавленERPStrapOnвitemWhiteList, но отсутствуютcheckEquippedиequipmentSlots.
Из-за этого на Line 207-210 и Line 256-259 проверка остаётся только по предмету в руках, и ношение страпона на поясе не откроет self-взаимодействия.💡 Предлагаемый патч
- !type:ItemCondition checkInitiator: true checkTarget: false + checkEquipped: true + equipmentSlots: + - belt itemWhiteList: - ERPNormalDildo - ERPDildoAvian @@ - !type:ItemCondition checkInitiator: true checkTarget: false + checkEquipped: true + equipmentSlots: + - belt itemWhiteList: - ERPNormalDildo - ERPDildoAvianAlso applies to: 256-268
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Resources/Prototypes/_Lust/Interactions/toyInteractions.yml` around lines 207 - 220, ERPSelftoyPlaceholderDildo and ERPSelftoyPlaceholderDildo2 include ERPStrapOn in itemWhiteList but lack equipment checks, so self-interactions only trigger when the item is held; add checkEquipped: true and an equipmentSlots array including the waist slot (e.g., equipmentSlots: - Waist) to both interaction blocks so the logic checks worn strap-ons as well as held items.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Outside diff comments:
In `@Resources/Prototypes/_Lust/Interactions/toyInteractions.yml`:
- Around line 207-220: ERPSelftoyPlaceholderDildo and
ERPSelftoyPlaceholderDildo2 include ERPStrapOn in itemWhiteList but lack
equipment checks, so self-interactions only trigger when the item is held; add
checkEquipped: true and an equipmentSlots array including the waist slot (e.g.,
equipmentSlots: - Waist) to both interaction blocks so the logic checks worn
strap-ons as well as held items.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 0f8b6b01-9f76-4322-a229-2ef09424bece
📒 Files selected for processing (2)
Content.Shared/_Sunrise/InteractionsPanel/Data/Conditions/ItemCondition.csResources/Prototypes/_Lust/Interactions/toyInteractions.yml
There was a problem hiding this comment.
Данную систему нужно перенести на билд Sunrise. Причина: Конфликты.
There was a problem hiding this comment.
Верно, в этом случае лучше всего перенести
There was a problem hiding this comment.
Готово, space-sunrise/sunrise-station#4066. Но теперь нужно вначале то меджнуть, а только потом это.
09d5fda to
cb2cf54
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@Resources/Prototypes/_Lust/Interactions/toyInteractions.yml`:
- Line 219: The whitelist entries include ERPStrapOn for the self-dildo
interactions, but the corresponding ItemCondition blocks for the
ERPSelftoyPlaceholderDildo* interactions are missing the required equipment
checks, so self-variants won't activate when worn on the belt; update each
ERPSelftoyPlaceholderDildo* ItemCondition to include checkEquipped: true and
equipmentSlots: [belt] (i.e., add these keys to the ItemCondition that
references ERPStrapOn) so the self toy opens when equipped in the belt slot.
- Around line 12-14: The prototype fields checkEquipped and equipmentSlots are
not defined in ItemCondition, so add corresponding properties to
Content.Shared/_Sunrise/InteractionsPanel/Data/Conditions/ItemCondition.cs
(e.g., public bool CheckEquipped { get; set; } and public string[]
EquipmentSlots { get; set; }) and update the condition evaluation (the method
that currently checks the held item, e.g., Matches/Evaluate in ItemCondition)
to, when CheckEquipped is true, search the actor's equipment slots listed in
EquipmentSlots (e.g., "belt") for the item instead of only checking the hand;
ensure proper serialization/attribute annotations so prototype deserialization
succeeds and unknown fields won’t break loading.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 5ff7c0f5-5298-4e76-add6-09fa9014378b
📒 Files selected for processing (1)
Resources/Prototypes/_Lust/Interactions/toyInteractions.yml
| checkEquipped: true | ||
| equipmentSlots: | ||
| - belt |
There was a problem hiding this comment.
checkEquipped/equipmentSlots не сработают с текущим ItemCondition.
На Line 12-14 и Line 65-67 добавлены поля, которых сейчас нет в ItemCondition (Content.Shared/_Sunrise/InteractionsPanel/Data/Conditions/ItemCondition.cs). Из-за этого belt-проверка не будет применена (или сломает чтение прототипа), и логика останется проверкой предмета только в руках.
Also applies to: 65-67
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@Resources/Prototypes/_Lust/Interactions/toyInteractions.yml` around lines 12
- 14, The prototype fields checkEquipped and equipmentSlots are not defined in
ItemCondition, so add corresponding properties to
Content.Shared/_Sunrise/InteractionsPanel/Data/Conditions/ItemCondition.cs
(e.g., public bool CheckEquipped { get; set; } and public string[]
EquipmentSlots { get; set; }) and update the condition evaluation (the method
that currently checks the held item, e.g., Matches/Evaluate in ItemCondition)
to, when CheckEquipped is true, search the actor's equipment slots listed in
EquipmentSlots (e.g., "belt") for the item instead of only checking the hand;
ensure proper serialization/attribute annotations so prototype deserialization
succeeds and unknown fields won’t break loading.
| - ERPDildoKnot | ||
| - ERPDildoTentacle | ||
| - PlushieAshito | ||
| - ERPStrapOn |
There was a problem hiding this comment.
Для self-dildo взаимодействий belt-гейт не добавлен.
На Line 219 и Line 268 ERPStrapOn добавлен в whitelist, но в этих двух ItemCondition нет checkEquipped: true + equipmentSlots: [belt]. Даже после backend-поддержки слотов self-варианты не откроются при ношении на поясе.
Предложение для обоих self-блоков (`ERPSelftoyPlaceholderDildo*`)
- !type:ItemCondition
checkInitiator: true
checkTarget: false
+ checkEquipped: true
+ equipmentSlots:
+ - belt
itemWhiteList:
- ERPNormalDildo
- ERPDildoAvian
- ERPDildoDragon
- ERPDildoDouble
- ERPDildoEquine
- ERPDildoKnot
- ERPDildoTentacle
- PlushieAshito
- ERPStrapOnAlso applies to: 268-268
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@Resources/Prototypes/_Lust/Interactions/toyInteractions.yml` at line 219, The
whitelist entries include ERPStrapOn for the self-dildo interactions, but the
corresponding ItemCondition blocks for the ERPSelftoyPlaceholderDildo*
interactions are missing the required equipment checks, so self-variants won't
activate when worn on the belt; update each ERPSelftoyPlaceholderDildo*
ItemCondition to include checkEquipped: true and equipmentSlots: [belt] (i.e.,
add these keys to the ItemCondition that references ERPStrapOn) so the self toy
opens when equipped in the belt slot.

Кратное описание
Теперь страпон (
ERPStrapOn), надетый в слот пояса, даёт доступ к взаимодействиям с дилдо так же, как если бы дилдо держали в руке.По какой причине
Страпон по замыслу является заменой дилдо при ролевых взаимодействиях. Раньше, чтобы использовать дилдо-взаимодействия, нужно было держать дилдо в руке что выглядит нелогично при наличии надетого страпона. Теперь персонаж может взаимодействовать со свободными руками , если страпон надет на пояс.
Changelog
🆑 Soragy
Summary by CodeRabbit
Новое содержание