From f31d74c046bb5452c8d58d1672b20ea0cd85d32a Mon Sep 17 00:00:00 2001 From: Verm <32827189+vermidia@users.noreply.github.com> Date: Wed, 11 Sep 2024 05:12:08 +0300 Subject: [PATCH] Fixes Borgs and Syndicats getting hurt by glass shards and other things + honkbot slipping 2 (#31011) * Lets do this again * I noticed this way to late --- ...thingRequiredStepTriggerImmuneComponent.cs | 16 -- ....cs => PreventableStepTriggerComponent.cs} | 4 +- .../ProtectedFromStepTriggersComponent.cs | 23 +++ .../Components/StepTriggerComponent.cs | 2 +- .../Components/StepTriggerImmuneComponent.cs | 25 --- .../Prototypes/StepTriggerGroup.cs | 4 +- .../Systems/StepTriggerImmuneSystem.cs | 23 +-- .../StepTrigger/Systems/StepTriggerSystem.cs | 13 +- .../Entities/Clothing/OuterClothing/armor.yml | 10 +- .../OuterClothing/base_clothingouter.yml | 4 +- .../Entities/Clothing/OuterClothing/suits.yml | 14 +- .../Clothing/Shoes/base_clothingshoes.yml | 2 +- .../Uniforms/base_clothinguniforms.yml | 2 +- .../Mobs/Cyborgs/base_borg_chassis.yml | 2 +- .../Prototypes/Entities/Mobs/NPCs/animals.yml | 6 +- .../Entities/Mobs/NPCs/elemental.yml | 179 +++++++++--------- .../Prototypes/Entities/Mobs/NPCs/silicon.yml | 2 +- .../Prototypes/Entities/Mobs/Player/ipc.yml | 2 +- .../Entities/Mobs/Species/arachne.yml | 2 +- .../Entities/Mobs/Species/diona.yml | 2 +- .../Entities/Mobs/Species/harpy.yml | 2 +- .../Entities/Objects/Devices/mousetrap.yml | 2 +- .../Prototypes/Entities/Objects/Fun/dice.yml | 2 +- .../Entities/Objects/Materials/shards.yml | 2 +- .../Entities/Mobs/Species/felinid.yml | 36 ++-- Resources/Prototypes/Traits/skills.yml | 2 +- .../_EE/Entities/Mobs/Species/tajaran.yml | 2 +- .../_Imp/_Drone/Mobs_Player_silicon.yml | 4 +- .../_Shitmed/Body/Parts/cybernetic.yml | 4 +- 29 files changed, 182 insertions(+), 211 deletions(-) delete mode 100644 Content.Shared/StepTrigger/Components/ClothingRequiredStepTriggerImmuneComponent.cs rename Content.Shared/StepTrigger/Components/{ClothingRequiredStepTriggerComponent.cs => PreventableStepTriggerComponent.cs} (61%) create mode 100644 Content.Shared/StepTrigger/Components/ProtectedFromStepTriggersComponent.cs delete mode 100644 Content.Shared/StepTrigger/Components/StepTriggerImmuneComponent.cs diff --git a/Content.Shared/StepTrigger/Components/ClothingRequiredStepTriggerImmuneComponent.cs b/Content.Shared/StepTrigger/Components/ClothingRequiredStepTriggerImmuneComponent.cs deleted file mode 100644 index dc76207828..0000000000 --- a/Content.Shared/StepTrigger/Components/ClothingRequiredStepTriggerImmuneComponent.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Content.Shared.Inventory; -using Content.Shared.StepTrigger.Systems; -using Robust.Shared.GameStates; - -namespace Content.Shared.StepTrigger.Components; - -/// -/// This is used for cancelling step trigger events if the user is wearing clothing in a valid slot. -/// -[RegisterComponent, NetworkedComponent] -[Access(typeof(StepTriggerImmuneSystem))] -public sealed partial class ClothingRequiredStepTriggerImmuneComponent : Component, IClothingSlots -{ - [DataField] - public SlotFlags Slots { get; set; } = SlotFlags.FEET; -} diff --git a/Content.Shared/StepTrigger/Components/ClothingRequiredStepTriggerComponent.cs b/Content.Shared/StepTrigger/Components/PreventableStepTriggerComponent.cs similarity index 61% rename from Content.Shared/StepTrigger/Components/ClothingRequiredStepTriggerComponent.cs rename to Content.Shared/StepTrigger/Components/PreventableStepTriggerComponent.cs index 9efd78d082..166d4ae46a 100644 --- a/Content.Shared/StepTrigger/Components/ClothingRequiredStepTriggerComponent.cs +++ b/Content.Shared/StepTrigger/Components/PreventableStepTriggerComponent.cs @@ -4,7 +4,7 @@ using Robust.Shared.GameStates; namespace Content.Shared.StepTrigger.Components; /// -/// This is used for marking step trigger events that require the user to wear shoes, such as for glass shards. +/// This is used for marking step trigger events that require the user to wear shoes or have protection of some sort, such as for glass shards. /// [RegisterComponent, NetworkedComponent] -public sealed partial class ClothingRequiredStepTriggerComponent : Component; +public sealed partial class PreventableStepTriggerComponent : Component; diff --git a/Content.Shared/StepTrigger/Components/ProtectedFromStepTriggersComponent.cs b/Content.Shared/StepTrigger/Components/ProtectedFromStepTriggersComponent.cs new file mode 100644 index 0000000000..806a367698 --- /dev/null +++ b/Content.Shared/StepTrigger/Components/ProtectedFromStepTriggersComponent.cs @@ -0,0 +1,23 @@ +using Content.Shared.Inventory; +using Content.Shared.StepTrigger.Prototypes; +using Content.Shared.StepTrigger.Systems; +using Robust.Shared.GameStates; + +namespace Content.Shared.StepTrigger.Components; + +/// +/// This is used for cancelling preventable step trigger events if the user is wearing clothing in a valid slot or if the user itself has the component. +/// +[RegisterComponent, NetworkedComponent] +[Access(typeof(StepTriggerImmuneSystem))] +public sealed partial class ProtectedFromStepTriggersComponent : Component, IClothingSlots +{ + [DataField] + public SlotFlags Slots { get; set; } = SlotFlags.FEET; + + /// + /// WhiteList of immunity step triggers. + /// + [DataField] + public StepTriggerGroup? Whitelist; +} diff --git a/Content.Shared/StepTrigger/Components/StepTriggerComponent.cs b/Content.Shared/StepTrigger/Components/StepTriggerComponent.cs index d12c2c983e..0b904bec4a 100644 --- a/Content.Shared/StepTrigger/Components/StepTriggerComponent.cs +++ b/Content.Shared/StepTrigger/Components/StepTriggerComponent.cs @@ -6,7 +6,7 @@ using Robust.Shared.GameStates; namespace Content.Shared.StepTrigger.Components; [RegisterComponent, NetworkedComponent, AutoGenerateComponentState(true)] -[Access(typeof(StepTriggerSystem))] +[Access(typeof(StepTriggerSystem), typeof(StepTriggerImmuneSystem))] public sealed partial class StepTriggerComponent : Component { /// diff --git a/Content.Shared/StepTrigger/Components/StepTriggerImmuneComponent.cs b/Content.Shared/StepTrigger/Components/StepTriggerImmuneComponent.cs deleted file mode 100644 index 1b92905fa6..0000000000 --- a/Content.Shared/StepTrigger/Components/StepTriggerImmuneComponent.cs +++ /dev/null @@ -1,25 +0,0 @@ -using Content.Shared.StepTrigger.Prototypes; -using Content.Shared.StepTrigger.Systems; -using Robust.Shared.GameStates; - -namespace Content.Shared.StepTrigger.Components; - -/// -/// This component marks an entity as being immune to all step triggers. -/// For example, a Felinid or Harpy being so low density, that they don't set off landmines. -/// -/// -/// This is the "Earliest Possible Exit" method, and therefore isn't possible to un-cancel. -/// It will prevent ALL step trigger events from firing. Therefore there may sometimes be unintended consequences to this. -/// Consider using a subscription to StepTriggerAttemptEvent if you wish to be more selective. -/// -[RegisterComponent, NetworkedComponent] -[Access(typeof(StepTriggerSystem))] -public sealed partial class StepTriggerImmuneComponent : Component -{ - /// - /// WhiteList of immunity step triggers. - /// - [DataField] - public StepTriggerGroup? Whitelist; -} diff --git a/Content.Shared/StepTrigger/Prototypes/StepTriggerGroup.cs b/Content.Shared/StepTrigger/Prototypes/StepTriggerGroup.cs index 5b64085e9a..bebfda5c9f 100644 --- a/Content.Shared/StepTrigger/Prototypes/StepTriggerGroup.cs +++ b/Content.Shared/StepTrigger/Prototypes/StepTriggerGroup.cs @@ -60,9 +60,9 @@ public sealed partial class StepTriggerGroup /// /// Checks validation (if types of this StepTriggerGroup are similar to types of - /// another StepTriggerImmuneComponent. + /// another ProtectedFromStepTriggersComponent. /// - public bool IsValid(StepTriggerImmuneComponent component) + public bool IsValid(ProtectedFromStepTriggersComponent component) { if (component.Whitelist is null) return false; diff --git a/Content.Shared/StepTrigger/Systems/StepTriggerImmuneSystem.cs b/Content.Shared/StepTrigger/Systems/StepTriggerImmuneSystem.cs index ca72a20ae9..cce3186ac0 100644 --- a/Content.Shared/StepTrigger/Systems/StepTriggerImmuneSystem.cs +++ b/Content.Shared/StepTrigger/Systems/StepTriggerImmuneSystem.cs @@ -1,7 +1,6 @@ using Content.Shared.Examine; using Content.Shared.Inventory; using Content.Shared.StepTrigger.Components; -using Content.Shared.Tag; namespace Content.Shared.StepTrigger.Systems; @@ -12,25 +11,23 @@ public sealed class StepTriggerImmuneSystem : EntitySystem /// public override void Initialize() { - SubscribeLocalEvent(OnStepTriggerAttempt); - SubscribeLocalEvent(OnStepTriggerClothingAttempt); - SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnStepTriggerClothingAttempt); + SubscribeLocalEvent(OnExamined); } - private void OnStepTriggerAttempt(Entity ent, ref StepTriggerAttemptEvent args) + private void OnStepTriggerClothingAttempt(Entity ent, ref StepTriggerAttemptEvent args) { - args.Cancelled = true; - } + if (args.Source.Comp.TriggerGroups == null) + return; - private void OnStepTriggerClothingAttempt(EntityUid uid, ClothingRequiredStepTriggerComponent component, ref StepTriggerAttemptEvent args) - { - if (_inventory.TryGetInventoryEntity(args.Tripper, out _)) - { + if (TryComp(args.Tripper, out var protectedFromStepTriggers) + && !args.Source.Comp.TriggerGroups.IsValid(protectedFromStepTriggers) + || _inventory.TryGetInventoryEntity(args.Tripper, out var inventoryProtectedFromStepTriggers) + && !args.Source.Comp.TriggerGroups.IsValid(inventoryProtectedFromStepTriggers.Comp?.Whitelist)) args.Cancelled = true; - } } - private void OnExamined(EntityUid uid, ClothingRequiredStepTriggerComponent component, ExaminedEvent args) + private void OnExamined(EntityUid uid, PreventableStepTriggerComponent component, ExaminedEvent args) { args.PushMarkup(Loc.GetString("clothing-required-step-trigger-examine")); } diff --git a/Content.Shared/StepTrigger/Systems/StepTriggerSystem.cs b/Content.Shared/StepTrigger/Systems/StepTriggerSystem.cs index 6635e331b5..d2d6da91f0 100644 --- a/Content.Shared/StepTrigger/Systems/StepTriggerSystem.cs +++ b/Content.Shared/StepTrigger/Systems/StepTriggerSystem.cs @@ -125,14 +125,7 @@ public sealed class StepTriggerSystem : EntitySystem private bool CanTrigger(EntityUid uid, EntityUid otherUid, StepTriggerComponent component) { - if (!component.Active - || component.CurrentlySteppedOn.Contains(otherUid)) - return false; - - // Immunity checks - if (TryComp(otherUid, out var stepTriggerImmuneComponent) - && component.TriggerGroups != null - && component.TriggerGroups.IsValid(stepTriggerImmuneComponent)) + if (!component.Active || component.CurrentlySteppedOn.Contains(otherUid)) return false; // Can't trigger if we don't ignore weightless entities @@ -142,7 +135,7 @@ public sealed class StepTriggerSystem : EntitySystem (physics.BodyStatus == BodyStatus.InAir || _gravity.IsWeightless(otherUid, physics))) return false; - var msg = new StepTriggerAttemptEvent { Source = uid, Tripper = otherUid }; + var msg = new StepTriggerAttemptEvent { Source = (uid, component), Tripper = otherUid }; RaiseLocalEvent(uid, ref msg); return msg.Continue && !msg.Cancelled; @@ -226,7 +219,7 @@ public sealed class StepTriggerSystem : EntitySystem /// Allows for entities to end the steptrigger early via args.Cancelled. /// [ByRefEvent] -public record struct StepTriggerAttemptEvent(EntityUid Source, EntityUid Tripper, bool Continue, bool Cancelled); +public record struct StepTriggerAttemptEvent(Entity Source, EntityUid Tripper, bool Continue, bool Cancelled); /// /// Raised when an entity stands on a steptrigger initially (assuming it has both on and off states). diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/armor.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/armor.yml index e95cbcf30e..3aeaebd98f 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/armor.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/armor.yml @@ -252,7 +252,7 @@ Radiation: 0 Caustic: 0.75 - type: GroupExamine - - type: ClothingRequiredStepTriggerImmune + - type: ProtectedFromStepTriggers slots: WITHOUT_POCKET - type: Tag tags: @@ -278,7 +278,7 @@ Heat: 0.65 Caustic: 0.75 - type: GroupExamine - - type: ClothingRequiredStepTriggerImmune + - type: ProtectedFromStepTriggers slots: WITHOUT_POCKET - type: Tag tags: @@ -379,7 +379,7 @@ - type: ExplosionResistance damageCoefficient: 0.5 - type: GroupExamine - - type: ClothingRequiredStepTriggerImmune + - type: ProtectedFromStepTriggers slots: WITHOUT_POCKET - type: Tag tags: @@ -410,7 +410,7 @@ - type: Construction graph: BoneArmor node: armor - - type: ClothingRequiredStepTriggerImmune + - type: ProtectedFromStepTriggers slots: WITHOUT_POCKET - type: entity @@ -431,7 +431,7 @@ Piercing: 0.6 Heat: 0.5 - type: GroupExamine - - type: ClothingRequiredStepTriggerImmune + - type: ProtectedFromStepTriggers slots: WITHOUT_POCKET - type: entity diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml index 8d6c51918f..c427639daf 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml @@ -196,7 +196,7 @@ localSoundOnly: true - type: StaminaDamageResistance coefficient: 0.75 # 25% - - type: ClothingRequiredStepTriggerImmune + - type: ProtectedFromStepTriggers slots: WITHOUT_POCKET - type: DamageOnInteractProtection damageProtection: @@ -368,7 +368,7 @@ equipDelay: 1.25 # Softsuits are easier to put on and off unequipDelay: 1 clothingType: hardsuit # WD EDIT - - type: ClothingRequiredStepTriggerImmune + - type: ProtectedFromStepTriggers slots: WITHOUT_POCKET - type: DamageOnInteractProtection damageProtection: diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml index 433ed1a0cb..167da62b8a 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml @@ -28,7 +28,7 @@ - WhitelistChameleon - FullBodyOuter - HidesHarpyWings - - type: ClothingRequiredStepTriggerImmune + - type: ProtectedFromStepTriggers slots: WITHOUT_POCKET - type: entity @@ -83,7 +83,7 @@ sprintModifier: 0.7 - type: HeldSpeedModifier - type: GroupExamine - - type: ClothingRequiredStepTriggerImmune + - type: ProtectedFromStepTriggers slots: WITHOUT_POCKET - type: Tag tags: @@ -120,7 +120,7 @@ sprintModifier: 0.8 - type: HeldSpeedModifier - type: GroupExamine - - type: ClothingRequiredStepTriggerImmune + - type: ProtectedFromStepTriggers slots: WITHOUT_POCKET - type: Tag tags: @@ -151,7 +151,7 @@ - type: ContainerContainer containers: toggleable-clothing: !type:Container {} - - type: ClothingRequiredStepTriggerImmune + - type: ProtectedFromStepTriggers slots: WITHOUT_POCKET - type: Tag tags: @@ -232,7 +232,7 @@ - type: Clothing sprite: Clothing/OuterClothing/Suits/chicken.rsi clothingType: suit # WD EDIT - - type: ClothingRequiredStepTriggerImmune + - type: ProtectedFromStepTriggers slots: WITHOUT_POCKET - type: Tag tags: @@ -264,7 +264,7 @@ - type: ContainerContainer containers: toggleable-clothing: !type:Container {} - - type: ClothingRequiredStepTriggerImmune + - type: ProtectedFromStepTriggers slots: WITHOUT_POCKET - type: Tag tags: @@ -291,7 +291,7 @@ - type: Construction graph: ClothingOuterSuitIan node: suit - - type: ClothingRequiredStepTriggerImmune + - type: ProtectedFromStepTriggers slots: WITHOUT_POCKET - type: entity diff --git a/Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml b/Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml index 1906aa5e87..c18412bd18 100644 --- a/Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml +++ b/Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml @@ -23,7 +23,7 @@ tags: - ClothMade - WhitelistChameleon - - type: ClothingRequiredStepTriggerImmune + - type: ProtectedFromStepTriggers - type: Fixtures fixtures: fix1: diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml index 23ca666e9a..6ca15bda6e 100644 --- a/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml +++ b/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml @@ -202,7 +202,7 @@ tags: - WhitelistChameleon - PlasmamanSafe - - type: ClothingRequiredStepTriggerImmune + - type: ProtectedFromStepTriggers slots: WITHOUT_POCKET - type: GuideHelp # While the playerbase is getting introduced to Plasmamen, add their guidebook here guides: [ Plasmaman ] diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml index b3ae7261d5..0e38e5342e 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml @@ -242,7 +242,7 @@ guides: - Cyborgs - Robotics - - type: StepTriggerImmune + - type: ProtectedFromStepTriggers - type: DamageOnInteractProtection damageProtection: flatReductions: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index fd1a2e4989..e5be5a5d57 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -783,7 +783,7 @@ - Mouse - type: Body prototype: Squackroach - - type: StepTriggerImmune + - type: ProtectedFromStepTriggers whitelist: types: - Shard @@ -2036,7 +2036,7 @@ - type: FireVisuals sprite: Mobs/Effects/onfire.rsi normalState: Mouse_burning - - type: StepTriggerImmune + - type: ProtectedFromStepTriggers whitelist: types: - Landmine @@ -3399,7 +3399,7 @@ - DoorBumpOpener - type: MovementAlwaysTouching - type: PressureImmunity - - type: StepTriggerImmune + - type: ProtectedFromStepTriggers - type: Insulated - type: InteractionPopup successChance: 0.7 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml b/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml index 7fc32bd794..6abee031fc 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml @@ -46,8 +46,8 @@ - DoorBumpOpener - type: MobState allowedStates: - - Alive - - Dead + - Alive + - Dead - type: MobThresholds thresholds: 0: Alive @@ -72,8 +72,7 @@ - type: InputMover - type: MobMover - type: ZombieImmune - - type: ClothingRequiredStepTriggerImmune - slots: All + - type: ProtectedFromStepTriggers - type: Dispellable - type: Fauna # Lavaland Change @@ -101,17 +100,17 @@ baseSprintSpeed : 2.5 - type: NpcFactionMember factions: - - SimpleHostile + - SimpleHostile - type: Damageable damageContainer: StructuralInorganic - type: Psionic removable: false roller: false assayFeedback: - - orecrab-feedback + - orecrab-feedback - type: InnatePsionicPowers powersToAdd: - - TelepathyPower + - TelepathyPower - type: entity parent: MobOreCrab @@ -178,7 +177,7 @@ attackMemoryLength: 10 - type: NpcFactionMember factions: - - SimpleNeutral + - SimpleNeutral - type: RadiationSource intensity: 2 slope: 0.3 @@ -254,9 +253,9 @@ drawdepth: Mobs sprite: Mobs/Aliens/elemental.rsi layers: - - map: [ "enum.DamageStateVisualLayers.Base" ] - state: alive - color: "#75b1f0" + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#75b1f0" - type: PointLight radius: 2.0 energy: 3.5 @@ -298,9 +297,9 @@ Base: dead - type: Tag tags: - - FootstepSound - - CannotSuicide - - DoorBumpOpener + - FootstepSound + - CannotSuicide + - DoorBumpOpener - type: NoSlip - type: ZombieImmune - type: ExaminableSolution @@ -313,10 +312,10 @@ roller: false removable: false assayFeedback: - - reagent-slime-feedback + - reagent-slime-feedback - type: InnatePsionicPowers powersToAdd: - - TelepathyPower + - TelepathyPower - type: Fauna # Lavaland Change - type: entity @@ -324,41 +323,41 @@ id: ReagentSlimeSpawner parent: MarkerBase components: - - type: Sprite - layers: - - state: red - - sprite: Mobs/Aliens/elemental.rsi - state: alive - - type: RandomSpawner - prototypes: - - ReagentSlime - - ReagentSlimeBeer - - ReagentSlimePax - - ReagentSlimeNocturine - - ReagentSlimeTHC - - ReagentSlimeBicaridine - - ReagentSlimeToxin - - ReagentSlimeNapalm - - ReagentSlimeOmnizine - - ReagentSlimeMuteToxin - - ReagentSlimeNorepinephricAcid - - ReagentSlimeEphedrine - - ReagentSlimeRobustHarvest - - ReagentSlimeIchor - - ReagentSlimeBleach - - ReagentSlimeSoap - - ReagentSlimeSpacelube - - ReagentSlimeBuzzachloricbees - - ReagentSlimeWehjuice - - ReagentCognizine - - ReagentSlimeNecrosol - - ReagentSlimeSpaceDrugs - - ReagentSlimeUnstableMutagen - - ReagentSlimeLead - - ReagentSlimechlorinetriflouride - - ReagentSlimePotassium - - ReagentSlimeLotophagoiOil - chance: 1 + - type: Sprite + layers: + - state: red + - sprite: Mobs/Aliens/elemental.rsi + state: alive + - type: RandomSpawner + prototypes: + - ReagentSlime + - ReagentSlimeBeer + - ReagentSlimePax + - ReagentSlimeNocturine + - ReagentSlimeTHC + - ReagentSlimeBicaridine + - ReagentSlimeToxin + - ReagentSlimeNapalm + - ReagentSlimeOmnizine + - ReagentSlimeMuteToxin + - ReagentSlimeNorepinephricAcid + - ReagentSlimeEphedrine + - ReagentSlimeRobustHarvest + - ReagentSlimeIchor + - ReagentSlimeBleach + - ReagentSlimeSoap + - ReagentSlimeSpacelube + - ReagentSlimeBuzzachloricbees + - ReagentSlimeWehjuice + - ReagentCognizine + - ReagentSlimeNecrosol + - ReagentSlimeSpaceDrugs + - ReagentSlimeUnstableMutagen + - ReagentSlimeLead + - ReagentSlimechlorinetriflouride + - ReagentSlimePotassium + - ReagentSlimeLotophagoiOil + chance: 1 - type: entity id: ReagentSlimeBeer @@ -373,9 +372,9 @@ drawdepth: Mobs sprite: Mobs/Aliens/elemental.rsi layers: - - map: [ "enum.DamageStateVisualLayers.Base" ] - state: alive - color: "#cfa85f" + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#cfa85f" - type: entity id: ReagentSlimePax @@ -390,9 +389,9 @@ drawdepth: Mobs sprite: Mobs/Aliens/elemental.rsi layers: - - map: [ "enum.DamageStateVisualLayers.Base" ] - state: alive - color: "#AAAAAA" + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#AAAAAA" - type: MeleeChemicalInjector solution: bloodstream transferAmount: 1 @@ -410,9 +409,9 @@ drawdepth: Mobs sprite: Mobs/Aliens/elemental.rsi layers: - - map: [ "enum.DamageStateVisualLayers.Base" ] - state: alive - color: "#128e80" + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#128e80" - type: MeleeChemicalInjector solution: bloodstream transferAmount: 3 @@ -430,9 +429,9 @@ drawdepth: Mobs sprite: Mobs/Aliens/elemental.rsi layers: - - map: [ "enum.DamageStateVisualLayers.Base" ] - state: alive - color: "#808080" + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#808080" - type: entity id: ReagentSlimeBicaridine @@ -447,9 +446,9 @@ drawdepth: Mobs sprite: Mobs/Aliens/elemental.rsi layers: - - map: [ "enum.DamageStateVisualLayers.Base" ] - state: alive - color: "#ffaa00" + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#ffaa00" - type: entity id: ReagentSlimeToxin @@ -464,9 +463,9 @@ drawdepth: Mobs sprite: Mobs/Aliens/elemental.rsi layers: - - map: [ "enum.DamageStateVisualLayers.Base" ] - state: alive - color: "#cf3600" + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#cf3600" - type: entity id: ReagentSlimeNapalm @@ -481,9 +480,9 @@ drawdepth: Mobs sprite: Mobs/Aliens/elemental.rsi layers: - - map: [ "enum.DamageStateVisualLayers.Base" ] - state: alive - color: "#FA00AF" + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#FA00AF" - type: entity id: ReagentSlimeOmnizine @@ -498,9 +497,9 @@ drawdepth: Mobs sprite: Mobs/Aliens/elemental.rsi layers: - - map: [ "enum.DamageStateVisualLayers.Base" ] - state: alive - color: "#fcf7f9" + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#fcf7f9" - type: entity id: ReagentSlimeMuteToxin @@ -515,9 +514,9 @@ drawdepth: Mobs sprite: Mobs/Aliens/elemental.rsi layers: - - map: [ "enum.DamageStateVisualLayers.Base" ] - state: alive - color: "#0f0f0f" + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#0f0f0f" - type: entity id: ReagentSlimeNorepinephricAcid @@ -532,9 +531,9 @@ drawdepth: Mobs sprite: Mobs/Aliens/elemental.rsi layers: - - map: [ "enum.DamageStateVisualLayers.Base" ] - state: alive - color: "#96a8b5" + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#96a8b5" - type: entity id: ReagentSlimeEphedrine @@ -549,9 +548,9 @@ drawdepth: Mobs sprite: Mobs/Aliens/elemental.rsi layers: - - map: [ "enum.DamageStateVisualLayers.Base" ] - state: alive - color: "#D2FFFA" + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#D2FFFA" - type: entity id: ReagentSlimeRobustHarvest @@ -566,9 +565,9 @@ drawdepth: Mobs sprite: Mobs/Aliens/elemental.rsi layers: - - map: [ "enum.DamageStateVisualLayers.Base" ] - state: alive - color: "#3e901c" + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#3e901c" - type: entity id: ReagentSlimeLotophagoiOil @@ -583,9 +582,9 @@ drawdepth: Mobs sprite: Mobs/Aliens/elemental.rsi layers: - - map: [ "enum.DamageStateVisualLayers.Base" ] - state: alive - color: "#3e901c" + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: alive + color: "#3e901c" - type: GhostRole prob: 1 #it's significantly more psionic than the others description: ghost-role-information-angry-slimes-description diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml index 22afc6c859..ac20f9e42f 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml @@ -117,7 +117,7 @@ - type: TypingIndicator proto: robot - type: ZombieImmune - - type: StepTriggerImmune + - type: ProtectedFromStepTriggers - type: NoSlip - type: Insulated - type: LanguageKnowledge diff --git a/Resources/Prototypes/Entities/Mobs/Player/ipc.yml b/Resources/Prototypes/Entities/Mobs/Player/ipc.yml index 95456440df..fc036c4a93 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/ipc.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/ipc.yml @@ -113,7 +113,7 @@ - type: Carriable - type: StatusIcon bounds: -0.5,-0.5,0.5,0.5 - - type: StepTriggerImmune + - type: ProtectedFromStepTriggers whitelist: types: - Shard diff --git a/Resources/Prototypes/Entities/Mobs/Species/arachne.yml b/Resources/Prototypes/Entities/Mobs/Species/arachne.yml index aa0f2b3efb..78b7e7d107 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/arachne.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/arachne.yml @@ -118,7 +118,7 @@ - FootstepSound - DoorBumpOpener - SpiderCraft - - type: StepTriggerImmune + - type: ProtectedFromStepTriggers - type: Bloodstream bloodReagent: DemonsBlood bloodRegenerationThirst: 4 # 1 unit of demon's blood satiates 4 thirst diff --git a/Resources/Prototypes/Entities/Mobs/Species/diona.yml b/Resources/Prototypes/Entities/Mobs/Species/diona.yml index 8dea2a84d2..f053f51c8a 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/diona.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/diona.yml @@ -118,7 +118,7 @@ 60: 0.9 80: 0.75 - type: NoSlip - - type: StepTriggerImmune + - type: ProtectedFromStepTriggers whitelist: types: - Shard diff --git a/Resources/Prototypes/Entities/Mobs/Species/harpy.yml b/Resources/Prototypes/Entities/Mobs/Species/harpy.yml index ccd3dbb61d..4484877ba2 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/harpy.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/harpy.yml @@ -121,7 +121,7 @@ understands: - TauCetiBasic - ValyrianStandard - - type: StepTriggerImmune + - type: ProtectedFromStepTriggers whitelist: types: - Shard diff --git a/Resources/Prototypes/Entities/Objects/Devices/mousetrap.yml b/Resources/Prototypes/Entities/Objects/Devices/mousetrap.yml index 5db68b5582..622c6ba32c 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/mousetrap.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/mousetrap.yml @@ -18,7 +18,7 @@ - Mousetrap - type: Mousetrap - type: TriggerOnStepTrigger - - type: ClothingRequiredStepTrigger + - type: PreventableStepTrigger - type: DamageUserOnTrigger damage: types: diff --git a/Resources/Prototypes/Entities/Objects/Fun/dice.yml b/Resources/Prototypes/Entities/Objects/Fun/dice.yml index bca5ec7ab9..7c45a75544 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/dice.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/dice.yml @@ -124,7 +124,7 @@ - Shard intersectRatio: 0.2 - type: TriggerOnStepTrigger - - type: ClothingRequiredStepTrigger + - type: PreventableStepTrigger - type: Slippery slipSound: path: /Audio/Effects/glass_step.ogg diff --git a/Resources/Prototypes/Entities/Objects/Materials/shards.yml b/Resources/Prototypes/Entities/Objects/Materials/shards.yml index ae129c6568..5d057dda6c 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/shards.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/shards.yml @@ -73,7 +73,7 @@ types: - Shard intersectRatio: 0.2 - - type: ClothingRequiredStepTrigger + - type: PreventableStepTrigger - type: Slippery slipSound: path: /Audio/Effects/glass_step.ogg diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml index e43b415178..10263fd01d 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml @@ -27,8 +27,8 @@ damageModifierSet: Felinid - type: SlowOnDamage speedModifierThresholds: - 60: 0.75 # 0.7 is base speed. # WWDP who buffed these lol - 80: 0.55 # 0.5 is base speed. # WWDP reverted both back to same as humans + 60: 0.75 # 0.7 is base speed. - WD EDIT: 0.85 -> 0.75 + 80: 0.55 # 0.5 is base speed. - WD EDIT: 0.75 -> 0.55 - type: MeleeWeapon soundHit: collection: Punch @@ -37,9 +37,9 @@ types: Slash: 4 Piercing: 1 - # - type: DiseaseCarrier - # naturalImmunities: - # - OwOnavirus +# - type: DiseaseCarrier +# naturalImmunities: +# - OwOnavirus - type: Speech speechSounds: Alto - type: DamageOnHighSpeedImpact # Landing on all fours! @@ -54,9 +54,9 @@ - type: PseudoItem storedOffset: 0,17 shape: - - 0,0,1,4 - - 0,2,3,4 - - 4,0,5,4 + - 0,0,1,4 + - 0,2,3,4 + - 4,0,5,4 - type: Vocal wilhelm: "/Audio/Nyanotrasen/Voice/Felinid/cat_wilhelm.ogg" sounds: @@ -72,26 +72,26 @@ understands: - TauCetiBasic - Nekomimetic - #WWDP EDIT START - - type: Tag - tags: - - CanPilot - - FootstepSound - - DoorBumpOpener - - FelinidEmotes - #WWDP EDIT END - type: Thieving ignoreStripHidden: true stealth: Subtle stripTimeReduction: 0 stripTimeMultiplier: 0.667 - # - type: StepTriggerImmune # WWDP no free noslips/ignoring traps + # WD EDIT START + # - type: ProtectedFromStepTriggers # whitelist: # types: # - Shard # - Landmine # - Mousetrap # - SlipEntity + # WD EDIT END + - type: Tag + tags: + - CanPilot + - FootstepSound + - DoorBumpOpener + - FelinidEmotes - type: Inventory femaleDisplacements: jumpsuit: @@ -130,7 +130,7 @@ 32: sprite: _White/Mobs/Species/Human/displacement.rsi state: suit - # WD EDIT END + # WD EDIT END - type: entity save: false diff --git a/Resources/Prototypes/Traits/skills.yml b/Resources/Prototypes/Traits/skills.yml index 9b7497105c..1e31e6c04c 100644 --- a/Resources/Prototypes/Traits/skills.yml +++ b/Resources/Prototypes/Traits/skills.yml @@ -217,7 +217,7 @@ functions: - !type:TraitAddComponent components: - - type: StepTriggerImmune + - type: ProtectedFromStepTriggers whitelist: types: - Shard diff --git a/Resources/Prototypes/_EE/Entities/Mobs/Species/tajaran.yml b/Resources/Prototypes/_EE/Entities/Mobs/Species/tajaran.yml index 6fe8fc16b1..16a6a29f54 100644 --- a/Resources/Prototypes/_EE/Entities/Mobs/Species/tajaran.yml +++ b/Resources/Prototypes/_EE/Entities/Mobs/Species/tajaran.yml @@ -78,7 +78,7 @@ Unsexed: MaleFelinid - type: Felinid # real - type: NoShoesSilentFootsteps - - type: StepTriggerImmune + - type: ProtectedFromStepTriggers whitelist: types: - Shard diff --git a/Resources/Prototypes/_Imp/_Drone/Mobs_Player_silicon.yml b/Resources/Prototypes/_Imp/_Drone/Mobs_Player_silicon.yml index 80700a07be..adfaa74337 100644 --- a/Resources/Prototypes/_Imp/_Drone/Mobs_Player_silicon.yml +++ b/Resources/Prototypes/_Imp/_Drone/Mobs_Player_silicon.yml @@ -69,7 +69,7 @@ - type: Puller - type: StandingState - type: Alerts - - type: StepTriggerImmune + - type: ProtectedFromStepTriggers - type: Targeting # Shitmed Change - type: entity @@ -207,7 +207,7 @@ softness: 1 mask: /Textures/Effects/LightMasks/cone.png autoRot: true - - type: StepTriggerImmune + - type: ProtectedFromStepTriggers - type: InputMover - type: MobMover - type: ContentEye diff --git a/Resources/Prototypes/_Shitmed/Body/Parts/cybernetic.yml b/Resources/Prototypes/_Shitmed/Body/Parts/cybernetic.yml index a026217ce7..9fa0502632 100644 --- a/Resources/Prototypes/_Shitmed/Body/Parts/cybernetic.yml +++ b/Resources/Prototypes/_Shitmed/Body/Parts/cybernetic.yml @@ -157,7 +157,7 @@ sprintSpeed: 5.625 - type: BodyPart onAdd: - - type: StepTriggerImmune + - type: ProtectedFromStepTriggers whitelist: types: - Shard @@ -175,7 +175,7 @@ sprintSpeed: 5.625 - type: BodyPart onAdd: - - type: StepTriggerImmune + - type: ProtectedFromStepTriggers whitelist: types: - Shard