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

Upstream merge 67 #2219

Merged
merged 199 commits into from
Nov 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
199 commits
Select commit Hold shift + click to select a range
a62ddf2
Update Credits (#32916)
github-actions[bot] Oct 20, 2024
69849bf
MMIs and positronic brains now talk like pAIs in plushies (#32914)
beck-thompson Oct 20, 2024
088ec56
Automatic changelog update
PJBot Oct 20, 2024
b7bd7c1
Blunt damage will do stamina damage on wide attacks (#32422)
Calecute Oct 20, 2024
628f51b
Automatic changelog update
PJBot Oct 20, 2024
8cf5f93
Fix starting gear multiple storage fills and tests (#32718)
Zap527 Oct 20, 2024
4c3fd31
Cog small update (#32922)
Spessmann Oct 20, 2024
eec533c
Reduce player softcap for wizden servers and panic bunker wizden Levi…
nikthechampiongr Oct 20, 2024
c221ef0
System to automatically restart server after certain uptime. (#32814)
PJB3005 Oct 20, 2024
0b8d6a1
Mutetoxin buff (#32915)
Thatonestomf Oct 21, 2024
1d2ad3c
Automatic changelog update
PJBot Oct 21, 2024
b5687e4
prevent typing sound from playing when AI interacts with consoles (#3…
MendaxxDev Oct 21, 2024
04e422b
Automatic changelog update
PJBot Oct 21, 2024
8a5d9a3
Let station AI use long range fax machines (#32929)
NoElkaTheGod Oct 21, 2024
afd4c73
Automatic changelog update
PJBot Oct 21, 2024
a227c3b
Box Station - Resolved #32771, #32949, and #32921 (#32950)
southbridge-fur Oct 22, 2024
7d91bcb
Automatic changelog update
PJBot Oct 22, 2024
8142ac0
Cog sec maints updated (#32948)
Spessmann Oct 22, 2024
5f1b848
Ammo boxes now have sprites for being parially filled! (#32930)
Moomoobeef Oct 22, 2024
94bbf72
Automatic changelog update
PJBot Oct 22, 2024
62f5a31
Syringe gun! (#32112)
ScarKy0 Oct 22, 2024
fc2bb79
Automatic changelog update
PJBot Oct 22, 2024
9873efd
Adding intellicard functionality. (#32347)
ScarKy0 Oct 22, 2024
5e637aa
Automatic changelog update
PJBot Oct 22, 2024
5d6ec18
Add Nuclear Cola centrifuge recipe (#32441)
southbridge-fur Oct 22, 2024
8f52a34
Automatic changelog update
PJBot Oct 22, 2024
ee8dede
Several Ninja Suit power cell upgrade fixes. (#32902)
BramvanZijp Oct 22, 2024
445cad4
Automatic changelog update
PJBot Oct 22, 2024
c1d5e6f
In-hand apprasial tool sprite (#32849)
UBlueberry Oct 22, 2024
3b0d8e6
Automatic changelog update
PJBot Oct 22, 2024
d221683
Visualized regions for NavMapControl (#31910)
chromiumboy Oct 23, 2024
05a0051
Automatic changelog update
PJBot Oct 23, 2024
92c49af
Packed Update (#32971)
spanky-spanky Oct 23, 2024
5a86b88
adds Meat Tag to FoodMeatSnake (#32965)
hyphenationc Oct 24, 2024
79c35e0
Automatic changelog update
PJBot Oct 24, 2024
d4da992
Fix Emote Chat Sanitizer (#32940)
Aeshus Oct 24, 2024
5ff5a72
Fix multiplying colors of differing nullabilities (#32991)
chromiumboy Oct 25, 2024
1307733
Make atmos alert computer colors private variables (#32992)
chromiumboy Oct 25, 2024
e3f442e
Add flash reaction effect (#32377)
slarticodefast Oct 25, 2024
6998fa8
Automatic changelog update
PJBot Oct 25, 2024
66432c5
Fix loneop spawnrate by reverting it to not use the shuttle event sys…
BramvanZijp Oct 26, 2024
988b620
Automatic changelog update
PJBot Oct 26, 2024
5a10bf0
add atmosia to devmap (#32460)
Ilya246 Oct 26, 2024
97ef463
bowls now make drinking sounds (#32819)
Moomoobeef Oct 26, 2024
dcb615d
Automatic changelog update
PJBot Oct 26, 2024
a95c8ba
Add health analyzer unrevivability warning (#32636)
SaphireLattice Oct 26, 2024
427817e
Automatic changelog update
PJBot Oct 26, 2024
9d6e625
Removed the name "Hujsak" (#32998)
Moomoobeef Oct 26, 2024
6486cdf
Update Credits (#33016)
github-actions[bot] Oct 27, 2024
4252fdf
fix pie throwing sound not playing (#33017)
slarticodefast Oct 27, 2024
a1c36dc
Automatic changelog update
PJBot Oct 27, 2024
7e526da
Fix Bug With Uppercase Radio Keys (#32997) (master) (#33031)
VasilisThePikachu Oct 27, 2024
08d0077
Fix TestSuicideByHeldItem and TestSuicideByHeldItemSpreadDamage (#33030)
FluffMe Oct 28, 2024
ee445c4
make ai speak robotically (#33025)
pheenty Oct 28, 2024
24f79c3
Fix playtime formatting (#32974)
stalengd Oct 28, 2024
f867987
Automatic changelog update
PJBot Oct 28, 2024
6733250
Extends the minimum round time for meteor swarm events (#32876)
august-sun Oct 28, 2024
1ef5b22
Automatic changelog update
PJBot Oct 28, 2024
30017bc
Adds beacon to cog station vox box (#33000)
joshepvodka Oct 28, 2024
93315d4
Adds beacon to box station's vox box (#33001)
joshepvodka Oct 28, 2024
e900ad7
Adds beacon to bagel station's vox box (#33002)
joshepvodka Oct 28, 2024
dbef6cb
Adds beacon to oasis station's vox box (#33003)
joshepvodka Oct 28, 2024
7ac2d9a
Adds beacon to core station's vox box (#33004)
joshepvodka Oct 28, 2024
dc3a2f6
add StartDelay bool to actions (#33026)
lzk228 Oct 28, 2024
6236d1a
Updated an incorrect sprite in the smite menu (#33043)
Moomoobeef Oct 28, 2024
63f8aba
fix lava expeds (#33042)
deltanedas Oct 29, 2024
a5a5840
Automatic changelog update
PJBot Oct 29, 2024
94e686c
Fix separated game screen bumping (#33046)
metalgearsloth Oct 29, 2024
a8c512c
Automatic changelog update
PJBot Oct 29, 2024
907a9ce
Fix: Make Plushie Damage Unexaminable (#33061)
thetolbean Oct 30, 2024
440da3c
fix chameleon projector bot whitelist (#33055)
MilonPL Oct 30, 2024
3d70cdf
Various Vaugely Connected Sprite Updates™: Encryption Keys, Station M…
Flareguy Oct 30, 2024
0aa46f6
Give proto-kinetic crushers, glaives, and daggers better inhands. Upd…
Blackern5000 Oct 30, 2024
d4db338
Automatic changelog update
PJBot Oct 30, 2024
010638d
Make the security belt contain more useful items by default (#32291)
Blackern5000 Oct 30, 2024
0f1e11c
Automatic changelog update
PJBot Oct 30, 2024
6834bc1
Add 3 bottle boxes to nanomed plus (#33018)
Blackern5000 Oct 30, 2024
827d00e
Automatic changelog update
PJBot Oct 30, 2024
4b46768
Nukie med bundle now costs 24 tc and contains a unique defibrillator …
Blackern5000 Oct 30, 2024
fdd713a
Automatic changelog update
PJBot Oct 30, 2024
a3dc0eb
Pill Bottles can only store pills now (#33074)
Boaz1111 Oct 31, 2024
826bd1a
Automatic changelog update
PJBot Oct 31, 2024
f5e5646
New workflow to apply the pr approved label (#28358)
AJCM-git Oct 31, 2024
4261698
Add a spare bible to PietyVend (#32363)
Jarmer123 Oct 31, 2024
a875bf3
Automatic changelog update
PJBot Oct 31, 2024
55861b4
[#28722 fix] Add notification for dependent wearables being dropped (…
SlamBamActionman Oct 31, 2024
872adb5
Automatic changelog update
PJBot Oct 31, 2024
a08da9d
More pda space (#32601)
BramvanZijp Oct 31, 2024
bca8d95
Automatic changelog update
PJBot Oct 31, 2024
d446a3e
Potencially fix approved labeler (#33083)
VasilisThePikachu Oct 31, 2024
1c2a965
Fixed spelling mistake in water blaster description. (#33087)
SpaceLizard24 Oct 31, 2024
4626904
[#20285 fix] Carp Plush and Rehydratables can now be put into mop buc…
SlamBamActionman Oct 31, 2024
d2baf18
Automatic changelog update
PJBot Oct 31, 2024
2282e3c
Revert #28358 (#33090)
VasilisThePikachu Oct 31, 2024
56d6231
Fixes tailthump breaking positional audio by making it mono (#33092)
deathride58 Oct 31, 2024
45aa782
Automatic changelog update
PJBot Oct 31, 2024
cf0d6c4
ExaminableDamage now puts its message at the bottom and in color (#32…
Moomoobeef Nov 1, 2024
835d0b4
Fixed trash not being spawned when throwing pies (#33013)
reesque Nov 1, 2024
59f1287
Automatic changelog update
PJBot Nov 1, 2024
b3190b8
Lower in-round votekick requirements (#32953)
SlamBamActionman Nov 1, 2024
06da4fc
Allow votekicks to be initiated in the lobby (#32528)
SlamBamActionman Nov 1, 2024
973aeb1
Automatic changelog update
PJBot Nov 1, 2024
d708a15
Fixes bolt lights of previously unpowered bolted doors (#33063)
PopGamer45 Nov 1, 2024
25b3898
Automatic changelog update
PJBot Nov 1, 2024
6ce80d9
Muffins (#29318)
RumiTiger Nov 1, 2024
b1a8eee
Automatic changelog update
PJBot Nov 1, 2024
e17d152
Borgs can no longer see mindshield + AI can no longer toggle off seei…
ScarKy0 Nov 1, 2024
c8259c6
Automatic changelog update
PJBot Nov 1, 2024
c9cd778
add IsMemberOfAny to faction system (#32975)
deltanedas Nov 1, 2024
d7a1753
Add CanLoad for biomes (#33050)
metalgearsloth Nov 1, 2024
b8a98de
Remove CargoPallet component from the cargo pallet (#33022)
Minemoder5000 Nov 1, 2024
844a920
Automatic changelog update
PJBot Nov 1, 2024
3382743
Minor antagonist guidebook changes (#32824)
UBlueberry Nov 2, 2024
146ae8a
Give Nukies a Hand Labeler (#33053)
thetolbean Nov 2, 2024
26194e2
Fix `ItemSlotSystem` popup Logic (#28856)
aspiringLich Nov 2, 2024
957b8de
Add cvars to votekick to customize requirements for the initiator. (#…
VasilisThePikachu Nov 2, 2024
2537bff
Automatic changelog update
PJBot Nov 2, 2024
1c8eed8
Add on-call functionality for adminning (#30443)
metalgearsloth Nov 2, 2024
51b8101
Automatic changelog update
PJBot Nov 2, 2024
05ae404
Pills are explosion resistant (partially reverts #15851) (#32458)
K-Dynamic Nov 2, 2024
7276fff
Automatic changelog update
PJBot Nov 2, 2024
b000a3e
Hasten handcraft gauze recipe & decrease techfab gauze cost (#32744)
K-Dynamic Nov 2, 2024
fcbf515
Automatic changelog update
PJBot Nov 2, 2024
1c2fd6a
Service workers antagonist fix. (#31359)
UbaserB Nov 2, 2024
2a6314b
Automatic changelog update
PJBot Nov 2, 2024
4f68315
Adds a new AME sound effect! (#33097)
AftrLite Nov 2, 2024
d1ab60f
Automatic changelog update
PJBot Nov 2, 2024
9520e82
Allow for the ai's laws to be changed from its core and eye (#32461)
nikthechampiongr Nov 2, 2024
131e492
Automatic changelog update
PJBot Nov 2, 2024
11f0dc4
clean up tools lathe recipes (#31521)
deltanedas Nov 2, 2024
7614c2f
Automatic changelog update
PJBot Nov 2, 2024
e7ca4b8
Intercoms and Radios both pick up proximate speech (#32737)
Centronias Nov 2, 2024
db4b2e0
Automatic changelog update
PJBot Nov 2, 2024
8c1281a
Adds headphones to loadouts (#33067)
joshepvodka Nov 2, 2024
a3ce9b0
Automatic changelog update
PJBot Nov 2, 2024
65462d8
Cardboard Box Capacity 4 -> 5 (#32743)
Scribbles0 Nov 2, 2024
6f1eeba
change ShowHealthBars and ShowHealthIcons to use protoId (#32355)
MilonPL Nov 2, 2024
0ba3350
Combat and survival knife storage/inhand sprites (#33111)
SpaceRox1244 Nov 2, 2024
4a39341
Delete conveyor_old.rsi (#33102)
Flareguy Nov 2, 2024
d993582
Fix broken computer white shadows (#33103)
Flareguy Nov 2, 2024
d2a487d
Update Credits (#33125)
github-actions[bot] Nov 3, 2024
912ac2c
Bugfix: Wielding now uses identity system. (#33134)
Plykiya Nov 3, 2024
a0ef431
Automatic changelog update
PJBot Nov 3, 2024
cc3a19c
Collapsible ghost roles menu (#32717)
MilenVolf Nov 4, 2024
9a51528
Automatic changelog update
PJBot Nov 4, 2024
83f7d3f
Added Popup for the Ligneous plant mutation when using hands. (#33136)
Tr1bute Nov 4, 2024
b8b958d
Automatic changelog update
PJBot Nov 4, 2024
5d9acb7
fix: Remove duplicate light blue towel from misc loadout (#33145)
michael-krebs Nov 4, 2024
f5fac7c
Made the SpeciesChange mutation no longer transfer with Sterile Swabs…
Tr1bute Nov 4, 2024
ad78b30
make emergency lights (de)constructable (#32945)
Boolean-Buckeye Nov 4, 2024
75dd790
Automatic changelog update
PJBot Nov 4, 2024
5b4f423
Fix: Web Clothing Butcher Issues (#33121)
thetolbean Nov 4, 2024
4ba8e35
Automatic changelog update
PJBot Nov 4, 2024
a3f10cc
Add Silicon Law cues to Every method a Silicon can have their laws ch…
poklj Nov 4, 2024
01ac967
Automatic changelog update
PJBot Nov 4, 2024
8f87bad
Fix DisplayVotes doing nothing for a vote (#33170)
DrSmugleaf Nov 5, 2024
aef7dd5
Automatic changelog update
PJBot Nov 5, 2024
cb59826
Hunger and thirst huds fix (#32832)
Kirus59 Nov 5, 2024
564606a
Automatic changelog update
PJBot Nov 5, 2024
da19abd
Don't show Reinforcement codewords on round end (#33181)
Errant-4 Nov 5, 2024
2382162
Automatic changelog update
PJBot Nov 5, 2024
1ded8e7
fix artifact debug assert (#33171)
slarticodefast Nov 5, 2024
bcfacec
Fix AI in Intelicard can see through walls (#33177)
Baptr0b0t Nov 6, 2024
d18dba9
Automatic changelog update
PJBot Nov 6, 2024
8ddc543
remove wanted list cartridge from captain PDA (#33084)
slarticodefast Nov 6, 2024
24e6b9f
Automatic changelog update
PJBot Nov 6, 2024
ed865ae
make admeme mouse eternally hungry and thirsty by increasing decay ra…
Plykiya Nov 6, 2024
d588409
Rework the Flare Gun & add a Security Shell Gun. (#32829)
BramvanZijp Nov 6, 2024
e72d63e
Automatic changelog update
PJBot Nov 6, 2024
b15d5a7
Changes to "Burst" firemode; Drozd, WT550 and C20-r (#31292)
SlamBamActionman Nov 6, 2024
5b0761d
Automatic changelog update
PJBot Nov 6, 2024
379fb4c
AI can now speak once more. (#33196)
ScarKy0 Nov 7, 2024
fc0d85b
Cog update (fixes) (#33202)
Spessmann Nov 7, 2024
8257dc8
Meta map: remove arrivals chair, changed maints shotgun to beanbag ro…
K-Dynamic Nov 7, 2024
d13765f
Fixes Lambordeere bolt buttons not being connected (#33065)
PopGamer45 Nov 7, 2024
03723af
Automatic changelog update
PJBot Nov 7, 2024
9ee47b9
Core Station: Telecoms air alarm connection to atmos devices (#33214)
scrivoy Nov 7, 2024
6a1d631
fix invalids core (#33215)
Emisse Nov 7, 2024
261c18f
Fix research disk crash (#33205)
ewokswagger Nov 8, 2024
0128554
Fix cursed mask bug (#33014)
FireNameFN Nov 8, 2024
667daa1
pass Actor to cartridge messages (#33210)
deltanedas Nov 8, 2024
80e148c
cham projector fixes/rewrite (#27111)
deltanedas Nov 8, 2024
8433868
Stable Merge (#33218)
Jezithyr Nov 8, 2024
fea5769
dark green jumpsuit recolor, casual green jumpsuits added (#31710)
Boaz1111 Nov 8, 2024
6ed2ab9
Automatic changelog update
PJBot Nov 8, 2024
41b84fc
Label workflow - stable (#33220)
Errant-4 Nov 8, 2024
b968585
Label workflow - staging (#33221)
Errant-4 Nov 8, 2024
1e368ae
Add a Walking alert (#32954)
SlamBamActionman Nov 9, 2024
4004420
The Jumpsuit Re-Detailening (#33096)
Flareguy Nov 9, 2024
b02af36
Merge remote-tracking branch 'off/master' into upstream-merge-67
Kirus59 Nov 9, 2024
9c9e580
PillCanister fix
Kirus59 Nov 9, 2024
a21e456
dungeonConfig-fix
Kirus59 Nov 9, 2024
2244937
Headphones-loadout-fix
Kirus59 Nov 9, 2024
e16c4f3
delete-contraband
Kirus59 Nov 9, 2024
0aa5ae5
WeaponFlareGun-fix
Kirus59 Nov 9, 2024
0d461d2
WeaponFlareGun-fix2
Kirus59 Nov 9, 2024
0972b00
WeaponGhotgun-graph-fix
Kirus59 Nov 9, 2024
ffd0edc
WeaponFlareGun-fix3
Kirus59 Nov 9, 2024
1bb7519
delete-off-lebelers
Kirus59 Nov 9, 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
  •  
  •  
  •  
15 changes: 10 additions & 5 deletions Content.Client/Alerts/ClientAlertsSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using Content.Shared.Alert;
using JetBrains.Annotations;
using Robust.Client.Player;
using Robust.Shared.GameStates;
using Robust.Shared.Player;
using Robust.Shared.Prototypes;

Expand All @@ -24,8 +25,7 @@ public override void Initialize()

SubscribeLocalEvent<AlertsComponent, LocalPlayerAttachedEvent>(OnPlayerAttached);
SubscribeLocalEvent<AlertsComponent, LocalPlayerDetachedEvent>(OnPlayerDetached);

SubscribeLocalEvent<AlertsComponent, AfterAutoHandleStateEvent>(ClientAlertsHandleState);
SubscribeLocalEvent<AlertsComponent, ComponentHandleState>(OnHandleState);
}
protected override void LoadPrototypes()
{
Expand All @@ -47,17 +47,22 @@ public IReadOnlyDictionary<AlertKey, AlertState>? ActiveAlerts
}
}

protected override void AfterShowAlert(Entity<AlertsComponent> alerts)
private void OnHandleState(Entity<AlertsComponent> alerts, ref ComponentHandleState args)
{
if (args.Current is not AlertComponentState cast)
return;

alerts.Comp.Alerts = cast.Alerts;

UpdateHud(alerts);
}

protected override void AfterClearAlert(Entity<AlertsComponent> alerts)
protected override void AfterShowAlert(Entity<AlertsComponent> alerts)
{
UpdateHud(alerts);
}

private void ClientAlertsHandleState(Entity<AlertsComponent> alerts, ref AfterAutoHandleStateEvent args)
protected override void AfterClearAlert(Entity<AlertsComponent> alerts)
{
UpdateHud(alerts);
}
Expand Down
81 changes: 72 additions & 9 deletions Content.Client/Atmos/Consoles/AtmosAlertsComputerWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ public sealed partial class AtmosAlertsComputerWindow : FancyWindow
{
private readonly IEntityManager _entManager;
private readonly SpriteSystem _spriteSystem;
private readonly SharedNavMapSystem _navMapSystem;

private EntityUid? _owner;
private NetEntity? _trackedEntity;
Expand All @@ -42,19 +43,32 @@ public sealed partial class AtmosAlertsComputerWindow : FancyWindow

private const float SilencingDuration = 2.5f;

// Colors
private Color _wallColor = new Color(64, 64, 64);
private Color _tileColor = new Color(28, 28, 28);
private Color _monitorBlipColor = Color.Cyan;
private Color _untrackedEntColor = Color.DimGray;
private Color _regionBaseColor = new Color(154, 154, 154);
private Color _inactiveColor = StyleNano.DisabledFore;
private Color _statusTextColor = StyleNano.GoodGreenFore;
private Color _goodColor = Color.LimeGreen;
private Color _warningColor = new Color(255, 182, 72);
private Color _dangerColor = new Color(255, 67, 67);

public AtmosAlertsComputerWindow(AtmosAlertsComputerBoundUserInterface userInterface, EntityUid? owner)
{
RobustXamlLoader.Load(this);
_entManager = IoCManager.Resolve<IEntityManager>();
_spriteSystem = _entManager.System<SpriteSystem>();
_navMapSystem = _entManager.System<SharedNavMapSystem>();

// Pass the owner to nav map
_owner = owner;
NavMap.Owner = _owner;

// Set nav map colors
NavMap.WallColor = new Color(64, 64, 64);
NavMap.TileColor = Color.DimGray * NavMap.WallColor;
NavMap.WallColor = _wallColor;
NavMap.TileColor = _tileColor;

// Set nav map grid uid
var stationName = Loc.GetString("atmos-alerts-window-unknown-location");
Expand Down Expand Up @@ -179,6 +193,9 @@ public void UpdateUI(EntityCoordinates? consoleCoords, AtmosAlertsComputerEntry[
// Add tracked entities to the nav map
foreach (var device in console.AtmosDevices)
{
if (!device.NetEntity.Valid)
continue;

if (!NavMap.Visible)
continue;

Expand Down Expand Up @@ -209,7 +226,7 @@ public void UpdateUI(EntityCoordinates? consoleCoords, AtmosAlertsComputerEntry[
if (consoleCoords != null && consoleUid != null)
{
var texture = _spriteSystem.Frame0(new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/NavMap/beveled_circle.png")));
var blip = new NavMapBlip(consoleCoords.Value, texture, Color.Cyan, true, false);
var blip = new NavMapBlip(consoleCoords.Value, texture, _monitorBlipColor, true, false);
NavMap.TrackedEntities[consoleUid.Value] = blip;
}

Expand Down Expand Up @@ -258,7 +275,7 @@ public void UpdateUI(EntityCoordinates? consoleCoords, AtmosAlertsComputerEntry[
VerticalAlignment = VAlignment.Center,
};

label.SetMarkup(Loc.GetString("atmos-alerts-window-no-active-alerts", ("color", StyleNano.GoodGreenFore.ToHexNoAlpha())));
label.SetMarkup(Loc.GetString("atmos-alerts-window-no-active-alerts", ("color", _statusTextColor.ToHexNoAlpha())));

AlertsTable.AddChild(label);
}
Expand All @@ -270,6 +287,34 @@ public void UpdateUI(EntityCoordinates? consoleCoords, AtmosAlertsComputerEntry[
else
MasterTabContainer.SetTabTitle(0, Loc.GetString("atmos-alerts-window-tab-alerts", ("value", activeAlarmCount)));

// Update sensor regions
NavMap.RegionOverlays.Clear();
var prioritizedRegionOverlays = new Dictionary<NavMapRegionOverlay, int>();

if (_owner != null &&
_entManager.TryGetComponent<TransformComponent>(_owner, out var xform) &&
_entManager.TryGetComponent<NavMapComponent>(xform.GridUid, out var navMap))
{
var regionOverlays = _navMapSystem.GetNavMapRegionOverlays(_owner.Value, navMap, AtmosAlertsComputerUiKey.Key);

foreach (var (regionOwner, regionOverlay) in regionOverlays)
{
var alarmState = GetAlarmState(regionOwner);

if (!TryGetSensorRegionColor(regionOwner, alarmState, out var regionColor))
continue;

regionOverlay.Color = regionColor;

var priority = (_trackedEntity == regionOwner) ? 999 : (int)alarmState;
prioritizedRegionOverlays.Add(regionOverlay, priority);
}

// Sort overlays according to their priority
var sortedOverlays = prioritizedRegionOverlays.OrderBy(x => x.Value).Select(x => x.Key).ToList();
NavMap.RegionOverlays = sortedOverlays;
}

// Auto-scroll re-enable
if (_autoScrollAwaitsUpdate)
{
Expand All @@ -290,14 +335,32 @@ private void AddTrackedEntityToNavMap(AtmosAlertsDeviceNavMapData metaData, Atmo
var coords = _entManager.GetCoordinates(metaData.NetCoordinates);

if (_trackedEntity != null && _trackedEntity != metaData.NetEntity)
color *= Color.DimGray;
color *= _untrackedEntColor;

var selectable = true;
var blip = new NavMapBlip(coords, _spriteSystem.Frame0(texture), color, _trackedEntity == metaData.NetEntity, selectable);

NavMap.TrackedEntities[metaData.NetEntity] = blip;
}

private bool TryGetSensorRegionColor(NetEntity regionOwner, AtmosAlarmType alarmState, out Color color)
{
color = Color.White;

var blip = GetBlipTexture(alarmState);

if (blip == null)
return false;

// Color the region based on alarm state and entity tracking
color = blip.Value.Item2 * _regionBaseColor;

if (_trackedEntity != null && _trackedEntity != regionOwner)
color *= _untrackedEntColor;

return true;
}

private void UpdateUIEntry(AtmosAlertsComputerEntry entry, int index, Control table, AtmosAlertsComputerComponent console, AtmosAlertsFocusDeviceData? focusData = null)
{
// Make new UI entry if required
Expand Down Expand Up @@ -534,13 +597,13 @@ private AtmosAlarmType GetAlarmState(NetEntity netEntity)
switch (alarmState)
{
case AtmosAlarmType.Invalid:
output = (new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/NavMap/beveled_circle.png")), StyleNano.DisabledFore); break;
output = (new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/NavMap/beveled_circle.png")), _inactiveColor); break;
case AtmosAlarmType.Normal:
output = (new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/NavMap/beveled_circle.png")), Color.LimeGreen); break;
output = (new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/NavMap/beveled_circle.png")), _goodColor); break;
case AtmosAlarmType.Warning:
output = (new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/NavMap/beveled_triangle.png")), new Color(255, 182, 72)); break;
output = (new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/NavMap/beveled_triangle.png")), _warningColor); break;
case AtmosAlarmType.Danger:
output = (new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/NavMap/beveled_square.png")), new Color(255, 67, 67)); break;
output = (new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/NavMap/beveled_square.png")), _dangerColor); break;
}

return output;
Expand Down
4 changes: 3 additions & 1 deletion Content.Client/Commands/ShowHealthBarsCommand.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
using Content.Shared.Damage.Prototypes;
using Content.Shared.Overlays;
using Robust.Client.Player;
using Robust.Shared.Console;
using Robust.Shared.Prototypes;
using System.Linq;

namespace Content.Client.Commands;
Expand Down Expand Up @@ -34,7 +36,7 @@ public override void Execute(IConsoleShell shell, string argStr, string[] args)
{
var showHealthBarsComponent = new ShowHealthBarsComponent
{
DamageContainers = args.ToList(),
DamageContainers = args.Select(arg => new ProtoId<DamageContainerPrototype>(arg)).ToList(),
HealthStatusIcon = null,
NetSyncEnabled = false
};
Expand Down
10 changes: 10 additions & 0 deletions Content.Client/Effects/ColorFlashEffectSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,10 @@ private void OnColorFlashEffect(ColorFlashEffectEvent ev)
continue;
}

var targetEv = new GetFlashEffectTargetEvent(ent);
RaiseLocalEvent(ent, ref targetEv);
ent = targetEv.Target;

EnsureComp<ColorFlashEffectComponent>(ent, out comp);
comp.NetSyncEnabled = false;
comp.Color = sprite.Color;
Expand All @@ -132,3 +136,9 @@ private void OnColorFlashEffect(ColorFlashEffectEvent ev)
}
}
}

/// <summary>
/// Raised on an entity to change the target for a color flash effect.
/// </summary>
[ByRefEvent]
public record struct GetFlashEffectTargetEvent(EntityUid Target);
3 changes: 1 addition & 2 deletions Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,7 @@

<PanelContainer Name="AlertsDivider" Visible="False" StyleClasses="LowDivider" />

<BoxContainer Name="AlertsContainer" Visible="False" Margin="0 5" Orientation="Horizontal"
HorizontalExpand="True" HorizontalAlignment="Center">
<BoxContainer Name="AlertsContainer" Visible="False" Margin="0 5" Orientation="Vertical" HorizontalAlignment="Center">

</BoxContainer>

Expand Down
25 changes: 18 additions & 7 deletions Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -110,18 +110,29 @@ public void Populate(HealthAnalyzerScannedUserMessage msg)

// Alerts

AlertsDivider.Visible = msg.Bleeding == true;
AlertsContainer.Visible = msg.Bleeding == true;
var showAlerts = msg.Unrevivable == true || msg.Bleeding == true;

if (msg.Bleeding == true)
{
AlertsDivider.Visible = showAlerts;
AlertsContainer.Visible = showAlerts;

if (showAlerts)
AlertsContainer.DisposeAllChildren();
AlertsContainer.AddChild(new Label

if (msg.Unrevivable == true)
AlertsContainer.AddChild(new RichTextLabel
{
Text = Loc.GetString("health-analyzer-window-entity-unrevivable-text"),
Margin = new Thickness(0, 4),
MaxWidth = 300
});

if (msg.Bleeding == true)
AlertsContainer.AddChild(new RichTextLabel
{
Text = Loc.GetString("health-analyzer-window-entity-bleeding-text"),
FontColorOverride = Color.Red,
Margin = new Thickness(0, 4),
MaxWidth = 300
});
}

// Damage Groups

Expand Down
4 changes: 2 additions & 2 deletions Content.Client/Info/PlaytimeStats/PlaytimeStatsEntry.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using Content.Shared.Localizations; // SS220 Playtime Format Fix
using Content.Shared.Localizations;
using Robust.Client.AutoGenerated;
using Robust.Client.Graphics;
using Robust.Client.UserInterface.Controls;
Expand All @@ -17,7 +17,7 @@ public PlaytimeStatsEntry(string role, TimeSpan playtime, StyleBox styleBox)

RoleLabel.Text = role;
Playtime = playtime; // store the TimeSpan value directly
PlaytimeLabel.Text = ContentLocalizationManager.FormatPlaytime(playtime); // convert to string for display // SS220 Playtime Format Fix
PlaytimeLabel.Text = ContentLocalizationManager.FormatPlaytime(playtime); // convert to string for display
BackgroundColorPanel.PanelOverride = styleBox;
}

Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Info/PlaytimeStats/PlaytimeStatsWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ private void PopulatePlaytimeData()
{
var overallPlaytime = _jobRequirementsManager.FetchOverallPlaytime();

OverallPlaytimeLabel.Text = Loc.GetString("ui-playtime-overall", ("time", overallPlaytime)); // SS220 Playtime Format Fix
OverallPlaytimeLabel.Text = Loc.GetString("ui-playtime-overall", ("time", overallPlaytime));

var rolePlaytimes = _jobRequirementsManager.FetchPlaytimeByRoles();

Expand Down
4 changes: 2 additions & 2 deletions Content.Client/Mapping/MappingScreen.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
VerticalExpand="False"
VerticalAlignment="Bottom"
HorizontalAlignment="Center">
<controls:RecordedSplitContainer Name="ScreenContainer" HorizontalExpand="True"
<SplitContainer Name="ScreenContainer" HorizontalExpand="True"
VerticalExpand="True" SplitWidth="0"
StretchDirection="TopLeft">
<BoxContainer Orientation="Vertical" VerticalExpand="True" Name="SpawnContainer" MinWidth="200" SetWidth="600">
Expand Down Expand Up @@ -82,5 +82,5 @@
</BoxContainer>
</PanelContainer>
</LayoutContainer>
</controls:RecordedSplitContainer>
</SplitContainer>
</mapping:MappingScreen>
1 change: 0 additions & 1 deletion Content.Client/Mapping/MappingScreen.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,6 @@ private void RefreshList()

public override void SetChatSize(Vector2 size)
{
ScreenContainer.DesiredSplitCenter = size.X;
ScreenContainer.ResizeMode = SplitContainer.SplitResizeMode.RespectChildrenMinSize;
}

Expand Down
2 changes: 1 addition & 1 deletion Content.Client/Overlays/ShowThirstIconsSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,6 @@ private void OnGetStatusIconsEvent(EntityUid uid, ThirstComponent component, ref
return;

if (_thirst.TryGetStatusIconPrototype(component, out var iconPrototype))
ev.StatusIcons.Add(iconPrototype); // SS220 Thirst hud and hunger hud fix
ev.StatusIcons.Add(iconPrototype);
}
}
16 changes: 16 additions & 0 deletions Content.Client/Physics/Controllers/MoverController.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
using Content.Shared.Alert;
using Content.Shared.CCVar;
using Content.Shared.Movement.Components;
using Content.Shared.Movement.Pulling.Components;
using Content.Shared.Movement.Systems;
using Robust.Client.GameObjects;
using Robust.Client.Physics;
using Robust.Client.Player;
using Robust.Shared.Configuration;
using Robust.Shared.Physics.Components;
using Robust.Shared.Player;
using Robust.Shared.Timing;
Expand All @@ -14,6 +17,8 @@ public sealed class MoverController : SharedMoverController
{
[Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly IPlayerManager _playerManager = default!;
[Dependency] private readonly AlertsSystem _alerts = default!;
[Dependency] private readonly IConfigurationManager _cfg = default!;

public override void Initialize()
{
Expand Down Expand Up @@ -135,4 +140,15 @@ protected override bool CanSound()
{
return _timing is { IsFirstTimePredicted: true, InSimulation: true };
}

public override void SetSprinting(Entity<InputMoverComponent> entity, ushort subTick, bool walking)
{
// Logger.Info($"[{_gameTiming.CurTick}/{subTick}] Sprint: {enabled}");
base.SetSprinting(entity, subTick, walking);

if (walking && _cfg.GetCVar(CCVars.ToggleWalk))
_alerts.ShowAlert(entity, WalkingAlert, showCooldown: false, autoRemove: false);
else
_alerts.ClearAlert(entity, WalkingAlert);
}
}
Loading
Loading