Skip to content

Holochips: Return#9784

Merged
volas merged 66 commits intoTauCetiStation:masterfrom
Chip11-n:Holochips
Oct 16, 2022
Merged

Holochips: Return#9784
volas merged 66 commits intoTauCetiStation:masterfrom
Chip11-n:Holochips

Conversation

@Chip11-n
Copy link
Contributor

@Chip11-n Chip11-n commented Aug 6, 2022

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

Надеюсь я не свалю куда подальше. И так...

У ЕРТ (ОБР), нюкеров, дедсадовцев, воксов появляются голографические карты.

Само по себе это чип, вставляемый в шлем (именно шлем), и вытаскиваемый из него отвёрткой. Все, кто находятся на станции, имеют одинаковую частоту и шифровку (на подобии сигналлеров), отображаются вам на карте. Частот 400 (нечётные и чётные - для увеличения кол-ва комбинаций, оставляя возможность "украсть" частоту), шифровки ещё 1000. В каждом раунде частоты генерируются рандомно.

Голочип

image

Голокарта

image

Аналог у дедсадовцев

image

Неустанные напоминания

#9762 (comment)
https://discord.com/channels/401030271417188353/401031448963973120/1003319427636404417
https://discord.com/channels/401030271417188353/401031448963973120/1000755363756380371

Уже самому смешно.

Теперь смешно вдвойне

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

Авторство

Originally somewhere from /VG/

Чеинжлог

🆑 Filatelele && Chip11-n

  • add[link]: Голочипы!

Mostly copypaste of old mechanics from gamma, small rework of how holochips are displayed on the map.
Holochips are now actually spawn in ERT, syndi and deathsquad helmets.
Removed leftovers from old iterations of holomap system
Holochips can be crafted via protolathe, price is probably to be changed
Leftover code prevented compiling. Also removed some faulty copypaste.
Lowercased HEX codes
Playsound is now cool
Changed proc naming to more clear, no world.log now
sanitiye_frequency sanitized in wrong boundaries.
#define HOLOMAP_WALKABLE_TILE "#66666699"
#define HOLOMAP_CONCRETE_TILE "#FFFFFFDD"

/datum/controller/subsystem/holomaps/proc/generate_holo_map()
Copy link
Member

Choose a reason for hiding this comment

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

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

@KIBORG04
Copy link
Member

KIBORG04 commented Sep 4, 2022

image

смешные рантаймы))

Comment on lines +87 to +88
if(!marker_location)
stack_trace("[HC.holder]/[HC.holder.loc]/[HC.frequency] without turf.")
Copy link
Member

Choose a reason for hiding this comment

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

    312 Runtime in unsorted.dm:1525 : The emergency response team commander helmet//1438 without turf.
    247 Runtime in unsorted.dm:1525 : The alien visor//1483 without turf.
    161 Runtime in unsorted.dm:1525 : The deathsquad helmet//1386 without turf.
     52 Runtime in unsorted.dm:1525 : The emergency response team security helmet//1406 without turf.

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.

оно всё с мастера,

[19:32:24] Runtime in unsorted.dm:1525 : The emergency response team commander helmet//1438 without turf.
  proc name: stack trace (/proc/stack_trace)
  src: null
  call stack:
  stack trace("The emergency response team co...")
  Holomaps (/datum/controller/subsystem/holomaps): process holomap markers()
  Holomaps (/datum/controller/subsystem/holomaps): fire(0)
  Holomaps (/datum/controller/subsystem/holomaps): ignite(0)
  Master (/datum/controller/master): RunQueue()
  Master (/datum/controller/master): Loop()
  Master (/datum/controller/master): StartProcessing(0)

наобум - может зависшие в дестрое итемы.

Comment on lines +102 to +103
if(!I)
stack_trace("[HC.type]/[HC.holder.loc]/[HC.frequency] failed to generate image.")
Copy link
Member

Choose a reason for hiding this comment

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

    261 Runtime in unsorted.dm:1525 : /obj/item/holochip/M'ark M'rshan/1400 failed to generate image.
     50 Runtime in unsorted.dm:1525 : /obj/item/holochip/Andre Isaakov/1400 failed to generate image.

@volas volas removed the Test Merge Candidate ПР с этим лэйблом будет или уже находится с тест мерже label Sep 5, 2022
@volas volas added the Test Merge Candidate ПР с этим лэйблом будет или уже находится с тест мерже label Sep 13, 2022
/obj/item/holochip/proc/deactivate_holomap()
if(!activator)
return
activator.holomap_obj.cut_overlay(holomap_base)
Copy link
Member

Choose a reason for hiding this comment

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

Runtime in holochip.dm:71 : Cannot execute null.cut overlay()

стека нет

/datum/controller/subsystem/holomaps/proc/process_holomap_markers()
for(var/freq in SSholomaps.holochips)
for(var/obj/item/holochip/HC in SSholomaps.holochips[freq])
var/turf/marker_location = get_turf(HC)
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
var/turf/marker_location = get_turf(HC)
var/turf/marker_location = get_turf(HC.holder)

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

@@ -0,0 +1,218 @@
#define OFFSET_CORRECTOR 6
/obj/item/holochip
Copy link
Member

Choose a reason for hiding this comment

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

А никто не говорил еще слово на букву "к"? Впрочем, опционально

@volas
Copy link
Member

volas commented Oct 1, 2022

если вечером не увижу их в рантаймах и куделях, то мержу

@Chip11-n
Copy link
Contributor Author

Chip11-n commented Oct 1, 2022

Они есть ещё в рантаймах, но продвижения также есть

if(holochip)
holochip.remove_action(user)
holochip.deactivate_holomap()
if(SSholomaps.holochips[num2text(holochip.frequency)] && (holochip in SSholomaps.holochips[num2text(holochip.frequency)]))
Copy link
Contributor

Choose a reason for hiding this comment

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

огромное нагромождение операторов. нужно сделать прок который в выполняет вот это все .holochips[num2text(...)]

Copy link
Member

Choose a reason for hiding this comment

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

Почему вообще везде обязателен num2text, и почему его нужно делать на каждой строчке по несколько раз. Не проще будет frequency сразу делать текстом?

И вообще стоило бы не изобретать частоты еще раз, а использовать уже существующие /datum/radio_frequency/

Copy link
Contributor Author

@Chip11-n Chip11-n Oct 4, 2022

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.

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

@Chip11-n
Copy link
Contributor Author

Chip11-n commented Oct 10, 2022

Ну и что тебе надо, бот?

holomap_base = SSholomaps.default_holomap
if(color_filter)
holomap_base.color = color_filter
activator.holomap_obj.add_overlay(holomap_base)
Copy link
Member

Choose a reason for hiding this comment

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

2 Runtime in holochip.dm:60 : Cannot execute null.add overlay().

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

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

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.

А почему не создается? Потому что у активатора нет худа голомапы. А почему нет худа голомапы?

Copy link
Contributor Author

@Chip11-n Chip11-n Oct 15, 2022

Choose a reason for hiding this comment

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

Потому что у некоторых может не быть/исчезнуть клиент, либо человек, у которого появился клиент, но уже с активированной голомапой. И да, клиент влияет, пускай и объект у моба

@volas volas merged commit 787e546 into TauCetiStation:master Oct 16, 2022
TauKitty added a commit to TauCetiStation/ClassicChangelog that referenced this pull request Oct 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants