Skip to content

Добавление взаимодействий с крыльями и фиксы нелогичных взаимодействий #495

Open
Soragy-bot wants to merge 2 commits intospace-sunrise:masterfrom
Soragy-bot:feature/wing-interactions-and-tail-fix
Open

Добавление взаимодействий с крыльями и фиксы нелогичных взаимодействий #495
Soragy-bot wants to merge 2 commits intospace-sunrise:masterfrom
Soragy-bot:feature/wing-interactions-and-tail-fix

Conversation

@Soragy-bot
Copy link
Contributor

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

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

Добавлены уникальные взаимодействия для персонажей с крыльями, а именно Мирил и Моли.
Убраны взаимодействия с хвостом Мирилы и Моли так как у них нет хвоста.

Обязательно мерджить после space-sunrise/sunrise-station#4044

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

Отсутствие взаимодействий с крыльями. А так, поскольку крылья у Мирил и Моли идут в слот Tail, у них был доступ ко всем взаимодействиям, связанным с хвостами, что нелогично.

Медиа(Видео/Скриншоты)

Можно тут глянуть первую часть: space-sunrise/sunrise-station#4044

Changelog

🆑 Soragy

  • add: Добавлены ERP взаимодействия для крыльев.
  • fix: Убраны взаимодействия с хвостом у Мирил и Моли.

Summary by CodeRabbit

  • Новые функции

    • Добавлены шесть новых взаимодействий с использованием крыльев (поцелуи, касания, фрикции).
    • Добавлены локализации для английского и русского языков.
    • Добавлены иконки для новых взаимодействий.
  • Исправления ошибок

    • Исправлены проблемы форматирования в файлах конфигурации.
  • Реbalancing

    • Добавлены видоспецифичные ограничения на некоторые взаимодействия хвоста и новые интеракции для определённых рас.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 14, 2026

📝 Walkthrough

Walkthrough

Добавлены шесть новых взаимодействий на основе крыльев с локализацией на английском и русском языках, удалена категория взаимодействий Wings, добавлены ограничения на основе вида для хвоста-ориентированных взаимодействий (исключение Moth/Milira) и обновлены типы условий в существующих взаимодействиях.

Changes

Cohort / File(s) Summary
Localization — Categories
Resources/Locale/en-US/_lust/interactions/categories.ftl, Resources/Locale/ru-RU/_lust/interactions/categories.ftl
Removed lust-interaction-category-Wings key from both English and Russian category files.
Localization — Icons
Resources/Locale/en-US/_lust/interactions/icons.ftl, Resources/Locale/ru-RU/_lust/interactions/icons.ftl
Added four new wing-related interaction icons: WingKiss, WingLick, WingStrokeCrotch, WingsCockFap with English and Russian translations.
Localization — Interactions
Resources/Locale/en-US/_lust/interactions/interactions.ftl, Resources/Locale/ru-RU/_lust/interactions/interactions.ftl
Added six new wing interaction keys with English and Russian translations: WingsKiss, WingsLick, WingsStrokeCrotch, WingsCockFap, WingsPussyFuck, WingsAssFuck.
Prototypes — Icons
Resources/Prototypes/_Lust/Interactions/icons.yml
Added four new interaction icon definitions (WingKiss, WingLick, WingStrokeCrotch, WingsCockFap) with corresponding icon paths.
Prototypes — Species Conditions
Resources/Prototypes/_Lust/Interactions/anal.yml, Resources/Prototypes/_Lust/Interactions/boobs.yml, Resources/Prototypes/_Lust/Interactions/butt.yml, Resources/Prototypes/_Lust/Interactions/cock.yml, Resources/Prototypes/_Lust/Interactions/pussy.yml
Added InteractionNotCondition with SpeciesCondition exclusions (Moth, Milira) to tail-related interactions. Updated condition types from BodyAreaTagCondition to HasVisualLayerCondition in pussy.yml.
Prototypes — Category Removal
Resources/Prototypes/_Lust/Interactions/categories.yml
Removed Wings category definition (id: Wings).
Prototypes — New Wings Interactions
Resources/Prototypes/_Lust/Interactions/wings.yml
Added complete new file with six wing-based interaction definitions: WingsKiss, WingsLick, WingsStrokeCrotch, WingsCockFap, WingsPussyFuck, WingsAssFuck, each with appearance conditions, messages, sounds, and cooldowns.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Suggested labels

