Skip to content

feat: Ношение страпона на поясе теперь открывает доступ к взаимодействиям#499

Open
Soragy-bot wants to merge 1 commit intospace-sunrise:masterfrom
Soragy-bot:feat/strapon-interaction-access
Open

feat: Ношение страпона на поясе теперь открывает доступ к взаимодействиям#499
Soragy-bot wants to merge 1 commit intospace-sunrise:masterfrom
Soragy-bot:feat/strapon-interaction-access

Conversation

@Soragy-bot
Copy link
Contributor

@Soragy-bot Soragy-bot commented Mar 18, 2026

Кратное описание

Теперь страпон (ERPStrapOn), надетый в слот пояса, даёт доступ к взаимодействиям с дилдо так же, как если бы дилдо держали в руке.

По какой причине

Страпон по замыслу является заменой дилдо при ролевых взаимодействиях. Раньше, чтобы использовать дилдо-взаимодействия, нужно было держать дилдо в руке что выглядит нелогично при наличии надетого страпона. Теперь персонаж может взаимодействовать со свободными руками , если страпон надет на пояс.

Changelog

🆑 Soragy

  • add: Ношение страпона на поясе теперь открывает доступ к взаимодействиям с дилдо.

Summary by CodeRabbit

Новое содержание

  • Улучшения функций
    • Добавлено требование наличия экипировки (ремня) для использования определённых предметов взаимодействия.
    • Расширена совместимость взаимодействия с дополнительными предметами (StrapOn) в нескольких сценариях игрока.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 18, 2026

📝 Walkthrough

Walkthrough

Обновление конфигурации взаимодействий с игрушками в файле YAML: добавлена обязательная проверка экипировки пояса (checkEquipped: true с equipmentSlots: belt) и расширены списки разрешённых предметов (itemWhiteList) для включения ERPStrapOn в несколько блоков взаимодействий.

Changes

Cohort / File(s) Summary
Toy and Fleshflight Interactions
Resources/Prototypes/_Lust/Interactions/toyInteractions.yml
Добавлены ограничения на основе экипировки (checkEquipped: true, equipmentSlots: belt) в ItemCondition блоки для ERPtoyPlaceholderDildo, ERPtoyPlaceholderDildo2, ERPSelftoyPlaceholderDildo и ERPSelftoyPlaceholderDildo2. Расширены itemWhiteList для включения ERPStrapOn в эти же взаимодействия, а также в ERPtoyPlaceholderFleshflight1, ERPSelftoyPlaceholderFleshflight1 и их контекстные блоки.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Suggested labels

🧊 Нет C# 🧊

Poem

🐰 Ремешок надёжный мне помог,
Игрушки новые в списке предвидел,
Конфиг обновлен, вот мой поволок —
Взаимодействия чётче я видел! ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed Заголовок точно описывает основное изменение: ношение страпона на поясе теперь открывает доступ к взаимодействиям. Это полностью соответствует содержимому изменений в файле toyInteractions.yml.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
📝 Coding Plan
  • Generate coding plan for human review comments

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
     - ERPDildoAvian

Also 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

📥 Commits

Reviewing files that changed from the base of the PR and between ebcbd36 and 09d5fda.

📒 Files selected for processing (2)
  • Content.Shared/_Sunrise/InteractionsPanel/Data/Conditions/ItemCondition.cs
  • Resources/Prototypes/_Lust/Interactions/toyInteractions.yml

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Данную систему нужно перенести на билд Sunrise. Причина: Конфликты.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Так есть такой прикол, что её-то и нет на Sunrise. Полностью переносим её?
image
Это по сути наш файл, да и там есть ещё такие.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Верно, в этом случае лучше всего перенести

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Готово, space-sunrise/sunrise-station#4066. Но теперь нужно вначале то меджнуть, а только потом это.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 09d5fda and cb2cf54.

📒 Files selected for processing (1)
  • Resources/Prototypes/_Lust/Interactions/toyInteractions.yml

Comment on lines +12 to +14
checkEquipped: true
equipmentSlots:
- belt
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Для 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
     - ERPStrapOn

Also 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants