Skip to content

Conversation

@Ahion
Copy link
Contributor

@Ahion Ahion commented Mar 21, 2021

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

Все изменения описал в чейнжлоге. Здесь некоторые подробности:
Добавил новые звуки для большего погружения (взяты с Маринов):

  1. Звук смерти лицехвата;
  2. Новые звуки появления грудоломов из хостов;
  3. Звуки плевка кислотой;
  4. Когда дрон эволюционирует в королеву будет проигрываться big_hiss (уже был в билде)
  5. Хантер будет рычать если успешно прыгнул на кого-либо.

Кому надо послушать, вот вам архив: sounds.zip

Ксеноморфы теперь уязвимы для высокого (более 325 кПа) и низкого (менее 50 кПа) давления. Для взрослых алиенов урон равен лечению на траве. Для грудолома и лицехвата урон равен 4, а лечаться они по 1, берегите их))

Гифки некоторых фич:

Анимация растения алиенов
Крик Королевы
Охотник прыгает на щит

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

Геймплей

Авторство

Ahio

Чеинжлог

🆑 Ahio, Звуки и спрайты взяты с Колониальных Маринов

  • sound[link]: Добавлены новые звуки для ксеноморфов;
  • image: Добавлен оверлей крика для королевы;
  • balance: Крик королевы теперь стоит 200 плазмы;
  • balance: Атомную бомбу больше нельзя расплавить; Уменьшено ХП королевы с 400 до 300; Уменьшен урон алиенов с 23 до 20; Увеличен процент победы алиенов со 150% до 190%;
  • balance: Урон по траве и яйцам алиенов больше не уменьшается в 4 раза; Для удаления травы достаточно будет выставить огнемет на 1; Теперь алиены могут строить только на траве; Яйца алиенов стали быстрее погибать от низкого давления;
  • balance: Увеличена стоимость плевка кислотой с 75 до 100 плазмы; Уменьшен шанс устаревания одежды от попадания кислоты с 75% до 30%;
  • balance: Ксеноморфы будут лечиться в 2 раза быстрее, если отдыхают на траве (Rest). Раньше скорость лечения увеличивалась в 2 раза при полной плазме;
  • balance: Ксеноморфам будет наноситься урон, если давление будет ниже 50 кПа или выше 325 кПа. Однако, взрослые ксеноморфы не погибнут, если будут находиться на траве алиенов. Для грудоломов и лицехватов нет спасения.
  • bugfix: Стан от нейротоксина накидывался несколько раз и не уменьшался от наличия био-защиты;
  • tweak: Если охотник прыгнет на человека с щитом, то разобьется от него, как если бы прыгнул в стену;
  • tweak: Растение алиенов стало быстрее восстанавливать давление. Во время работы растение будет изменять свой цвет; Examinate по растению покажет ксеноморфу текущее давление;
  • tweak: Прыжок охотника и нейротоксин с кислотой теперь активируются на среднюю кнопку мыши.

@TauKitty
Copy link
Contributor

Changelog status: ✔️

@KIBORG04
Copy link
Member

image

попробуй отсортировать эти пункты по тэгу для наглядности

if(!animating)
animating = TRUE
set_light(2, 1, "#da3a3a")
animate(src, color = "#da3a3a", time = 5, loop = -1, LINEAR_EASING)
Copy link
Member

Choose a reason for hiding this comment

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

Может лучше сделать моргающий спрайт и когда нужно этот спрайт/оверлей кидать/снимать с растения?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ну я со спрайтами не очень. Мне так проще было

|| (locate(/obj/structure/mineral_door/resin) in get_turf(src)) || (locate(/obj/structure/alien/resin/wall) in get_turf(src)) \
|| (locate(/obj/structure/alien/resin/membrane) in get_turf(src)) || (locate(/obj/structure/stool/bed/nest) in get_turf(src))
// does anyone have an idea how to make it shorter?
#define CHECK_WEEDS (locate(/obj/structure/alien/weeds) in get_turf(src))
Copy link
Member

Choose a reason for hiding this comment

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

Какой-то сомнительный дефайн

Copy link
Contributor Author

Choose a reason for hiding this comment

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

По примеру выше, а что не так?

Copy link
Member

Choose a reason for hiding this comment

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

Хз как сказать. Чтобы понять кодеру что значит src ему придётся вспоминать как работают дефайны, смотреть на контекст использования дефайна. Тип, обычная какая-то функция ИЛИ дефайно-функция были бы наверное лучше.
Я таких дефайнов нигде не видел и вам не советую

Copy link
Member

Choose a reason for hiding this comment

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

можно вместо использования src передавать атом параметром

Copy link
Member

Choose a reason for hiding this comment

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

а вообще, там выше ALREADY_STRUCTURE_THERE такой же, так что пусть и так, они всё равно андефанятся ниже

status = BURST

/obj/structure/alien/egg/process()
if(prob(10))
Copy link
Member

Choose a reason for hiding this comment

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

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

set_light(2, 1, "#24c1ff")

/obj/structure/alien/air_plant/process()
if(prob(25))
Copy link
Member

Choose a reason for hiding this comment

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

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

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

Copy link
Member

@volas volas Mar 21, 2021

Choose a reason for hiding this comment

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

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

Можно как тут оставить и во время раунда попросить кого то из мейнтейнеров проверить по профайлеру нагрузку.

Еще вариант это увеличить генерацию воздуха и подогрев при старом количестве тиков.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Спасибо, по эксперементируем.

@KIBORG04 KIBORG04 added this to the Aliens milestone Mar 21, 2021
@volas
Copy link
Member

volas commented Mar 21, 2021

После этого вроде все вопросы режима будут решены? Если да, то можно будет попробовать вернуть в ротацию.

@Ahion
Copy link
Contributor Author

Ahion commented Mar 21, 2021

После этого вроде все вопросы режима будут решены? Если да, то можно будет попробовать вернуть в ротацию.

Да, возможно. Потестим и посмотрим

*/
//Air generator

#define AIR_PLANT_PRESSURE 90 //kPa
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
#define AIR_PLANT_PRESSURE 90 //kPa
#define AIR_PLANT_PRESSURE ONE_ATMOSPHERE*0.90 //kPa

Как вариант, что бы была видна зависимость, а не то что это какие-то конкретные 90 кпа. Хотя может имеет смысл оставить без дробных

@Motzord
Copy link
Contributor

Motzord commented Mar 21, 2021

tweak: Если охотник прыгнет на человека с щитом, то разобьется от него, как если бы прыгнул в стену;

Я конечно не баланс департамент, но мне кажется что толпа ассистух с баклерами против алиенов будет слишком не красиво.

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

@Ahion
Copy link
Contributor Author

Ahion commented Mar 22, 2021

Вернул prob в яйца и растение. У растения увеличил генерацию воздуха. Прок attack_alien перевел в класс alien что бы растение могли уничтожить ксеноморфы. Сделал проверку в на структуры при выкладывании яиц, а то их можно было выложить на ту же клетку вместе с нестом и растением. Сделал удаление таймера у яиц, так как был баг - не созревшие яйца лопались от давления, а потом всё равно вырастали.

Ещё заметил баг, что стена и мембрана алиенов не устраняли разгермы. Если стекло сломать, а на его место поставить стену или мембрану алиенов, то воздух всё равно утекал. Происходило это из-за того что не вызывался прок update_nearby_tiles. Исправил.

@EdlerN
Copy link
Member

EdlerN commented Mar 23, 2021

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

@Ahion
Copy link
Contributor Author

Ahion commented Mar 24, 2021

Надо сказать, что от прыжка хантера щиты защищают уже сейчас, я лишь добавил стан. Я думаю, пока не было тестов, рано судить о том будет ли это имбо-фичей. Посмотрим короче

@UsadoSmokk
Copy link
Contributor

Надо сказать, что от прыжка хантера щиты защищают уже сейчас, я лишь добавил стан. Я думаю, пока не было тестов, рано судить о том будет ли это имбо-фичей. Посмотрим короче

