Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions Resources/Locale/ru-RU/Imperial/NEGODAY/GhostroleText.flt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
ghostrole-event-name = Ивентовая роль
ghostrole-event-allskills-desc = Для участия в ивенте зайдите за персонажа. Он имеет все навыки.
ghostrole-event-skills-desc = Для участия в ивенте зайдите за персонажа. Он имеет все навыки, кроме стрельбы.
ghostrole-event-rules = Не нарушайте правила ивента, правила сервера и т.д.

ghostrole-event-fed-name = Военный Кросс-Юнивёрс
ghostrole-event-fed-desc = Подчиняйтесь своему командиру и уничтожте силы Империи.
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 | 🟡 Minor

Грамматическая ошибка: «уничтожте» → «уничтожьте».

Форма глагола «уничтожте» является некорректной в русском языке; правильная форма повелительного наклонения — «уничтожьте».

✏️ Предлагаемое исправление
-ghostrole-event-fed-desc = Подчиняйтесь своему командиру и уничтожте силы Империи.
+ghostrole-event-fed-desc = Подчиняйтесь своему командиру и уничтожьте силы Империи.
📝 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
ghostrole-event-fed-desc = Подчиняйтесь своему командиру и уничтожте силы Империи.
ghostrole-event-fed-desc = Подчиняйтесь своему командиру и уничтожьте силы Империи.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Locale/ru-RU/Imperial/NEGODAY/GhostroleText.flt` at line 7, The
string value for key ghostrole-event-fed-desc contains a grammatical typo:
change "Подчиняйтесь своему командиру и уничтожте силы Империи." to
"Подчиняйтесь своему командиру и уничтожьте силы Империи." by correcting the
verb form from "уничтожте" to "уничтожьте" in the ghostrole-event-fed-desc entry
inside GhostroleText.flt.

ghostrole-event-fed-rules = Не убивайте без веских причин, соблюдайте субординацию и поддерживайте атмосферу.

ghostrole-event-emp-name = Военный Империи.
ghostrole-event-emp-desc = Подчиняйтесь своему командиру и уничтожте военных Кросс-Юнивёрс.
Comment on lines +10 to +11
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 | 🟡 Minor

Лишняя точка в поле имени и повторяющаяся грамматическая ошибка.

  • Строка 10: ghostrole-event-emp-name = Военный Империи. — имена ролей в строках 1 и 6 не содержат завершающей точки; точка в имени нарушает единообразие.
  • Строка 11: та же ошибка «уничтожте» → «уничтожьте».
✏️ Предлагаемые исправления
-ghostrole-event-emp-name = Военный Империи.
-ghostrole-event-emp-desc = Подчиняйтесь своему командиру и уничтожте военных Кросс-Юнивёрс.
+ghostrole-event-emp-name = Военный Империи
+ghostrole-event-emp-desc = Подчиняйтесь своему командиру и уничтожьте военных Кросс-Юнивёрс.
📝 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
ghostrole-event-emp-name = Военный Империи.
ghostrole-event-emp-desc = Подчиняйтесь своему командиру и уничтожте военных Кросс-Юнивёрс.
ghostrole-event-emp-name = Военный Империи
ghostrole-event-emp-desc = Подчиняйтесь своему командиру и уничтожьте военных Кросс-Юнивёрс.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Locale/ru-RU/Imperial/NEGODAY/GhostroleText.flt` around lines 10 -
11, В поле ghostrole-event-emp-name уберите завершающую точку чтобы имя роли
соответствовало остальным записям (заменить "Военный Империи." на "Военный
Империи"), и в поле ghostrole-event-emp-desc исправьте опечатку "уничтожте" на
корректное "уничтожьте" чтобы восстановить правильную грамматику.

ghostrole-event-emp-rules = Не убивайте без веских причин, соблюдайте субординацию и поддерживайте атмосферу.
Comment on lines +1 to +12
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

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check for the file with both .flt and .ftl extensions
echo "=== Searching for GhostroleText files ==="
find . -name "*GhostroleText*" -type f 2>/dev/null

echo -e "\n=== Checking NEGODAY directory ==="
ls -la Resources/Locale/ru-RU/Imperial/NEGODAY/ 2>/dev/null || echo "Directory not found"

echo -e "\n=== Checking all .flt files in locale directory ==="
find Resources/Locale -name "*.flt" -type f 2>/dev/null

echo -e "\n=== Checking all .ftl files in NEGODAY directory ==="
find Resources/Locale -path "*NEGODAY*" -name "*.ftl" -type f 2>/dev/null

Repository: imperial-space/SS14-public

Length of output: 556


🏁 Script executed:

#!/bin/bash
# Check the file extension pattern across the locale directory
echo "=== Sample of .ftl files in locale directory ==="
find Resources/Locale -name "*.ftl" -type f | head -20

echo -e "\n=== Count of .ftl vs .flt files ==="
echo ".ftl files: $(find Resources/Locale -name "*.ftl" -type f | wc -l)"
echo ".flt files: $(find Resources/Locale -name "*.flt" -type f | wc -l)"

echo -e "\n=== Checking other Imperial locale directories ==="
ls -la Resources/Locale/ru-RU/Imperial/ | grep -E "^d" | head -10

Repository: imperial-space/SS14-public

Length of output: 1954


Исправить расширение файла: .flt.ftl

Во всём репозитории используется расширение .ftl для файлов локализации (3796 файлов), а данный файл имеет расширение .flt — это единственный такой файл в проекте. Локализационная система SS14 загружает только файлы с расширением .ftl, поэтому все строки (ghostrole-event-name, ghostrole-event-allskills-desc и т.д.) будут отображаться игрокам без перевода.

Переименовать: GhostroleText.fltGhostroleText.ftl

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Locale/ru-RU/Imperial/NEGODAY/GhostroleText.flt` around lines 1 -
12, The file GhostroleText.flt uses the wrong extension; rename
GhostroleText.flt to GhostroleText.ftl so the SS14 localization loader picks it
up; ensure the file retains all existing keys (e.g., ghostrole-event-name,
ghostrole-event-allskills-desc, ghostrole-event-skills-desc,
ghostrole-event-rules, ghostrole-event-fed-name, ghostrole-event-fed-desc,
ghostrole-event-fed-rules, ghostrole-event-emp-name, ghostrole-event-emp-desc,
ghostrole-event-emp-rules) and update any references if your tooling or scripts
expect the .ftl filename.

223 changes: 223 additions & 0 deletions Resources/Prototypes/Imperial/NEGODAY/SpawnerHuman.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,223 @@
- type: entity
parent: MobHuman
id: EventHumanSkillsTTSGhostrole
name: spawn event human
suffix: skills, TTS, ghostrole
components:
- type: AntagImmune
- type: RandomHumanoidAppearance
randomizeName: true
- type: CrewSkills
skills:
- skillBotany #Base
- skillBaseMed
- skillBaseConstraction
- skillCooking #Easy
- skillBartending
- skillHacking
- skillInstrumentation #Medium
- skillMaintenance
- skillMediumConstruction
- skillMediumBotany
- skillBasicAtmos
- skillMedicalEquipment
- skillPharmacology
- skillPiloting #Hard
- skillAtmos
- skillHardInstrumentation
- skillRobotics
- skillResearch
- skillPharmaceuticals
- skillShooting
- skillSurgery
- skillNeuroSurgery
- type: GhostRole
name: ghostrole-event-name
description: ghostrole-event-allskills-desc
rules: ghostrole-event-rules
raffle:
settings: short
- type: Damageable
damageContainer: BiologicalMemetical
damageModifierSet: Infernal
- type: ShowJobIcons
- type: ShowMindShieldIcons

- type: entity
parent: MobHuman
id: EventHumanSkillsTTSGhostroleNoShooting
name: spawn event human
suffix: no shooting, skills, TTS, ghostrole
components:
- type: AntagImmune
- type: RandomHumanoidAppearance
randomizeName: true
- type: CrewSkills
skills:
- skillBotany #Base
- skillBaseMed
- skillBaseConstraction
- skillCooking #Easy
- skillBartending
- skillHacking
- skillInstrumentation #Medium
- skillMaintenance
- skillMediumConstruction
- skillMediumBotany
- skillBasicAtmos
- skillMedicalEquipment
- skillPharmacology
- skillPiloting #Hard
- skillAtmos
- skillHardInstrumentation
- skillRobotics
- skillResearch
- skillPharmaceuticals
- skillSurgery
- skillNeuroSurgery
- type: GhostRole
name: ghostrole-event-name
description: ghostrole-event-skills-desc
rules: ghostrole-event-rules
raffle:
settings: short
- type: Damageable
damageContainer: BiologicalMemetical
damageModifierSet: Infernal
- type: ShowJobIcons
- type: ShowMindShieldIcons

- type: entity
parent: MobHuman
id: EventHumanSkillsTTS
name: spawn event human
suffix: skills, TTS
components:
- type: AntagImmune
- type: RandomHumanoidAppearance
randomizeName: true
- type: CrewSkills
skills:
- skillBotany #Base
- skillBaseMed
- skillBaseConstraction
- skillCooking #Easy
- skillBartending
- skillHacking
- skillInstrumentation #Medium
- skillMaintenance
- skillMediumConstruction
- skillMediumBotany
- skillBasicAtmos
- skillMedicalEquipment
- skillPharmacology
- skillPiloting #Hard
- skillAtmos
- skillHardInstrumentation
- skillRobotics
- skillResearch
- skillPharmaceuticals
- skillShooting
- skillSurgery
- skillNeuroSurgery
- type: GhostRole
name: ghostrole-event-name
description: ghostrole-event-allskills-desc
rules: ghostrole-event-rules
raffle:
settings: short
- type: Damageable
damageContainer: BiologicalMemetical
damageModifierSet: Infernal
- type: ShowJobIcons
- type: ShowMindShieldIcons
Comment on lines +90 to +133
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

EventHumanSkillsTTS содержит компонент GhostRole, хотя ни в ID, ни в суффиксе это не указано.

Прототип с ID EventHumanSkillsTTS и суффиксом skills, TTS (без слова ghostrole) тем не менее включает компонент GhostRole (строки 123–128). Судя по паттерну остальных прототипов, это выглядит как остаток от копирования кода. Если компонент GhostRole здесь не нужен, его следует удалить; если нужен — ID и суффикс должны это отражать.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Prototypes/Imperial/NEGODAY/SpawnerHuman.yml` around lines 90 -
133, Прототип EventHumanSkillsTTS содержит компонент GhostRole, хотя ни ID, ни
суффикс этого не отражают; либо удалите блок компонента GhostRole (строки,
начинающиеся с "- type: GhostRole" и его дочерние поля
name/description/rules/raffle) из сущности EventHumanSkillsTTS если роль не
нужна, либо переименуйте id/суффикс (например добавить "ghostrole" в id или
суффикс) чтобы соответствовать включённому компоненту и сохранить
консистентность с остальными прототипами; проверьте, что после изменения
остальные ссылки/локализуемые ключи (ghostrole-event-name,
ghostrole-event-allskills-desc, ghostrole-event-rules) остаются корректными или
удалите их при удалении компонента.


- type: entity
parent: MobHuman
id: FedHumanSkillsTTSGhostrole
name: spawn federation human
suffix: ghostrole
components:
- type: AntagImmune
- type: RandomHumanoidAppearance
randomizeName: true
- type: CrewSkills
skills:
- skillBotany #Base
- skillBaseMed
- skillBaseConstraction
- skillCooking #Easy
- skillBartending
- skillHacking
- skillInstrumentation #Medium
- skillMaintenance
- skillMediumConstruction
- skillMediumBotany
- skillBasicAtmos
- skillMedicalEquipment
- skillPharmacology
- skillPiloting #Hard
- skillAtmos
- skillHardInstrumentation
- skillRobotics
- skillResearch
- skillPharmaceuticals
- skillShooting
- skillSurgery
- skillNeuroSurgery
- type: GhostRole
name: ghostrole-event-fed-name
description: ghostrole-event-fed-desc
rules: ghostrole-event-fed-rules
raffle:
settings: short
- type: Damageable
damageContainer: BiologicalMemetical
damageModifierSet: Infernal
- type: ShowJobIcons
- type: ShowMindShieldIcons

- type: entity
parent: MobHuman
id: EmpHumanSkillsTTSGhostrole
name: spawn empire human
suffix: ghostrole
components:
- type: AntagImmune
- type: RandomHumanoidAppearance
randomizeName: true
- type: CrewSkills
skills:
- skillBotany #Base
- skillBaseMed
- skillBaseConstraction
- skillCooking #Easy
- skillBartending
- skillHacking
- skillInstrumentation #Medium
- skillMaintenance
- skillMediumConstruction
- skillMediumBotany
- skillBasicAtmos
- skillMedicalEquipment
- skillPharmacology
- skillPiloting #Hard
- skillAtmos
- skillHardInstrumentation
- skillRobotics
- skillResearch
- skillPharmaceuticals
- skillShooting
- skillSurgery
- skillNeuroSurgery
- type: GhostRole
name: ghostrole-event-emp-name
description: ghostrole-event-emp-desc
rules: ghostrole-event-emp-rules
raffle:
settings: short
- type: Damageable
damageContainer: BiologicalMemetical
damageModifierSet: Infernal
- type: ShowJobIcons
- type: ShowMindShieldIcons
Comment on lines +1 to +223
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick | 🔵 Trivial

Значительное дублирование кода: одинаковые списки навыков во всех пяти прототипах.

Все 5 прототипов содержат полностью идентичный (или почти идентичный) список навыков из ~22 пунктов. Рекомендуется вынести общий набор навыков и повторяющиеся компоненты (AntagImmune, RandomHumanoidAppearance, Damageable, ShowJobIcons, ShowMindShieldIcons) в промежуточный абстрактный родительский прототип, от которого унаследуются конкретные варианты.

♻️ Пример рефакторинга через промежуточного родителя
+- type: entity
+  abstract: true
+  parent: MobHuman
+  id: BaseEventHumanSkillsTTS
+  components:
+    - type: AntagImmune
+    - type: RandomHumanoidAppearance
+      randomizeName: true
+    - type: CrewSkills
+      skills:
+        - skillBotany
+        - skillBaseMed
+        - skillBaseConstraction  # исправить на skillBaseConstruction
+        - skillCooking
+        - skillBartending
+        - skillHacking
+        - skillInstrumentation
+        - skillMaintenance
+        - skillMediumConstruction
+        - skillMediumBotany
+        - skillBasicAtmos
+        - skillMedicalEquipment
+        - skillPharmacology
+        - skillPiloting
+        - skillAtmos
+        - skillHardInstrumentation
+        - skillRobotics
+        - skillResearch
+        - skillPharmaceuticals
+        - skillShooting
+        - skillSurgery
+        - skillNeuroSurgery
+    - type: Damageable
+      damageContainer: BiologicalMemetical
+      damageModifierSet: Infernal
+    - type: ShowJobIcons
+    - type: ShowMindShieldIcons

 - type: entity
-  parent: MobHuman
+  parent: BaseEventHumanSkillsTTS
   id: EventHumanSkillsTTSGhostrole
   ...
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Resources/Prototypes/Imperial/NEGODAY/SpawnerHuman.yml` around lines 1 - 223,
There’s large duplicated CrewSkills and common components across the prototypes;
create a new intermediate prototype (e.g., parent id MobHumanEventSkills) that
contains the shared components AntagImmune, RandomHumanoidAppearance, the full
CrewSkills list (the ~22 skills), Damageable (BiologicalMemetical / Infernal),
ShowJobIcons and ShowMindShieldIcons, then change EventHumanSkillsTTSGhostrole,
EventHumanSkillsTTSGhostroleNoShooting, EventHumanSkillsTTS,
FedHumanSkillsTTSGhostrole and EmpHumanSkillsTTSGhostrole to inherit from that
new parent and remove their duplicated CrewSkills and the repeated common
components; for the NoShooting variant keep it inheriting but explicitly remove
or override skillShooting so it’s absent, and keep each entity’s
GhostRole/raffle-specific fields intact.

Loading