Skip to content

Commit

Permalink
Fix arcade goodbye message implementation (space-wizards#26514)
Browse files Browse the repository at this point in the history
  • Loading branch information
Tayrtahn authored Mar 28, 2024
1 parent 192f092 commit 7759d40
Show file tree
Hide file tree
Showing 9 changed files with 41 additions and 68 deletions.
5 changes: 0 additions & 5 deletions Content.Server/Arcade/BlockGame/BlockGameArcadeComponent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,4 @@ public sealed partial class BlockGameArcadeComponent : Component
/// The players currently viewing (but not playing) the active session of NT-BG.
/// </summary>
public readonly List<ICommonSession> Spectators = new();

/// <summary>
/// Whether the game machine should thank (or otherwise talk to) the player when they leave
/// </summary>
public bool ShouldSayThankYou;
}
17 changes: 3 additions & 14 deletions Content.Server/Arcade/BlockGame/BlockGameArcadeSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
using Content.Shared.UserInterface;
using Content.Server.Advertise;
using Content.Server.Advertise.Components;
using Content.Server.Advertise.EntitySystems;
using Content.Shared.Arcade;
using Robust.Server.GameObjects;
using Robust.Shared.Player;
Expand All @@ -12,7 +11,7 @@ namespace Content.Server.Arcade.BlockGame;
public sealed class BlockGameArcadeSystem : EntitySystem
{
[Dependency] private readonly UserInterfaceSystem _uiSystem = default!;
[Dependency] private readonly AdvertiseSystem _advertise = default!;
[Dependency] private readonly SpeakOnUIClosedSystem _speakOnUIClosed = default!;

public override void Initialize()
{
Expand Down Expand Up @@ -92,16 +91,6 @@ private void OnAfterUiClose(EntityUid uid, BlockGameArcadeComponent component, B
component.Spectators.Remove(component.Player);
UpdatePlayerStatus(uid, component.Player, blockGame: component);
}
else
{
// Everybody's gone
component.Player = null;
if (component.ShouldSayThankYou && TryComp<AdvertiseComponent>(uid, out var advertise))
{
_advertise.SayAdvertisement(uid, advertise);
component.ShouldSayThankYou = false;
}
}

UpdatePlayerStatus(uid, temp, blockGame: component);
}
Expand All @@ -115,7 +104,6 @@ private void OnBlockPowerChanged(EntityUid uid, BlockGameArcadeComponent compone
_uiSystem.CloseAll(bui);
component.Player = null;
component.Spectators.Clear();
component.ShouldSayThankYou = false;
}

private void OnPlayerAction(EntityUid uid, BlockGameArcadeComponent component, BlockGameMessages.BlockGamePlayerActionMessage msg)
Expand All @@ -135,7 +123,8 @@ private void OnPlayerAction(EntityUid uid, BlockGameArcadeComponent component, B
return;
}

component.ShouldSayThankYou = true;
if (TryComp<SpeakOnUIClosedComponent>(uid, out var speakComponent))
_speakOnUIClosed.TrySetFlag((uid, speakComponent));

component.Game.ProcessInput(msg.PlayerAction);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,9 +110,4 @@ public sealed partial class SpaceVillainArcadeComponent : SharedSpaceVillainArca
/// </summary>
[ViewVariables(VVAccess.ReadWrite)]
public int RewardAmount = 0;

/// <summary>
/// Whether the game machine should thank (or otherwise talk to) the player when they leave
/// </summary>
public bool ShouldSayThankYou;
}
22 changes: 4 additions & 18 deletions Content.Server/Arcade/SpaceVillainGame/SpaceVillainArcadeSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
using Content.Shared.UserInterface;
using Content.Server.Advertise;
using Content.Server.Advertise.Components;
using Content.Server.Advertise.EntitySystems;
using static Content.Shared.Arcade.SharedSpaceVillainArcadeComponent;
using Robust.Server.GameObjects;
using Robust.Shared.Audio;
Expand All @@ -16,7 +15,7 @@ public sealed partial class SpaceVillainArcadeSystem : EntitySystem
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly SharedAudioSystem _audioSystem = default!;
[Dependency] private readonly UserInterfaceSystem _uiSystem = default!;
[Dependency] private readonly AdvertiseSystem _advertise = default!;
[Dependency] private readonly SpeakOnUIClosedSystem _speakOnUIClosed = default!;

public override void Initialize()
{
Expand All @@ -26,7 +25,6 @@ public override void Initialize()
SubscribeLocalEvent<SpaceVillainArcadeComponent, AfterActivatableUIOpenEvent>(OnAfterUIOpenSV);
SubscribeLocalEvent<SpaceVillainArcadeComponent, SpaceVillainArcadePlayerActionMessage>(OnSVPlayerAction);
SubscribeLocalEvent<SpaceVillainArcadeComponent, PowerChangedEvent>(OnSVillainPower);
SubscribeLocalEvent<SpaceVillainArcadeComponent, BoundUIClosedEvent>(OnBoundUIClosed);
}

