Skip to content

add: [bounty] death book #6770

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 74 commits into
base: master220
Choose a base branch
from

Conversation

Pelmenik123
Copy link
Contributor

@Pelmenik123 Pelmenik123 commented Apr 8, 2025

Описание

Добавляет предмет death_book. Добавляет компонент phantom_component, он нужен чтобы выпиливать из жизни любой предмет по сигналу. dynamic_outfit, точно такой же outfit только хранит уже готовые объекты и обладает спец функционалом. Наследник от outfit - radial_outfit будет полезен для радиальных менюшек.

Причина создания ПР / Почему это хорошо для игры

https://discord.com/channels/617003227182792704/755125334097133628/1350044689989894175

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

Прикольный предмет для антага, не оставляет улик.

Тесты

Работает хорошо, плохо не работает

@github-actions github-actions bot added Merge Conflict This doesn't seem right DMI Affects DMI files and removed Merge Conflict This doesn't seem right labels Apr 8, 2025
@Pelmenik123 Pelmenik123 changed the title Bounty knigga [Bounty] add: death knigga Apr 9, 2025
@Pelmenik123 Pelmenik123 marked this pull request as ready for review April 9, 2025 12:17
@Pelmenik123 Pelmenik123 changed the title [Bounty] add: death knigga [Bounty] add: death book Apr 9, 2025
@Pelmenik123 Pelmenik123 changed the title [Bounty] add: death book [bounty] add: death book Apr 9, 2025
@Pelmenik123 Pelmenik123 changed the title [bounty] add: death book [bounty] add: death knigga Apr 9, 2025
@Pelmenik123 Pelmenik123 changed the title [bounty] add: death knigga [bounty] add: death book Apr 9, 2025
Copy link
Contributor Author

@Pelmenik123 Pelmenik123 left a comment

Choose a reason for hiding this comment

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

ыфвфывыф

@github-actions github-actions bot removed the Merge Conflict This doesn't seem right label Apr 9, 2025
@Pelmenik123 Pelmenik123 requested a review from littleboobs May 16, 2025 17:23
@Pelmenik123
Copy link
Contributor Author

@dageavtobusnick я так и не понял где этот ранний ретурн ставить и зачем

@dageavtobusnick
Copy link
Collaborator

@dageavtobusnick я так и не понял где этот ранний ретурн ставить и зачем

Я тебе уже 100 раз сказал. Для читаемости. Когда весь смысловой код на одинаковых отступах его проще читать.

@Pelmenik123
Copy link
Contributor Author

да я не знаю где его впихнутьь для читаемости нужно

@littleboobs
Copy link
Contributor

Плохой мистер Пельмень, что насчёт остального ревью?
Про баллуны на 20 слов я не верю. Показывай пруфы или сокращай, ты пытаешься меня обмануть.
Половину ревью ты тупо проигнорил или скипнул. Исправляйся!

@Pelmenik123
Copy link
Contributor Author

баллуны видно нормально

@littleboobs
Copy link
Contributor

Не может быть, чтобы такой балун было видно нормально.
user.balloon_alert(user, "Вас наполняет решимость. Вы готовы прочесть книгу вновь.") и такой user.balloon_alert(user, "Ваша экипировка теряет очертания медленно растворяясь в воздухе"). Их смысл в лаконичности, информативности и быстроте. Паста из двух предложений, а уж тем более с большой буквы и точками - точно не соответствует всему раннее перечисленному.
Если на то пошло, то прочти данный содержательный скриншот от 29.10.24 Вани Пилюгана.
image

Pelmenik123 and others added 12 commits May 16, 2025 23:26
Copy link
Collaborator

@dageavtobusnick dageavtobusnick left a comment

Choose a reason for hiding this comment

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

Вложенность кода ухудшает его читаемость. И не надо закрывать conversation, если ты не исправил то, что написано в нем.

prom.mind.objectives += new /datum/objective/xeno_genocide
var/list/messages = prom.mind.prepare_announce_objectives()
to_chat(prom, chat_box_red(messages.Join("<br>")))
return prom
Copy link
Collaborator

