-
-
Notifications
You must be signed in to change notification settings - Fork 417
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
Хирургические манипуляции с органами + импланты для них #13552
Conversation
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Changelog status: ✔️ |
Они были перенесены
КРУТО |
Подарок на ДР Малевича :peka: |
Наконец-то смогу собрать коллекцию почек со всей станции |
А можно, чтобы было не сломано? |
ТГ спрайты нам не подходят, сейчас занимаюсь новыми на основе тех, что делал Малевичу. |
Оно WIP и просто плашки нет? Если все же нет, то код нерабочий - посмотри в боте. |
Термальное зрение чейджлингов теперь убирается и добавляется корректно, и исправлены ошибки кода цветов и проков
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
круто
/mob/living/carbon/human | ||
/mob/living/carbon | ||
var/list/obj/item/organ/external/bodyparts = list() | ||
var/list/obj/item/organ/external/bodyparts_by_name = list() | ||
var/list/obj/item/organ/internal/organs = list() | ||
var/list/obj/item/organ/internal/organs_by_name = list() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
а зачем это поднимать на уровень карбонов?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
У меня не получилось заставить работать только на людях
И собираюсь в будущем добавить органы мартышкам
Добавила спрайты Вальтера, убрала недомеханические замену органов оставив лишь кибернетику, ну и попыталась привести в коде всё в порядок... Ну почти
В операциях теперь ранние возвраты, добавлена дополнительная проверка для глаз, имплант для глаз теперь полноценно защищает от сварки
А у особкового в нормальный мозг? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Новые фичи nice, жалко на основе парадизов. Перевод просить не буду, апрув английского. Еще это WIP, видимо - где тег в названии?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Если оно не влияет на текущие переводы которые в боди сканере и другие мед переводы, то и вопросов нет.
Добавила механические органы, а так же добавила их крафт роботистам. Так же, при особке на СПУ будет доставаться MMI корректно, а не позитроник.
В mmi, спасибо, что напомнил про особку |
I missed it. Но код уже завершён и ничего не собираюсь добавлять больше. Если только не исправить часть логики кода, наверное? |
Ты можешь глянуть, в Боди сканере ничего не сломалось касательно добавленных тобою органов, если там всё нормально отображается, то всё окей. |
Да, проверила, если органов не будет в теле, они просто не будут показываться в сканере |
А ну по идее тогда всё хорошо должно быть, наверное вначале твой ПР в тест мерж закинут, то сможем если что глянуть. |
Сразу после плувийцев и добавления и для них органов |
Исправила ошибку, из за которой у всех не было печени, добавила всем расам разную чувствительность, и теперь скреллы полностью имунны к опьянению
/mob/living/carbon/human/proc/get_organ(zone) | ||
if(!zone) | ||
zone = BP_CHEST | ||
if(zone in list(O_EYES, O_MOUTH)) | ||
zone = BP_HEAD | ||
|
||
return organs_by_name[zone] | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Зона - это зона. Это часть тела. organs_by_name же хранит название органа по органу, мы не может получить орган, зная часть тела, используя этот лист.
Крч, прок не работает, всегда возвращать нулл будет
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Починила, пропустила этот момент
@@ -234,6 +234,8 @@ | |||
// Used for statistics of death | |||
var/last_phrase | |||
|
|||
var/weakeyes //Are they vulnerable to flashes? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Мы же вроде реворкаем ограны, почему эта переменная в /mob вообще, а не в органе глаз?
/obj/item/organ/internal/cyberimp/eyes/thermals/ling/insert_organ(mob/living/carbon/human/M, special = 0) | ||
..() | ||
if(ishuman(owner)) | ||
var/mob/living/carbon/human/H = owner | ||
H.weakeyes = 1 | ||
|
||
/obj/item/organ/internal/cyberimp/eyes/thermals/ling/remove(mob/living/carbon/M, special = 0) | ||
if(ishuman(owner)) | ||
var/mob/living/carbon/human/H = owner | ||
H.weakeyes = 0 | ||
..() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
А потом орган присваивает значение этой переменной у хумана, жесть
var/mob/living/carbon/human/H = O | ||
var/obj/item/organ/internal/eyes/IO = H.organs_by_name[O_EYES] | ||
if (IO.damage > IO.min_bruised_damage && prob(IO.damage + 50)) | ||
H.flash_eyes() | ||
IO.damage += rand(1, 5) | ||
if(IO) | ||
if(O.weakeyes) | ||
O.Weaken(strength * 1.5) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
А могло бы быть IO.weakeyes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Удалено
@@ -2,7 +2,7 @@ | |||
////////////////////////////////////////////////////////////////// | |||
// APPENDECTOMY // | |||
////////////////////////////////////////////////////////////////// | |||
|
|||
/* |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
за что аппендицит..
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Когда ни будь вернётся
@@ -7,6 +7,7 @@ | |||
/datum/surgery_step/cavity | |||
priority = 1 | |||
allowed_species = null | |||
var/obj/item/organ/internal/I = null |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Что ето и зачем
if(!owner) | ||
return | ||
owner.reagents.add_reagent("????",poison_amount / severity) //food poisoning | ||
owner << "<span class='warning'>You feel like your insides are burning.</span>" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ноу комментс
if(!breath || (breath.total_moles == 0)) | ||
adjustOxyLoss(5) | ||
throw_alert("not_enough_oxy", /atom/movable/screen/alert/oxy) | ||
return FALSE |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
алерты желательно не выносить из handle_alerts()
(как минимум по той причине что в таком виде алерт не удалится и останется с игроком навсегда)
лучше inhale_alert = TRUE
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Убедительно прошу автора разбить ПР всё же на механо-часть(базу) и контенто-часть.
Я вижу тут какие-то имлпанты, технологии РНД, кибер тела, кучу хирургических операций к ним, кучу кода, который еще надо хоть как-то отбалансить.
Есть как полезный код c рефактором объемных кусков, так и совершенно отстранённые от него технологии.
Я думаю, разделить код на два ПРа не займет много труда, зато облегчит дальнейшую разработку как с твоей стороны, так и с нашей, ревьюверско-тестерской. Нам тупо лень даже начинать ревьювить это чудо на 1600 диффа, это даже видно из того, что за 3! недели особо никто так и не посмотрел ничего, а править тут можно многое.
TLDR: убери из этого ПРа всякие имплатны, рнд технологии, глаза ченджлинга и вот всякое такое, а органы людей, рас оставь
/mutable_appearance/clean/New() | ||
. = ..() | ||
alpha = 255 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
тоже не используется
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Удалено
/mob/living/carbon/get_int_organ(typepath) | ||
return (locate(typepath) in organs_by_name) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
а зачем это вообще? почему просто не organs_by_name[organ_name]
как ниже?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Потому что иначе не работает в некоторых местах
/mob/living/carbon/proc/get_int_organ_by_name(tag_to_check) | ||
return organs_by_name[tag_to_check] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
тоже непонятно почему нельзя просто organs_by_name[tag_to_check]
, зачем это в прок определять
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
organs_by_name не работает при проверке лёгких для дыхания
/mob/living/carbon/get_int_organ_tag(tag) | ||
for(var/obj/item/organ/internal/O in organs) | ||
if(tag == O.organ_tag) | ||
return O |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
разве это не organs_by_name[tag]
буквально?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Оказался не нужным, удалила
/proc/is_int_organ(atom/A) | ||
return istype(A, /obj/item/organ/internal) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
в is_helpers.dm перенести бы и через дефайн, а не прок
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Удалено
@@ -10,10 +10,17 @@ | |||
// And yes this does have to be in the constructor, BYOND ignores it if you set it as a normal var | |||
|
|||
// Helper similar to image() | |||
/proc/mutable_appearance(icon, icon_state = "", layer = FLOAT_LAYER, plane = FLOAT_PLANE) | |||
/proc/mutable_appearance(icon, icon_state = "", layer = FLOAT_LAYER, alpha = 255, plane = FLOAT_PLANE, color) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Добавляя новый аргумент alpha
до plane
мы рискуем, что в каком-то создании mutable_appearance будет передаваться плейн (int) в альфу (int) и что-то сломается.
И мы не то что рискуем, а так оно и есть. Да и я так же не заметил, чтобы эти новые альфа и колор как-то менялись или использовались, мб просто не нашел /shrug
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Удалено
Описание изменений
Переносит "organ" в "surgery", ради красоты
Добавляет слоты для органов, спрайты органов, пару базовых имплантов, операции.
Почти не затронуты СПУ и дионы
При желании можно переработать большую часть, добавить или убрать
И в общем, просто добавит чуть более динамичные и ?ВЕСЁЛЫЕ? органы, основанные на парадизах, которые основаны на тг
Почему и что этот ПР улучшит
динамичные органы, база для новых имплантов, переработки хирургии и другого
сломает хирургию, мобов, органы и жизнь
Авторство
Aurorablade с англо парадайзов, откуда взята большая часть кода, а так же сам ПР на который опиралась:
ParadiseSS13/Paradise#2903
@WatlerJe сделал прекрасные спрайты
Чеинжлог
🆑