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>
This commit is contained in:
William Lemon 2025-10-13 19:31:06 +11:00 committed by GitHub
parent 1271a43389
commit b70452f797
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 53 additions and 4 deletions

View File

@ -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<MovedByPressureComponent>(entity, out var moved)) // Delta-V - Prevent spacewind
moved.Enabled = !entity.Comp.Rooted;
_movementSpeedModifier.RefreshMovementSpeedModifiers(entity);
Dirty(entity);

View File

@ -27,12 +27,13 @@ public abstract class SharedLightReactiveSystem : EntitySystem
public override void Update(float frameTime)
{
var query = EntityQueryEnumerator<LightReactiveComponent>();
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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
<Box>
@ -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
<Box>
<GuideEntityEmbed Entity="BarSignTheSunFake" Caption=""/>
</Box>
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].
</Document>