From 72c00fd6ccadcd154acc1fd64b8101736552a009 Mon Sep 17 00:00:00 2001 From: Aissutievos Date: Sun, 29 Jun 2025 23:49:28 -0400 Subject: [PATCH] Fix inconsistencies with disabling / enabling of FireShield, FlashShield, and SporePuffCrestBuff in single player Fix the above three not toggling on or off at all in jolly co-op --- BuildInBuff/Positive/FireShieldBuff.cs | 27 ++++++++++--------- BuildInBuff/Positive/FlashShieldBuff.cs | 27 ++++++++++--------- BuildInBuff/Positive/SporePuff'sCrestBuff.cs | 15 +++++------ .../Render/UI/CardInteractionManager.cs | 4 +-- 4 files changed, 39 insertions(+), 34 deletions(-) diff --git a/BuildInBuff/Positive/FireShieldBuff.cs b/BuildInBuff/Positive/FireShieldBuff.cs index c6ea4e4e..361abf45 100644 --- a/BuildInBuff/Positive/FireShieldBuff.cs +++ b/BuildInBuff/Positive/FireShieldBuff.cs @@ -49,6 +49,21 @@ public FireShieldBuff() } } } + + public override bool Trigger(RainWorldGame game) + { + bool? state = null; + foreach (var player in FireShieldBuffEntry.PlayerList) + { + if (!FireShieldBuffEntry.FireShieldStateFeatures.TryGetValue(player, out var fireShieldState)) continue; + if (state is null) state = fireShieldState.IsActivate; + if (state.Value) + fireShieldState.Deactivate(); + else + fireShieldState.Activate(); + } + return false; + } } internal class FireShieldBuffData : BuffData @@ -282,18 +297,6 @@ public FireShieldState(Player c) public void Update() { - foreach (var player in FireShieldBuffEntry.PlayerList) - { - if (FireShieldBuffEntry.FireShieldStateFeatures.TryGetValue(player, out var fireShield) && - BuffInput.GetKeyDown(FireShieldBuff.Instance.GetBindKey())) - { - FireShieldBuff.Instance.TriggerSelf(true); - if (fireShield.IsActivate) - fireShield.Deactivate(); - else if (!fireShield.IsActivate) - fireShield.Activate(); - } - } } public void Activate() diff --git a/BuildInBuff/Positive/FlashShieldBuff.cs b/BuildInBuff/Positive/FlashShieldBuff.cs index 9d318c04..3488245c 100644 --- a/BuildInBuff/Positive/FlashShieldBuff.cs +++ b/BuildInBuff/Positive/FlashShieldBuff.cs @@ -49,6 +49,21 @@ public FlashShieldBuff() } } } + + public override bool Trigger(RainWorldGame game) + { + bool? state = null; + foreach (var player in FlashShieldBuffEntry.PlayerList) + { + if (!FlashShieldBuffEntry.FlashShieldStateFeatures.TryGetValue(player, out var flashShield)) continue; + if (state is null) state = flashShield.IsActivate; + if (state.Value) + flashShield.Deactivate(); + else + flashShield.Activate(); + } + return false; + } } internal class FlashShieldBuffData : BuffData @@ -563,18 +578,6 @@ public FlashShieldState(Player c) public void Update() { - foreach (var player in FlashShieldBuffEntry.PlayerList) - { - if (FlashShieldBuffEntry.FlashShieldStateFeatures.TryGetValue(player, out var flashShield) && - BuffInput.GetKeyDown(FlashShieldBuff.Instance.GetBindKey())) - { - FlashShieldBuff.Instance.TriggerSelf(true); - if (flashShield.IsActivate) - flashShield.Deactivate(); - else if (!flashShield.IsActivate) - flashShield.Activate(); - } - } } public void Activate() diff --git a/BuildInBuff/Positive/SporePuff'sCrestBuff.cs b/BuildInBuff/Positive/SporePuff'sCrestBuff.cs index 93576bb1..0592a6da 100644 --- a/BuildInBuff/Positive/SporePuff'sCrestBuff.cs +++ b/BuildInBuff/Positive/SporePuff'sCrestBuff.cs @@ -51,16 +51,15 @@ public SporePuff_sCrestBuff() public override bool Trigger(RainWorldGame game) { + bool? state = null; foreach (var player in SporePuff_sCrestBuffEntry.PlayerList) { - if (SporePuff_sCrestBuffEntry.SporePuff_sCrestStateFeatures.TryGetValue(player, out var sporePuff_sCrest) && - BuffInput.GetKeyDown(GetBindKey())) - { - if (sporePuff_sCrest.IsActivate) - sporePuff_sCrest.Deactivate(); - else if (!sporePuff_sCrest.IsActivate) - sporePuff_sCrest.Activate(); - } + if (!SporePuff_sCrestBuffEntry.SporePuff_sCrestStateFeatures.TryGetValue(player, out var sporePuff_sCrest)) continue; + if (state is null) state = sporePuff_sCrest.IsActivate; + if (state.Value) + sporePuff_sCrest.Deactivate(); + else + sporePuff_sCrest.Activate(); } return false; } diff --git a/RandomBuff/Render/UI/CardInteractionManager.cs b/RandomBuff/Render/UI/CardInteractionManager.cs index fdf292fc..6be923d4 100644 --- a/RandomBuff/Render/UI/CardInteractionManager.cs +++ b/RandomBuff/Render/UI/CardInteractionManager.cs @@ -656,7 +656,7 @@ public override IEnumerable GetAllFocusableObjectPos() public class KeyBinderProcessor { public List triggerableBuffIDs = new List(); - DictionarylastKeyDowns = new Dictionary(); + static DictionarylastKeyDowns = new Dictionary(); InGameSlotInteractionManager manager; @@ -676,7 +676,7 @@ public void AppendCard(BuffCard card) if(card.StaticData.Triggerable) { triggerableBuffIDs.Add(card.ID); - lastKeyDowns.Add(card.ID, false); + lastKeyDowns[card.ID] = false; } }