Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upstream Merge 02-12-25 #85

Merged
merged 86 commits into from
Feb 14, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
8cbdc93
Holopads, New AI Core, BSO and NTR Offices for Glacier (#1704)
dootythefrooty Feb 7, 2025
5f654fc
Automatic Changelog Update (#1704)
SimpleStation14 Feb 7, 2025
17cb737
BagelStation (#1700)
Ichaie Feb 7, 2025
bba2ba7
Automatic Changelog Update (#1700)
SimpleStation14 Feb 7, 2025
b1ff7b3
New Law Sets And Minor Fixes on AI (#1686)
Ichaie Feb 7, 2025
ed0ca4f
Automatic Changelog Update (#1686)
SimpleStation14 Feb 7, 2025
7c6582a
Fix Shop Vendor Buying on Non-Click (#2906) (#1735)
sleepyyapril Feb 7, 2025
f84e6dd
Automatic Changelog Update (#1735)
SimpleStation14 Feb 7, 2025
5de118d
Exorcism of the Spirit of the Dwarf Species (#1734)
trashalice Feb 7, 2025
0cb32c0
Automatic Changelog Update (#1734)
SimpleStation14 Feb 7, 2025
2f88303
Fix Sprites Getting Stuck Red when Quickly Damaged (#1738)
RedFoxIV Feb 7, 2025
e7a32e9
Automatic Changelog Update (#1738)
SimpleStation14 Feb 7, 2025
9a357c1
"Proper" "Softcrit" "Support" (#1545)
RedFoxIV Feb 7, 2025
2c2243a
Automatic Changelog Update (#1545)
SimpleStation14 Feb 7, 2025
988227e
Oni Guidebook and Lore (#1733)
trashalice Feb 7, 2025
194ec5c
Automatic Changelog Update (#1733)
SimpleStation14 Feb 7, 2025
cf6707b
Artifact Analyzer and Anomaly Vessel Part Upgrading (#1729)
dootythefrooty Feb 7, 2025
c4a81a8
Automatic Changelog Update (#1729)
SimpleStation14 Feb 7, 2025
ed1e124
Fix Industrial Ore Processor Inheritance (#1737)
VMSolidus Feb 7, 2025
6c133b1
Automatic Changelog Update (#1737)
SimpleStation14 Feb 7, 2025
d62392b
Revert ""Proper" "Softcrit" "Support" (#1545)" (#1741)
sleepyyapril Feb 7, 2025
451b89e
Northway Ship For EE (MVP) (#1743)
Mike32oz Feb 8, 2025
b7d9614
Automatic Changelog Update (#1743)
SimpleStation14 Feb 8, 2025
c8182e9
Lambda Station (#1715)
Ichaie Feb 8, 2025
03b3707
Automatic Changelog Update (#1715)
SimpleStation14 Feb 8, 2025
1743098
Adds New Law Boards for AI (#1742)
Ichaie Feb 8, 2025
06ac422
Automatic Changelog Update (#1742)
SimpleStation14 Feb 8, 2025
0bf6989
Update SeparatedChatGameScreen.xaml.cs (#1745)
DEATHB4DEFEAT Feb 8, 2025
09aa049
Automatic Changelog Update (#1745)
SimpleStation14 Feb 8, 2025
4c20374
Micro-RTG (#1744)
Timfa2112 Feb 8, 2025
e1f47d0
Automatic Changelog Update (#1744)
SimpleStation14 Feb 8, 2025
cc91eeb
Lyre Birb Trait (#1747)
VMSolidus Feb 9, 2025
0b6d891
Automatic Changelog Update (#1747)
SimpleStation14 Feb 9, 2025
cf3cdc9
Add Mood Visual Effects Toggle (#1748)
sleepyyapril Feb 9, 2025
e9365ae
Automatic Changelog Update (#1748)
SimpleStation14 Feb 9, 2025
4c20f75
AI Shall No Longer Be An All-Hearing God (#1749)
dootythefrooty Feb 9, 2025
7cf344e
Automatic Changelog Update (#1749)
SimpleStation14 Feb 9, 2025
ea7bb46
Update Credits (#1746)
github-actions[bot] Feb 9, 2025
859ba6e
Noslip arachne.yml (#1739)
EctoplasmIsGood Feb 9, 2025
dd0bc24
Automatic Changelog Update (#1739)
SimpleStation14 Feb 9, 2025
43ed29b
Make SMES Not SUCK (#1752)
VMSolidus Feb 10, 2025
00e5fc6
Automatic Changelog Update (#1752)
SimpleStation14 Feb 10, 2025
3e05289
Update speech_emotes.yml (#1751)
VMSolidus Feb 10, 2025
9e73a3a
Automatic Changelog Update (#1751)
SimpleStation14 Feb 10, 2025
057ab17
Flying Objects Ignore Laying Down (#1754)
VMSolidus Feb 10, 2025
1d3538f
Automatic Changelog Update (#1754)
SimpleStation14 Feb 10, 2025
ec87cd1
A Few More Glowy Hardsuits (#1750)
VMSolidus Feb 10, 2025
70e42d4
Shuttle Price Hikes (#1755)
Rosycup Feb 10, 2025
6869f6f
More AI QOL Stuff (#1761)
VMSolidus Feb 10, 2025
83e42c5
Optional Permanent AI Laws (#1762)
VMSolidus Feb 10, 2025
7298a34
Automatic Changelog Update (#1761)
SimpleStation14 Feb 10, 2025
d7cdb79
Automatic Changelog Update (#1762)
SimpleStation14 Feb 10, 2025
6c27976
Fix Autodoc Surgery UI (#1756)
deltanedas Feb 10, 2025
db2deba
BSO Chester Loadout Change.yml (#1764)
EctoplasmIsGood Feb 10, 2025
f56a220
Automatic Changelog Update (#1764)
SimpleStation14 Feb 10, 2025
1716ba4
Move Access Configurators (#1758)
VMSolidus Feb 11, 2025
a0dd132
Automatic Changelog Update (#1758)
SimpleStation14 Feb 11, 2025
713eaa7
StationAI Affected by Ion Storm (for Real Now) (#1766)
Ichaie Feb 11, 2025
6ecf789
Tweak Lava Ore Rates (#1759)
VMSolidus Feb 11, 2025
bce7401
Lambda Fixes (#1753)
VMSolidus Feb 11, 2025
97af282
Automatic Changelog Update (#1766)
SimpleStation14 Feb 11, 2025
87f1906
Automatic Changelog Update (#1753)
SimpleStation14 Feb 11, 2025
33315fb
Merge remote-tracking branch 'ee/master' into upstream-merge-02-12-25
angelofallars Feb 11, 2025
f32499d
Fixed Arachne Noslip (#1767)
EctoplasmIsGood Feb 11, 2025
6e0683e
Automatic Changelog Update (#1767)
SimpleStation14 Feb 11, 2025
37f2841
Merge branch 'master' of https://github.com/Simple-Station/Einstein-E…
angelofallars Feb 11, 2025
ee12ccf
Box Update: Rework on Bridge (#1763)
Ichaie Feb 12, 2025
ccf7867
Automatic Changelog Update (#1763)
SimpleStation14 Feb 12, 2025
55ba498
Merge remote-tracking branch 'ee/master' into upstream-merge-02-12-25
angelofallars Feb 12, 2025
b51d2f9
Tiny Saltern Fix (#1771)
VMSolidus Feb 12, 2025
a526faf
Automatic Changelog Update (#1771)
SimpleStation14 Feb 12, 2025
4c56076
Derotate Unmaintained Maps. (#1772)
VMSolidus Feb 12, 2025
e0b1159
Automatic Changelog Update (#1772)
SimpleStation14 Feb 12, 2025
f8696b5
Revert Rouny Sprite (#1770)
angelofallars Feb 12, 2025
ea428d3
Automatic Changelog Update (#1770)
SimpleStation14 Feb 12, 2025
fb4ca1a
Planet Maps Prep For Glacier Rework (#1774)
VMSolidus Feb 13, 2025
5dce297
Automatic Changelog Update (#1774)
SimpleStation14 Feb 13, 2025
f6289bf
Plasmaman Damage Resist and Density Changes (#1769)
angelofallars Feb 13, 2025
972a936
Automatic Changelog Update (#1769)
SimpleStation14 Feb 13, 2025
19ea863
Den Downstream Merge 02-13-25 (#1773)
angelofallars Feb 13, 2025
493a53a
Automatic Changelog Update (#1773)
SimpleStation14 Feb 13, 2025
a2d2a3e
Add Argenti Ammo, Gun Age Requirements to Bartender Loadout (#1768)
GNUtopia Feb 13, 2025
accd8d7
Automatic Changelog Update (#1768)
SimpleStation14 Feb 13, 2025
17a436f
Merge remote-tracking branch 'ee/master' into upstream-merge-02-12-25
angelofallars Feb 13, 2025
c515cc5
WAR OPS ARE BACK!!! (#1776)
EctoplasmIsGood Feb 14, 2025
f3ac53b
Merge remote-tracking branch 'ee/master' into upstream-merge-02-12-25
angelofallars Feb 14, 2025
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
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Input;
using Robust.Shared.Prototypes;
using Robust.Shared.Timing;
using System.Numerics;
Expand Down Expand Up @@ -43,7 +44,11 @@ public ShopVendorWindow()
VendingContents.SearchBar = SearchBar;
VendingContents.DataFilterCondition += DataFilterCondition;
VendingContents.GenerateItem += GenerateButton;
VendingContents.ItemKeyBindDown += (args, data) => OnItemSelected?.Invoke(((ShopVendorListingData) data).Index);
VendingContents.ItemKeyBindDown += (args, data) =>
{
if (args.Function == EngineKeyFunctions.UIClick)
OnItemSelected?.Invoke(((ShopVendorListingData) data).Index);
};
}

public void SetEntity(EntityUid owner)
Expand Down
23 changes: 7 additions & 16 deletions Content.Client/Effects/ColorFlashEffectSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -87,13 +87,7 @@ private void OnColorFlashEffect(ColorFlashEffectEvent ev)
continue;
}

if (!TryComp(ent, out AnimationPlayerComponent? player))
{
player = (AnimationPlayerComponent) _factory.GetComponent(typeof(AnimationPlayerComponent));
player.Owner = ent;
player.NetSyncEnabled = false;
AddComp(ent, player);
}
var player = EnsureComp<AnimationPlayerComponent>(ent);

// Need to stop the existing animation first to ensure the sprite color is fixed.
// Otherwise we might lerp to a red colour instead.
Expand All @@ -107,23 +101,20 @@ private void OnColorFlashEffect(ColorFlashEffectEvent ev)
continue;
}

if (TryComp<ColorFlashEffectComponent>(ent, out var effect))
// having to check lifestage because trycomp is special needs and may return a component which was shut down via RemCompDeferred.
// EnsureComp isn't, but we want to get the Color value stored in the component, and EnsureComp would overwrite it with the default value.
if (TryComp<ColorFlashEffectComponent>(ent, out var effect) && effect.LifeStage <= ComponentLifeStage.Running)
{
sprite.Color = effect.Color;
}


var animation = GetDamageAnimation(ent, color, sprite, ev.AnimationLength);

if (animation == null)
if (animation == null)
continue;

if (!TryComp(ent, out ColorFlashEffectComponent? comp))
{
comp = (ColorFlashEffectComponent) _factory.GetComponent(typeof(ColorFlashEffectComponent));
comp.Owner = ent;
comp.NetSyncEnabled = false;
AddComp(ent, comp);
}
var comp = EnsureComp<ColorFlashEffectComponent>(ent);

comp.Color = sprite.Color;
_animation.Play((ent, player), animation, AnimationKey);
Expand Down
1 change: 1 addition & 0 deletions Content.Client/Options/UI/Tabs/GraphicsTab.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
<CheckBox Name="ViewportLowResCheckBox" Text="{Loc 'ui-options-vp-low-res'}" />
<CheckBox Name="ParallaxLowQualityCheckBox" Text="{Loc 'ui-options-parallax-low-quality'}" />
<CheckBox Name="FpsCounterCheckBox" Text="{Loc 'ui-options-fps-counter'}" />
<CheckBox Name="MoodVisualEffectsCheckBox" Text="{Loc 'ui-options-mood-visual-effects'}" />
</BoxContainer>
<controls:StripeBack HasBottomEdge="False" HasMargins="False">
<Button Name="ApplyButton"
Expand Down
3 changes: 3 additions & 0 deletions Content.Client/Options/UI/Tabs/GraphicsTab.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ public GraphicsTab()
ViewportLowResCheckBox.OnToggled += OnCheckBoxToggled;
ParallaxLowQualityCheckBox.OnToggled += OnCheckBoxToggled;
FpsCounterCheckBox.OnToggled += OnCheckBoxToggled;
MoodVisualEffectsCheckBox.OnToggled += OnCheckBoxToggled;
ApplyButton.OnPressed += OnApplyButtonPressed;
VSyncCheckBox.Pressed = _cfg.GetCVar(CVars.DisplayVSync);
FullscreenCheckBox.Pressed = ConfigIsFullscreen;
Expand All @@ -89,6 +90,7 @@ public GraphicsTab()
ViewportLowResCheckBox.Pressed = !_cfg.GetCVar(CCVars.ViewportScaleRender);
ParallaxLowQualityCheckBox.Pressed = _cfg.GetCVar(CCVars.ParallaxLowQuality);
FpsCounterCheckBox.Pressed = _cfg.GetCVar(CCVars.HudFpsCounterVisible);
MoodVisualEffectsCheckBox.Pressed = _cfg.GetCVar(CCVars.MoodVisualEffects);
ViewportWidthSlider.Value = _cfg.GetCVar(CCVars.ViewportWidth);

_cfg.OnValueChanged(CCVars.ViewportMinimumWidth, _ => UpdateViewportWidthRange());
Expand Down Expand Up @@ -122,6 +124,7 @@ private void OnApplyButtonPressed(BaseButton.ButtonEventArgs args)
_cfg.SetCVar(CCVars.ViewportScaleRender, !ViewportLowResCheckBox.Pressed);
_cfg.SetCVar(CCVars.ParallaxLowQuality, ParallaxLowQualityCheckBox.Pressed);
_cfg.SetCVar(CCVars.HudFpsCounterVisible, FpsCounterCheckBox.Pressed);
_cfg.SetCVar(CCVars.MoodVisualEffects, MoodVisualEffectsCheckBox.Pressed);
_cfg.SetCVar(CCVars.ViewportWidth, (int) ViewportWidthSlider.Value);

_cfg.SaveToFile();
Expand Down
29 changes: 25 additions & 4 deletions Content.Client/Overlays/SaturationScaleSystem.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
using Content.Shared.GameTicking;
using Content.Shared.CCVar;
using Content.Shared.GameTicking;
using Content.Shared.Mood;
using Content.Shared.Overlays;
using Robust.Client.Graphics;
using Robust.Shared.Configuration;
using Robust.Shared.Player;

namespace Content.Client.Overlays;
Expand All @@ -10,15 +12,18 @@ public sealed class SaturationScaleSystem : EntitySystem
{
[Dependency] private readonly IOverlayManager _overlayMan = default!;
[Dependency] private readonly ISharedPlayerManager _playerMan = default!;
[Dependency] private readonly IConfigurationManager _cfgMan = default!;

private SaturationScaleOverlay _overlay = default!;

private bool _moodEffectsEnabled;

public override void Initialize()
{
base.Initialize();

_overlay = new();
_moodEffectsEnabled = _cfgMan.GetCVar(CCVars.MoodVisualEffects);
_cfgMan.OnValueChanged(CCVars.MoodVisualEffects, HandleMoodEffectsUpdated);

SubscribeLocalEvent<SaturationScaleOverlayComponent, ComponentInit>(OnInit);
SubscribeLocalEvent<SaturationScaleOverlayComponent, ComponentShutdown>(OnShutdown);
Expand All @@ -29,33 +34,49 @@ public override void Initialize()
SubscribeNetworkEvent<RoundRestartCleanupEvent>(RoundRestartCleanup);
}

private void HandleMoodEffectsUpdated(bool moodEffectsEnabled)
{
if (_overlayMan.HasOverlay<SaturationScaleOverlay>() && !moodEffectsEnabled)
_overlayMan.RemoveOverlay(_overlay);

_moodEffectsEnabled = moodEffectsEnabled;
}

private void RoundRestartCleanup(RoundRestartCleanupEvent ev)
{
if (!_moodEffectsEnabled)
return;

_overlayMan.RemoveOverlay(_overlay);
}

private void OnPlayerDetached(EntityUid uid, SaturationScaleOverlayComponent component, PlayerDetachedEvent args)
{
if (!_moodEffectsEnabled)
return;

_overlayMan.RemoveOverlay(_overlay);
}

private void OnPlayerAttached(EntityUid uid, SaturationScaleOverlayComponent component, PlayerAttachedEvent args)
{
if (!_moodEffectsEnabled)
return;

_overlayMan.AddOverlay(_overlay);
}

private void OnShutdown(EntityUid uid, SaturationScaleOverlayComponent component, ComponentShutdown args)
{
if (uid != _playerMan.LocalEntity)
if (uid != _playerMan.LocalEntity || !_moodEffectsEnabled)
return;

_overlayMan.RemoveOverlay(_overlay);
}

private void OnInit(EntityUid uid, SaturationScaleOverlayComponent component, ComponentInit args)
{
if (uid != _playerMan.LocalEntity)
if (uid != _playerMan.LocalEntity || !_moodEffectsEnabled)
return;

_overlayMan.AddOverlay(_overlay);
Expand Down
9 changes: 7 additions & 2 deletions Content.Client/Traits/SingerSystem.cs
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
using Content.Client.Instruments;
using Content.Shared.Instruments;
using Content.Shared.Traits.Assorted.Prototypes;
using Content.Shared.Traits.Assorted.Systems;

namespace Content.Client.Traits;

public sealed class SingerSystem : SharedSingerSystem
{
protected override SharedInstrumentComponent EnsureInstrumentComp(EntityUid uid)
protected override SharedInstrumentComponent EnsureInstrumentComp(EntityUid uid, SingerInstrumentPrototype singer)
{
return EnsureComp<InstrumentComponent>(uid); // I hate this, but it's the only way.
var instrumentComp = EnsureComp<InstrumentComponent>(uid);
instrumentComp.AllowPercussion = singer.AllowPercussion;
instrumentComp.AllowProgramChange = singer.AllowProgramChange;

return instrumentComp;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public SeparatedChatGameScreen()
SetAnchorAndMarginPreset(TopLeftContainer, LayoutPreset.TopLeft, margin: 10);
SetAnchorAndMarginPreset(Ghost, LayoutPreset.BottomWide, margin: 80);
SetAnchorAndMarginPreset(Hotbar, LayoutPreset.BottomWide, margin: 5);
SetAnchorAndMarginPreset(Alerts, LayoutPreset.CenterRight, margin: 10);
SetAnchorAndMarginPreset(Alerts, LayoutPreset.TopRight, margin: 10);
SetAnchorAndMarginPreset(Targeting, LayoutPreset.BottomRight, margin: 5);

ScreenContainer.OnSplitResizeFinished += () =>
Expand Down
6 changes: 3 additions & 3 deletions Content.Client/_Shitmed/Autodoc/PickSurgeryWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ private void UpdateSurgeries()
var protoId = new EntProtoId<SurgeryComponent>(id);
if (_part is not BodyPartType part)
{
Surgeries.AddItem(name, metadata: id);
Surgeries.AddItem(name, metadata: protoId);
continue;
}

Expand All @@ -124,7 +124,7 @@ private void UpdateSurgeries()

if (!_entMan.TryGetComponent<SurgeryPartConditionComponent>(ent.Value, out var comp))
{
Surgeries.AddItem(name, metadata: id);
Surgeries.AddItem(name, metadata: protoId);
continue;
}

Expand All @@ -134,7 +134,7 @@ private void UpdateSurgeries()
var passesFilter = (partOk && symmetryOk) ^ comp.Inverse;

if (passesFilter)
Surgeries.AddItem(name, metadata: id);
Surgeries.AddItem(name, metadata: protoId);
}
Surgeries.SortItemsByText();
}
Expand Down
39 changes: 21 additions & 18 deletions Content.IntegrationTests/Tests/PostMapInitTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,24 +52,27 @@ public sealed class PostMapInitTest
"CentCommHarmony",
"MeteorArena",
"NukieOutpost",
"Core",
"Pebble", //DeltaV
"Edge", //DeltaV
"Saltern",
"Shoukou", //DeltaV
"Tortuga", //DeltaV
"Arena", //DeltaV
"Asterisk", //DeltaV
"Glacier", //DeltaV
"TheHive", //DeltaV
"Hammurabi", //DeltaV
"Lighthouse", //DeltaV
"Submarine", //DeltaV
"Gax",
"Rad",
"Europa",
"Meta",
"Box"
"Core", // No current maintainer. In need of a rework...
// "Pebble", // De-rotated, no current maintainer.
// "Edge", // De-rotated, no current maintainer.
"Saltern", // Maintained by the Sin Mapping Team, ODJ, and TCJ.
"Shoukou", // Maintained by Violet
// "Tortuga", // De-rotated, no current maintainer.
// "Arena", // De-rotated, no current maintainer.
// "Asterisk", // De-rotated, no current maintainer.
"Glacier", // Maintained by Violet
// "TheHive", // De-rotated, no current maintainer.
// "Hammurabi", // De-rotated, no current maintainer.
"Lighthouse", // Maintained by Violet
// "Submarine", // De-rotated, no current maintainer.
"Gax", // Maintained by Estacao Pirata
"Rad", // Maintained by Estacao Pirata
// "Europa", // De-rotated, has significant issues.
"Meta", // Maintained by Estacao Pirata
"Box", // Maintained by Estacao Pirata
"Lambda", // Maintained by Estacao Pirata
"Bagel", // Maintained by Estacao Pirata
"Northway" // Maintained by Violet
};

/// <summary>
Expand Down
16 changes: 15 additions & 1 deletion Content.Server/Anomaly/AnomalySystem.Vessel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
using Content.Shared.Interaction;
using Content.Shared.Research.Components;
using Content.Server.Psionics.Glimmer;
using Content.Shared.Radiation.Components;


namespace Content.Server.Anomaly;

Expand All @@ -21,6 +23,7 @@ private void InitializeVessel()
{
SubscribeLocalEvent<AnomalyVesselComponent, ComponentShutdown>(OnVesselShutdown);
SubscribeLocalEvent<AnomalyVesselComponent, MapInitEvent>(OnVesselMapInit);
SubscribeLocalEvent<AnomalyVesselComponent, RefreshPartsEvent>(OnRefreshParts);
SubscribeLocalEvent<AnomalyVesselComponent, UpgradeExamineEvent>(OnUpgradeExamine);
SubscribeLocalEvent<AnomalyVesselComponent, InteractUsingEvent>(OnVesselInteractUsing);
SubscribeLocalEvent<AnomalyVesselComponent, ExaminedEvent>(OnExamined);
Expand Down Expand Up @@ -67,9 +70,20 @@ private void OnVesselMapInit(EntityUid uid, AnomalyVesselComponent component, Ma
UpdateVesselAppearance(uid, component);
}

private void OnRefreshParts(EntityUid uid, AnomalyVesselComponent component, RefreshPartsEvent args)
{
var pointRating = args.PartRatings[component.MachinePartPointMultiplier];
var radRating = args.PartRatings[component.MachinePartPointMultiplier];

component.PointMultiplier = component.BasePointMultiplier * (component.UpgradePointMultiplier * pointRating);

if (TryComp<RadiationSourceComponent>(uid, out var radiation))
radiation.Intensity = component.BaseRadiation * radRating;
}

private void OnUpgradeExamine(EntityUid uid, AnomalyVesselComponent component, UpgradeExamineEvent args)
{
args.AddPercentageUpgrade("anomaly-vessel-component-upgrade-output", component.PointMultiplier);
args.AddPercentageUpgrade("anomaly-vessel-component-upgrade-output", component.PointMultiplier / component.BasePointMultiplier);
}

private void OnVesselInteractUsing(EntityUid uid, AnomalyVesselComponent component, InteractUsingEvent args)
Expand Down
36 changes: 36 additions & 0 deletions Content.Server/Anomaly/Components/AnomalyVesselComponent.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
using Content.Shared.Anomaly;
using Content.Shared.Construction.Prototypes;
using Robust.Shared.Audio;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;


namespace Content.Server.Anomaly.Components;

Expand All @@ -20,12 +23,45 @@ public sealed partial class AnomalyVesselComponent : Component
[ViewVariables]
public EntityUid? Anomaly;

/// <summary>
/// The base multiplier without any frills
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite)]
public float BasePointMultiplier = 1;

/// <summary>
/// The base radiation for only the experimental vessel
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite)]
public float BaseRadiation = .75f;

/// <summary>
/// A multiplier applied to the amount of points generated.
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite)]
public float PointMultiplier = 1;

/// <summary>
/// A multiplier applied to the amount of points generated based on the machine parts inserted.
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite)]
public float UpgradePointMultiplier = .5f;

/// <summary>
/// A multipler applied to the radiation
/// </summary>
/// <remarks>
/// no free ultra point machine 100% legit
/// </remarks>
[DataField, ViewVariables(VVAccess.ReadWrite)]
public float UpgradeRadiationMultiplier = .35f;

/// <summary>
/// Which machine part affects the point multiplier
/// </summary>
[DataField(customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>))]
public string MachinePartPointMultiplier = "Capacitor";

/// <summary>
/// The maximum time between each beep
/// </summary>
Expand Down
12 changes: 12 additions & 0 deletions Content.Server/Shuttles/Components/ShuttleComponent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,5 +64,17 @@ public sealed partial class ShuttleComponent : Component

[DataField("angularDamping"), ViewVariables(VVAccess.ReadWrite)]
public float AngularDamping = 0.05f;

/// <summary>
/// How far from the shuttle's bounding box will it crush and destroy things?
/// </summary>
[DataField]
public float SmimshDistance = 0.2f;

/// <summary>
/// Whether or not the shuttle calls the DoTheDinosaur function upon FTL'ing. I'm not explaining this, you owe it to yourself to do a code search for it.
/// </summary>
[DataField]
public bool DoTheDinosaur = true;
}
}
Loading
Loading