Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions Content.Client/Lobby/LobbyState.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later

using Content.Client._Orion.ReadyManifest;
using Content.Client._RMC14.LinkAccount;
using Content.Client.Audio;
using Content.Client.GameTicking.Managers;
Expand Down Expand Up @@ -41,6 +42,7 @@ public sealed class LobbyState : Robust.Client.State.State
private ISawmill _sawmill = default!; // Goobstation
private ClientGameTicker _gameTicker = default!;
private ContentAudioSystem _contentAudioSystem = default!;
private ReadyManifestSystem _readyManifest = default!; // Orion
Comment thread
coderabbitai[bot] marked this conversation as resolved.

protected override Type? LinkedScreenType { get; } = typeof(LobbyGui);
public LobbyGui? Lobby;
Expand All @@ -62,6 +64,7 @@ protected override void Startup()
_contentAudioSystem = _entityManager.System<ContentAudioSystem>();
_contentAudioSystem.LobbySoundtrackChanged += UpdateLobbySoundtrackInfo;
_sawmill = Logger.GetSawmill("lobby");
_readyManifest = _entityManager.EntitySysManager.GetEntitySystem<ReadyManifestSystem>(); // Orion

chatController.SetMainChat(true);

Expand All @@ -83,6 +86,7 @@ protected override void Startup()
Lobby.CharacterPreview.CharacterSetupButton.OnPressed += OnSetupPressed;
Lobby.CharacterPreview.PatronPerks.OnPressed += OnPatronPerksPressed;
Lobby.DiscordLinkButton.OnPressed += OnDiscordLinkPressed; // Arcane
Lobby.ManifestButton.OnPressed += OnManifestPressed; // Orion
Lobby.ReadyButton.OnPressed += OnReadyPressed;
Lobby.ReadyButton.OnToggled += OnReadyToggled;

Expand Down Expand Up @@ -110,6 +114,7 @@ protected override void Shutdown()
Lobby!.CharacterPreview.CharacterSetupButton.OnPressed -= OnSetupPressed;
Lobby.CharacterPreview.PatronPerks.OnPressed -= OnPatronPerksPressed;
Lobby.DiscordLinkButton.OnPressed -= OnDiscordLinkPressed; // Arcane
Lobby!.ManifestButton.OnPressed -= OnManifestPressed; // Orion
Lobby!.ReadyButton.OnPressed -= OnReadyPressed;
Lobby!.ReadyButton.OnToggled -= OnReadyToggled;

Expand Down Expand Up @@ -159,6 +164,13 @@ private void OnReadyToggled(BaseButton.ButtonToggledEventArgs args)
SetReady(args.Pressed);
}

// Orion-Start
private void OnManifestPressed(BaseButton.ButtonEventArgs args)
{
_readyManifest.RequestReadyManifest();
}
// Orion-End

public override void FrameUpdate(FrameEventArgs e)
{
if (_gameTicker.IsGameStarted)
Expand Down Expand Up @@ -224,6 +236,7 @@ private void UpdateLobbyUi()
Lobby!.ReadyButton.ToggleMode = false;
Lobby!.ReadyButton.Pressed = false;
Lobby!.ObserveButton.Disabled = false;
Lobby!.ManifestButton.Disabled = true; // Orion
}
else
{
Expand All @@ -233,6 +246,7 @@ private void UpdateLobbyUi()
Lobby!.ReadyButton.ToggleMode = true;
Lobby!.ReadyButton.Disabled = false;
Lobby!.ObserveButton.Disabled = true;
Lobby!.ManifestButton.Disabled = false; // Orion
}