📚 Изменения: Локализация 📚, 📦 YAML | Прототип 📦, 🧊 Нет C# 🧊, 🔎 На Рассмотрение 🔎, ⚖️ Ребаланс ⚖️

Poem

🐰 Крыла взмахнут, взаимодействия расцветут,
Новые фразы на английском и русском пути,
Мотылькам с миларами — путь закрыт вперёд,
Слой за слоем условий, баланс взлёт!
Шесть новых танцев в файле крыльев живут! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed Заголовок точно отражает основные изменения: добавление взаимодействий с крыльями и исправления нелогичных взаимодействий с хвостом для персонажей без хвоста.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
📝 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.

Actionable comments posted: 1

🧹 Nitpick comments (1)
Resources/Prototypes/_Lust/Interactions/wings.yml (1)

17-43: Рекомендация: вынести повторяющийся markingWhitelist с помощью YAML-якорей.

Список markingWhitelist с ~28 записями повторяется 6 раз в файле. При добавлении новых маркировок крыльев придётся обновлять все 6 мест.

♻️ Пример рефакторинга с YAML-якорями

В начале файла определить якорь:

.wing_markings: &wing_markings
  - MiliraWingBasic
  - MiliraWingBasicOpen
  - MiliraWingBasicFlight
  - MothWingsDefault
  # ... остальные маркировки

Затем использовать во взаимодействиях:

- !type:HasMarkingCondition
  checkInitiator: false
  checkTarget: true
  markingWhitelist: *wing_markings
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Prototypes/_Lust/Interactions/wings.yml` around lines 17 - 43, The
repeated markingWhitelist block should be factored into a YAML anchor and
reused; define a single anchor (e.g. &wing_markings) containing the full list of
entries shown under markingWhitelist and then replace each repeated
markingWhitelist: [...] occurrence with a reference to that anchor
(markingWhitelist: *wing_markings) so HasMarkingCondition instances and any
other places using markingWhitelist reuse the same list.
🤖 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/wings.yml`:
- Line 227: The interactions WingsPussyFuck and WingsAssFuck reference an
undefined icon id "WingScratch"; fix by either adding a new interactionIcon
entry with id "WingScratch" to the Interactions icons list (icons.yml) or
updating those interactions to use an existing icon id (e.g., WingKiss,
WingLick, WingStrokeCrotch, or WingsCockFap); ensure the chosen icon id exactly
matches the id used in the interactions and update icons.yml or the interactions
entries accordingly.

---

Nitpick comments:
In `@Resources/Prototypes/_Lust/Interactions/wings.yml`:
- Around line 17-43: The repeated markingWhitelist block should be factored into
a YAML anchor and reused; define a single anchor (e.g. &wing_markings)
containing the full list of entries shown under markingWhitelist and then
replace each repeated markingWhitelist: [...] occurrence with a reference to
that anchor (markingWhitelist: *wing_markings) so HasMarkingCondition instances
and any other places using markingWhitelist reuse the same list.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: f9fbcab9-d8ac-440a-b71b-9d45706af40a

📥 Commits

Reviewing files that changed from the base of the PR and between ebcbd36 and 30e63f5.

⛔ Files ignored due to path filters (4)
  • Resources/Textures/_Lust/Interactions/wing_kiss.png is excluded by !**/*.png
  • Resources/Textures/_Lust/Interactions/wing_lick.png is excluded by !**/*.png
  • Resources/Textures/_Lust/Interactions/wing_stroke_crotch.png is excluded by !**/*.png
  • Resources/Textures/_Lust/Interactions/wings_cock_fap.png is excluded by !**/*.png
📒 Files selected for processing (15)
  • Resources/Locale/en-US/_lust/interactions/categories.ftl
  • Resources/Locale/en-US/_lust/interactions/icons.ftl
  • Resources/Locale/en-US/_lust/interactions/interactions.ftl
  • Resources/Locale/ru-RU/_lust/interactions/categories.ftl
  • Resources/Locale/ru-RU/_lust/interactions/icons.ftl
  • Resources/Locale/ru-RU/_lust/interactions/interactions.ftl
  • Resources/Prototypes/_Lust/Interactions/anal.yml
  • Resources/Prototypes/_Lust/Interactions/boobs.yml
  • Resources/Prototypes/_Lust/Interactions/butt.yml
  • Resources/Prototypes/_Lust/Interactions/categories.yml
  • Resources/Prototypes/_Lust/Interactions/cock.yml
  • Resources/Prototypes/_Lust/Interactions/icons.yml
  • Resources/Prototypes/_Lust/Interactions/pussy.yml
  • Resources/Prototypes/_Lust/Interactions/wing_interactions.yml
  • Resources/Prototypes/_Lust/Interactions/wings.yml
💤 Files with no reviewable changes (3)
  • Resources/Locale/en-US/_lust/interactions/categories.ftl
  • Resources/Locale/ru-RU/_lust/interactions/categories.ftl
  • Resources/Prototypes/_Lust/Interactions/categories.yml

- type: interaction
id: WingsPussyFuck
name: lust-interaction-WingsPussyFuck
icon: WingScratch
Copy link
Contributor

@coderabbitai coderabbitai bot Mar 14, 2026

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Иконка "WingScratch" не определена в icons.yml.

Взаимодействия WingsPussyFuck (строка 227) и WingsAssFuck (строка 298) используют icon: WingScratch, но эта иконка отсутствует в Resources/Prototypes/_Lust/Interactions/icons.yml. Там определены только: WingKiss, WingLick, WingStrokeCrotch, WingsCockFap.

Необходимо добавить WingScratch в icons.yml или использовать существующую иконку.

🔧 Вариант исправления — использовать существующую иконку
- icon: WingScratch
+ icon: WingStrokeCrotch

Или добавить новую иконку в icons.yml:

- type: interactionIcon
  id: WingScratch
  name: lust-interaction-icon-WingScratch
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
icon: WingScratch
icon: WingStrokeCrotch
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Prototypes/_Lust/Interactions/wings.yml` at line 227, The
interactions WingsPussyFuck and WingsAssFuck reference an undefined icon id
"WingScratch"; fix by either adding a new interactionIcon entry with id
"WingScratch" to the Interactions icons list (icons.yml) or updating those
interactions to use an existing icon id (e.g., WingKiss, WingLick,
WingStrokeCrotch, or WingsCockFap); ensure the chosen icon id exactly matches
the id used in the interactions and update icons.yml or the interactions entries
accordingly.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Нормально, они в другом PR

Copy link
Contributor

Choose a reason for hiding this comment

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

@Soragy-bot, понял! Раз WingScratch будет определена в зависимом PR (upstream #4044), всё логично — при мерже в правильном порядке иконка будет доступна. Спасибо за пояснение!


🧠 Learnings used
Learnt from: Orvex07
Repo: space-sunrise/lust-station PR: 442
File: Resources/Prototypes/_Lust/CP/Weapons/hl2_weapons.yml:56-105
Timestamp: 2025-12-31T16:02:40.555Z
Learning: В проекте space-sunrise/lust-station при анализе PR с контентом в директории _Lust/CP необходимо проверять существование прототипов не только в файлах PR, но и в upstream директории _Sunrise, так как _Lust может использовать прототипы оружия, магазинов и других предметов из _Sunrise (например, MagazineMP7 определён в Resources/Prototypes/_Sunrise/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml).

Learnt from: Esco-dev
Repo: space-sunrise/lust-station PR: 427
File: Resources/Prototypes/_Sunrise/Roles/Jobs/Command/nanotrasen_representative.yml:7-7
Timestamp: 2025-12-12T08:52:41.391Z
Learning: Сохраняйте комментарий '# Lust Edit' во всех YAML-файлах проекта-ответвления (fork) space-sunrise/lust-station. Эти комментарии помечают fork-специфические изменения по отношению к upstream sunrise-station и используются в системе документации изменений. Они не должны удаляться во время слияний/переносов изменений. При работе с файлами, где встречаются такие комментарии, сохраняйте их, чтобы сохранить контекст форка, и при необходимости добавляйте новые пометки вместо удаления.

Learnt from: Esco-dev
Repo: space-sunrise/lust-station PR: 427
File: Resources/Prototypes/_Sunrise/Roles/Jobs/Command/nanotrasen_representative.yml:7-7
Timestamp: 2025-12-12T08:52:27.300Z
Learning: In the repository space-sunrise/lust-station, preserve any comments that mark fork-specific changes, specifically the marker "#Lust Edit" in YAML files (e.g., Resources/Prototypes/_Sunrise/Roles/Jobs/Command/nanotrasen_representative.yml). These comments are part of the change-documented system relative to the upstream sunrise-station and must not be deleted, merged over, or removed during edits or merges.

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