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

Introducing: The Cosmic Cult #664

Draft
wants to merge 100 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
2765e8a
Introducing: The cosmic cult.
AftrLite Nov 10, 2024
822b13b
fixes to objective duplication
AftrLite Nov 10, 2024
032db9e
more objective fix attempts
AftrLite Nov 10, 2024
706eb2b
Added ZeroGravityArea component for objects with zero-gravity areas a…
TGRCdev Nov 10, 2024
6d3385a
Fixed magboots not working in anti-gravity areas
TGRCdev Nov 10, 2024
95c7a82
Partially improved prediction on zero gravity areas
TGRCdev Nov 10, 2024
35cdd12
Utilized some silly bitmask tricks to make zero gravity fields seamless
TGRCdev Nov 10, 2024
1f512b2
Oops left a print statement
TGRCdev Nov 10, 2024
827c32f
lore update + name changes
AftrLite Nov 10, 2024
28b8614
Merge branch 'the-cosmic-cult' of https://github.com/AftrLite/imp-sta…
AftrLite Nov 10, 2024
dd70e9c
???
AftrLite Nov 10, 2024
1feb336
attribution fixes & file management
AftrLite Nov 10, 2024
d6b1cb6
The monument is no longer destructible. Name changes.
AftrLite Nov 10, 2024
51daa53
Merge branch 'master' of https://github.com/AftrLite/imp-station-14 i…
AftrLite Nov 10, 2024
27f713c
cosmic cult tinkering
formlessnameless Nov 11, 2024
60b095b
Tweaks + new sounds + new sprites
AftrLite Nov 11, 2024
73d3a51
Merge pull request #1 from formlessnameless/cosmic-cult
AftrLite Nov 11, 2024
b9e3425
Zero-g structure sprite updates
AftrLite Nov 11, 2024
60a1558
Improve ZeroGravityArea overlap prediction
TGRCdev Nov 11, 2024
1f175dc
Cosmic gravity pylons are now toggleable
TGRCdev Nov 11, 2024
a9c92bc
Wow i can't believe i forgot these commas
AftrLite Nov 11, 2024
5441141
Fixed zero-area fixture
TGRCdev Nov 11, 2024
fc2bc17
Sprite tweaks to Zero-g pylon (again)
AftrLite Nov 11, 2024
4d50721
"astrolabe" sprite. Name still placeholder.
AftrLite Nov 11, 2024
1a7a412
Work towards ability functionality
AftrLite Nov 12, 2024
00966a2
Basic cosmic tool ability works now
AftrLite Nov 12, 2024
4ee3be5
category fix
AftrLite Nov 12, 2024
9fd1a13
Fixes towards abilities, + new icon
AftrLite Nov 14, 2024
b9907c7
naming convention changes + polish
AftrLite Nov 15, 2024
ba45869
Draft of the cosmic siphon ability
TGRCdev Nov 15, 2024
98f01c2
Merge branch 'impstation:master' into the-cosmic-cult
AftrLite Nov 15, 2024
bc70e2b
Ability icons for lapse and siphon. Also a [PH] icon for Placeholder …
AftrLite Nov 15, 2024
60137ac
Merge branch 'the-cosmic-cult' of https://github.com/AftrLite/imp-sta…
AftrLite Nov 15, 2024
153b839
misc little nothings
AftrLite Nov 15, 2024
f72c7de
misc little nothings
AftrLite Nov 15, 2024
71101a9
Merge branch 'the-cosmic-cult' of https://github.com/AftrLite/imp-sta…
AftrLite Nov 15, 2024
9ec4d09
-Some locale changes and tweaks courtesy of @jtfg-dev.
AftrLite Nov 16, 2024
a0159f7
Merge branch 'impstation:master' into the-cosmic-cult
AftrLite Nov 16, 2024
88f53a1
Custom parallax
AftrLite Nov 16, 2024
d09c0d6
New icon + icon tweaks
AftrLite Nov 16, 2024
ca53ac9
Objective progress, icon updates, text tweaks, code commenting, entro…
AftrLite Nov 17, 2024
f88bc38
Objective progress, icon updates, text tweaks, code commenting, entro…
AftrLite Nov 17, 2024
5816f75
Merge branch 'the-cosmic-cult' of https://github.com/AftrLite/imp-sta…
AftrLite Nov 17, 2024
a85041b
fuck you github my tip is not behind, I AM THE TIP
AftrLite Nov 17, 2024
ac77ff6
Entropic mote, initial draft of the actual design doc, some fumbling …
AftrLite Nov 18, 2024
91f4cc5
Monument adjustments, UI testing, entropy mote insertion
AftrLite Nov 24, 2024
bfd2454
Initial Commit
AftrLite Nov 27, 2024
e8798d8
Mailing adjustments
AftrLite Nov 27, 2024
8a85d0c
Tweaks to printers, disposal + mailing, suit storage.
AftrLite Nov 28, 2024
ad8e4de
Improvements to fax machine, juicer/grinder, O2/N20 vendors, a respri…
AftrLite Nov 30, 2024
cdf0636
Updated Kip's S-Cargo crate.
AftrLite Nov 30, 2024
9daa48b
Revert "Updated Kip's S-Cargo crate."
AftrLite Nov 30, 2024
983507c
camel's soup
hivehum Nov 16, 2024
6a3c117
Automatic changelog update
ImpstationBot Nov 16, 2024
c0038eb
End Screen Medals!
JLondon1 Nov 15, 2024
5b082d8
Automatic changelog update
ImpstationBot Nov 16, 2024
36bfda5
Desperado Hardsuit implementation
smpletan Nov 14, 2024
6149337
fix whitespace
widgetbeck Nov 16, 2024
6b67548
fix whitespace
widgetbeck Nov 16, 2024
df8b7d6
Automatic changelog update
ImpstationBot Nov 16, 2024
8bc69dd
new cute folders yaygit add -Agit add -A!
Darkmajia Nov 13, 2024
03d4bd9
black folder, different folder descs
Darkmajia Nov 16, 2024
fc43ae5
fix whitespace
widgetbeck Nov 16, 2024
ede8751
Automatic changelog update
ImpstationBot Nov 16, 2024
e2e5873
Gray Guidebook Page Update (controversial)(SCARY)(don't wach after 3am)
widgetbeck Nov 16, 2024
546b269
minor tweaks courtesy of sage
widgetbeck Nov 16, 2024
2831746
grammar
widgetbeck Nov 16, 2024
cdc18ff
you're on thin ice, buddy
widgetbeck Nov 16, 2024
455f6a6
Automatic changelog update
ImpstationBot Nov 16, 2024
8ce1ddc
Thaven Mood Update 2 + bugfixes
widgetbeck Nov 16, 2024
f634f45
update PTA's Woe render (color reduction pass)
widgetbeck Nov 16, 2024
ea207b5
Automatic changelog update
ImpstationBot Nov 16, 2024
c684463
random dnr fix for real this time final final v2 final
Darkmajia Nov 16, 2024
85e5f3a
Automatic changelog update
ImpstationBot Nov 16, 2024
bc3591d
adds DrinkCan tag back to RootBeer
formlessnameless Nov 17, 2024
1f00a9a
RootBeer has DrinkCan tag again
formlessnameless Nov 17, 2024
aec03dd
added objectives to midround ling event after changes
formlessnameless Nov 17, 2024
d952dc1
saltern bridge power fix
Darkmajia Nov 17, 2024
5527922
Update Union Station
EpicToastTM Nov 17, 2024
95bd050
medsec hud is now flashproof since it covers both eyes
Sha-Seng Nov 13, 2024
b1b9879
added makeshift ones (not flashproof, purple colored) anyone can craf…
Sha-Seng Nov 13, 2024
b47cc05
adding a brigmedic's cap too
Sha-Seng Nov 13, 2024
14879b0
reverted medsec hud changes (except for required radio), kept hat and…
Sha-Seng Nov 13, 2024
414ae79
there
Sha-Seng Nov 13, 2024
8d48d67
cmon i wanna go to bed
Sha-Seng Nov 13, 2024
5dc7dd3
isuggest forcefem is now back in the "bad" category
widgetbeck Nov 17, 2024
26dd2e7
remove half finished map
formlessnameless Nov 17, 2024
29f08dc
Automatic changelog update
ImpstationBot Nov 17, 2024
6519960
Automatic changelog update
ImpstationBot Nov 17, 2024
0b9d604
added the greycloak, a passenger prestige item
widgetbeck Nov 18, 2024
497c496
All humanoids can now be given the SpelfMoods component through the T…
TGRCdev Nov 18, 2024
967d1cc
relocated high heels and added command variations
honeyed-lemons Nov 17, 2024
3589a7d
test
AftrLite Dec 3, 2024
85994fa
Test push
AftrLite Dec 3, 2024
a264951
More monument functionality, huzzah
AftrLite Dec 6, 2024
789c862
Monument insert animation polish, cult lead monument spawn animation
AftrLite Dec 13, 2024
980941c
MASSIVE TILESET UPDATE.
AftrLite Dec 17, 2024
3f12220
more tileset additions & tweaks
AftrLite Dec 18, 2024
aea2b10
Thrusters DONE
AftrLite Dec 18, 2024
ebbf60b
yaml linter fixes
AftrLite Dec 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
37 changes: 37 additions & 0 deletions Content.Client/_Impstation/Cosmiccult/CosmicCultSystem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
using Content.Shared._Impstation.Cosmiccult.Components;
using Content.Shared._Impstation.Cosmiccult;
using Content.Shared.StatusIcon.Components;
using Robust.Shared.Prototypes;

namespace Content.Client._Impstation.Cosmiccult;

/// <summary>
/// Used for the client to get status icons from other revs.
/// </summary>
public sealed class CosmicCultSystem : SharedCosmicCultSystem
{
[Dependency] private readonly IPrototypeManager _prototype = default!;

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

SubscribeLocalEvent<CosmicCultComponent, GetStatusIconsEvent>(GetCosmicCultIcon);
SubscribeLocalEvent<CosmicCultLeadComponent, GetStatusIconsEvent>(GetCosmicCultLeadIcon);
}

private void GetCosmicCultIcon(Entity<CosmicCultComponent> ent, ref GetStatusIconsEvent args)
{
if (HasComp<CosmicCultLeadComponent>(ent))
return;

if (_prototype.TryIndex(ent.Comp.StatusIcon, out var iconPrototype))
args.StatusIcons.Add(iconPrototype);
}

private void GetCosmicCultLeadIcon(Entity<CosmicCultLeadComponent> ent, ref GetStatusIconsEvent args)
{
if (_prototype.TryIndex(ent.Comp.StatusIcon, out var iconPrototype))
args.StatusIcons.Add(iconPrototype);
}
}
25 changes: 25 additions & 0 deletions Content.Client/_Impstation/Cosmiccult/UI/CosmicDeconvertedEui.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
using Content.Client.Eui;

namespace Content.Client._Impstation.Cosmiccult.UI;

public sealed class CosmicDeconvertedEui : BaseEui
{
private readonly CosmicDeconvertedMenu _menu;

public CosmicDeconvertedEui()
{
_menu = new CosmicDeconvertedMenu();
}

public override void Opened()
{
_menu.OpenCentered();
}

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

_menu.Close();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<controls:FancyWindow xmlns="https://spacestation14.io"
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
Title="{Loc 'rev-deconverted-title'}">
<BoxContainer Orientation="Vertical" Margin="5">
<Label Text="{Loc 'rev-deconverted-text'}"/>
<BoxContainer Orientation="Horizontal" Align="Center">
<Button Name="ConfirmButton" Text="{Loc 'rev-deconverted-confirm'}"/>
</BoxContainer>
</BoxContainer>
</controls:FancyWindow>
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
using Content.Client.UserInterface.Controls;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.XAML;

namespace Content.Client._Impstation.Cosmiccult.UI;

[GenerateTypedNameReferences]
public sealed partial class CosmicDeconvertedMenu : FancyWindow
{
public CosmicDeconvertedMenu()
{
RobustXamlLoader.Load(this);

ConfirmButton.OnPressed += _ => Close();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
using Content.Shared._Impstation.Cosmiccult;
using JetBrains.Annotations;
using Robust.Client.UserInterface;

namespace Content.Client._Impstation.Cosmiccult.UI;

[UsedImplicitly]
public sealed class CosmicMonumentBoundUserInterface : BoundUserInterface
{
private CosmicMonumentWindow? _window;

public CosmicMonumentBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
{
}

protected override void Open()
{
base.Open();

_window = this.CreateWindow<CosmicMonumentWindow>();

_window.OnGenerateButtonPressed += () =>
{
SendMessage(new CosmicMonumentGenerateButtonPressedEvent());
};
}

protected override void UpdateState(BoundUserInterfaceState state)
{
base.UpdateState(state);

if (state is not CosmicMonumentUserInterfaceState msg)
return;
_window?.UpdateState(msg);
}
}

51 changes: 51 additions & 0 deletions Content.Client/_Impstation/Cosmiccult/UI/CosmicMonumentWindow.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<controls:FancyWindow xmlns="https://spacestation14.io"
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
Resizable="False"
SetSize="750 1120"
MinSize="750 1120">
<TextureRect Stretch="KeepAspectCentered"
TexturePath="/Textures/_Impstation/CosmicCult/Interface/glare.png"
SetSize="1124 1124"
Margin="0 0 0 0"/>
<BoxContainer Margin="0 0"
Orientation="Vertical"
HorizontalExpand="True"
VerticalExpand="True">
<BoxContainer Margin="15 15 7 0" Orientation="Horizontal">
<BoxContainer Orientation="Vertical" HorizontalExpand="True">
<BoxContainer Orientation="Horizontal"
HorizontalExpand="True"
VerticalExpand="True"
Margin="0 0 0 0"
VerticalAlignment="Center">
<ProgressBar Name="FuelBar"
HorizontalExpand="True"
MaxValue="1"
MinValue="0"
SetHeight="25"
Margin="10 0 10 0"
VerticalAlignment="Center">
<Label Name="FuelText"
Margin="5 0"
HorizontalAlignment="Center"
Text="0 %" />
</ProgressBar>
</BoxContainer>
<RichTextLabel Name="CooldownLabel" StyleClasses="StatusFieldTitle" />
<RichTextLabel Name="ReadyLabel" StyleClasses="StatusFieldTitle" />
</BoxContainer>
<!--Sprite View-->
<PanelContainer Margin="12 0 0 0"
StyleClasses="Inset"
VerticalAlignment="Center">
</PanelContainer>
</BoxContainer>
<BoxContainer VerticalExpand="True"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0 10">
<Button Name="GenerateButton"
Text="{Loc 'cosmic-monument-generate'}"></Button>
</BoxContainer>
</BoxContainer>
</controls:FancyWindow>
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
using Content.Client.Message;
using Content.Shared._Impstation.Cosmiccult;
using Robust.Client.AutoGenerated;
using Robust.Client.GameObjects;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Timing;
using FancyWindow = Content.Client.UserInterface.Controls.FancyWindow;

namespace Content.Client._Impstation.Cosmiccult.UI;

[GenerateTypedNameReferences]
public sealed partial class CosmicMonumentWindow : FancyWindow
{
[Dependency] private readonly IGameTiming _timing = default!;

private TimeSpan _cooldownEnd = TimeSpan.Zero;
private bool _hasEnoughFuel;

public Action? OnGenerateButtonPressed;

public CosmicMonumentWindow()
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);

GenerateButton.OnPressed += _ => OnGenerateButtonPressed?.Invoke();
}

public void UpdateState(CosmicMonumentUserInterfaceState state)
{
_cooldownEnd = state.CooldownEndTime;
_hasEnoughFuel = state.FuelCost <= state.FuelAmount;

var fuelCompletion = Math.Clamp((float) state.FuelAmount / state.FuelCost, 0f, 1f);

FuelBar.Value = fuelCompletion;

var charges = state.FuelAmount / state.FuelCost;
FuelText.Text = Loc.GetString("cosmic-monument-charges", ("charges", charges));

UpdateTimer();
UpdateReady(); // yes this can trigger twice. no i don't care
}

public void UpdateTimer()
{
if (_timing.CurTime > _cooldownEnd)
{
CooldownLabel.SetMarkup(Loc.GetString("cosmic-monument-no-cooldown"));
}
else
{
var timeLeft = _cooldownEnd - _timing.CurTime;
var timeString = $"{timeLeft.Minutes:0}:{timeLeft.Seconds:00}";
CooldownLabel.SetMarkup(Loc.GetString("cosmic-monument-cooldown", ("time", timeString)));
UpdateReady();
}
}

public void UpdateReady()
{
var ready = _hasEnoughFuel && _timing.CurTime > _cooldownEnd;

var msg = ready
? Loc.GetString("cosmic-monument-yes-fire")
: Loc.GetString("cosmic-monument-no-fire");
ReadyLabel.SetMarkup(msg);

GenerateButton.Disabled = !ready;
}

protected override void FrameUpdate(FrameEventArgs args)
{
base.FrameUpdate(args);

UpdateTimer();
}
}

21 changes: 21 additions & 0 deletions Content.Client/_Impstation/CrewMedal/CrewMedalSystem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
using Content.Client._Impstation.CrewMedal.UI;
using Content.Shared._Impstation.CrewMedal;

namespace Content.Client._Impstation.CrewMedal;

public sealed class CrewMedalSystem : SharedCrewMedalSystem
{
[Dependency] private readonly SharedUserInterfaceSystem _uiSystem = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<CrewMedalComponent, AfterAutoHandleStateEvent>(OnCrewMedalAfterState);
}
private void OnCrewMedalAfterState(Entity<CrewMedalComponent> ent, ref AfterAutoHandleStateEvent args)
{
if (!_uiSystem.TryGetOpenUi<CrewMedalBoundUserInterface>(ent.Owner, CrewMedalUiKey.Key, out var bui))
return;

bui.Reload();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
using Content.Shared._Impstation.CrewMedal;
using Robust.Client.UserInterface;

namespace Content.Client._Impstation.CrewMedal.UI;

/// <summary>
/// Initializes a <see cref="CrewMedalWindow"/> and updates it when new server messages are received.
/// </summary>
public sealed class CrewMedalBoundUserInterface : BoundUserInterface
{
[Dependency] private readonly IEntityManager _entManager = default!;

[ViewVariables]
private CrewMedalWindow? _window;

public CrewMedalBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
{
IoCManager.InjectDependencies(this);
}

protected override void Open()
{
base.Open();

_window = this.CreateWindow<CrewMedalWindow>();

_window.OnReasonChanged += OnReasonChanged;
Reload();
}

private void OnReasonChanged(string newReason)
{
if (_entManager.TryGetComponent<CrewMedalComponent>(Owner, out var component) &&
component.Reason.Equals(newReason))
return;

SendPredictedMessage(new CrewMedalReasonChangedMessage(newReason));
}

public void Reload()
{
if (_window == null || !_entManager.TryGetComponent<CrewMedalComponent>(Owner, out var component))
return;

_window.SetCurrentReason(component.Reason);
_window.SetAwarded(component.Awarded);
_window.SetMaxCharacters(component.MaxCharacters);
}
}
13 changes: 13 additions & 0 deletions Content.Client/_Impstation/CrewMedal/UI/CrewMedalWindow.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<DefaultWindow xmlns="https://spacestation14.io"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="{Loc 'crew-medal-ui-header'}">
<BoxContainer Orientation="Vertical" SeparationOverride="4" MinWidth="150">
<Label Text="{Loc 'crew-medal-ui-reason'}" />
<BoxContainer Orientation="Horizontal">
<LineEdit Name="ReasonLineEdit" HorizontalExpand="True" />
<Button Name="SaveButton" Text="{Loc crew-medal-ui-save}"/>
</BoxContainer>
<Label Name="CharacterLabel" Text="" />
<Label Text="{Loc 'crew-medal-ui-info'}" />
</BoxContainer>
</DefaultWindow>
Loading