From cc72b7aebbeee7df36131c4437c02d56005dfd65 Mon Sep 17 00:00:00 2001 From: aonkeeper4 Date: Sun, 18 Jan 2026 11:53:14 +0000 Subject: [PATCH 1/2] migrate to new template and don't break vanilla boosters --- .everestignore | 7 ++++ .gitignore | 2 + Code/ArrowBubble.cs | 4 +- Code/IsaGrabBag.csproj | 85 +++++++++++++++++++++++++++++++++++++----- everest.yaml | 2 +- 5 files changed, 87 insertions(+), 13 deletions(-) create mode 100644 .everestignore diff --git a/.everestignore b/.everestignore new file mode 100644 index 0000000..9018965 --- /dev/null +++ b/.everestignore @@ -0,0 +1,7 @@ +# Files within this mod that should not be loaded by Everest. +# If you want to add files to this list that will be included in the zip, +# make sure to also include the .everestignore file in the zip by adding it +# to the ZippedFiles tag in the .csproj file, or the artifact paths in the +# Github workflow file if you're using GitHub actions for publishing. +Code/ +IsaGrabBag.zip diff --git a/.gitignore b/.gitignore index fefa62b..16afed8 100644 --- a/.gitignore +++ b/.gitignore @@ -352,3 +352,5 @@ MigrationBackup/ # JetBrains Rider .idea +# Mod zip +IsaGrabBag.zip \ No newline at end of file diff --git a/Code/ArrowBubble.cs b/Code/ArrowBubble.cs index bfede36..7aaa5d0 100644 --- a/Code/ArrowBubble.cs +++ b/Code/ArrowBubble.cs @@ -58,8 +58,8 @@ private static void Player_RedDashEnd(On.Celeste.Player.orig_RedDashEnd orig, Pl } private static int Player_RedDashUpdate(On.Celeste.Player.orig_RedDashUpdate orig, Player self) { - if (self.CanDash && self.LastBooster != null) { - DynamicData boosterData = DynamicData.For(self.LastBooster); + if (self.CanDash && self.LastBooster is ArrowBubble arrowBubble) { + DynamicData boosterData = DynamicData.For(arrowBubble); boosterData.Set("respawnTimer", 1f); boosterData.Set("cannotUseTimer", 0f); } diff --git a/Code/IsaGrabBag.csproj b/Code/IsaGrabBag.csproj index cd5ab0c..fc82fbe 100644 --- a/Code/IsaGrabBag.csproj +++ b/Code/IsaGrabBag.csproj @@ -1,12 +1,13 @@  - + - net7.0 + net8.0 IsaMods Celeste.Mod.IsaGrabBag latest ..\..\.. lib-stripped + ..\everest.yaml;..\bin\**\*.*;..\Audio\**\*.*;..\Dialog\**\*.*;..\Graphics\**\*.*;..\Ahorn\**\*.*;..\Loenn\**\*.*;..\Effects\**\*.cso @@ -16,23 +17,87 @@ - + + + - - - + + + - - - + + + - + + + + + + + + $(MSBuildProjectDirectory)=IsaGrabBag/ + + + + + + + + + + + + + + + None diff --git a/everest.yaml b/everest.yaml index 9f1ded8..3543729 100644 --- a/everest.yaml +++ b/everest.yaml @@ -1,6 +1,6 @@ - Name: IsaGrabBag Version: 1.7.3 - DLL: Code/bin/IsaMods.dll + DLL: bin/IsaMods.dll Dependencies: - Name: EverestCore Version: 1.4465.0 From 460e21989a90bd8f7efce7df5939e8bd6a021afa Mon Sep 17 00:00:00 2001 From: aonkeeper4 Date: Sun, 18 Jan 2026 12:23:34 +0000 Subject: [PATCH 2/2] i think it works --- Code/ArrowBubble.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Code/ArrowBubble.cs b/Code/ArrowBubble.cs index 7aaa5d0..9e6fdbe 100644 --- a/Code/ArrowBubble.cs +++ b/Code/ArrowBubble.cs @@ -51,14 +51,18 @@ public static void Unload() { private static void Player_RedDashEnd(On.Celeste.Player.orig_RedDashEnd orig, Player self) { orig(self); - if (GravityDir != Vector2.Zero) { + + if (self.LastBooster is ArrowBubble && GravityDir != Vector2.Zero) { GravityDir = Vector2.Zero; self.UseRefill(twoDashes: false); } } private static int Player_RedDashUpdate(On.Celeste.Player.orig_RedDashUpdate orig, Player self) { - if (self.CanDash && self.LastBooster is ArrowBubble arrowBubble) { + if (self.LastBooster is not ArrowBubble arrowBubble) + return orig(self); + + if (self.CanDash) { DynamicData boosterData = DynamicData.For(arrowBubble); boosterData.Set("respawnTimer", 1f); boosterData.Set("cannotUseTimer", 0f);