Skip to content

Conversation

@volas
Copy link
Member

@volas volas commented Nov 21, 2023

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

Заключительная часть модуля ивентов - модули карты, и, наконец, первый ивент для обкатки - Форты.

test2

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

Формально, команда, потерявшая свою консоль, считается проигравшей.


Главные элементы.

Командир команды

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

Консоль форта

Доступна командиру, позволяет за специальные поинты заказывать новое оборудование и ресурсы. Сама по себе генерирует 0.5 поинтов в секунду (30 в минуту), позволяет зарабатывать дополнительные через добычу на астеройде.

Должна быть максимально защищена, её потеря - конец для команды.

Астеройды и буры

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

Один бур добывает примерно 0.3 поинта в секунду (18 в минуту).

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

Стройка

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

Ракеты

Через консоль можно заказать различные типы ракет. Их запуск производится через пневпомочту, ракеты автоматически ускоряются при выходе из disposal outlet.

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

Из возможных на данный момент типов:

  1. Обычные взрывающиеся
  2. Обычные взрывающиеся, но подешевле.
  3. ЭМИ (пока нет применения, но вдруг кто-то найдет)
  4. Пробивающие - могут протаранить некоторые преграды перед взрывом, на данный момент самые дорогие.

Что еще хотелось/думалось сделать по поводу ивента:

  • Воут на командира команды в начале раунда - сейчас требуется педаль, в идеале иметь какой-то дефолтный механизм фракции для выборов, может пригодится нюке или воксам
  • Возможность для капитана выставлять команде голометки на карте (указания для атаки, для защиты)
  • Возможность целиться из дроппода по голокарте
  • Возможно консоль камер для капитана
  • Возможно зенитки - переносные разворачиваемые турели, которые будут пытаться отстреливать летающие ракеты (тогда и ЭМИ пригодятся)
  • Возможно щиты
  • Возможно больше флафф-механики с рангами. Была мысль завязать на использовании скиллов - чем больше человек трудится на благо команды, тем больше растет ранг. Или возможность командиру раздавать повышения и может специальные ранги (медик, офицер, км с доступом к консоли).

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

Кроме самого мап модуля, позволяющего делать глобальные ивенты, и Фортов, для базовой игры тут есть:

  • Ракеты, которые потом куда-нибудь еще можно пристроить
  • Небольшой рефакторинг RCD и новый мод для быстрой печати пневмотруб. На станции не добавлен, но можно подумать и дать атмосферникам. Или по дефолту включить в РЦД у СЕ.
  • Механизм временных вербов. Может использоваться как ивентами, так и просто объектами.
  • Несколько небольших фиксов и улучшений тут и там. Например хедсеты, которые можно использовать без станции, как рацию.

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

Авторство

Ивент первоначально проводился в 2019 году, по идее BartNixon, и под названием Арена/"Космические соревнования". Где-то на форуме еще можно найти видео, и ПР использует несколько спрайтов с тех времен. #4031

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

Отдельная благодарность человеку с никнеймом Ded с дискорда за помощь с иконками для ролей.

Чеинжлог

🆑

  • add[link]: Глобальный ивент Форты (в прошлом известный как "Арена"/"Космические соревнования") добавлен в базовую игру на постоянку.

@TauKitty
Copy link
Contributor

TauKitty commented Nov 21, 2023

Changelog status: ✔️

@TauKitty TauKitty requested a review from a team November 21, 2023 16:08
@Oz1Es
Copy link
Contributor

Oz1Es commented Nov 22, 2023

марины типо?:peka:

@TauKitty
Copy link
Contributor

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

https://forum.taucetistation.org/t/ivent-forty/41467/1

@ZER0-In
Copy link

ZER0-In commented Nov 30, 2023

Возможность для капитана выставлять команде голометки на карте (указания для атаки, для защиты)

Может можно как-то скопипастить часть кода у ТГМСа, там такое у них реализовано путем команд от СЛа.

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

Добавить маячки? И ракеты, которыми можно их раскидывать. Попадаешь куда-нибудь и там появляется маяк, который вражеская команда может просто сломать. Если не ломает, то дроппод может на этот маяк упасть? И сделать такие ракеты дорогими, чтобы ими спамить нельзя было.

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

Впилить в шлемы игроков маунтед камеры как у нюкеров и пусть лидер смотрит за своими подчиненными через них? Или голобейджи. В общем что-то такое. Может также дать ему подобие медкомпа, который будет показывать GPS расположение игроков и их состояние. Чтобы можно было командовать людьми. Куда нужна подмога, по каким частям враг бьет. Просто сделать в форме игроков встроенные датчики третьего режима.

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

@TauKitty
Copy link
Contributor

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

https://forum.taucetistation.org/t/vsya-infa-po-iventu-two-forts-kotoruyu-udalos-dostat-za-vremya-haosa-i-batalij/41487/1

@Kiromaka
Copy link
Contributor

Kiromaka commented Nov 30, 2023

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

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

Comment on lines +64 to +69
if(specific_hud)
if(specific_hud.icon_color)
holder.color = specific_hud.icon_color
if(specific_hud.background_state) // idk if it's ok and maybe should be two different huds but i don't understant huds
var/image/underlay = image('icons/hud/hud.dmi', specific_hud.background_state)
holder.underlays += underlay
Copy link
Member Author

Choose a reason for hiding this comment

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

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

Comment on lines +63 to +66
if(holomap_custom_key)
holomap_base = SSholomaps.get_custom_holomap(holomap_custom_key)
else
holomap_base = SSholomaps.get_default_holomap()
Copy link
Member Author

Choose a reason for hiding this comment

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

стоящий внимания момент два - что-то время от времени пытается удалить эти карты из SSholomaps.holomaps[], и естественно не может, так как на них всюду ссылки. Я пока не нашел, откуда удаление прилетает.

stat(null, "Blue Points: [consoles[TEAM_NAME_BLUE]?.points || "--"]")

// maybe should be moved to own role datum
/datum/map_module/forts/proc/assign_to_team(mob/M, datum/faction/faction, rank = FORTS_ROLE_MEMBER)
Copy link
Member Author

Choose a reason for hiding this comment

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

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


// variant for Forts event
// made it dumb drill subtype and not own type just because of brace mechanics i don't want to copypaste
/obj/machinery/mining/drill/forts
Copy link
Member Author

Choose a reason for hiding this comment

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

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

@volas volas marked this pull request as ready for review December 2, 2023 12:07
Copy link
Contributor

@NinjaPikachuska NinjaPikachuska left a comment

Choose a reason for hiding this comment

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

лон нюкеру не выдается фракция
(хотя зачем она ему, там наверное проверку на нюкера надо переделать)
Runtime in code/datums/uplinks_items.dm, line 150: Cannot read null.faction_scoreboard_data

if(istype(R, /datum/role/operative))
R.faction.faction_scoreboard_data += {"<img src="logo_[tempstate].png"> [bundlename] for [cost] TC."}

@volas volas changed the title [WiP][MDB IGNORE] Map modules, Forts as first event [MDB IGNORE] Map modules, Forts as first event Dec 12, 2023
"construction_three_quarters" = 'sound/AI/construction_three_quarters.ogg',
"construction_doom" = 'sound/AI/construction_doom.ogg',

"bell" = 'sound/effects/bell.ogg',
Copy link
Member Author

Choose a reason for hiding this comment

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

не помешал бы какой-то общий звук анонса, я чет вроде у нас не нашел

return FALSE
if(!ranks)
return TRUE
if(jobban_isbanned(spectator, "Syndicate"))
Copy link
Member Author

Choose a reason for hiding this comment

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

это я убрал у спавнеров, оно странное. Лучше в рангах у спавнера прописывать, если надо.

@volas
Copy link
Member Author

volas commented Dec 12, 2023

лон нюкеру не выдается фракция

я их не задевал, судя по коду им и раньше фракция не выдавалась. Когда в статистике предполагалось, что все оперативники будут во фракции.

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

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

@volas volas merged commit 10ecc95 into TauCetiStation:master Dec 12, 2023
TauKitty added a commit to TauCetiStation/ClassicChangelog that referenced this pull request Dec 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants