Продолжительность жизни ксено и дварфов - #176
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📜 Recent review details⏰ Context from checks skipped due to timeout. (5)
🧰 Additional context used📓 Path-based instructions (5)Resources/**/*.{yml,ftl,json}📄 CodeRabbit inference engine (.cursor/rules/ss14-resources.mdc)
Files:
Resources/**/*.yml📄 CodeRabbit inference engine (.cursor/rules/ss14-resources.mdc)
Files:
Resources/**/*.{yml,ftl}📄 CodeRabbit inference engine (.cursor/rules/ss14-resources.mdc)
Files:
**/*.{cs,xaml,yml,yaml}📄 CodeRabbit inference engine (AGENTS.md)
Files:
Resources/Prototypes/**/*.yml📄 CodeRabbit inference engine (AGENTS.md)
Files:
⚙️ CodeRabbit configuration file
Files:
🧠 Learnings (4)📚 Learning: 2026-06-29T05:34:31.137ZApplied to files:
📚 Learning: 2026-07-29T08:12:37.068ZApplied to files:
📚 Learning: 2026-07-07T17:55:50.395ZApplied to files:
📚 Learning: 2026-07-28T15:44:38.498ZApplied to files:
🔇 Additional comments (2)
Главное изменение
Resources / localization
Prediction / networking
Validation / risk
WalkthroughВ прототипы ChangesВозрастные параметры видов
Estimated code review effort: 1 (Trivial) | ~2 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
|
@coderabbitai почему тесты упали? |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
repo="ArcaneSS14/arcane"
pr="176"
echo "== PR checks =="
gh pr checks "$pr" --repo "$repo" || true
echo
echo "== Failed GitHub Actions jobs and logs =="
gh run list --repo "$repo" --branch "$(gh pr view "$pr" --repo "$repo" --json headRefName --jq .headRefName)" \
--status failure --limit 10 --json databaseId,name,workflowName,conclusion,url \
--jq '.[] | [.databaseId, .workflowName, .name, .conclusion, .url] | `@tsv`' |
while IFS=$'\t' read -r run_id workflow job conclusion url; do
echo "--- Run $run_id: $workflow / $job ($conclusion) ---"
echo "$url"
gh run view "$run_id" --repo "$repo" --log-failed 2>&1 | tail -n 160 || true
doneLength of output: 36863
Причины:
You are interacting with an AI system. |
|
Не трогать роботов. Это не животные. |
|
Максимум у дварфов урезать до 400 |
мне векортис сказал сделать и я сделал |
сделал |
|
@coderabbitai что с тестами? |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
repo="ArcaneSS14/arcane"
pr="176"
echo "== PR checks =="
gh pr checks "$pr" --repo "$repo" || true
echo
echo "== Latest runs on PR head branch =="
branch="$(gh pr view "$pr" --repo "$repo" --json headRefName --jq '.headRefName')"
gh run list \
--repo "$repo" \
--branch "$branch" \
--limit 10 \
--json databaseId,workflowName,name,status,conclusion,url,headSha \
--jq '.[] | [.databaseId, .workflowName, .name, .status, .conclusion, .url, .headSha] | `@tsv`' || true
echo
echo "== Logs for failed runs =="
gh run list \
--repo "$repo" \
--branch "$branch" \
--status failure \
--limit 5 \
--json databaseId,workflowName,name,url \
--jq '.[] | [.databaseId, .workflowName, .name, .url] | `@tsv`' |
while IFS=$'\t' read -r run_id workflow job url; do
echo "--- $workflow / $job: $url ---"
gh run view "$run_id" --repo "$repo" --log-failed 2>&1 | tail -n 180 || true
doneLength of output: 136904
Проходят Падает только Перед завершением: You are interacting with an AI system. |
|
Note GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer. |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@Resources/Prototypes/Species/dwarf.yml`:
- Line 17: Clarify that maxAge only clamps the selectable character age and does
not extend species lifespan or alter aging/death behavior. Apply this
clarification to Resources/Prototypes/Species/dwarf.yml:17-17 and
Resources/Prototypes/_Arcane/Species/humanoid_xeno.yml:17-17; if the intended
change is actual lifespan extension, modify the relevant aging/death system
instead of these prototype values.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 41816739-7755-4d63-82ff-5db06290bf1f
📒 Files selected for processing (3)
Resources/Prototypes/Species/dwarf.ymlResources/Prototypes/_Arcane/Species/humanoid_xeno.ymlResources/Prototypes/_EinsteinEngines/Species/ipc.yml
📜 Review details
⏰ Context from checks skipped due to timeout. (5)
- GitHub Check: build (ubuntu-latest)
- GitHub Check: build (ubuntu-latest)
- GitHub Check: YAML map schema validator
- GitHub Check: Test Packaging
- GitHub Check: YAML Linter
🧰 Additional context used
📓 Path-based instructions (5)
Resources/**/*.{yml,ftl,json}
📄 CodeRabbit inference engine (.cursor/rules/ss14-resources.mdc)
Resources/**/*.{yml,ftl,json}: Follow SS14 naming conventions when editing prototype, localization, and resource files
Follow SS14 upstream maintenance practices when editing resource files
Files:
Resources/Prototypes/_EinsteinEngines/Species/ipc.ymlResources/Prototypes/_Arcane/Species/humanoid_xeno.ymlResources/Prototypes/Species/dwarf.yml
Resources/**/*.yml
📄 CodeRabbit inference engine (.cursor/rules/ss14-resources.mdc)
Resources/**/*.yml: Follow SS14 ECS prototype patterns and conventions
Follow SS14 graphics generic visualizer appearance conventions and patterns
Resources/**/*.yml: Loadss14-naming-conventionsdocumentation for Resources work
Loadss14-ecs-prototypesdocumentation for Resources work
Loadss14-upstream-maintenancedocumentation for Resources work
Loadss14-prototypes-localedocumentation for Resources work
Loadss14-localization-stringsdocumentation for Resources work
Loadss14-sprite-overlays-shadersdocumentation when working with RSI metadata, textures, sprite layers, overlays, or shader resources
Validate YAML after editsRun
dotnet run --project Content.YAMLLinter/Content.YAMLLinter.csproj -c DebugOptto validate YAML and resource edits.
Files:
Resources/Prototypes/_EinsteinEngines/Species/ipc.ymlResources/Prototypes/_Arcane/Species/humanoid_xeno.ymlResources/Prototypes/Species/dwarf.yml
Resources/**/*.{yml,ftl}
📄 CodeRabbit inference engine (.cursor/rules/ss14-resources.mdc)
Follow SS14 prototype locale integration rules and practices
Files:
Resources/Prototypes/_EinsteinEngines/Species/ipc.ymlResources/Prototypes/_Arcane/Species/humanoid_xeno.ymlResources/Prototypes/Species/dwarf.yml
**/*.{cs,xaml,yml,yaml}
📄 CodeRabbit inference engine (AGENTS.md)
If the task adds tests or you need to choose the right test layer, load skill
ss14-tests-authoring.
Files:
Resources/Prototypes/_EinsteinEngines/Species/ipc.ymlResources/Prototypes/_Arcane/Species/humanoid_xeno.ymlResources/Prototypes/Species/dwarf.yml
Resources/Prototypes/**/*.yml
📄 CodeRabbit inference engine (AGENTS.md)
Resources/Prototypes/**/*.yml: Put prototypes under the most specific existing subtree inResources/Prototypes/. If you introduce a new prototype parent tree, put parent prototypes inbase.ymland variants in sibling files.
Keep entity prototype field order astype,abstract,parent,id,categories,name,suffix,description,components. Do not insert blank lines between- type:entries inside acomponents:list. Separate prototype blocks with one blank line.
Prefersuffixfor spawn-menu distinctions instead of changing prototypename.
Files:
Resources/Prototypes/_EinsteinEngines/Species/ipc.ymlResources/Prototypes/_Arcane/Species/humanoid_xeno.ymlResources/Prototypes/Species/dwarf.yml
⚙️ CodeRabbit configuration file
Resources/Prototypes/**/*.yml: Review SS14 prototypes carefully:
- Use the narrowest existing subtree and avoid duplicating nearby prototype files or parent trees.
- Keep entity field order as: type, abstract, parent, id, categories, name, suffix, description, components.
- Prefer base.yml for parent trees and sibling files for variants.
- Do not add blank lines inside components lists.
- Call out broken inheritance, risky prototype ID changes, missing paired locale updates, and Appearance / GenericVisualizer mismatches.
Files:
Resources/Prototypes/_EinsteinEngines/Species/ipc.ymlResources/Prototypes/_Arcane/Species/humanoid_xeno.ymlResources/Prototypes/Species/dwarf.yml
🧠 Learnings (8)
📚 Learning: 2026-06-29T05:34:31.137Z
Learnt from: Alazell
Repo: ArcaneSS14/arcane-station PR: 99
File: Resources/Prototypes/Entities/Clothing/Belt/belts.yml:973-974
Timestamp: 2026-06-29T05:34:31.137Z
Learning: В SS14 YAML-прототипах для компонента `Storage` поле `grid` задаёт **включительные** координаты прямоугольника. При подсчёте вместимости учитывайте оффсет-инклюзивность: прямоугольник `x1,y1,x2,y2` означает размеры `width = (x2 - x1 + 1)` и `height = (y2 - y1 + 1)`, а число ячеек `width * height`. Например, `0,0,0,0` = 1 ячейка, а `0,0,6,2` = (6-0+1)*(2-0+1)=7*3=21. При ревью файлов наподобие `Resources/Prototypes/Entities/Clothing/Belt/belts.yml` не интерпретируйте `x2/y2` как эксклюзивные (чтобы не ошибиться на 1 в ширине/высоте).
Applied to files:
Resources/Prototypes/_EinsteinEngines/Species/ipc.ymlResources/Prototypes/_Arcane/Species/humanoid_xeno.ymlResources/Prototypes/Species/dwarf.yml
📚 Learning: 2026-07-29T08:12:37.068Z
Learnt from: UmbiMax
Repo: ArcaneSS14/arcane PR: 153
File: Resources/Prototypes/_Orion/Entities/Objects/Tools/energy_dome.yml:137-137
Timestamp: 2026-07-29T08:12:37.068Z
Learning: In ArcaneSS14 prototype YAMLs, the YAML field that disables synchronization for `Content.Shared.Power.Components.BatteryComponent` is spelled exactly `netsync` (all lowercase), not `netSync`. For prototypes derived from `PowerNetworkBattery` (including `BaseAPC`, `CoreSubstation`, `BaseSMES`, `TeslaCoil`), set `netsync: false`; otherwise `Content.Server.Power.EntitySystems.BatterySystem.OnStartup` can throw `DebugAssertException` for a predicted battery connected to a power net. For `Resources/Prototypes/_Orion/Entities/Objects/Tools/energy_dome.yml`, ensure `EnergyDomeWiredTest` uses `netsync: false`.
Applied to files:
Resources/Prototypes/_EinsteinEngines/Species/ipc.ymlResources/Prototypes/_Arcane/Species/humanoid_xeno.ymlResources/Prototypes/Species/dwarf.yml
📚 Learning: 2026-07-07T17:55:50.395Z
Learnt from: UmbiMax
Repo: ArcaneSS14/arcane-old PR: 101
File: Content.Client/Chemistry/UI/ChemMasterWindow.xaml.cs:192-194
Timestamp: 2026-07-07T17:55:50.395Z
Learning: When reviewing ArcaneSS14/arcane-old changes related to `MobState` thresholds/visuals/actions, treat the `Critical` enum value as requiring explicit mappings (it no longer implicitly behaves as an alias of `SoftCritical`). If any YAML prototype `thresholds:` (for `MobThresholdsComponent.Thresholds`) uses the bare `Critical` key (e.g., `MobThresholdsComponent.Thresholds: { Critical: ... }` for entities like `MobMouseCancer`), ensure the prototype (or referenced config) provides corresponding explicit `StateAlertDict` entries and any required `MobStateActions.actions` and `DamageStateVisuals.states` mappings for `Critical`. Otherwise, review should expect failures because the default `StateAlertDict` in `MobThresholdsComponent.cs` typically maps only `Alive`, `SoftCritical`, `HardCritical`, and `Dead`—not `Critical`.
Applied to files:
Resources/Prototypes/_EinsteinEngines/Species/ipc.ymlResources/Prototypes/_Arcane/Species/humanoid_xeno.ymlResources/Prototypes/Species/dwarf.yml
📚 Learning: 2026-07-28T15:44:38.498Z
Learnt from: UmbiMax
Repo: ArcaneSS14/arcane PR: 152
File: Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/pistol.yml:69-72
Timestamp: 2026-07-28T15:44:38.498Z
Learning: В ArcaneSS14/arcane не выполняйте форматирующие перестановки полей (в т.ч. изменение порядка полей) в upstream-файлах: делайте это только если правка добавляет Arcane-специфичную сущность или напрямую требуется для функциональности. Иначе сохраняйте upstream-порядок полей, даже если он противоречит локальным рекомендациям, чтобы не создавать лишние diff и конфликты при upstream-синхронизации. Исключение: допустимо переупорядочивание/форматирование в `Resources/Prototypes/_Arcane` (и только там).
Applied to files:
Resources/Prototypes/_EinsteinEngines/Species/ipc.ymlResources/Prototypes/_Arcane/Species/humanoid_xeno.ymlResources/Prototypes/Species/dwarf.yml
📚 Learning: 2026-05-14T18:47:39.537Z
Learnt from: MataVsn
Repo: ArcaneSS14/arcane-station PR: 5
File: Resources/Prototypes/_Arcane/Species/humanoid_xeno.yml:22-32
Timestamp: 2026-05-14T18:47:39.537Z
Learning: In ArcaneSS14/arcane-station, species prototype YAML files under Resources/Prototypes/_Arcane/Species should use direct hardcoded text strings (not localization keys) for the `pros` and `cons` fields when writing race/species descriptions. During review, do not flag `pros`/`cons` for lacking localization keys in these species prototype files; treat hardcoded strings as the accepted project format.
Applied to files:
Resources/Prototypes/_Arcane/Species/humanoid_xeno.yml
📚 Learning: 2026-07-05T18:40:45.199Z
Learnt from: UmbiMax
Repo: ArcaneSS14/arcane-station PR: 101
File: Resources/Prototypes/_Orion/Entities/Objects/Specific/Medical/medkits.yml:0-0
Timestamp: 2026-07-05T18:40:45.199Z
Learning: For ArcaneSS14/arcane-station custom `_Arcane`/`_Orion` entity prototypes under `Resources/Prototypes/_Arcane/` or `Resources/Prototypes/_Orion/`, embed `name` and `description` directly in the prototype `.yml` as the `en-US` fallback text (do not add a separate `en-US` locale override). Then localize only `ru-RU` by adding `ent-<EntityId>` and `ent-<EntityId>.desc` keys in `Resources/Locale/ru-RU/ss14-ru/prototypes/_arcane/...` or `.../_orion/...`, mirroring the entity `.yml` path. By contrast, vanilla-derived entities (e.g., a base `Medkit`) should omit `name`/`description` from the `.yml` entirely and instead provide both `en-US` and `ru-RU` localized `prototypes/...` entries in `Resources/Locale/{en-US,ru-RU}/ss14-ru/prototypes/...`.
Applied to files:
Resources/Prototypes/_Arcane/Species/humanoid_xeno.yml
📚 Learning: 2026-07-05T23:32:09.578Z
Learnt from: Alazell
Repo: ArcaneSS14/arcane-old PR: 117
File: Resources/Prototypes/_Arcane/Entities/Objects/Devices/pinpointer.yml:23-28
Timestamp: 2026-07-05T23:32:09.578Z
Learning: When editing ArcaneSS14/arcane-old prototype YAML related to pinpointers and tags:
- Pinpointer auto-locate vs manual retarget: `PinpointerComponent.Whitelist` controls auto-locate. If `Whitelist` is `null`, the pinpointer `Update` auto-locate logic returns early and will not search for a target; leaving it unset is safe from unintended auto-targeting. Manual retargeting during `OnAfterInteract` is governed by `RetargetingWhitelist`/`RetargetingBlacklist` (not `Whitelist`).
- Emag behavior: in `SharedPinpointerSystem.OnEmagged`, if `canRetarget: true` then `RetargetingWhitelist` is set to `null` (removing retarget restrictions, effectively allowing any retarget target); set `canEmag: false` to prevent emagging if needed.
- Tag prototype registration: any new `Tag` prototype IDs referenced in YAML (e.g., entities with `type: Tag` or `EntityWhitelist.tags`) must have a corresponding prototype declared as `- type: Tag` (commonly in `Resources/Prototypes/_Arcane/tags.yml` or an equivalent...
Applied to files:
Resources/Prototypes/_Arcane/Species/humanoid_xeno.yml
📚 Learning: 2026-07-06T05:08:05.731Z
Learnt from: UmbiMax
Repo: ArcaneSS14/arcane-old PR: 101
File: Resources/Prototypes/_Orion/Entities/Objects/Specific/Medical/medkits.yml:0-0
Timestamp: 2026-07-06T05:08:05.731Z
Learning: When reviewing ArcaneSS14 “_Arcane” prototype changes (especially entity id renames/swaps made via # Arcane-Edit in vanilla-mirrored YAML files), ensure locale/localization handling matches these rules:
1) If a renamed/swapped entity id occurs via a vanilla-mirrored YAML file but the entity is treated as “_Arcane”, add the new id’s localized strings under the corresponding “_Arcane” locale path (e.g., Resources/Locale/<lang>/ss14-ru/prototypes/_arcane/...). Treat this as an explicit exception to the YAML living outside the _Arcane folder.
2) If the old vanilla id is released and then reused by a new “_Arcane” entity, do not create duplicate locale entries for that id under _Arcane; the pre-existing vanilla-mirrored locale entries already apply.
3) For “_Arcane” entity .ftl files, do not reference a parent/base prototype’s locale key (e.g., a base description key) unless that base prototype is defined within the same mirrored YAML path. If the base is abstract or defined elsewhere (e.g....
Applied to files:
Resources/Prototypes/_Arcane/Species/humanoid_xeno.yml
🔇 Additional comments (2)
Resources/Prototypes/Species/dwarf.yml (1)
15-15: ОхватитеminAgeмаркерами Arcane.
# Arcane-Startначинается на Line 16, поэтому изменённое поле на Line 15 находится вне Arcane-блока. При upstream-синхронизации границы правки будут неполными. Перенесите маркер передminAgeили охватите одним блоком все возрастные поля.Resources/Prototypes/_EinsteinEngines/Species/ipc.yml (1)
12-12: LGTM!
| category: Unusual | ||
| description: "/ServerInfo/_Orion/SpeciesDescriptions/Dwarf.xml" | ||
| minAge: 18 | ||
| # Arcane-Start |
There was a problem hiding this comment.
Пометку на строчку выше.
сделал
и посмотри ещё пр с ростом ксено плес
Описание PR
Увеличил продолжительность жизни ксено до 1000 лет и дварфов - до 500.
КПБ теперь не могут ставить возраст меньше 18.
Лорна.
Медиа
Тип PR
Лицензионное соглашение
Изменения