Skip to content

Commit

Permalink
Merge branch 'master' into Lore-Documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
sleepyyapril authored Dec 1, 2024
2 parents 2a8bf58 + 9ef8252 commit 386fd77
Show file tree
Hide file tree
Showing 16 changed files with 165 additions and 38 deletions.
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
9 changes: 9 additions & 0 deletions Resources/Changelog/Changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8284,3 +8284,12 @@ Entries:
id: 6547
time: '2024-11-30T16:53:42.0000000+00:00'
url: https://github.com/Simple-Station/Einstein-Engines/pull/1281
- author: VMSolidus
changes:
- type: Add
message: >-
Added various articles of religious headgear to loadouts, such as Hijab,
Kippah, and Turban. All of these are set to allow custom colors.
id: 6548
time: '2024-11-30T18:52:35.0000000+00:00'
url: https://github.com/Simple-Station/Einstein-Engines/pull/1297
2 changes: 1 addition & 1 deletion Resources/Credits/GitHub.txt

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -117,3 +117,9 @@
id: LoadoutHeadCowboyGrey
- type: loadout
id: LoadoutHeadCowboyRed
- type: loadout
id: LoadoutHeadHijabColorable
- type: loadout
id: LoadoutHeadTurbanColorable
- type: loadout
id: LoadoutHeadKippahColorable
32 changes: 32 additions & 0 deletions Resources/Prototypes/Entities/Clothing/Head/religious.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
- type: entity
parent: ClothingHeadBase
id: ClothingHeadHatHijabColorable
name: hijab
description: Encompassing cloth headwear worn by some human cultures and religions.
components:
- type: Sprite
sprite: Clothing/Head/ReligiousHeadgear/hijab.rsi
- type: Clothing
sprite: Clothing/Head/ReligiousHeadgear/hijab.rsi

- type: entity
parent: ClothingHeadBase
id: ClothingHeadHatTurbanColorable
name: turban
description: A sturdy cloth, worn around the head.
components:
- type: Sprite
sprite: Clothing/Head/ReligiousHeadgear/turban.rsi
- type: Clothing
sprite: Clothing/Head/ReligiousHeadgear/turban.rsi

- type: entity
parent: ClothingHeadBase
id: ClothingHeadHatKippahColorable
name: kippah
description: A head covering commonly worn by those of Jewish faith.
components:
- type: Sprite
sprite: Clothing/Head/ReligiousHeadgear/kippah.rsi
- type: Clothing
sprite: Clothing/Head/ReligiousHeadgear/kippah.rsi
36 changes: 36 additions & 0 deletions Resources/Prototypes/Loadouts/Generic/head.yml
Original file line number Diff line number Diff line change
Expand Up @@ -746,3 +746,39 @@
requirements:
- !type:CharacterItemGroupRequirement
group: LoadoutHead

- type: loadout
id: LoadoutHeadHijabColorable
category: Head
cost: 0
exclusive: true
customColorTint: true
items:
- ClothingHeadHatHijabColorable
requirements:
- !type:CharacterItemGroupRequirement
group: LoadoutHead

- type: loadout
id: LoadoutHeadTurbanColorable
category: Head
cost: 0
exclusive: true
customColorTint: true
items:
- ClothingHeadHatTurbanColorable
requirements:
- !type:CharacterItemGroupRequirement
group: LoadoutHead

- type: loadout
id: LoadoutHeadKippahColorable
category: Head
cost: 0
exclusive: true
customColorTint: true
items:
- ClothingHeadHatKippahColorable
requirements:
- !type:CharacterItemGroupRequirement
group: LoadoutHead
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taken from Aurorastation at commit https://github.com/Aurorastation/Aurora.3/commit/b807d2f481400d0ea970643a2a345a4a04279605",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "equipped-HELMET",
"directions": 4
},
{
"name": "icon"
}
]
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taken from Aurorastation at commit https://github.com/Aurorastation/Aurora.3/commit/310e688d876c027e87ea35312111bc6eb1f06660",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "equipped-HELMET",
"directions": 4
},
{
"name": "icon"
}
]
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taken from Aurorastation at commit https://github.com/Aurorastation/Aurora.3/commit/b807d2f481400d0ea970643a2a345a4a04279605",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "equipped-HELMET",
"directions": 4
},
{
"name": "icon"
}
]
}

0 comments on commit 386fd77

Please sign in to comment.