if (_gameTicker.ServerInfoBlob != null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,12 @@ SPDX-License-Identifier: AGPL-3.0-or-later

<BoxContainer Orientation="Vertical" HorizontalExpand="True" SeparationOverride="10" Margin="10">
<menuBar:GameTopMenuBar Name="TopBar" HorizontalExpand="True" Access="Public" />
<chat:ChatBox StyleClasses="ChatOutput" VerticalExpand="True" HorizontalExpand="True" Name="Chat" Access="Protected" MinSize="0 0"/>
<!-- Arcane-Start -->
<SplitContainer State="Auto" VerticalExpand="True" Orientation="Vertical">
<us:UserActionsPanel Name="UserActionsPanel" Access="Public"/>
<!-- Arcane-End -->
<chat:ChatBox StyleClasses="ChatOutput" VerticalExpand="True" HorizontalExpand="True" Name="Chat" Access="Protected" MinSize="0 0"/>
</SplitContainer> <!-- Arcane -->
</BoxContainer>
</PanelContainer>
</SplitContainer>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
// SPDX-License-Identifier: AGPL-3.0-or-later

using Robust.Client.Graphics;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using static Content.Client.Stylesheets.StylesheetHelpers;

namespace Content.Client.Stylesheets.Sheetlets;

/// <summary>
/// Department-colored buttons used by the ghost teleport menu and access level controls.
/// The style class name is driven by <see cref="DepartmentPrototype.ButtonStyle"/>.
/// </summary>
[CommonSheetlet]
public sealed class DepartmentButtonSheetlet<T> : Sheetlet<T> where T : PalettedStylesheet
{
private static readonly Color CentralCommand = Color.FromHex("#185e1f");
private static readonly Color Command = Color.FromHex("#1d4776");
private static readonly Color Security = Color.FromHex("#991d1d");
private static readonly Color Medical = Color.FromHex("#3e86ad");
private static readonly Color Engineering = Color.FromHex("#998011");
private static readonly Color Cargo = Color.FromHex("#A46106");
private static readonly Color Science = Color.FromHex("#84287a");
private static readonly Color Silicon = Color.FromHex("#08766b");
private static readonly Color Civilian = Color.FromHex("#508264");
private static readonly Color Justice = Color.FromHex("#9f2342");
private static readonly Color Legal = Color.FromHex("#c22b51");
private static readonly Color Specific = Color.FromHex("#767676");
private static readonly Color Antagonist = Color.FromHex("#6f3a3a");

public override StyleRule[] GetRules(T sheet, object config)
{
return
[
// CentralCommand
E<Button>().Class("ButtonColorCentralCommandDepartment").Modulate(CentralCommand),
E<Button>().Class("ButtonColorCentralCommandDepartment").PseudoNormal().Modulate(CentralCommand),

// Command
E<Button>().Class("ButtonColorCommandDepartment").Modulate(Command),
E<Button>().Class("ButtonColorCommandDepartment").PseudoNormal().Modulate(Command),

// Security
E<Button>().Class("ButtonColorSecurityDepartment").Modulate(Security),
E<Button>().Class("ButtonColorSecurityDepartment").PseudoNormal().Modulate(Security),

// Medical
E<Button>().Class("ButtonColorMedicalDepartment").Modulate(Medical),
E<Button>().Class("ButtonColorMedicalDepartment").PseudoNormal().Modulate(Medical),

// Engineering
E<Button>().Class("ButtonColorEngineeringDepartment").Modulate(Engineering),
E<Button>().Class("ButtonColorEngineeringDepartment").PseudoNormal().Modulate(Engineering),

// Science
E<Button>().Class("ButtonColorScienceDepartment").Modulate(Science),
E<Button>().Class("ButtonColorScienceDepartment").PseudoNormal().Modulate(Science),

// Silicon
E<Button>().Class("ButtonColorSiliconDepartment").Modulate(Silicon),
E<Button>().Class("ButtonColorSiliconDepartment").PseudoNormal().Modulate(Silicon),

// Civilian
E<Button>().Class("ButtonColorCivilianDepartment").Modulate(Civilian),
E<Button>().Class("ButtonColorCivilianDepartment").PseudoNormal().Modulate(Civilian),

// Cargo
E<Button>().Class("ButtonColorCargoDepartment").Modulate(Cargo),
E<Button>().Class("ButtonColorCargoDepartment").PseudoNormal().Modulate(Cargo),

// Justice
E<Button>().Class("ButtonColorJusticeDepartment").Modulate(Justice),
E<Button>().Class("ButtonColorJusticeDepartment").PseudoNormal().Modulate(Justice),

// Legal
E<Button>().Class("ButtonColorLegalDepartment").Modulate(Legal),
E<Button>().Class("ButtonColorLegalDepartment").PseudoNormal().Modulate(Legal),

// Specific
E<Button>().Class("ButtonColorSpecificDepartment").Modulate(Specific),
E<Button>().Class("ButtonColorSpecificDepartment").PseudoNormal().Modulate(Specific),

// Antagonist
E<Button>().Class("ButtonColorAntagonistDepartment").Modulate(Antagonist),
E<Button>().Class("ButtonColorAntagonistDepartment").PseudoNormal().Modulate(Antagonist),
];
}
}
2 changes: 1 addition & 1 deletion Content.Server/Chat/Systems/ChatSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -669,7 +669,7 @@ private void SendEntityWhisper(
Color? colorOverride = null // Goobstation
)
{
if (!_actionBlocker.CanSpeak(source) && !ignoreActionBlocker)
if (!_actionBlocker.CanSpeak(source, isWhisper: channel == null) && !ignoreActionBlocker) // Arcane-Edit
return;

// Goob edit start
Expand Down
8 changes: 4 additions & 4 deletions Content.Server/Station/Systems/StationSpawningSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -139,10 +139,10 @@ public EntityUid SpawnPlayerMob(
_humanoidSystem.LoadProfile(entity.Value, profile);
_metaSystem.SetEntityName(entity.Value, profile.Name);

if (profile.FlavorText != "" && _configurationManager.GetCVar(CCVars.FlavorText))
{
AddComp<DetailExaminableComponent>(entity.Value).Content = profile.FlavorText;
}
// Arcane-Edit-Start
if (_configurationManager.GetCVar(CCVars.FlavorText))
AddComp<DetailExaminableComponent>(entity.Value).SetProfile(profile);
// Arcane-Edit-End
Comment thread
coderabbitai[bot] marked this conversation as resolved.
}

if (loadout != null)
Expand Down
4 changes: 2 additions & 2 deletions Content.Shared/ActionBlocker/ActionBlockerSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -156,10 +156,10 @@ public bool CanThrow(EntityUid user, EntityUid itemUid)
return !itemEv.Cancelled;
}

public bool CanSpeak(EntityUid uid)
public bool CanSpeak(EntityUid uid, bool isWhisper = false) // Arcane-Edit
{
// This one is used as broadcast
var ev = new SpeakAttemptEvent(uid);
var ev = new SpeakAttemptEvent(uid, isWhisper); // Arcane-Edit
RaiseLocalEvent(uid, ev, true);

return !ev.Cancelled;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using Content.Shared.Damage.Prototypes;
using Content.Goobstation.Maths.FixedPoint;
using Content.Shared._Shitmed.EntityEffects.Effects;
using Content.Shared._Shitmed.Damage; // Arcane
using Content.Shared.Localizations;
using Content.Shared.Temperature.Components;
using Robust.Shared.Prototypes;
Expand Down Expand Up @@ -37,7 +38,14 @@ protected override void Effect(Entity<DamageableComponent> entity, ref EntityEff
{
spec.DamageDict[type] = healing / groupProto.DamageTypes.Count;
}
_damageable.TryChangeDamage(entity, spec, ignoreResistances: args.Effect.IgnoreResistances);
_damageable.TryChangeDamage(
entity,
spec,
ignoreResistances: args.Effect.IgnoreResistances,
// Arcane-Edit-Start
interruptsDoAfters: false,
splitDamage: args.Effect.SplitDamage);
// Arcane-Edit-End
// </Goob>
}
}
Expand All @@ -58,6 +66,11 @@ public sealed partial class EvenHealthChange : EntityEffectBase<EvenHealthChange
[DataField]
public bool IgnoreResistances = true;

// Arcane-Start
[DataField]
public SplitDamageBehavior SplitDamage = SplitDamageBehavior.SplitEnsureAllOrganic;
// Arcane-End

/// <summary>
/// Shitmed - How to scale the effect based on the temperature of the target entity.
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
using Content.Shared.Damage.Prototypes;
using Content.Goobstation.Maths.FixedPoint;
using Content.Shared._Shitmed.EntityEffects.Effects;
// Arcane-Start
using Content.Shared._Shitmed.Targeting;
using Content.Shared._Shitmed.Damage;
// Arcane-End
using Content.Shared.Localizations;
using Content.Shared.Temperature.Components;
using Robust.Shared.Prototypes;
Expand Down Expand Up @@ -32,12 +36,16 @@ protected override void Effect(Entity<DamageableComponent> entity, ref EntityEff
damageSpec *= scaleTemp.GetEfficiencyMultiplier(temp.CurrentTemperature, args.Scale, false);
}
// Goobstation End

_damageable.TryChangeDamage(
entity,
damageSpec,
args.Effect.IgnoreResistances,
interruptsDoAfters: false);
interruptsDoAfters: false,
// Arcane-Edit-Start
targetPart: args.Effect.UseTargeting ? args.Effect.TargetPart : null,
ignoreBlockers: args.Effect.IgnoreBlockers,
splitDamage: args.Effect.SplitDamage);
// Arcane-Edit-End
}
}

