From b70452f7971663d58d8db7486b5b13da2ebbc84c Mon Sep 17 00:00:00 2001 From: William Lemon Date: Mon, 13 Oct 2025 19:31:06 +1100 Subject: [PATCH] Unapologetic Diona Buffs (#4502) * Unapologetic Diona Buffs * Corrected misinformation * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * 40% slowdown resist * Pew * Pew pew * Wording fix * I forgor * crying emoji * types vs groups D: --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- Content.Shared/Rootable/SharedRootableSystem.cs | 3 +++ .../_DV/Light/SharedLightReactiveSystem.cs | 5 +++-- .../Prototypes/Entities/Mobs/NPCs/animals.yml | 15 +++++++++++++++ .../Prototypes/Entities/Mobs/Species/diona.yml | 15 +++++++++++++++ .../Structures/Wallmounts/Signs/bar_signs.yml | 10 ++++++++++ Resources/ServerInfo/Guidebook/Mobs/Diona.xml | 9 +++++++-- 6 files changed, 53 insertions(+), 4 deletions(-) diff --git a/Content.Shared/Rootable/SharedRootableSystem.cs b/Content.Shared/Rootable/SharedRootableSystem.cs index f4eb7aa1bd..e969d7a05f 100644 --- a/Content.Shared/Rootable/SharedRootableSystem.cs +++ b/Content.Shared/Rootable/SharedRootableSystem.cs @@ -15,6 +15,7 @@ using Robust.Shared.Physics.Components; using Robust.Shared.Physics.Events; using Robust.Shared.Physics.Systems; using Robust.Shared.Timing; +using Content.Shared.Atmos.Components; // DeltaV namespace Content.Shared.Rootable; @@ -88,6 +89,8 @@ public abstract class SharedRootableSystem : EntitySystem return false; entity.Comp.Rooted = !entity.Comp.Rooted; + if (TryComp(entity, out var moved)) // Delta-V - Prevent spacewind + moved.Enabled = !entity.Comp.Rooted; _movementSpeedModifier.RefreshMovementSpeedModifiers(entity); Dirty(entity); diff --git a/Content.Shared/_DV/Light/SharedLightReactiveSystem.cs b/Content.Shared/_DV/Light/SharedLightReactiveSystem.cs index 3e42402902..451eebb4f9 100644 --- a/Content.Shared/_DV/Light/SharedLightReactiveSystem.cs +++ b/Content.Shared/_DV/Light/SharedLightReactiveSystem.cs @@ -27,12 +27,13 @@ public abstract class SharedLightReactiveSystem : EntitySystem public override void Update(float frameTime) { - var query = EntityQueryEnumerator(); while (query.MoveNext(out var uid, out var comp)) { + if (comp.Manual) + continue; // Don't auto update if it's manual if (_timing.CurTime < comp.NextUpdate) - return; + continue; comp.NextUpdate = _timing.CurTime + TimeSpan.FromSeconds(1); if (_mobState.IsDead(uid) && comp.OnlyWhileAlive) continue; // Don't apply damage / healing if the mob is dead diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 75db27f222..ffb51d9d01 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -3676,6 +3676,21 @@ reformTime: 10 popupText: diona-reform-attempt reformPrototype: MobDionaReformed + - type: LightReactive # DeltaV + manual: true + - type: LightLevelHealth # DeltaV + darkThreshold: 0.4 + lightThreshold: 1.2 + darkDamage: + groups: + Burn: 1.0 + lightDamage: + groups: + Brute: -0.1 + Burn: -0.1 + Toxin: -0.1 + Airloss: -0.1 + darkMovementSpeedMultiplier: 0.7 - type: entity parent: MobDionaNymph diff --git a/Resources/Prototypes/Entities/Mobs/Species/diona.yml b/Resources/Prototypes/Entities/Mobs/Species/diona.yml index e0e8f8c843..4d801e7456 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/diona.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/diona.yml @@ -120,6 +120,21 @@ baseSprintSpeed: 3.0 - type: FTLKnockdownImmune # Frontier - type: Rootable + - type: LightReactive # DeltaV + manual: true + - type: LightLevelHealth # DeltaV + darkThreshold: 0.4 + lightThreshold: 1.2 + darkDamage: + groups: + Burn: 1.0 + lightDamage: + groups: + Brute: -0.1 + Burn: -0.1 + Toxin: -0.1 + Airloss: -0.1 + darkMovementSpeedMultiplier: 0.7 - type: entity parent: BaseSpeciesDummy diff --git a/Resources/Prototypes/_DV/Entities/Structures/Wallmounts/Signs/bar_signs.yml b/Resources/Prototypes/_DV/Entities/Structures/Wallmounts/Signs/bar_signs.yml index 23786dfb9a..bc71edb657 100644 --- a/Resources/Prototypes/_DV/Entities/Structures/Wallmounts/Signs/bar_signs.yml +++ b/Resources/Prototypes/_DV/Entities/Structures/Wallmounts/Signs/bar_signs.yml @@ -6,3 +6,13 @@ components: - type: BarSign current: KlubSkub + +- type: entity + categories: [ HideSpawnMenu ] + id: BarSignTheSunFake + name: The Sun + description: Ironically bright for such a shady bar. + components: + - type: Sprite + sprite: Structures/Wallmounts/barsign.rsi + state: thesun diff --git a/Resources/ServerInfo/Guidebook/Mobs/Diona.xml b/Resources/ServerInfo/Guidebook/Mobs/Diona.xml index 97c6be682b..4e9947a14e 100644 --- a/Resources/ServerInfo/Guidebook/Mobs/Diona.xml +++ b/Resources/ServerInfo/Guidebook/Mobs/Diona.xml @@ -12,8 +12,8 @@ They take [color=#1e90ff]40% less Blunt damage, 40% less pierce damage and 30% less Slash damage[/color]; but [color=#ffa500]50% more Heat damage, 20% more Shock damage, and they can easily - catch on fire when receiving enough Heat damage from *any* source. - Due to their sturdiness, Diona also sprint 33% slower and walk 60% slower.[/color] + catch on fire when receiving enough Heat damage from *any* source[/color], + Due to their sturdiness, Diona also [color=#ffa500]sprint 33% slower and walk 60% slower[/color]. ## Make Like A Tree And Leave @@ -35,5 +35,10 @@ After 10 minutes, a Nymph can reform into a whole Diona. This will be a new randomised body with a random name, and there will be little to no evidence beyond their word about who they were before. + ## Praise the Sun + + + + Diona are photosynthetic, and will slowly [color=#1e90ff]heal 6% brute, burn, toxin, and airloss damage per minute[/color] when in direct sunlight. However, in pitch darkness they'll suffer [color=#ffa500]1% burn damage per second and a 30% movement speed penalty[/color].