/// <summary>
Expand Down Expand Up @@ -84,7 +82,9 @@ private void OnSVPlayerAction(EntityUid uid, SpaceVillainArcadeComponent compone
case PlayerAction.Heal:
case PlayerAction.Recharge:
component.Game.ExecutePlayerAction(uid, msg.PlayerAction, component);
component.ShouldSayThankYou = true; // Any sort of gameplay action counts
// Any sort of gameplay action counts
if (TryComp<SpeakOnUIClosedComponent>(uid, out var speakComponent))
_speakOnUIClosed.TrySetFlag((uid, speakComponent));
break;
case PlayerAction.NewGame:
_audioSystem.PlayPvs(component.NewGameSound, uid, AudioParams.Default.WithVolume(-4f));
Expand Down Expand Up @@ -112,19 +112,5 @@ private void OnSVillainPower(EntityUid uid, SpaceVillainArcadeComponent componen

if (_uiSystem.TryGetUi(uid, SpaceVillainArcadeUiKey.Key, out var bui))
_uiSystem.CloseAll(bui);

component.ShouldSayThankYou = false;
}

private void OnBoundUIClosed(Entity<SpaceVillainArcadeComponent> ent, ref BoundUIClosedEvent args)
{
if (args.UiKey is not SpaceVillainArcadeUiKey || (SpaceVillainArcadeUiKey) args.UiKey != SpaceVillainArcadeUiKey.Key)
return;

if (ent.Comp.ShouldSayThankYou && TryComp<AdvertiseComponent>(ent.Owner, out var advertise))
{
_advertise.SayAdvertisement(ent.Owner, advertise);
ent.Comp.ShouldSayThankYou = false;
}
}
}
13 changes: 0 additions & 13 deletions Resources/Prototypes/Catalog/Arcade/Advertisements/blockgame.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,3 @@
- advertisement-block-game-11
- advertisement-block-game-12
- advertisement-block-game-13
# thankyous:
# - thankyou-block-game-1
# - thankyou-block-game-2
# - thankyou-block-game-3
# - thankyou-block-game-4
# - thankyou-block-game-5
# - thankyou-block-game-6
# - thankyou-block-game-7
# - thankyou-block-game-8
# - thankyou-block-game-9
# - thankyou-block-game-10
# - thankyou-block-game-11
# - thankyou-block-game-12
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,3 @@
- advertisement-space-villain-13
- advertisement-space-villain-14
- advertisement-space-villain-15
# thankyous:
# - thankyou-space-villain-1
# - thankyou-space-villain-2
# - thankyou-space-villain-3
# - thankyou-space-villain-4
# - thankyou-space-villain-5
# - thankyou-space-villain-6
# - thankyou-space-villain-7
# - thankyou-space-villain-8
# - thankyou-space-villain-9
# - thankyou-space-villain-10
# - thankyou-space-villain-11
# - thankyou-space-villain-12
15 changes: 15 additions & 0 deletions Resources/Prototypes/Catalog/Arcade/Goodbyes/blockgame.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
- type: messagePack
id: BlockGameGoodbyes
messages:
- thankyou-block-game-1
- thankyou-block-game-2
- thankyou-block-game-3
- thankyou-block-game-4
- thankyou-block-game-5
- thankyou-block-game-6
- thankyou-block-game-7
- thankyou-block-game-8
- thankyou-block-game-9
- thankyou-block-game-10
- thankyou-block-game-11
- thankyou-block-game-12
15 changes: 15 additions & 0 deletions Resources/Prototypes/Catalog/Arcade/Goodbyes/spacevillain.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
- type: messagePack
id: SpaceVillainGoodbyes
messages:
- thankyou-space-villain-1
- thankyou-space-villain-2
- thankyou-space-villain-3
- thankyou-space-villain-4
- thankyou-space-villain-5
- thankyou-space-villain-6
- thankyou-space-villain-7
- thankyou-space-villain-8
- thankyou-space-villain-9
- thankyou-space-villain-10
- thankyou-space-villain-11
- thankyou-space-villain-12
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@
pack: SpaceVillainAds
minWait: 60 # Arcades are noisy
maxWait: 240
- type: SpeakOnUIClosed
pack: SpaceVillainGoodbyes

- type: entity
id: SpaceVillainArcadeFilled
Expand Down Expand Up @@ -190,3 +192,5 @@
pack: BlockGameAds
minWait: 60 # Arcades are noisy
maxWait: 240
- type: SpeakOnUIClosed
pack: BlockGameGoodbyes

0 comments on commit 7759d40

Please sign in to comment.