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

Множество мелких улучшений гранат, взрывов и всякого такого прочего. #12254

Conversation

DarthSidiousPalpatine
Copy link
Contributor

@DarthSidiousPalpatine DarthSidiousPalpatine commented Oct 12, 2023

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

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

Гранаты 60 на 60 калий-вода перестали взрывать пол. Буквально изменение 10% силы гранаты 60-60, так что всё ок
Гранаты заимели шрапнель. Вообще все гранаты. Можно в самодельную гранату сунуть шрапнель. В малую - 22 штуки, в большую - 42 штуки.
Появилась граната которая имеет только шрапнель. 3 штуки у бомбермена нюкеровского лежат.
Появилась граната которая кидает 5 боласов. Коробка лежит в бриге, по коробке роздано пиратскому ЕРТ.

Взрывы стали откидывать вещи. Чем ближе к эпицентру, чем сильнее взрыв - тем сильнее откидывает. Можно положить много предметов около взрыва и взрыв их откинет во врага. Например, шрапнелью так можно чуть ли не пригвоздить ко стене.

От шрапнели спасёт: лежание. Когда ты лежишь все предметы над тобой летят, всё хорошо. А также самоотверженный БЩ, который ляжет на гранату и впитает в себя её шрапнель, не всю, но очень много.

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

Хз, разнообразие. Плюс шрапнель гранатам, почему бы и нет.

Авторство

AndreyGysev.

Чеинжлог

🆑

  • rscadd: Гранаты получили шрапнель.
  • rscadd: Добавлена шрапнельная граната бомбермен набору нюкеров.
  • rscadd: Добавлена возможность положить шрапнель в крафтящуюся гранату.
  • tweak: Кусачками можно вырезать из листа металла шрапнель.
  • tweak: Взрывы стали отбрасывать объекты.
  • rscadd: Добавлен реагент порох, получаемый из патронов. Порох усиливает реакции взрыва.
  • tweak: Ослаблена реакция калий-вода ровно настолько чтобы при 60 на 60 концентрации не ломать пол до космоса.
  • rscadd: Добавлена механика самопожертвования, когда можно лечь на шрапнельную гранату и закрыть собой окружающих от шрапнели.

@TauKitty
Copy link
Contributor

Changelog status: ✔️

@TauKitty TauKitty added the Feature Новая фича label Oct 12, 2023
@Mercurialaste
Copy link
Contributor

@DarthSidiousPalpatine DarthSidiousPalpatine changed the title Добавил усиление гранат порохом из патронов. Добавил шрапнель крафтящимся гранатам. Добавил усиление гранат порохом из патронов. Добавил шрапнель гранатам. Добавил откидывание объектов взрывом на чём и работает шрапнель. Oct 13, 2023
@DarthSidiousPalpatine
Copy link
Contributor Author

Был пр на 3 файлика 10 строк, а стал пр на 28 файлов 178 строк.

@TauKitty
Copy link
Contributor

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

https://forum.taucetistation.org/t/fludilka-chast-2/28659/27745

@DarthSidiousPalpatine DarthSidiousPalpatine changed the title Добавил усиление гранат порохом из патронов. Добавил шрапнель гранатам. Добавил откидывание объектов взрывом на чём и работает шрапнель. Множество мелких улучшений гранат, взрывов и всякого такого прочего. Oct 13, 2023
@DarthSidiousPalpatine
Copy link
Contributor Author

Всё хорошо, но учитывая размер, пр теперь точно ещё не скоро рассмотрят, не то что замержат :dovolen:

if(!use_multi(user, resources_to_use))
return
new /obj/item/weapon/shard/shrapnel(user.loc)
else
Copy link
Contributor

Choose a reason for hiding this comment

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

можно сделать чуточку красивее

if()
   ...
  return
  
return ..()

@@ -236,6 +240,8 @@ SUBSYSTEM_DEF(explosions)
if(EXPLODE_LIGHT)
SSexplosions.lowturf += explode

SSexplosions.throwturf += list(list(explode, epicenter, severity))
Copy link
Contributor

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
Contributor

Choose a reason for hiding this comment

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

меня немного воротит от того что эпицент хранится для кучи разных турфов при том что он всего один. почему нельзя откидывать предметы в ex_act?

@arygal
Copy link
Contributor

arygal commented Oct 14, 2023

Мб стингеры сбухам с rubber bullet вместо шрапнели?

@DarthSidiousPalpatine
Copy link
Contributor Author

В 4 раза уменьшил порох добываемый с патронов, потому что патронов полно.

@DarthSidiousPalpatine
Copy link
Contributor Author

Мб стингеры сбухам с rubber bullet вместо шрапнели?

Это интересно, но я хз если кинуть руббер буллет то она застанит?)))

@DarthSidiousPalpatine
Copy link
Contributor Author

Мб стингеры сбухам с rubber bullet вместо шрапнели?

Добавил гранату с боласами :dovolen:
Оказалось, только они у нас кидаются и станят. Хз.

@@ -261,6 +263,7 @@
item_state_base = "shrapnel"
desc = "A bunch of tiny bits of shattered metal."
on_step_sound = 'sound/effects/metalstep.ogg'
throwforce = 20
Copy link
Member

Choose a reason for hiding this comment

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

throwforce слишком большой (и определен дважды, выше еще один), чтоб не копипастить сошлюсь на старое похожее обсуждение #9473 (comment)

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

При дальности прокида 1 это не поабузить нормально, хз

Copy link
Member

Choose a reason for hiding this comment

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

дальность прокида может изменяться в зависимости от обстоятельств: гравитация, разгермы, какие-нибудь гравипушки, мусоропровод и все что угодно, вызывающее throw_at() с кастомными скоростью и расстоянием. throwforce это единственный параметр, связанный с самим объектом, так сказать базовый дамаг.

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.

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Не, я посмотрел - для мобов тоже не делает. Я теперь крч считаю throwmomentum из w_class и скорости * файнтюн_дефайн

Copy link
Member

Choose a reason for hiding this comment

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

/mob/living/hitby()
	var/throw_damage = O.throwforce * (AM.fly_speed / 5)

fly_speed тут идет из датума, где считается как раз из скорости и расстояния

Copy link
Member

Choose a reason for hiding this comment

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

w_class не надо включать, throwforce это оно и есть отчасти.

Comment on lines 43 to 44
for(var/i in 1 to get_amount())
new shrapnel_type(loc)
Copy link
Member

Choose a reason for hiding this comment

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

спавн 50 объектов с уничтожения полного стака не стоит делать ради производительности, да и есть ситуации, где это точно не требуется - если стак уничтожило нюкой или сингулярностью и т.д., стоит подумать над этим моментом еще.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Я могу с шансом прост их спавнить, хз. Шанс 20% на спавн с листа одной шрапнельки.

@@ -19,6 +19,7 @@
origin_tech = "materials=1"
var/created_window = /obj/structure/window/thin
required_skills = list(/datum/skill/construction = SKILL_LEVEL_NOVICE)
shrapnel_type = /obj/item/weapon/shard
Copy link
Member

Choose a reason for hiding this comment

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

можешь еще тайп в
/obj/item/stack/sheet/glass/after_throw
и
/obj/item/stack/sheet/rglass/after_throw

закинуть вместо текущего хардкода спавна осколков

не знаю, есть ли у других стеков такой механ

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Тут не понял. Мне нужен был один механ для всех видов стаков. Чтобы и стекло и фороновое стекло и усиленное стекло и металл и слитки и пласталь и провода и роды и плитки пола и стеклянные плитки пола - давали осколки.

@@ -236,6 +240,8 @@ SUBSYSTEM_DEF(explosions)
if(EXPLODE_LIGHT)
SSexplosions.lowturf += explode

SSexplosions.throwturf += list(list(explode, epicenter, severity))
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.

У них там кринж, я сделаю лучше. Сейчас сделаю учитывание нескольких взрывов. И оно будет круче!
:)

Comment on lines +495 to +505
if(epicentered)
//Self-sacrifice mechanics
var/covered = FALSE
for(var/atom/movable/Cover in epicenter.contents)
if(ishuman(Cover) && prob(50))
var/mob/living/carbon/human/H = Cover
if(!H.lying)
continue
opposite_to_epicenter = Cover
covered = TRUE
break
Copy link
Member

Choose a reason for hiding this comment

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

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

@DarthSidiousPalpatine
Copy link
Contributor Author

Не мержим крч, ща сделаю пр с проставлением всем объектам в билде их массы :dovolen:

@volas volas requested a review from a team October 24, 2023 06:28
@volas volas marked this pull request as draft October 26, 2023 02:19
Copy link

github-actions bot commented Nov 9, 2023

Данный ПР автоматически отмечен как застоявшийся по причине длительного отсутствия обновлений. Он будет закрыт через 7 дней, если никакой активности не будет проявлено. Если вы считаете, что ПР еще актуален, или что я (злобный робот) пристаю к вам зря - просто напишите любой комментарий. Спасибо за ваш вклад.

Copy link

ПР закрыт из-за длительного отсуствия активности. Для переоткрытия ПРа, пожалуйста, обратитесь к кому-либо из мейнтейнеров. Вы можете призвать их в комментарии слапнув @TauCetiStation/maintainers.

@github-actions github-actions bot closed this Nov 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Новая фича Stalled PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants