Skip to content

Commit

Permalink
Merge branch 'master' into Greytide-Virus-Event
Browse files Browse the repository at this point in the history
  • Loading branch information
sleepyyapril authored Dec 1, 2024
2 parents 6dfdaf4 + b05ab8e commit 67ed36b
Show file tree
Hide file tree
Showing 171 changed files with 3,007 additions and 115 deletions.
8 changes: 4 additions & 4 deletions Content.Client/Lobby/UI/LoadoutPreferenceSelector.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -148,21 +148,21 @@ public LoadoutPreferenceSelector(LoadoutPrototype loadout, JobPrototype highJob,

// Manage the info button
void UpdateGuidebook() => GuidebookButton.Visible =
prototypeManager.HasIndex<GuideEntryPrototype>(DefaultLoadoutInfoGuidebook + Loadout.ID);
prototypeManager.HasIndex<GuideEntryPrototype>(loadout.GuideEntry);
UpdateGuidebook();
prototypeManager.PrototypesReloaded += _ => UpdateGuidebook();

GuidebookButton.OnPressed += _ =>
{
if (!prototypeManager.TryIndex<GuideEntryPrototype>(DefaultLoadoutInfoGuidebook, out var guideRoot))
if (!prototypeManager.TryIndex<GuideEntryPrototype>(loadout.GuideEntry, out var guideRoot))
return;

var guidebookController = UserInterfaceManager.GetUIController<GuidebookUIController>();
//TODO: Don't close the guidebook if its already open, just go to the correct page
guidebookController.ToggleGuidebook(
new Dictionary<string, GuideEntry> { { DefaultLoadoutInfoGuidebook, guideRoot } },
new Dictionary<string, GuideEntry> { { loadout.GuideEntry, guideRoot } },
includeChildren: true,
selected: DefaultLoadoutInfoGuidebook + Loadout.ID);
selected: loadout.GuideEntry);
};

// Create a checkbox to get the loadout
Expand Down
60 changes: 23 additions & 37 deletions Content.Server/Mood/MoodSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,6 @@ public sealed class MoodSystem : EntitySystem
[Dependency] private readonly PopupSystem _popup = default!;
[Dependency] private readonly IConfigurationManager _config = default!;

#if RELEASE
// Disable Mood for tests, because of a stupid race condition where if it spawns an Urist McHarpy,
// the Harpy will choke during the test, creating a mood alert.
// And then cause a debug assert.
private bool _debugMode;
#else
private bool _debugMode = true;
#endif


public override void Initialize()
{
Expand All @@ -55,14 +46,12 @@ public override void Initialize()
SubscribeLocalEvent<MoodComponent, MoodRemoveEffectEvent>(OnRemoveEffect);
}

private void OnShutdown(EntityUid uid, MoodComponent component, ComponentShutdown args)
{
private void OnShutdown(EntityUid uid, MoodComponent component, ComponentShutdown args) =>
_alerts.ClearAlertCategory(uid, component.MoodCategory);
}

private void OnRemoveEffect(EntityUid uid, MoodComponent component, MoodRemoveEffectEvent args)
{
if (_debugMode)
if (!_config.GetCVar(CCVars.MoodEnabled))
return;

if (component.UncategorisedEffects.TryGetValue(args.EffectId, out _))
Expand All @@ -78,7 +67,7 @@ private void OnRemoveEffect(EntityUid uid, MoodComponent component, MoodRemoveEf

private void OnRefreshMoveSpeed(EntityUid uid, MoodComponent component, RefreshMovementSpeedModifiersEvent args)
{
if (_debugMode
if (!_config.GetCVar(CCVars.MoodEnabled)
|| component.CurrentMoodThreshold is > MoodThreshold.Meh and < MoodThreshold.Good or MoodThreshold.Dead
|| _jetpack.IsUserFlying(uid))
return;
Expand All @@ -101,7 +90,7 @@ private void OnRefreshMoveSpeed(EntityUid uid, MoodComponent component, RefreshM

private void OnMoodEffect(EntityUid uid, MoodComponent component, MoodEffectEvent args)
{
if (_debugMode
if (!_config.GetCVar(CCVars.MoodEnabled)
|| !_config.GetCVar(CCVars.MoodEnabled)
|| !_prototypeManager.TryIndex<MoodEffectPrototype>(args.EffectId, out var prototype) )
return;
Expand Down Expand Up @@ -210,7 +199,7 @@ private void ReplaceMood(EntityUid uid, string prototypeId)

private void OnMobStateChanged(EntityUid uid, MoodComponent component, MobStateChangedEvent args)
{
if (_debugMode)
if (!_config.GetCVar(CCVars.MoodEnabled))
return;

if (args.NewMobState == MobState.Dead && args.OldMobState != MobState.Dead)
Expand Down Expand Up @@ -249,7 +238,7 @@ private void RefreshMood(EntityUid uid, MoodComponent component)

private void OnInit(EntityUid uid, MoodComponent component, ComponentStartup args)
{
if (_debugMode)
if (!_config.GetCVar(CCVars.MoodEnabled))
return;

if (_config.GetCVar(CCVars.MoodModifiesThresholds)
Expand All @@ -274,15 +263,14 @@ private void SetMood(EntityUid uid, float amount, MoodComponent? component = nul

if (ev.Cancelled)
return;
else
{
uid = ev.Receiver;
amount = ev.MoodChangedAmount;
}

uid = ev.Receiver;
amount = ev.MoodChangedAmount;

var newMoodLevel = amount + neutral;
if (!force)
newMoodLevel = Math.Clamp(amount + neutral,
newMoodLevel = Math.Clamp(
amount + neutral,
component.MoodThresholds[MoodThreshold.Dead],
component.MoodThresholds[MoodThreshold.Perfect]);

Expand Down Expand Up @@ -355,7 +343,7 @@ private void SetCritThreshold(EntityUid uid, MoodComponent component, int modifi
{
1 => FixedPoint2.New(key.Value.Float() * component.IncreaseCritThreshold),
-1 => FixedPoint2.New(key.Value.Float() * component.DecreaseCritThreshold),
_ => component.CritThresholdBeforeModify
_ => component.CritThresholdBeforeModify,
};

component.CritThresholdBeforeModify = key.Value;
Expand All @@ -378,15 +366,13 @@ private MoodThreshold GetMoodThreshold(MoodComponent component, float? moodLevel
return result;
}

private int GetMovementThreshold(MoodThreshold threshold)
{
return threshold switch
private int GetMovementThreshold(MoodThreshold threshold) =>
threshold switch
{
>= MoodThreshold.Good => 1,
<= MoodThreshold.Meh => -1,
_ => 0
_ => 0,
};
}

private void OnDamageChange(EntityUid uid, MoodComponent component, DamageChangedEvent args)
{
Expand All @@ -408,8 +394,7 @@ private void OnDamageChange(EntityUid uid, MoodComponent component, DamageChange
}
}

[UsedImplicitly]
[DataDefinition]
[UsedImplicitly, DataDefinition]
public sealed partial class ShowMoodEffects : IAlertClick
{
public void AlertClicked(EntityUid uid)
Expand All @@ -421,8 +406,7 @@ public void AlertClicked(EntityUid uid)

if (!entityManager.TryGetComponent<MoodComponent>(uid, out var comp)
|| comp.CurrentMoodThreshold == MoodThreshold.Dead
|| !playerManager.TryGetSessionByEntity(uid, out var session)
|| session == null)
|| !playerManager.TryGetSessionByEntity(uid, out var session))
return;

var msgStart = Loc.GetString("mood-show-effects-start");
Expand Down Expand Up @@ -450,15 +434,17 @@ public void AlertClicked(EntityUid uid)

private void SendDescToChat(MoodEffectPrototype proto, ICommonSession session)
{
if (session == null)
return;

var chatManager = IoCManager.Resolve<IChatManager>();

var color = (proto.MoodChange > 0) ? "#008000" : "#BA0000";
var msg = $"[font size=10][color={color}]{proto.Description}[/color][/font]";

chatManager.ChatMessageToOne(ChatChannel.Emotes, msg, msg, EntityUid.Invalid, false,
chatManager.ChatMessageToOne(
ChatChannel.Emotes,
msg,
msg,
EntityUid.Invalid,
false,
session.Channel);
}
}
4 changes: 4 additions & 0 deletions Content.Shared/CCVar/CCVars.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2693,7 +2693,11 @@ public static readonly CVarDef<float>
#region Mood System

public static readonly CVarDef<bool> MoodEnabled =
#if RELEASE
CVarDef.Create("mood.enabled", true, CVar.SERVER);
#else
CVarDef.Create("mood.enabled", false, CVar.SERVER);
#endif

public static readonly CVarDef<bool> MoodIncreasesSpeed =
CVarDef.Create("mood.increases_speed", true, CVar.SERVER);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
using Content.Shared.Clothing.Loadouts.Systems;
using Content.Shared.Customization.Systems;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List;

namespace Content.Shared.Clothing.Loadouts.Prototypes;

Expand Down Expand Up @@ -45,4 +42,7 @@ public sealed partial class LoadoutPrototype : IPrototype

[DataField]
public List<CharacterRequirement> Requirements = new();

[DataField]
public string GuideEntry { get; } = "";
}
5 changes: 3 additions & 2 deletions Content.Shared/Humanoid/Markings/MarkingsSet.cs
Original file line number Diff line number Diff line change
Expand Up @@ -283,8 +283,9 @@ public void EnsureDefault(Color? skinColor = null, Color? eyeColor = null, Marki
continue;
}

var index = 0;
while (points.Points > 0 || index < points.DefaultMarkings.Count)
var index = Markings.TryGetValue(category, out var markings) ? markings.Count : 0;

while (points.Points > 0 && index < points.DefaultMarkings.Count)
{
if (markingManager.Markings.TryGetValue(points.DefaultMarkings[index], out var prototype))
{
Expand Down
36 changes: 36 additions & 0 deletions Resources/Changelog/Changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8293,3 +8293,39 @@ Entries:
id: 6548
time: '2024-11-30T18:52:35.0000000+00:00'
url: https://github.com/Simple-Station/Einstein-Engines/pull/1297
- author: VMSolidus
changes:
- type: Add
message: Added a guidebook entry on Security Duty Weapons
- type: Add
message: >-
Added guidebook entries on various Corporations in lore, such as
Einstein Engines, Hephaestus Heavy Industries, etc.
- type: Add
message: Loadouts can now link to a specific guidebook entry via prototype ID.
id: 6549
time: '2024-12-01T03:27:05.0000000+00:00'
url: https://github.com/Simple-Station/Einstein-Engines/pull/1298
- author: Skubman
changes:
- type: Add
message: >-
80+ new markings have arrived, including earrings, makeup, bracelets,
and watches. Sashay over to Character Setup to personalize your
character like never before!
- type: Add
message: >-
The Arachne species can now select markings above the leg, including
cybernetics, makeup, tattoos, noses, earrings, heterochromia, bracelets,
gauze, and more!
- type: Tweak
message: >-
The available points for Head (Side), Left Hand, and Right Hand markings
have been increased for most species to support the new markings.
- type: Tweak
message: >-
The Nail Polish markings have been moved from the Overlay category to
the Left Hand and Right Hand categories.
id: 6550
time: '2024-12-01T10:41:50.0000000+00:00'
url: https://github.com/Simple-Station/Einstein-Engines/pull/1299
Loading

0 comments on commit 67ed36b

Please sign in to comment.