Skip to content

pain & painkillers rework#13310

Merged
volas merged 22 commits intoTauCetiStation:masterfrom
simb11:pain-rework
Sep 8, 2024
Merged

pain & painkillers rework#13310
volas merged 22 commits intoTauCetiStation:masterfrom
simb11:pain-rework

Conversation

@simb11
Copy link
Contributor

@simb11 simb11 commented Jul 16, 2024

Описание изменений

Убрал шок стейдж (боль которая копится), оставил трауматик шок (боль которую персонаж прямо сейчас испытывает). В местах где добавлялся шок стейдж он был заменён на голоурон.

Персонаж перестаёт ходить (падает в кравл) при получении 80 боли (учитывается брут урон, бёрн, голоурон, ген. урон и токсины, но в меньшей степени).

Персонаж замедляется не от полученного урона, а от боли.

Обезболивающие препараты подавляют лишь некоторый процент боли (оксикодон - 70%, трамадол - 50%, инопровалин - 20% и тд), смешивать лекарства между собой нет смысла, берётся эффект самого мощного.

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

От употребления трамадола и оксикодона персонажу становится плохо: Время от времени он слабеет, а в его глазах мутнеет. (Это было сделано для того, чтобы игроки не бегали под воздействием трамадола и оксикодона весь раунд)

Шанс успеха при проведении операции на человеке в сознании зависит от боли, а не голоурона.

Персонаж не может самостоятельно уснуть, если чувствует сильную боль.

Немного подышав n20 (анестезией) персонаж перестаёт чувствовать боль.

Почему и что этот ПР улучшит

Освежит и изменит (в лучшую сторону я надеюсь) боёвку.

Авторство

я

Чеинжлог

🆑 Simbaka

  • experiment[link]: Переработка системы боли.

@TauKitty
Copy link
Contributor

Changelog status: ✔️

@TauKitty TauKitty requested a review from a team July 16, 2024 11:22
@ZER0-In
Copy link

ZER0-In commented Jul 16, 2024

Бля, давно хотел такое. Опять же, я подсмотрел в других местах, что обезбол убирает возможность мониторить свое состояние, если он достаточно мощный. Да, ты снимаешь с себя сильные ограничения от боли, но при этом без анализатора здоровья теряешь возможность чекать себя через худ иконку куклы. А это приводит к тому, что казалось бы худ говорит, что ты пока еще жив, но вот еще чуть-чуть получил урона и умер.

Многие в файтах опираются на этот худ справа. Когда отступить и подлечиться, когда продолжить бой или задавить противника. Абуз обезбола лишает тебя чувств. Поэтому либо юзай медсканер, либо не удивляйся внезапной смерти.

@ZER0-In
Copy link

ZER0-In commented Jul 16, 2024

Но как же я боюсь, когда люди трогают нечто настолько масштабное, что вообще весь геймплей перевернет. Всю эту тему придется мульон лет тестить и править чуткой рукой.

Ну и почему-то в ПРе не сказано, но стоит подметить. Синаптизин как-то изменен? А также как это влияет теперь на штуку с оторванными конечностями. Когда игрок с двумя обрубками испытывал такую голоболь, что не мог двигаться под обезболом. Пока операциями не отсечешь обрубки.

@KIBORG04
Copy link
Member

Я нубик и ничего не понял, расскажи конкретней какие игровые ситуации изменятся, что улучшится и ухудшится

@simb11
Copy link
Contributor Author

simb11 commented Jul 16, 2024

Я нубик и ничего не понял, расскажи конкретней какие игровые ситуации изменятся, что улучшится

Стоит начать с того что система с "мгновенным" эффектом боли будет более понятной новичкам и простым обывателям, вот мне по началу лично было неясно, почему мне выстрелили в руку из лазерки и я только через пару минут упал от боли.... Теперь же если какому-нибудь чувачку выстрелят в руку, у него начнут появляться сообщения, типа персонажу больно, а если его ещё несколько раз ударят - он упадёт от боли.

Персонаж замедляется не от полученного урона, а от боли.

Это сделает боевку более динамичной, бои не будут прекращаться после того, как персонаж получит 40+ любого урона (получить большое замедление = смерть, ибо сбежать нельзя).

Обезболивающие препараты подавляют лишь некоторый процент боли (оксикодон - 85%, трамадол - 75%, инопровалин - 20% и тд), смешивать лекарства между собой нет смысла, берётся эффект самого мощного.

Это было сделано из соображений баланса, чтобы нельзя было выпить 100500 лекарств и получить полный иммунитет к боли.

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

Это просто прикольная иммерсивная фишка

По поводу остальных изменений должно быть понятно, я надеюсь...

что улучшится и ухудшится

Я не вижу минусов и не думаю что что-то ухудшится!

@simb11
Copy link
Contributor Author

simb11 commented Jul 16, 2024

Синаптизин как-то изменен?

Никак не затронут

игрок с двумя обрубками испытывал такую голоболь, что не мог двигаться под обезболом

Теперь сможет

@QWxiZ
Copy link

QWxiZ commented Jul 16, 2024

Персонаж замедляется не от полученного урона, а от боли.

скрытнобафф спу

@simb11
Copy link
Contributor Author

simb11 commented Jul 16, 2024

я знаю...

@KIBORG04
Copy link
Member

Это сделает боевку более динамичной

Персонаж замедляется не от полученного урона, а от боли.

Теперь же если какому-нибудь чувачку выстрелят в руку, у него начнут появляться сообщения, типа персонажу больно, а если его ещё несколько раз ударят - он упадёт от боли.

Я правильно понял, что теперь при любом уроне чел начнет замедляться сразу же?

@simb11
Copy link
Contributor Author

simb11 commented Jul 16, 2024

Я правильно понял, что теперь при любом уроне чел начнет замедляться сразу же?

Нет-нет, вот как оно раньше работало:
Если персонаж в сумме получал 40 или больше ЛЮБОГО урона, он замедлялся
Сейчас:
Если персонаж получил 40 или больше БОЛИ, он замедляется
В отличии от урона, боль это совокупность физ. урона, голоурона, ожогов, ген. урона и токсинов, а ещё боль можно оперативно заглушить лекарствами.

@KIBORG04
Copy link
Member

Ну го ТМ, посмотрим..

@KIBORG04 KIBORG04 added the Test Merge Candidate ПР с этим лэйблом будет или уже находится с тест мерже label Jul 17, 2024
@TauKitty TauKitty requested a review from a team July 17, 2024 15:24
@simb11
Copy link
Contributor Author

simb11 commented Jul 17, 2024

оказывается всё это время n20 не убирало боль и переменная analgesic никогда не увеличивалась...

@simb11
Copy link
Contributor Author

simb11 commented Jul 20, 2024

вернусь через пару недель и доделаю, а пока пусть закрытым будет

@simb11 simb11 closed this Jul 20, 2024
@simb11
Copy link
Contributor Author

simb11 commented Aug 4, 2024

поменял всё что хотел, а если точнее:

Боль:

  • Убрал большинство случайных станов от боли.
  • Поменял сообщения которые появляются из-за боли.
  • Получив 30 условных единиц боли персонаж начинает заикаться, глаза начинают мылиться и он теряет возможность самостоятельно уснуть.
  • Получив 50 боли персонаж замедляется.
  • Получив 80 боли персонаж теряет возможность ходить и падает в кравл, из которого не может подняться, пока не получит обезболивающее или не вылечит урон.
  • Получив 100 и больше боли персонаж начинает терять сознание время от времени.
  • Бёрн урон чувствуется намного больнее, нежели другие виды урона.

Обезболивающее:

  • Персонаж под мощным обезболивающим реже зевает и больше не задыхается, вместо этого у него время от времени начинает легонько трястись экран.
  • Все наркотики (которые красят экран) неплохо глушат боль.

@simb11 simb11 reopened this Aug 4, 2024
@QWxiZ
Copy link

QWxiZ commented Aug 4, 2024

А сделай так, чтобы сильное опьянение тоже слегка уменьшало боль. Бухие иногда не замечают то, как разбивают себе головы...

@simb11
Copy link
Contributor Author

simb11 commented Aug 4, 2024

А сделай так, чтобы сильное опьянение тоже слегка уменьшало боль

оно итак уменьшает...

@simb11
Copy link
Contributor Author

simb11 commented Aug 12, 2024

поднял порог боли при котором персонаж начинает ползать

Comment on lines +103 to +118
if(reagents.has_reagent("stimulants"))
painkiller_effect *= min(0.1 * painkiller_multiplier, 1)
else if(reagents.has_reagent("oxycodone"))
painkiller_effect *= min(0.3 * painkiller_multiplier, 1)
else if(reagents.has_reagent("tramadol") || reagents.has_reagent("endorphine"))
painkiller_effect *= min(0.5 * painkiller_multiplier, 1)
else if(druggy)
painkiller_effect *= min(0.6 * painkiller_multiplier, 1)
else if(reagents.has_reagent("paracetamol") || reagents.has_reagent("synaptizine"))
painkiller_effect *= min(0.75 * painkiller_multiplier, 1)
else if(reagents.has_reagent("inaprovaline"))
painkiller_effect *= min(0.8 * painkiller_multiplier, 1)
if(slurring && drunkenness > DRUNKENNESS_SLUR)
painkiller_effect *= min((DRUNKENNESS_PASS_OUT - drunkenness) / 1000, 1)
if(analgesic && !reagents.has_reagent("prismaline"))
painkiller_effect = 0
Copy link
Contributor

Choose a reason for hiding this comment

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

возможно стоит это вынести как-то в переменную реагента. или иметь переменную у хумана которую реагенты меняют

сюда бы модвал

playsound(src, 'sound/weapons/bite.ogg', VOL_EFFECTS_MASTER)
H.apply_damage(rand(7, 14), BRUTE, BP_CHEST)
H.SetShockStage(20)
H.setHalLoss(20)
Copy link
Contributor

Choose a reason for hiding this comment

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

меня всё больше начинает злить название halloss. у нас во-первых от "галлюцинаций" почти ничего и не осталось, а во-вторых в 90% случаев этот вид урона навешивают не галлюцинации.

Copy link
Contributor Author

@simb11 simb11 Aug 12, 2024

Choose a reason for hiding this comment

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

А как этот тип урона назвать тогда? Просто "Pain"?

Copy link
Member

Choose a reason for hiding this comment

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

Технически оно проверяет по флагу pain и в комментариях обозначено как pain, так что можно.

Но traumatic_shock тоже похож на pain.

Я бы может одно из них назвал болью, а другое стаминой/выносливостью.

@volas
Copy link
Member

volas commented Aug 18, 2024

по описанию всё очень круто 👍

@TauKitty
Copy link
Contributor

Этот запрос на слияние был упомянут в Tau Ceti Station Forum. Там могут быть соответствующие подробности:

https://forum.taucetistation.org/t/obsuzhdenie-pr-a-zakryt-tm-novoj-sistemy-boli/43601/1

@volas volas merged commit 83e4de8 into TauCetiStation:master Sep 8, 2024
TauKitty added a commit to TauCetiStation/ClassicChangelog that referenced this pull request Sep 8, 2024
@simb11 simb11 deleted the pain-rework branch September 25, 2024 19:53
@TauKitty
Copy link
Contributor

Этот запрос на слияние был упомянут в Tau Ceti Station Forum. Там могут быть соответствующие подробности:

https://forum.taucetistation.org/t/polnyj-revork-sistemy-organov-obsuzhdenie/45603/82

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

Labels

Experimental Sprites Test Merge Candidate ПР с этим лэйблом будет или уже находится с тест мерже

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants