diff --git a/Content.Shared/Light/Components/LightCycleComponent.cs b/Content.Shared/Light/Components/LightCycleComponent.cs
index a6ce63bdbc..9389eb5788 100644
--- a/Content.Shared/Light/Components/LightCycleComponent.cs
+++ b/Content.Shared/Light/Components/LightCycleComponent.cs
@@ -34,7 +34,7 @@ public sealed partial class LightCycleComponent : Component
/// Trench of the oscillation.
///
[DataField, AutoNetworkedField]
- public float MinLightLevel = 0f;
+ public float MinLightLevel = 0.3f; //CP14 increase from 0 to 0.3
///
/// Peak of the oscillation
diff --git a/Content.Shared/Light/Components/SunShadowCycleComponent.cs b/Content.Shared/Light/Components/SunShadowCycleComponent.cs
index f8d39da850..a57ed4c137 100644
--- a/Content.Shared/Light/Components/SunShadowCycleComponent.cs
+++ b/Content.Shared/Light/Components/SunShadowCycleComponent.cs
@@ -26,12 +26,12 @@ public sealed partial class SunShadowCycleComponent : Component
/// Time to have each direction applied. Will lerp from the current value to the next one.
///
[DataField, AutoNetworkedField]
- public List Directions = new()
+ public List Directions = new() //CP14 replaced vectors
{
- new SunShadowCycleDirection(0f, new Vector2(0f, 3f), 0f),
- new SunShadowCycleDirection(0.25f, new Vector2(-3f, -0.1f), 0.5f),
- new SunShadowCycleDirection(0.5f, new Vector2(0f, -3f), 0.8f),
- new SunShadowCycleDirection(0.75f, new Vector2(3f, -0.1f), 0.5f),
+ new SunShadowCycleDirection(0f, new Vector2(0.1f, 3f), 0f),
+ new SunShadowCycleDirection(0.25f,new Vector2(3f, 0f), 0.5f),
+ new SunShadowCycleDirection(0.5f, new Vector2(-0.1f,-3f), 0.8f),
+ new SunShadowCycleDirection(0.75f,new Vector2(-3f, 0f), 0.5f),
};
};
diff --git a/Content.Shared/Light/EntitySystems/SharedLightCycleSystem.cs b/Content.Shared/Light/EntitySystems/SharedLightCycleSystem.cs
index 3bd0d5b5fb..2a467b7197 100644
--- a/Content.Shared/Light/EntitySystems/SharedLightCycleSystem.cs
+++ b/Content.Shared/Light/EntitySystems/SharedLightCycleSystem.cs
@@ -124,7 +124,9 @@ public abstract class SharedLightCycleSystem : EntitySystem
float exponent,
float phase = 0)
{
- var sen = MathF.Pow(MathF.Sin((MathF.PI * (phase + x)) / waveLength), exponent);
+ //var sen = MathF.Pow(MathF.Sin((MathF.PI * (phase + x)) / waveLength), exponent);
+ var sen = MathF.Pow(MathF.Cos((MathF.PI * (phase + x)) / waveLength), exponent); //CP14 edited light curve calculation
+
return (crest - shift) * sen + shift;
}
}
diff --git a/Content.Shared/_CP14/DayCycle/CP14DayCycleSystem.cs b/Content.Shared/_CP14/DayCycle/CP14DayCycleSystem.cs
index 8a6f3ac168..75c32faa0b 100644
--- a/Content.Shared/_CP14/DayCycle/CP14DayCycleSystem.cs
+++ b/Content.Shared/_CP14/DayCycle/CP14DayCycleSystem.cs
@@ -2,6 +2,9 @@ using Content.Shared.GameTicking;
using Content.Shared.Light.Components;
using Content.Shared.Storage.Components;
using Content.Shared.Weather;
+using Robust.Client.GameObjects;
+using Robust.Client.Player;
+using Robust.Shared.Console;
using Robust.Shared.Map;
using Robust.Shared.Map.Components;
using Robust.Shared.Timing;
@@ -83,14 +86,13 @@ public sealed class CP14DayCycleSystem : EntitySystem
.TotalSeconds;
var normalizedTime = time % map.Comp.Duration.TotalSeconds;
- var lightLevel = Math.Sin((normalizedTime / map.Comp.Duration.TotalSeconds) * MathF.PI);
+ var lightLevel = 1 - Math.Sin((normalizedTime / map.Comp.Duration.TotalSeconds) * MathF.PI);
return (float)lightLevel;
}
public bool IsDayNow(Entity map)
{
- var lightLevel = GetLightLevel(map);
- return lightLevel >= 0.5;
+ return GetLightLevel(map) >= 0.4;
}
///
@@ -134,3 +136,36 @@ public sealed class CP14StartDayEvent(EntityUid map) : EntityEventArgs
{
public EntityUid Map = map;
}
+
+internal sealed class CheckLightLevel : LocalizedCommands
+{
+ [Dependency] private readonly IEntitySystemManager _entityManager = default!;
+
+ public override string Command => "cp14_check_light";
+
+ public override string Help => "Checks the light level of the map you are on.";
+
+ public override void Execute(IConsoleShell shell, string argStr, string[] args)
+ {
+ var entity = shell.Player?.AttachedEntity;
+
+ if (entity is null)
+ {
+ shell.WriteLine("You don't have an attached entity.");
+ return;
+ }
+
+ var transformSys = _entityManager.GetEntitySystem();
+
+ var map = transformSys.GetMap(entity.Value);
+
+ if (map is null)
+ {
+ shell.WriteLine("You are not on a map.");
+ return;
+ }
+
+ var dayCycle = _entityManager.GetEntitySystem();
+ shell.WriteLine("Current light level: " + dayCycle.GetLightLevel(map.Value));
+ }
+}
diff --git a/Content.Shared/_CP14/Random/Rules/IsDaylight.cs b/Content.Shared/_CP14/Random/Rules/CP14IsNight.cs
similarity index 94%
rename from Content.Shared/_CP14/Random/Rules/IsDaylight.cs
rename to Content.Shared/_CP14/Random/Rules/CP14IsNight.cs
index 3ad869d0f5..32a7870790 100644
--- a/Content.Shared/_CP14/Random/Rules/IsDaylight.cs
+++ b/Content.Shared/_CP14/Random/Rules/CP14IsNight.cs
@@ -20,6 +20,6 @@ public sealed partial class CP14IsNight : RulesRule
var isDay = dayCycle.IsDayNow(map.Value);
- return Inverted ? !isDay : isDay;
+ return Inverted ? isDay : !isDay;
}
}
diff --git a/Resources/Maps/_CP14/venicialis.yml b/Resources/Maps/_CP14/venicialis.yml
index fdce828959..a8117a51b7 100644
--- a/Resources/Maps/_CP14/venicialis.yml
+++ b/Resources/Maps/_CP14/venicialis.yml
@@ -332,7 +332,7 @@ entities:
- type: GridPathfinding
- type: CP14CloudShadows
- type: MapLight
- ambientLightColor: '#D8B059FF'
+ ambientLightColor: "#7bc2e0"
- type: Gravity
gravityShakeSound: !type:SoundPathSpecifier
path: /Audio/Effects/alert.ogg
diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/MapLight/mapLight.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/MapLight/mapLight.yml
index 64db984351..66ac4e2c39 100644
--- a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/MapLight/mapLight.yml
+++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/MapLight/mapLight.yml
@@ -88,6 +88,8 @@
components:
- type: LightCycle
originalColor: "#7bc2e0"
+ - type: MapLight
+ ambientLightColor: "#7bc2e0"
- type: cp14LocationModifier
id: MapLightCycleHot
@@ -102,6 +104,8 @@
components:
- type: LightCycle
originalColor: "#ff8929"
+ - type: MapLight
+ ambientLightColor: "#ff8929"
- type: cp14LocationModifier
id: MapLightCycleHot2
@@ -116,4 +120,6 @@
components:
- type: LightCycle
originalColor: "#d68787"
+ - type: MapLight
+ ambientLightColor: "#d68787"