Choose a reason for hiding this comment

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

Тут нужно сделать ранний ретурн.

var/datum/outfit/radial_outfit/death_book/prom_obj = new prom_outfit()
if(prom_obj.can_choise(user))
desc_to_outfit[prom_obj.descr] = prom_obj
radial_look[prom_obj.descr] = prom_obj.get_image()
Copy link
Collaborator

Choose a reason for hiding this comment

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

Тут ранний continue. Вложенность кода ухудшает его читаемость.

if(H.dna.species.name == SPECIES_VOX)
var/obj/item/tank/internals/oxygen/red/prom = H.s_store
prom.air_contents.oxygen = 0
prom.air_contents.nitrogen = (6 * ONE_ATMOSPHERE) * prom.volume / (R_IDEAL_GAS_EQUATION * T20C)
Copy link
Collaborator

Choose a reason for hiding this comment

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

Тут ранний ретурн, если условие не выполняется. Можно вообще стелать if(H.dna.species.name != SPECIES_VOX) return, а дальше то, что делается в случае выполнения без отступа.

if(!length(possible_spiders))
explanation_text = "Вы остались без стаи и единой цели. Но вы знаете что вы созданы убивать и сеять хаос."
else
explanation_text = "Помогите вашему гнезду отложить яйцо Императрицы Ужаса. Это могут сделать: [possible_spiders.Join(", ")]. Защищайте их и помогите им набрать силу, чтобы они смогли это сделать."
Copy link
Collaborator

Choose a reason for hiding this comment

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

Тут без if Можно. используй:
(length(possible_spiders))? Помогите вашему гнезду отложить яйцо Императрицы Ужаса. Это могут сделать: [possible_spiders.Join(", ")]. Защищайте их и помогите им набрать силу, чтобы они смогли это сделать." : "Вы остались без стаи и единой цели. Но вы знаете что вы созданы убивать и сеять хаос."

Copy link
Contributor Author

Choose a reason for hiding this comment

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

тринарные операторы еще хуже воспринимаются

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
Collaborator

@dageavtobusnick dageavtobusnick May 16, 2025

Choose a reason for hiding this comment

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

Тот, что с possible_spiders, через макрос.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

ооо май гад это что подготовка к двум языкам???!?!

if(volume >= 1)
var/datum/disease/virus/transformation/xeno/phantom/D = new
D.Contract(M)
return ..()
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.

какой ранний ретурн, там же всеравно в ..() упрется

return COMPONENT_INCOMPATIBLE
if(deep)
var/atom/prom = parent
phantomification(prom.contents)
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.

куда?

var/list/desc_to_outfit = list()
for(var/prom_outfit in subtypesof(/datum/outfit/radial_outfit))
var/datum/outfit/radial_outfit/death_book/prom_obj = new prom_outfit()
if(prom_obj.can_choise(user))
Copy link
Collaborator

Choose a reason for hiding this comment

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

Не нужно каждый раз искать subtypesof и создавать новые датумы. По идее достаточно будет единожды сделать это при инициализации и закешировать в статику для всех /obj/item/death_book.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

сделал кеширование при инициализации

metabolization_rate = 1

/datum/reagent/terror_eggs/on_mob_life(mob/living/carbon/M)
if(volume >= 5 && !M.get_int_organ(/obj/item/organ/internal/body_egg/terror_eggs/phantom))
Copy link
Collaborator

Choose a reason for hiding this comment

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

Для сравнения с volume числа перенеси в дефайны. Магические числа - плохо.

Copy link
Collaborator

Choose a reason for hiding this comment

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

И тут и в /datum/reagent/xenomicrobes/phantom

Copy link
Contributor Author

Choose a reason for hiding this comment

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

так тут же volume количество, количество реагента

Copy link
Contributor Author

Choose a reason for hiding this comment

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

сделано

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
DMI Affects DMI files Локализация Съешь же ещё этих мягких французских булок, да выпей чаю
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants