artifact extract tweaks (#17164)

* make extract button green, rename Destroy internally to Extract

* 5

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
This commit is contained in:
deltanedas
2023-06-09 10:44:25 +00:00
committed by GitHub
parent 64d0e3278f
commit 662c83a8a2
8 changed files with 24 additions and 23 deletions

View File

@@ -35,9 +35,9 @@ public sealed class AnalysisConsoleBoundUserInterface : BoundUserInterface
{
SendMessage(new AnalysisConsolePrintButtonPressedMessage());
};
_consoleMenu.OnDestroyButtonPressed += () =>
_consoleMenu.OnExtractButtonPressed += () =>
{
SendMessage(new AnalysisConsoleDestroyButtonPressedMessage());
SendMessage(new AnalysisConsoleExtractButtonPressedMessage());
};
}

View File

@@ -20,10 +20,10 @@
Text="{Loc 'analysis-console-print-button'}"
ToolTip="{Loc 'analysis-console-print-tooltip-info'}">
</Button>
<BoxContainer MinHeight="10"></BoxContainer>
<Button Name="DestroyButton"
Text="{Loc 'analysis-console-destroy-button'}"
ToolTip="{Loc 'analysis-console-destroy-button-info'}">
<BoxContainer MinHeight="5"></BoxContainer>
<Button Name="ExtractButton"
Text="{Loc 'analysis-console-extract-button'}"
ToolTip="{Loc 'analysis-console-extract-button-info'}">
</Button>
</BoxContainer>
<BoxContainer Orientation="Vertical">

View File

@@ -15,7 +15,7 @@ public sealed partial class AnalysisConsoleMenu : FancyWindow
public event Action? OnServerSelectionButtonPressed;
public event Action? OnScanButtonPressed;
public event Action? OnPrintButtonPressed;
public event Action? OnDestroyButtonPressed;
public event Action? OnExtractButtonPressed;
public AnalysisConsoleMenu()
{
@@ -25,7 +25,7 @@ public sealed partial class AnalysisConsoleMenu : FancyWindow
ServerSelectionButton.OnPressed += _ => OnServerSelectionButtonPressed?.Invoke();
ScanButton.OnPressed += _ => OnScanButtonPressed?.Invoke();
PrintButton.OnPressed += _ => OnPrintButtonPressed?.Invoke();
DestroyButton.OnPressed += _ => OnDestroyButtonPressed?.Invoke();
ExtractButton.OnPressed += _ => OnExtractButtonPressed?.Invoke();
}
public void SetButtonsDisabled(AnalysisConsoleScanUpdateState state)
@@ -35,15 +35,15 @@ public sealed partial class AnalysisConsoleMenu : FancyWindow
var disabled = !state.ServerConnected || !state.CanScan || state.PointAmount <= 0;
DestroyButton.Disabled = disabled;
ExtractButton.Disabled = disabled;
if (disabled)
{
DestroyButton.RemoveStyleClass(StyleBase.ButtonCaution);
ExtractButton.RemoveStyleClass("ButtonColorGreen");
}
else
{
DestroyButton.AddStyleClass(StyleBase.ButtonCaution);
ExtractButton.AddStyleClass("ButtonColorGreen");
}
}

View File

@@ -26,10 +26,10 @@ public sealed class AnalysisConsoleComponent : Component
public readonly string LinkingPort = "ArtifactAnalyzerSender";
/// <summary>
/// The sound played when an artifact is destroyed.
/// The sound played when an artifact has points extracted.
/// </summary>
[DataField("destroySound")]
public SoundSpecifier DestroySound = new SoundPathSpecifier("/Audio/Effects/radpulse11.ogg");
[DataField("extractSound")]
public SoundSpecifier ExtractSound = new SoundPathSpecifier("/Audio/Effects/radpulse11.ogg");
/// <summary>
/// The entity spawned by a report.

View File

@@ -8,7 +8,7 @@ namespace Content.Server.Xenoarchaeology.Equipment.Components;
/// <summary>
/// A machine that is combined and linked to the <see cref="AnalysisConsoleComponent"/>
/// in order to analyze and destroy artifacts.
/// in order to analyze artifacts and extract points.
/// </summary>
[RegisterComponent]
public sealed class ArtifactAnalyzerComponent : Component

View File

@@ -64,7 +64,7 @@ public sealed class ArtifactAnalyzerSystem : EntitySystem
SubscribeLocalEvent<AnalysisConsoleComponent, AnalysisConsoleServerSelectionMessage>(OnServerSelectionMessage);
SubscribeLocalEvent<AnalysisConsoleComponent, AnalysisConsoleScanButtonPressedMessage>(OnScanButton);
SubscribeLocalEvent<AnalysisConsoleComponent, AnalysisConsolePrintButtonPressedMessage>(OnPrintButton);
SubscribeLocalEvent<AnalysisConsoleComponent, AnalysisConsoleDestroyButtonPressedMessage>(OnDestroyButton);
SubscribeLocalEvent<AnalysisConsoleComponent, AnalysisConsoleExtractButtonPressedMessage>(OnExtractButton);
SubscribeLocalEvent<AnalysisConsoleComponent, ResearchClientServerSelectedMessage>((e,c,_) => UpdateUserInterface(e,c),
after: new []{typeof(ResearchSystem)});
@@ -339,12 +339,12 @@ public sealed class ArtifactAnalyzerSystem : EntitySystem
}
/// <summary>
/// destroys the artifact and updates the server points
/// Extracts points from the artifact and updates the server points
/// </summary>
/// <param name="uid"></param>
/// <param name="component"></param>
/// <param name="args"></param>
private void OnDestroyButton(EntityUid uid, AnalysisConsoleComponent component, AnalysisConsoleDestroyButtonPressedMessage args)
private void OnExtractButton(EntityUid uid, AnalysisConsoleComponent component, AnalysisConsoleExtractButtonPressedMessage args)
{
if (component.AnalyzerEntity == null)
return;
@@ -358,13 +358,14 @@ public sealed class ArtifactAnalyzerSystem : EntitySystem
var pointValue = _artifact.GetResearchPointValue(artifact.Value);
// no new nodes triggered so nothing to add
if (pointValue == 0)
return;
_research.ModifyServerPoints(server.Value, pointValue, serverComponent);
_artifact.AdjustConsumedPoints(artifact.Value, pointValue);
_audio.PlayPvs(component.DestroySound, component.AnalyzerEntity.Value, AudioParams.Default.WithVolume(2f));
_audio.PlayPvs(component.ExtractSound, component.AnalyzerEntity.Value, AudioParams.Default.WithVolume(2f));
_popup.PopupEntity(Loc.GetString("analyzer-artifact-extract-popup"),
component.AnalyzerEntity.Value, PopupType.Large);

View File

@@ -25,7 +25,7 @@ public sealed class AnalysisConsolePrintButtonPressedMessage : BoundUserInterfac
}
[Serializable, NetSerializable]
public sealed class AnalysisConsoleDestroyButtonPressedMessage : BoundUserInterfaceMessage
public sealed class AnalysisConsoleExtractButtonPressedMessage : BoundUserInterfaceMessage
{
}

View File

@@ -4,8 +4,8 @@ analysis-console-scan-button = Scan
analysis-console-scan-tooltip-info = Scan artifacts to learn information about their structure.
analysis-console-print-button = Print
analysis-console-print-tooltip-info = Print out the current information about the artifact.
analysis-console-destroy-button = Extract
analysis-console-destroy-button-info = Extract points from an artifact based on the explored nodes.
analysis-console-extract-button = Extract
analysis-console-extract-button-info = Extract points from an artifact based on the newly explored nodes.
analysis-console-info-no-scanner = No analyzer connected! Please connect one using a multitool.
analysis-console-info-no-artifact = No artifact present! Place one on the pad then scan for information.
@@ -31,4 +31,4 @@ analyzer-artifact-component-upgrade-analysis = analysis duration
analysis-console-print-popup = The console printed out a report.
analyzer-artifact-extract-popup = Energy shimmers on the artifact's surface!
analysis-report-title = Artifact Report: Node {$id}
analysis-report-title = Artifact Report: Node {$id}