Skip to content

add/local: Абилки бореру и перевод абилок #8555

Draft
makaroshka003 wants to merge 7 commits intoss220-space:master220from
makaroshka003:borer-update
Draft

add/local: Абилки бореру и перевод абилок #8555
makaroshka003 wants to merge 7 commits intoss220-space:master220from
makaroshka003:borer-update

Conversation

@makaroshka003
Copy link
Contributor

@makaroshka003 makaroshka003 commented Mar 2, 2026

Что этот ПР делает

новые абилки
паразитизм - даёт очки эволюции истощая хоста
лечение - лечит😕
хочу ещё сделать поэтому будет драфт
оставляйте фидбэк и тд

Почему это хорошо для игры

вариативность геймплея на черве

Демонстрация изменений

Демонстрации изменений

Тестирование

@makaroshka003 makaroshka003 reopened this Mar 2, 2026
@makaroshka003 makaroshka003 marked this pull request as draft March 2, 2026 18:49
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

Аналитический отчёт от Большого Брата. Обработка запроса завершена. Приветствую! Я проанализировал предложенные Вами изменения по добавлению новых способностей для борера. С технической точки зрения, работа выглядит требующей доработок. Обнаружено одно критическое замечание, связанное с риском ошибки выполнения из-за отсутствия проверки на null. Также имеется ряд рекомендаций: в коде присутствуют жестко закодированные строки на русском языке, что нарушает правила локализации; используются "магические числа" для параметров способностей, что затрудняет их поддержку; некоторые сообщения для игрока неполны; комментарии в коде написаны не на английском языке. Пожалуйста, ознакомьтесь с подробными комментариями к строкам кода. Спасибо за ваш вклад в проект!

Note: Security Review is unavailable for this PR.

Comment on lines +168 to +169
var/mob/living/simple_animal/borer/borer = isborer(owner) ? owner : owner.has_brain_worms()
var/mob/living/carbon/host = borer.host
Copy link
Contributor

Choose a reason for hiding this comment

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

critical

🔴 Критично: Потенциальная ошибка выполнения (runtime error)

В процедуре Activate() для /datum/action/innate/borer/heal_over_time переменная borer может быть null, если owner не является борером и не имеет его в себе. Последующее обращение к borer.host в строке 169 вызовет ошибку выполнения. Необходимо добавить проверку на null для borer и borer.host перед их использованием, аналогично тому, как это сделано в способности parasitism в этом же файле.

	var/mob/living/simple_animal/borer/borer = isborer(owner) ? owner : owner.has_brain_worms()
	if(!borer || !borer.host)
		return
	var/mob/living/carbon/host = borer.host
References
  1. Требовать проверку на null (if(!variable)) перед использованием объекта, особенно после locate(), find_in_view() и т.п. (Строка 97) (link)

Comment on lines +1010 to +1020
var/heal_amount = -2

/datum/status_effect/borer_regen/tick()
// Периодическое лечение во время действия эффекта
if(!istype(owner, /mob/living/carbon))
return
var/mob/living/carbon/C = owner
C.adjustBruteLoss(heal_amount)
C.adjustFireLoss(heal_amount)
C.adjustToxLoss(heal_amount / 2)
C.adjustOxyLoss(heal_amount * 2.5)
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

🟡 Рекомендация: Использование "магических чисел"

Значения heal_amount = -2, а также множители 2 и 2.5 в процедуре tick() являются "магическими числами". Рекомендуется вынести их в именованные константы через #define для улучшения читаемости и упрощения балансировки в будущем. Например:

#define BORER_REGEN_HEAL_AMOUNT -2
#define BORER_REGEN_TOX_DIVISOR 2
#define BORER_REGEN_OXY_MULTIPLIER 2.5
References
  1. Предлагать заменять числовые константы на именованные через #define, но только при условии, что они повторяются, и/или используются в условиях. (Строка 78) (link)

Comment on lines +1548 to +1550
var/evolution_gain = 0.075
var/chemical_gain = 5
var/host_damage = 1.25
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

🟡 Рекомендация: Использование "магических чисел"

Значения evolution_gain, chemical_gain и host_damage являются "магическими числами". Рекомендуется вынести их в именованные константы через #define для улучшения читаемости и упрощения балансировки в будущем. Это также относится к другим числовым константам в этом файле, таким как host_damage * 4 (строка 1603) и prob(30) (строка 1606).

References
  1. Предлагать заменять числовые константы на именованные через #define, но только при условии, что они повторяются, и/или используются в условиях. (Строка 78) (link)


// Сообщения для атмосферы
if(prob(30))
to_chat(host, span_danger( "Паразит высасывает ваши жизненные силы"))
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

🟡 Рекомендация: Нарушение правил локализации

Строка "Паразит высасывает ваши жизненные силы" жестко закодирована. Согласно стайлгайду, для локализации следует использовать систему ru_names или макросы локализации, чтобы обеспечить согласованность и упростить будущие изменения.

References
  1. Для русских названий используется система ru_names. Для статических названий переопределять get_ru_names(). Для динамических — get_ru_names_cached() или задавать ru_names напрямую. (Строка 103) (link)


/mob/living/simple_animal/borer/Login()
..()
enable_med_hud() // Включаем медхуд при входе игрока
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

🟡 Рекомендация: Стиль комментариев

Комментарий // Включаем медхуд при входе игрока написан на русском языке. Согласно стайлгайду, все комментарии в коде должны быть на английском языке для обеспечения согласованности кодовой базы. Это также относится к комментариям в строках 862 и 868.

    enable_med_hud() // Enable medhud on player login
References
  1. Комментарии должны быть на английском. (Строка 68, 143) (link)

var/total_cost = cost - (borer.antag_datum.borer_rank.rank_ability_amplifier * 15)

if(borer.chemicals < total_cost)
to_chat(owner, "Вам требуется [total_cost] химикат[DECL_CREDIT(total_cost)] для запуска регенерации!")
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

🟡 Рекомендация: Нарушение правил локализации

Строка "Вам требуется [total_cost] химикат[DECL_CREDIT(total_cost)] для запуска регенерации!" и многие другие сообщения для игрока в этом файле жестко закодированы. Согласно стайлгайду, для локализации следует использовать систему ru_names или макросы локализации, чтобы обеспечить согласованность и упростить будущие изменения.

References
  1. Для русских названий используется система ru_names. Для статических названий переопределять get_ru_names(). Для динамических — get_ru_names_cached() или задавать ru_names напрямую. (Строка 103) (link)

return

if(host.reagents.has_reagent("sugar"))
to_chat(borer, span_warning("Сахар в крови носителя"))
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

🟡 Рекомендация: Неполное сообщение для игрока

Сообщение to_chat(borer, span_warning("Сахар в крови носителя")) не завершено. Оно не информирует игрока о том, что именно происходит. Рекомендуется дополнить сообщение, чтобы было понятно, что способность не сработала. Например: Сахар в крови носителя блокирует эту способность. Это также относится к строке 220.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant