-
-
Notifications
You must be signed in to change notification settings - Fork 420
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
base: master
Are you sure you want to change the base?
Conversation
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Changelog status: ✔️ |
Они были перенесены
КРУТО |
Подарок на ДР Малевича :peka: |
Наконец-то смогу собрать коллекцию почек со всей станции |
А можно, чтобы было не сломано? |
ТГ спрайты нам не подходят, сейчас занимаюсь новыми на основе тех, что делал Малевичу. |
var/mob/living/L = antag.current | ||
L.changeling_aug = FALSE | ||
|
||
*/ | ||
/mob/proc/remove_changeling_powers(keep_free_powers=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.
Либо сейчас, либо потом такие комменты тебя попросят удалить
Оно 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.
круто
if(M.organs_by_name[organ_tag] == src) | ||
M.organs_by_name -= organ_tag | ||
if(M.internal_organs_slot[slot] == src) | ||
M.internal_organs_slot.Remove(slot) |
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.
а чем листы отличаются между собой?
spawn(120) | ||
beating = 0 | ||
update_icon() |
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.
просьба все spawn(time)
переписать на addtimer()
/obj/item/weapon/scalpel = 100, \ | ||
/obj/item/weapon/kitchenknife = 75, \ | ||
/obj/item/weapon/shard = 50, \ | ||
/obj/item/weapon/retractor = 100, \ | ||
/obj/item/weapon/kitchen/utensil/fork = 75, \ | ||
/obj/item/weapon/screwdriver = 50 |
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(istype(target,/mob/living/carbon/human)) | ||
if(target_zone in list(O_EYES , O_MOUTH, BP_HEAD)) | ||
return 0 | ||
if(is_int_organ(tool)) | ||
var/obj/item/organ/internal/I = tool | ||
if(I.requires_robotic_bodypart) | ||
user.visible_message ("<span class='warning'>[I] is an organ that requires a robotic interface! [target]'s [parse_zone(target_zone)] does not have one.</span>") | ||
return 0 | ||
|
||
if(target_zone != I.parent_bodypart || target.get_organ_slot(I.slot)) | ||
user.visible_message ( "<span class='notice'>There is no room for [I] in [target]'s [parse_zone(target_zone)]!</span>") | ||
return 0 | ||
|
||
if(I.damage > (I.max_damage * 0.75)) | ||
user.visible_message ( "<span class='notice'> \The [I] is in no state to be transplanted.</span>") | ||
return 0 | ||
|
||
if(target.get_int_organ(I)) | ||
user.visible_message ( "<span class='warning'> \The [target] already has [I].</span>") | ||
return 0 | ||
|
||
else | ||
return 1 | ||
|
||
else return 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.
страшная стена табов
почему бы не переписать на ранние возвраты?
(желательно везде где такая стена есть)
if(!ishuman(target))
return FALSE
if(target_zone in list(O_EYES , O_MOUTH, BP_HEAD))
return FALSE
...
/* user.visible_message("[user] starts putting \the [tool] inside [target].", \ | ||
"You start putting \the [tool] inside [target]." ) | ||
target.custom_pain("The pain in your chest is living hell!",1) | ||
*/ |
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.
все такие комментарии желательно удалить, для архивации старого кода есть гитхаб
user.visible_message ( "<span class='warning'> \The [target] already has [I].</span>") | ||
return 0 | ||
else | ||
user.visible_message("it work") |
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.
user.visible_message("it work")
huh?
return | ||
var/obj/item/organ/internal/I = choosen_organ | ||
I.status |= ORGAN_CUT_AWAY | ||
I.remove(target) |
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.
много где есть код, который не подразумевает отсутствие глаз, и будет рантаймить
по ним нужно пройтись и налепить дополнительную логику
TauCetiClassic/code/game/machinery/flasher.dm
Lines 95 to 96 in fb36112
var/obj/item/organ/internal/eyes/IO = H.organs_by_name[O_EYES] | |
if (IO.damage > IO.min_bruised_damage && prob(IO.damage + 50)) |
TauCetiClassic/code/game/objects/items/weapons/grenades/flashbang.dm
Lines 110 to 111 in fb36112
var/obj/item/organ/internal/eyes/IO = H.organs_by_name[O_EYES] | |
if(IO.damage >= IO.min_bruised_damage) |
и т.д.
|
||
/obj/item/organ/Destroy() | ||
owner = null | ||
return ..() | ||
|
||
/obj/item/organ/proc/remove(var/mob/living/user,special = 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.
и так везде
/obj/item/organ/proc/remove(var/mob/living/user,special = 0) | |
/obj/item/organ/proc/remove(mob/living/user, special = 0) |
|
||
|
||
/datum/surgery_step/eye/manipulation/place/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) | ||
if(istype(target,/mob/living/carbon/human)) |
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(istype(target,/mob/living/carbon/human)) | |
if(ishuman(target)) |
/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.
а зачем это поднимать на уровень карбонов?
Описание изменений
Переносит "organ" в "surgery", ради красоты
Добавляет слоты для органов, спрайты органов, пару базовых имплантов, операции.
Почти не затронуты СПУ и дион, потому что этим следует заниматься кому то другому
При желании можно переработать большую часть, добавить или убрать
И в общем, просто добавит чуть более динамичные и ?ВЕСЁЛЫЕ? органы, основанные на парадизах, которые основаны на тг
Почему и что этот ПР улучшит
динамичные органы, база для новых имплантов, переработки хирургии и другого
сломает хирургию, мобов, органы и жизнь
Авторство
Aurorablade с англо парадайзов, откуда взята большая часть кода и спрайты, а так же сам ПР на который опиралась:
ParadiseSS13/Paradise#2903
Чеинжлог
🆑