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

Larva_evolve runtime fix? #13226

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Conversation

Tap0r
Copy link
Contributor

@Tap0r Tap0r commented Jun 30, 2024

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

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

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

Runtime in code/modules/mob/living/carbon/xenomorph/powers.dm:434 : undefined variable /mob/living/carbon/xenomorph/humanoid/drone/var/amount_grown
  proc name: cast check (/obj/effect/proc_holder/spell/no_target/larva_evolve/cast_check)
  usr: The alien drone (586) (tap0r) 

по сути как я понял такая ситуация проверяется в предке, но он вызывается где-то там внизу и подлива на несуществующей переменной происходит раньше

if(((!user.mind) || !(src in user.mind.spell_list)) && !(src in user.spell_list))
		if(try_start)
			to_chat(user, "<span class='red'> You shouldn't have this spell! Something's wrong.</span>")
		return FALSE

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

Авторство

Чеинжлог

@TauKitty
Copy link
Contributor

Changelog status: 🔘 No changelog

@NinjaPikachuska
Copy link
Contributor

NinjaPikachuska commented Jul 4, 2024

просто сунул в каст чек ифку-затычку-проверку является ли юзер лярвой

это скрытие рантайма, а не его починка

вызвано это проблемным кодом экшенов
(создается ксеноморф, происходит майндтрансфер, передаются экшен-кнопки лярвы, происходит попытка обновить состояния кнопок, вылетает рантайм, удаляется лярва, у лярвы удаляются прок_холдеры, удаление прок_холдеров лярвы вызывает удаление кнопок у дрона, бинго)


transfer_actions(new_character)

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants