Skip to content
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

Adrenaline production rework #10771

Merged
merged 3 commits into from
Dec 1, 2023

Conversation

Devyashka
Copy link
Contributor

@Devyashka Devyashka commented Oct 24, 2023

Немного о старом адреналине:
Адреналин выбрасывался в кровь, только если космонавту был нанесён вред одномоментно больше 15 единиц на отдельно взятую конечность.
Из-за этого адреналин не вырабатывается во время событий:

  • бой на кулаках - урон 3-8 (<15);
  • удар тулбоксом - урон 15 (<15);
  • вакуум - урон 0.8 по конечности (<15);
  • поджёг - урон по 0.8 по конечности (<15);
  • и тп.

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

Более того, текущий адреналин выдаёт незначительное обезболивание в первые 10 секунд.
M.chem_doses = 0.1 < 0.2 -- CE_PAINKILLER = 80 //1 секунда
M.chem_doses = 0.2 < 1 -- CE_PAINKILLER = 20 //2 секунда
M.chem_doses = 0.3 < 1 -- CE_PAINKILLER = 20
M.chem_doses = 0.4 < 1 -- CE_PAINKILLER = 20
M.chem_doses = 0.5 < 1 -- CE_PAINKILLER = 20
M.chem_doses = 0.6 < 1 -- CE_PAINKILLER = 20
M.chem_doses = 0.7 < 1 -- CE_PAINKILLER = 20
M.chem_doses = 0.8 < 1 -- CE_PAINKILLER = 20
M.chem_doses = 0.9 < 1 -- CE_PAINKILLER = 20 //9 секунда
После десяти секунд адреналин перестаёт как либо действовать на организм, независимо от его объёма в крови.
Потому что не прописано никакого поведения вещества, после усвоения 0.9 условных единиц препарата.

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

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

Пересчёт зависит от объёма адреналина в крови и времени на протяжении которого он действует.
image
обезбол/время(сек)
На графике представлен крайний случай, при котором организм получил максимальный урон и, как следствие, максимальную дозу адреналина.

Далее немного о стандартных ситуациях:
image
image

Первые 6 секунд идёт быстрый подъём, который зависит от величины адреналина.
Пик обезболивания = 60, он находится на 6 секунде.
Далее идёт плавный спад, вплоть до 100 секунд, после чего влияние адреналина сходит на нет (не может же он всё время с одной интенсивностью действовать)

my_pain.xlsx

🆑Devyashka
tweak: Небольшая переработка адреналина.
/🆑
  • Pull Request полностью завершен, мне не нужна помощь чтобы его закончить.
  • Я внимательно прочитал все свои изменения и багов в них не нашел.
  • Я запускал сервер со своими изменениями локально и все протестировал.
  • Я ознакомился c Guide to Contribute.

@Devyashka Devyashka requested a review from a team as a code owner October 24, 2023 07:38
@github-actions github-actions bot added the 📜 Есть CL Чейнджлог в наличии и не содержит ошибок label Oct 24, 2023
M.add_chemical_effect(CE_PAINKILLER, min(10*volume, 20))
M.add_chemical_effect(CE_PULSE, 2)
if(M.chem_doses[type] > 10)
var/max_painkiller = min(60, volume*20)
Copy link
Contributor Author

@Devyashka Devyashka Oct 25, 2023

Choose a reason for hiding this comment

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

Пиковое значение можно разнообразить.
Например var/max_painkiller = min(70, volume*3 + 30)
При двух-трёх ударах кулаком (1ед адреналина), пик будет 33
При ударе током (4ед адреналина), пик будет 42
При расстреле (~9?) - пик 57.

Вероятно, так правильнее.

@Devyashka
Copy link
Contributor Author

Devyashka commented Oct 25, 2023

Теперь var/max_painkiller = min(70, volume*3 + rand(20, 35))
Больше рандома, больше разнообразия обезбола от разных доз урона.
image
image

@kreeperHLC kreeperHLC added 🔩 улучшение Новая фича или улучшение старой 💉 медицина Человеки не лечатся labels Oct 26, 2023
@TobyThorne TobyThorne changed the title adrenaline addiction to pain Adrenaline production rework Oct 28, 2023
@Zert0X Zert0X added the 🌌геймдизайн Затрагивает игровую логику label Nov 11, 2023
TobyThorne added a commit that referenced this pull request Nov 24, 2023
TobyThorne added a commit that referenced this pull request Nov 24, 2023
TobyThorne added a commit that referenced this pull request Nov 24, 2023
@ChaoticTheBot ChaoticTheBot added the 🔵 одобрено Одобрено с точки зрения геймдизайна label Dec 1, 2023
@ChaoticTheBot
Copy link
Collaborator

Иссуй был одобрен геймдизайнерами.

Поддержали: goliaths_left_hand, zetroxio

Copy link
Member

@Zert0X Zert0X left a comment

Choose a reason for hiding this comment

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

Игроки потестили никаких жалоб мы не слышали

@kreeperHLC kreeperHLC merged commit d44399a into ChaoticOnyx:dev Dec 1, 2023
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
📜 Есть CL Чейнджлог в наличии и не содержит ошибок 🌌геймдизайн Затрагивает игровую логику 💉 медицина Человеки не лечатся 🔩 улучшение Новая фича или улучшение старой 🔵 одобрено Одобрено с точки зрения геймдизайна
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants