TauCetiStation / TauCetiClassic

Франкенштейн жив
GNU Affero General Public License v3.0
142 stars 419 forks source link

Нельзя запустить сердечко персонажа дефибрилятором, пока та жива #6820

Open Rolt146 opened 3 years ago

Rolt146 commented 3 years ago

Подробное описание проблемы

Если кто-то продефибрилировал живого человека дефибом, то у него может остановиться сердечко и тот неумолимо будет умирать от окси и токсинов. Повторная дефибриляция не исправляет ситуация

Что должно было произойти

Клоун дефибнул живого, сердце остановилось. Врач дефибнул - сердце снова бьется

Что произошло на самом деле

Клоун дефибнул живого, сердце остановилось. Врачу приходится эвтанатизировать и реанимировать/клонировать пациента либо оставлять его на весь раунд с кардиостимулятором

Как повторить

Попробывать запустить сердце живому человеку

Дополнительная информация:

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/96367677-?utm_campaign=plugin&utm_content=tracker%2F34704297&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F34704297&utm_medium=issues&utm_source=github).
Kortez90 commented 3 years ago

Сердце, после удара, останавливается с шансом в 20%. https://github.com/TauCetiStation/TauCetiClassic/blob/39bf2edc0b9aab3db8f4b088cab38e492e439f61/code/game/objects/items/weapons/defibrillator.dm#L388-L390

Даже если человек жив, то после фибрилляции оно запускается. https://github.com/TauCetiStation/TauCetiClassic/blob/39bf2edc0b9aab3db8f4b088cab38e492e439f61/code/game/objects/items/weapons/defibrillator.dm#L392-L399

В чем проблема?

4310V343k commented 3 years ago

Сердце, после удара, останавливается с шансом в 20%. https://github.com/TauCetiStation/TauCetiClassic/blob/39bf2edc0b9aab3db8f4b088cab38e492e439f61/code/game/objects/items/weapons/defibrillator.dm#L388-L390

Даже если человек жив, то после фибрилляции оно запускается. https://github.com/TauCetiStation/TauCetiClassic/blob/39bf2edc0b9aab3db8f4b088cab38e492e439f61/code/game/objects/items/weapons/defibrillator.dm#L392-L399

В чем проблема?

Затести в игре, проверь.

kalazus commented 3 years ago

Сердце, после удара, останавливается с шансом в 20%.

Даже если человек жив, то после фибрилляции оно запускается.

В чем проблема?

heart_stop переводит сердце в состояние HEART_FAILURE. А проверка идёт на HEART_FIBR.

Не тестил, но по коду вроде можно восстановить сердце как и у обычного жмурика: cpr+дефиб. P.s. коммент бесполезный т.к. Кортез это и сказал.

Rolt146 commented 3 years ago

Описаная проблема не про то, что сердце можно остановить дефибом, а про то, что его нельзя запустить обратно, пока персонаж жив

Rolt146 commented 3 years ago

Сердце, после удара, останавливается с шансом в 20%. Даже если человек жив, то после фибрилляции оно запускается. В чем проблема?

heart_stop переводит сердце в состояние HEART_FAILURE. А проверка идёт на HEART_FIBR.

Не тестил, но по коду вроде можно восстановить сердце как и у обычного жмурика: cpr+дефиб.

Живого человека ты будешь просто обнимать/поднимать на ноги, но не делать cpr

Kortez90 commented 3 years ago

https://github.com/TauCetiStation/TauCetiClassic/blob/39bf2edc0b9aab3db8f4b088cab38e492e439f61/code/modules/mob/living/carbon/human/human.dm#L2009-L2023

Kortez90 commented 3 years ago

https://github.com/TauCetiStation/TauCetiClassic/blob/39bf2edc0b9aab3db8f4b088cab38e492e439f61/code/modules/mob/living/carbon/human/human_attackhand.dm#L38-L46

В принципе, можно поменять на крит.

pss88 commented 3 years ago

Может проверять не human/stat, а heart/heart_status? И на основе этого решать делать ли CPR.