Expand All @@ -53,6 +61,20 @@ public sealed partial class HealthChange : EntityEffectBase<HealthChange>
[DataField]
public bool IgnoreResistances = true;

// Arcane-Start
[DataField]
public SplitDamageBehavior SplitDamage = SplitDamageBehavior.SplitEnsureAllOrganic;
Comment thread
coderabbitai[bot] marked this conversation as resolved.

[DataField]
public bool UseTargeting = true;

[DataField]
public TargetBodyPart TargetPart = TargetBodyPart.All;

[DataField]
public bool IgnoreBlockers = true;
// Arcane-End

[DataField]
public TemperatureScaling? ScaleByTemperature;

Expand Down
2 changes: 1 addition & 1 deletion Content.Shared/Mobs/Systems/MobStateSystem.Subscribers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ private void CheckAct(EntityUid target, MobStateComponent component, Cancellable
// Orion-End
// Orion-Edit-Start
case MobState.SoftCritical:
if (args is not UpdateCanMoveEvent)
if (args is not UpdateCanMoveEvent && args is not SpeakAttemptEvent { IsWhisper: true })
args.Cancel();
break;
// Orion-Edit-End
Expand Down
12 changes: 10 additions & 2 deletions Content.Shared/Speech/SpeakAttemptEvent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,19 @@ namespace Content.Shared.Speech
{
public sealed class SpeakAttemptEvent : CancellableEntityEventArgs
{
public SpeakAttemptEvent(EntityUid uid)
public SpeakAttemptEvent(EntityUid uid, bool isWhisper = false) // Arcane-Edit
{
Uid = uid;
IsWhisper = isWhisper; // Arcane
}

public EntityUid Uid { get; }

// Arcane-Start
/// <summary>
/// Whether this speech attempt is a whisper.
/// </summary>
public bool IsWhisper { get; }
// Arcane-End
}
}
}
4 changes: 3 additions & 1 deletion Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1463,9 +1463,11 @@
sprite: /Textures/Mobs/Animals/monkey.rsi
visible: false
map: [ "enum.ToggleableVisuals.Layer" ]
- map: ["jumpsuit"]
# Arcane-Edit-Start
- map: ["enum.HumanoidVisualLayers.LFoot"]
- map: ["enum.HumanoidVisualLayers.RFoot"]
# Arcane-Edit-End
- map: ["jumpsuit"]
- map: ["enum.HumanoidVisualLayers.LHand"]
- map: ["enum.HumanoidVisualLayers.RHand"]
- map: ["enum.HumanoidVisualLayers.Handcuffs"]
Expand Down
5 changes: 4 additions & 1 deletion Resources/Prototypes/Entities/Mobs/Species/arachnid.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@
Male: UnisexArachnid
Female: UnisexArachnid
Unsexed: UnisexArachnid
Futanari: UnisexArachnid # Arcane
- type: TypingIndicator
proto: spider
- type: LanguageKnowledge # Einstein Engines - Language
Expand All @@ -96,9 +97,11 @@
- map: [ "enum.HumanoidVisualLayers.LLeg" ]
- map: [ "enum.HumanoidVisualLayers.UndergarmentBottom" ]
- map: [ "enum.HumanoidVisualLayers.UndergarmentTop" ]
- map: ["jumpsuit"]
# Arcane-Edit-Start
- map: ["enum.HumanoidVisualLayers.LFoot"]
- map: ["enum.HumanoidVisualLayers.RFoot"]
- map: ["jumpsuit"]
Comment thread
ReWAFFlution marked this conversation as resolved.
# Arcane-Edit-End
- map: ["enum.HumanoidVisualLayers.LHand"]
- map: ["enum.HumanoidVisualLayers.RHand"]
- map: [ "enum.HumanoidVisualLayers.Face" ]
Expand Down
Loading
Loading