Хотелось бы еще глянуть на режим хейст, где у воксов тоже есть лип. У них он как-то поменяется или останется прежним?

@EdlerN
Copy link
Member

EdlerN commented Mar 24, 2021

Надо сказать, что от прыжка хантера щиты защищают уже сейчас, я лишь добавил стан. Я думаю, пока не было тестов, рано судить о том будет ли это имбо-фичей. Посмотрим короче

Ты серьезно не видишь разницы между тем что человека просто не кнокает и тем что кнокает хантера? В первом случае у хантера есть возможность как-то сманеврировать или отступить, пускай и потеряв часть здоровья, то в случае стана он гарантировано труп.

@Ahion
Copy link
Contributor Author

Ahion commented Mar 25, 2021

У них он как-то поменяется или останется прежним?

Останется прежним, это изменение только для хантера.

Ты серьезно не видишь разницы между тем что человека просто не кнокает и тем что кнокает хантера?

Конечно вижу. Как я писал выше, нужно тестить, а потом обсуждать.

@Ahion
Copy link
Contributor Author

Ahion commented Mar 29, 2021

Давайте в ТМ, будем тестить

@KIBORG04 KIBORG04 added the Test Merge Candidate ПР с этим лэйблом будет или уже находится с тест мерже label Mar 29, 2021
@Ahion
Copy link
Contributor Author

Ahion commented Mar 30, 2021

  1. Алиенам не будет наноситься урон от атмосферы в трубах.
  2. Переделал лип хантера и нейротоксин с кислотой на миддл клик.
  3. Исправил баг: После заражения хоста не появлялся мертвый лицехват. Происходило из-за того что в переменной current_hugger сохранялось значение после qdel(current_hugger). Изменил на QDEL_NULL(current_hugger)
  4. В проке постройки структур алиенов сделал проверки на траву и другие структуры после выбора постройки. Больше нельзя будет активировать способность на траве, а потом переместиться куда хочешь и строить.

Рантаймы воспроизвести не удалось, но я попытался их починить. Call stack я скидывать не буду, там много букв и ничего интересного:

Первый рантайм [18:46:34] Cannot read null.pipe_image in ventcrawl.dm:161 :
proc name: add ventcrawl (/mob/living/proc/add_ventcrawl)
source file: ventcrawl.dm,161
usr: (src)
src: the alien hunter (108) (/mob/living/carbon/xenomorph/humanoid/hunter)
src.loc: Female Dorm Vent Pump#1 (/obj/machinery/atmospherics/components/unary/vent_pump/on)
Первый рантайм не связан с алиенами, но раз они постоянно ползают по вентиляции, то решил починить. Не знаю по какой причине в А появился null... В общем сделал проверку на null
Второй рантайм [19:10:05] undefined proc or verb /obj/item/clothing/mask/ecig/host is dead().
in facehugger_playable.dm:493 :
proc name: confirm (/obj/item/weapon/fh_grab/proc/confirm)
source file: facehugger_playable.dm,493
usr: null
src: the grab (/obj/item/weapon/fh_grab)
src.loc: the alien facehugger (236) (/mob/living/carbon/xenomorph/facehugger)

Тут каким-то образом у игрока осталась электронная сигарета в зубах после прыжка лицехвата. Повторить не получилось. Может есть какой-то баг, позволяющий одновременно одеть и сигарету и что-то ещё, я не знаю. Сделал проверку по типу. Переименовал прок host_is_dead() в get_off()

@volas
Copy link
Member

volas commented Mar 31, 2021

Я мержу, что бы не ждать конфликтов. По поводу добавления режима в ротацию - стоит на всякий с киборгом обсудить, возможно ему удобнее будет сделать в рамках рефакторинга режимов или после.

@volas volas merged commit c031f31 into TauCetiStation:master Mar 31, 2021
TauKitty added a commit to TauCetiStation/ClassicChangelog that referenced this pull request Mar 31, 2021
@Ahion Ahion deleted the balance branch March 31, 2021 15:21
@Ahion
Copy link
Contributor Author

Ahion commented Mar 31, 2021

Круто! Конечно обсудим.

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

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants