mirror of
https://github.com/DeltaV-Station/Delta-v.git
synced 2026-10-03 09:37:27 +00:00
* add reputation system * add contracts button to PDA * give traitors contracts * add GetRandomObjective to SharedObjectivesSystem * add TryRemoveObjective overload * add everything needed for reputation store and objectives * "ui" * giant uplink reputation tagging * prevent buying reputation-locked gear with uplink implant * :trollface: * more ui stuff * :trollface: * :trollface: * remove default objectives * :trollface: * UI fixes * stuff * objective component changes * add offerings and stuff to yml * make some objectives work * make rcd objective real * more ui fix * :trollface: * ui usable * bunch of low risk objectives * syndie jail wip * more wip * massive amount of work * add bad guidebooks * prevent fultoning anchored things * fixes * disable claim buttons when no slots are open * :trollface: * :trollface: * :trollface: * update ui when a slot unlocks * move rejecting to offerings, remove rescan (automatic now) * add verb to attach fulton, fix * dont get objective to ransom/kill someone you already ransomed * make offering slots random + maximum count in rep level * :trollface: * rela * update syndie jail * more syndie jail update * make marshal real * fix * fix power room power * remove access from timer * :trollface: * engine * allow syndicate items on syndie jail * add ransom ui * update map loading * add ransom purchasing to cargo request console * warn not error for loading * ui fixes * final fixy * mg book fix * final fixy II * remove redundant Announcement word * more [] * end ransom when leaving the jail * :trollface: * 10 tc for roundstart traitors * make nuke core objective work for traitor * guidebook gaming * early merge of guidebook comments * update bunch of objectives * add min reputation to kill fellow traitor * guidebook gaming * evil * giant stuff * dont offer dupe objectives * evil * pronoun * fix * grr * blacklist assist and DAGD from assist objective * grr * fix linter * remove objectives from traitor rule test * nuke disk anti-troll * evil test * add objectives test to find bad objective groups * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fixy * fix * fix stuff * reword ransom announcement * pro * goida --------- Signed-off-by: deltanedas <39013340+deltanedas@users.noreply.github.com> Co-authored-by: deltanedas <@deltanedas:kde.org> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
135 lines
4.1 KiB
C#
135 lines
4.1 KiB
C#
using Content.Client.CartridgeLoader;
|
|
using Content.Shared._DV.Reputation; // DeltaV
|
|
using Content.Shared.CartridgeLoader;
|
|
using Content.Shared.Containers.ItemSlots;
|
|
using Content.Shared.PDA;
|
|
using JetBrains.Annotations;
|
|
using Robust.Client.UserInterface;
|
|
|
|
namespace Content.Client.PDA
|
|
{
|
|
[UsedImplicitly]
|
|
public sealed class PdaBoundUserInterface : CartridgeLoaderBoundUserInterface
|
|
{
|
|
private readonly PdaSystem _pdaSystem;
|
|
|
|
[ViewVariables]
|
|
private PdaMenu? _menu;
|
|
|
|
public PdaBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
|
|
{
|
|
_pdaSystem = EntMan.System<PdaSystem>();
|
|
}
|
|
|
|
protected override void Open()
|
|
{
|
|
base.Open();
|
|
|
|
if (_menu == null)
|
|
CreateMenu();
|
|
}
|
|
|
|
private void CreateMenu()
|
|
{
|
|
_menu = this.CreateWindowCenteredLeft<PdaMenu>();
|
|
|
|
_menu.FlashLightToggleButton.OnToggled += _ =>
|
|
{
|
|
SendMessage(new PdaToggleFlashlightMessage());
|
|
};
|
|
|
|
_menu.EjectIdButton.OnPressed += _ =>
|
|
{
|
|
SendPredictedMessage(new ItemSlotButtonPressedEvent(PdaComponent.PdaIdSlotId));
|
|
};
|
|
|
|
_menu.EjectPenButton.OnPressed += _ =>
|
|
{
|
|
SendPredictedMessage(new ItemSlotButtonPressedEvent(PdaComponent.PdaPenSlotId));
|
|
};
|
|
|
|
_menu.EjectPaiButton.OnPressed += _ =>
|
|
{
|
|
SendPredictedMessage(new ItemSlotButtonPressedEvent(PdaComponent.PdaPaiSlotId));
|
|
};
|
|
|
|
_menu.ActivateMusicButton.OnPressed += _ =>
|
|
{
|
|
SendMessage(new PdaShowMusicMessage());
|
|
};
|
|
|
|
_menu.AccessRingtoneButton.OnPressed += _ =>
|
|
{
|
|
SendMessage(new PdaShowRingtoneMessage());
|
|
};
|
|
|
|
_menu.ShowUplinkButton.OnPressed += _ =>
|
|
{
|
|
SendMessage(new PdaShowUplinkMessage());
|
|
};
|
|
|
|
_menu.LockUplinkButton.OnPressed += _ =>
|
|
{
|
|
SendMessage(new PdaLockUplinkMessage());
|
|
};
|
|
|
|
_menu.ContractsButton.OnPressed += _ => SendMessage(new PdaShowContractsMessage()); // DeltaV
|
|
|
|
_menu.OnProgramItemPressed += ActivateCartridge;
|
|
_menu.OnInstallButtonPressed += InstallCartridge;
|
|
_menu.OnUninstallButtonPressed += UninstallCartridge;
|
|
_menu.ProgramCloseButton.OnPressed += _ => DeactivateActiveCartridge();
|
|
|
|
var borderColorComponent = GetBorderColorComponent();
|
|
if (borderColorComponent == null)
|
|
return;
|
|
|
|
_menu.BorderColor = borderColorComponent.BorderColor;
|
|
_menu.AccentHColor = borderColorComponent.AccentHColor;
|
|
_menu.AccentVColor = borderColorComponent.AccentVColor;
|
|
}
|
|
|
|
protected override void UpdateState(BoundUserInterfaceState state)
|
|
{
|
|
base.UpdateState(state);
|
|
|
|
if (state is not PdaUpdateState updateState)
|
|
return;
|
|
|
|
if (_menu == null)
|
|
{
|
|
_pdaSystem.Log.Error("PDA state received before menu was created.");
|
|
return;
|
|
}
|
|
|
|
_menu.UpdateState(updateState);
|
|
}
|
|
|
|
protected override void AttachCartridgeUI(Control cartridgeUIFragment, string? title)
|
|
{
|
|
_menu?.ProgramView.AddChild(cartridgeUIFragment);
|
|
_menu?.ToProgramView(title ?? Loc.GetString("comp-pda-io-program-fallback-title"));
|
|
}
|
|
|
|
protected override void DetachCartridgeUI(Control cartridgeUIFragment)
|
|
{
|
|
if (_menu is null)
|
|
return;
|
|
|
|
_menu.ToHomeScreen();
|
|
_menu.HideProgramHeader();
|
|
_menu.ProgramView.RemoveChild(cartridgeUIFragment);
|
|
}
|
|
|
|
protected override void UpdateAvailablePrograms(List<(EntityUid, CartridgeComponent)> programs)
|
|
{
|
|
_menu?.UpdateAvailablePrograms(programs);
|
|
}
|
|
|
|
private PdaBorderColorComponent? GetBorderColorComponent()
|
|
{
|
|
return EntMan.GetComponentOrNull<PdaBorderColorComponent>(Owner);
|
|
}
|
|
}
|
|
}
|