Skip to content

Conversation

@nikitosych
Copy link
Member

@nikitosych nikitosych commented Jan 31, 2026

aka "Wprowadzenie"

Informacje o PR

Niekompletna część systemu samouczka po stronie klienta. Infrastruktura po stronie klienta jest niby gotowa, sporo roboty jest z częścią serwerową.

Backend będzie opierał się na https://github.com/space-wizards/space-station-14/pull/41602 (project batfly)
oraz na https://hedgedoc.spacestation14.com/kTStQRSmTP-FlQIF0dN4aQ?view

  • overlay
  • podstawowe wyświetlanie wskazówek na overlayu
  • możliwość wyświetlania animowanych obrazów na wskazówkach
  • skalowalność poza grą
  • skalowalność podczas gry
  • sekwencyjne pslanowanie overlayów oraz wskazówek
  • kroki wprowadzenia oparte na prototypach i smart-encjach
  • śledzenie kroków wprowadzenia, IntroductionManager
  • centralizowane sterowanie UI wprowadzenia
  • zapisywanie postępów
  • część serwerowa
    • merge z https://github.com/space-wizards/space-station-14/pull/41602
    • możliwość przejścia na inny serwer on-prompt w celu wprowadzenia się w mechanikę gry
    • synchronizacja postępu między klientem a serwerem
    • sterowanie wprowadzeniem z poziomu serwera
    • mapa
  • hedgedoc
  • brak błędów testów CI
  • testowania staging

Changelog
TODO

nikitosych and others added 30 commits November 15, 2025 03:41
- Zaktualizowano interfejs użytkownika BanPanel, dodając funkcję wyboru rundy i resetowania.
- Zmodyfikowano polecenia związane z banowaniem, aby akceptowały i obsługiwały informacje o rundach.
- Ulepszono metody banowania, aby przechowywać dane dotyczące rund.
- Zaktualizowano pliki lokalizacyjne dla komunikatów związanych z rundami.
- Zaktualizowano interfejs użytkownika BanPanel, dodając funkcję wyboru rundy i resetowania.
- Zmodyfikowano polecenia związane z banowaniem, aby akceptowały i obsługiwały informacje o rundach.
- Ulepszono metody banowania, aby przechowywać dane dotyczące rund.
- Zaktualizowano pliki lokalizacyjne dla komunikatów związanych z rundami.
Copilot AI review requested due to automatic review settings February 7, 2026 17:34
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copilot AI review requested due to automatic review settings February 7, 2026 17:41
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copilot AI review requested due to automatic review settings February 8, 2026 16:42
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 30 out of 36 changed files in this pull request and generated 21 comments.

else if (ActiveOverlay is not null)
{
// Zamiast natychmiast usuwać overlay, wznosi się zdarzenie zamknięcia, aby zadziałały subskrybcje w poszczegolnych krokach.
ActiveOverlay.DestroyOverlay();
Copy link

Copilot AI Feb 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OverlayCloseRequestEvent is declared and IntroductionManager subscribes to it, but the event is never invoked. As a result, OnOverlayCloseRequested is dead code and close behavior is driven directly by RequestClose()/DestroyOverlay(). Either invoke OverlayCloseRequestEvent from RequestClose() (and let the manager decide navigation) or remove the unused event/subscription to avoid confusion.

Suggested change
ActiveOverlay.DestroyOverlay();
ActiveOverlay.OverlayCloseRequestEvent?.Invoke();

Copilot uses AI. Check for mistakes.
Comment on lines +141 to +155
_content.AddChild(overlayControl);

var tracked = new TrackedControl(overlayControl, null, relativePosition, spacing, UseOverlayBounds: true);
_trackedControls.Add(tracked);

if (!deferred && IsArrangeValid && PixelSize is { X: > 0, Y: > 0 })
{
if (!overlayControl.IsMeasureValid)
overlayControl.Measure(Size);

var controlSize = overlayControl.DesiredPixelSize;
var position = CalculatePositionInContainer(relativePosition, controlSize, PixelSize, spacing);

AddOverlayControl(overlayControl, position);
return;
Copy link

Copilot AI Feb 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AddControlRelative(..., deferred: false) will attempt to add overlayControl to _content twice: once via _content.AddChild(overlayControl) and again via AddOverlayControl(overlayControl, position) (which also does _content.AddChild). This will throw at runtime if the non-deferred path is ever used. In the non-deferred branch, only set position/size (or change AddOverlayControl to not re-add when already parented).

Copilot uses AI. Check for mistakes.
Comment on lines 23 to 32
private void PromptOverlay()
{
var proceedBubble = new IntroBubble(
Loc.GetString("intro-proceed-prompt-message"))
{
ClickAction = IntroBubble.ClickBehaviour.Ignore,
TippyVariant = IntroBubble.Tippy.None,
};
IntroUi.PlanBubble(proceedBubble, HighlightOverlay.OverlayControlPosition.Center);

Copy link

Copilot AI Feb 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ProceedPromptStep only calls IntroUi.PlanBubble(...) but never plans an overlay. Since IntroductionUIController.PlanBubble queues bubbles when there is no active overlay, this step will show no UI and appear to do nothing. Add an overlay via IntroUi.PlanOverlay(...) before planning the bubble (and consider using an overlayId to ensure the bubble is attached to the intended overlay).

Copilot uses AI. Check for mistakes.
shell.WriteLine(Help);
return;
}
var introUI = IoCManager.Resolve<IUserInterfaceManager>().GetUIController<IntroductionUIController>();
Copy link

Copilot AI Feb 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

introUI is resolved but never used. This is dead code and may generate warnings; remove it unless you intended to use it (e.g., to ensure controller initialization).

Suggested change
var introUI = IoCManager.Resolve<IUserInterfaceManager>().GetUIController<IntroductionUIController>();

Copilot uses AI. Check for mistakes.

SPDX-License-Identifier: MIT
-->
SPDX-License-Identifier: MIT-->
Copy link

Copilot AI Feb 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The SPDX header comment is malformed: SPDX-License-Identifier: MIT--> includes the comment terminator on the same line as the identifier. This can break license scanning/REUSE tooling. Put SPDX-License-Identifier: MIT on its own line and close the XML comment (-->) on a separate line.

Suggested change
SPDX-License-Identifier: MIT-->
SPDX-License-Identifier: MIT
-->

Copilot uses AI. Check for mistakes.

var chars = setup.FindControl<BoxContainer>("ListedCharactersContainer");
var name = $"{StepId}-4";
var overlay = IntroUi.PlanOverlay(name, setup.JobPrioritiesBtn, Color.Green);
Copy link

Copilot AI Feb 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This assignment to overlay is useless, since its value is never read.

Suggested change
var overlay = IntroUi.PlanOverlay(name, setup.JobPrioritiesBtn, Color.Green);
IntroUi.PlanOverlay(name, setup.JobPrioritiesBtn, Color.Green);

Copilot uses AI. Check for mistakes.

var chars = setup.FindControl<BoxContainer>("ListedCharactersContainer");
var name = $"{StepId}-5";
var overlay = IntroUi.PlanOverlay(name, default, Color.Transparent, false, false);
Copy link

Copilot AI Feb 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This assignment to overlay is useless, since its value is never read.

Suggested change
var overlay = IntroUi.PlanOverlay(name, default, Color.Transparent, false, false);
IntroUi.PlanOverlay(name, default, Color.Transparent, false, false);

Copilot uses AI. Check for mistakes.
Copilot AI review requested due to automatic review settings February 9, 2026 15:42
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings February 9, 2026 18:22
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Assety Pliki multimedialne gry C# Changes: UI size/L Tłumaczenie Praca nad lokalizacją gry (/) Wymaga Przeglądu Ten pull request wymaga przeglądu mainteinera

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants