Northstar Gloves (#16021)
* Added Gloves of North Star, no sprite or talking yet... * Added sprites for the gloves of the north star... * Replaced more placeholder sprites for northstar gloves... * Added gloves of the north star to uplink... * Added speech on hit, not yet configureable * Not functional yet, but a step in the right direction I hope... * IT WORKS!! * Licensing and cleanup * Reduced attack speed, changed from chat to popup, added some admin logging. It was causing too much adminlog spam otherwise * Reorganized some files, final build?? * Changed the adminlog type from Verb to new type ItemConfigure * More cleanup, fix sprite reference maybe * Keronshb's suggestions, fixed some stuff, made hit sound use the meaty punch sfx * Adds support for hiding speak/whisper/emote from adminlogs, makes northstar speak again! * Some file shuffling, some of Keronshb's requests. Might appear a bit funky in github because vscode kept duplicating files for some reason and I had to delete them * Made it work with the latest changes on Master * Final? cleanup, upped dmg to 8, made ui not activate on activateinhand, instead you need to right click * Set value to 0 credits, that's all * Well that was much easier than I made it out to be. Now you can only activate the gloves with right click, no more mispredicts. * Update MeleeWeaponSystem.cs Iunno why this got changed in the first place, but I'm changin it back * emptycommit * emptycommit * The tiny fixening
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
using Robust.Client.GameObjects;
|
||||
using Content.Shared.Speech.Components;
|
||||
|
||||
namespace Content.Client.Weapons.Melee.UI;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a <see cref="MeleeSpeechWindow"/> and updates it when new server messages are received.
|
||||
/// </summary>
|
||||
public sealed class MeleeSpeechBoundUserInterface : BoundUserInterface
|
||||
{
|
||||
private MeleeSpeechWindow? _window;
|
||||
|
||||
public MeleeSpeechBoundUserInterface(ClientUserInterfaceComponent owner, Enum uiKey) : base(owner, uiKey)
|
||||
{
|
||||
}
|
||||
|
||||
protected override void Open()
|
||||
{
|
||||
base.Open();
|
||||
|
||||
_window = new MeleeSpeechWindow();
|
||||
if (State != null)
|
||||
UpdateState(State);
|
||||
|
||||
_window.OpenCentered();
|
||||
|
||||
_window.OnClose += Close;
|
||||
_window.OnBattlecryEntered += OnBattlecryChanged;
|
||||
}
|
||||
|
||||
|
||||
private void OnBattlecryChanged(string newBattlecry)
|
||||
{
|
||||
SendMessage(new MeleeSpeechBattlecryChangedMessage(newBattlecry));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update the UI state based on server-sent info
|
||||
/// </summary>
|
||||
/// <param name="state"></param>
|
||||
protected override void UpdateState(BoundUserInterfaceState state)
|
||||
{
|
||||
base.UpdateState(state);
|
||||
if (_window == null || state is not MeleeSpeechBoundUserInterfaceState cast)
|
||||
return;
|
||||
|
||||
_window.SetCurrentBattlecry(cast.CurrentBattlecry);
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
base.Dispose(disposing);
|
||||
if (!disposing) return;
|
||||
_window?.Dispose();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user