mirror of
https://github.com/WWhiteDreamProject/wwdpublic.git
synced 2026-04-26 01:57:51 +03:00
[Port] StepTriggerGroup From WhiteDream (#929)
# Description This is a port of https://github.com/WWhiteDreamProject/wwdpublic/pull/53 from White Dream. This PR improves the StepTriggerImmune component by making it operate on a more granular Blacklist system, such that StepTriggerImmune entities can further clarify via prototypes which kinds of floor traps they are immune to, such as landmines/mousetraps, and not have blanket immunity to everything. Because it turns out things like Lava and Soap also were caught by the immunity, when really we just wanted Harpies & Felinids to not trigger landmines. <details><summary><h1>Media</h1></summary> <p> > # Описание > Необходимо настроить модификатор урона, чтобы IPC не получали урон от осколков стекла. > > Иммунитет StepTriggerImmuneComponent доработан. Теперь имеются несколько типов (types): Lava - тип тайла, наступив на который появляется урон. Это собственно лава и LiquidPlasma Landmine - мины. Chasm - дырка в карте, куда можно провалиться Mousetrap - Мышеловка SlipTile - Все, что должно подскальзывать игроков, имеющее размер тайла SlipEntity - Все, что должно подскальзывать игроков, имеющее развер энтити. Разделено для баланса. Самые ловки могут игнорировать мелкие предметы (энтити), т.е. уворачиваться от них. Но большие по площади вещи (тайлы по типу разлитой воды, бананиума) просчитываются отдельно. > > # Изменения > * [x] Улучшить StepTriggerSystem (Immune) > * [x] Добавлены типы триггера. - Lava Landmine Shard Chasm Mousetrap SlipTile SlipEntity > * [x] Исправить осколки у IPC > * [x] Исправить отсутствие урона от лавы и падение в дыры у фелинидов и гарпий. > > 🆑 Hell_Cat > > * Feature: StepTriggerSystem is improved | Улучшена StepTriggerSystem > * fix: IPC: Immunity for shards and SpiderWeb | Иммунитет осколкам. > * fix: Felinid | Фелиниды : Immunity for Shard Landmine Mousetrap SlipEntities | Иммунитет для осколков, жидкости, мин, мышеловок, мыла и бананов. > * fix: Harpy | Гарпия : Immunity for Shards Landmine Mousetrap | Иммунитет для осколков, жидкости, мин и мышеловок. > * fix: Mice | Мыши : Don't blow up on landmines | Мыши не подрываются на минах. </p> </details> # Changelog 🆑 Hell_Cat Feature: StepTriggerSystem has been improved with new StepTriggerGroups. Additionally, the StepTriggerImmune component now allows declaring for specific StepTriggerGroups for a given entity to be immune to. Some examples may be, Felinids, Mice, and Harpies being unable to set off Landmines. --------- Signed-off-by: VMSolidus <evilexecutive@gmail.com> Co-authored-by: Ivan <126400932+HellCatten@users.noreply.github.com> Co-authored-by: FoxxoTrystan <45297731+FoxxoTrystan@users.noreply.github.com> # Conflicts: # Content.Shared/StepTrigger/Components/StepTriggerComponent.cs # Content.Shared/StepTrigger/Components/StepTriggerImmuneComponent.cs # Content.Shared/StepTrigger/Prototypes/StepTriggerGroup.cs # Content.Shared/StepTrigger/Prototypes/StepTriggerTypePrototype.cs # Content.Shared/StepTrigger/Systems/StepTriggerSystem.cs # Resources/Prototypes/Entities/Effects/chemistry_effects.yml # Resources/Prototypes/Entities/Mobs/NPCs/animals.yml # Resources/Prototypes/Entities/Mobs/Player/ipc.yml # Resources/Prototypes/Entities/Mobs/Species/harpy.yml # Resources/Prototypes/Entities/Objects/Devices/mousetrap.yml # Resources/Prototypes/Entities/Objects/Devices/pda.yml # Resources/Prototypes/Entities/Objects/Fun/dice.yml # Resources/Prototypes/Entities/Objects/Materials/shards.yml # Resources/Prototypes/Entities/Objects/Misc/land_mine.yml # Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml # Resources/Prototypes/Entities/Tiles/bananium.yml # Resources/Prototypes/Entities/Tiles/chasm.yml # Resources/Prototypes/Entities/Tiles/lava.yml # Resources/Prototypes/Entities/Tiles/liquid_plasma.yml # Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml # Resources/Prototypes/Traits/skills.yml
This commit is contained in:
@@ -4,7 +4,6 @@ using Robust.Shared.Map.Components;
|
||||
using Robust.Shared.Physics;
|
||||
using Robust.Shared.Physics.Components;
|
||||
using Robust.Shared.Physics.Events;
|
||||
using Enumerable = System.Linq.Enumerable;
|
||||
|
||||
namespace Content.Shared.StepTrigger.Systems;
|
||||
|
||||
@@ -119,7 +118,6 @@ public sealed class StepTriggerSystem : EntitySystem
|
||||
|
||||
private bool CanTrigger(EntityUid uid, EntityUid otherUid, StepTriggerComponent component)
|
||||
{
|
||||
// WD EDIT START
|
||||
if (!component.Active
|
||||
|| component.CurrentlySteppedOn.Contains(otherUid))
|
||||
return false;
|
||||
@@ -129,7 +127,6 @@ public sealed class StepTriggerSystem : EntitySystem
|
||||
&& component.TriggerGroups != null
|
||||
&& component.TriggerGroups.IsValid(stepTriggerImmuneComponent))
|
||||
return false;
|
||||
// WD EDIT END
|
||||
|
||||
// Can't trigger if we don't ignore weightless entities
|
||||
// and the entity is flying or currently weightless
|
||||
|
||||
Reference in New Issue
Block a user