diff options
| -rw-r--r-- | AnodyneArchipelago/ArchipelagoManager.cs | 4 | ||||
| -rw-r--r-- | AnodyneArchipelago/Plugin.cs | 36 |
2 files changed, 38 insertions, 2 deletions
| diff --git a/AnodyneArchipelago/ArchipelagoManager.cs b/AnodyneArchipelago/ArchipelagoManager.cs index 83e2d8d..c16978a 100644 --- a/AnodyneArchipelago/ArchipelagoManager.cs +++ b/AnodyneArchipelago/ArchipelagoManager.cs | |||
| @@ -171,6 +171,10 @@ namespace AnodyneArchipelago | |||
| 171 | { | 171 | { |
| 172 | GlobalState.events.SetEvent("StatueMoved_Grotto", 1); | 172 | GlobalState.events.SetEvent("StatueMoved_Grotto", 1); |
| 173 | } | 173 | } |
| 174 | else if (itemName == "Progressive Red Grotto") | ||
| 175 | { | ||
| 176 | GlobalState.events.IncEvent("ProgressiveRedGrotto"); | ||
| 177 | } | ||
| 174 | } | 178 | } |
| 175 | } | 179 | } |
| 176 | } | 180 | } |
| diff --git a/AnodyneArchipelago/Plugin.cs b/AnodyneArchipelago/Plugin.cs index e89595a..0bc372b 100644 --- a/AnodyneArchipelago/Plugin.cs +++ b/AnodyneArchipelago/Plugin.cs | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | using AnodyneSharp; | 1 | using AnodyneSharp; |
| 2 | using AnodyneSharp.Entities; | 2 | using AnodyneSharp.Entities; |
| 3 | using AnodyneSharp.Entities.Events; | ||
| 3 | using AnodyneSharp.Entities.Gadget; | 4 | using AnodyneSharp.Entities.Gadget; |
| 4 | using AnodyneSharp.Entities.Gadget.Treasures; | 5 | using AnodyneSharp.Entities.Gadget.Treasures; |
| 5 | using AnodyneSharp.Entities.Interactive; | 6 | using AnodyneSharp.Entities.Interactive; |
| @@ -51,6 +52,12 @@ namespace AnodyneArchipelago | |||
| 51 | { | 52 | { |
| 52 | static void Prefix() | 53 | static void Prefix() |
| 53 | { | 54 | { |
| 55 | // Handle Red Grotto stuff. | ||
| 56 | GlobalState.events.SetEvent("red_cave_l_ss", 999); | ||
| 57 | GlobalState.events.SetEvent("red_cave_n_ss", 999); | ||
| 58 | GlobalState.events.SetEvent("red_cave_r_ss", 999); | ||
| 59 | |||
| 60 | // Connect to archipelago. | ||
| 54 | Plugin.Instance.Log.LogInfo("Connecting to Archipelago!"); | 61 | Plugin.Instance.Log.LogInfo("Connecting to Archipelago!"); |
| 55 | 62 | ||
| 56 | ArchipelagoManager.Connect("localhost:38281", "Anodyne", ""); | 63 | ArchipelagoManager.Connect("localhost:38281", "Anodyne", ""); |
| @@ -124,10 +131,12 @@ namespace AnodyneArchipelago | |||
| 124 | if (preset.Frame == 0) | 131 | if (preset.Frame == 0) |
| 125 | { | 132 | { |
| 126 | ArchipelagoManager.SendLocation("Temple of the Seeing One - Green Key"); | 133 | ArchipelagoManager.SendLocation("Temple of the Seeing One - Green Key"); |
| 127 | } else if (preset.Frame == 1) | 134 | } |
| 135 | else if (preset.Frame == 1) | ||
| 128 | { | 136 | { |
| 129 | ArchipelagoManager.SendLocation("Red Grotto - Red Key"); | 137 | ArchipelagoManager.SendLocation("Red Grotto - Red Key"); |
| 130 | } else if (preset.Frame == 2) | 138 | } |
| 139 | else if (preset.Frame == 2) | ||
| 131 | { | 140 | { |
| 132 | ArchipelagoManager.SendLocation("Mountain Cavern - Blue Key"); | 141 | ArchipelagoManager.SendLocation("Mountain Cavern - Blue Key"); |
| 133 | } | 142 | } |
| @@ -227,6 +236,29 @@ namespace AnodyneArchipelago | |||
| 227 | 236 | ||
| 228 | __result.Position += Entity.FacingDirection(moveDir) * 32f; | 237 | __result.Position += Entity.FacingDirection(moveDir) * 32f; |
| 229 | } | 238 | } |
| 239 | else if (__instance.Type.FullName.StartsWith("AnodyneSharp.Entities.Decorations.RedCave")) | ||
| 240 | { | ||
| 241 | string side = __instance.Type.FullName.Substring(41); | ||
| 242 | int requiredGrottos = 0; | ||
| 243 | if (side == "Left") | ||
| 244 | { | ||
| 245 | requiredGrottos = 1; | ||
| 246 | } | ||
| 247 | else if (side == "Right") | ||
| 248 | { | ||
| 249 | requiredGrottos = 2; | ||
| 250 | } | ||
| 251 | else if (side == "North") | ||
| 252 | { | ||
| 253 | requiredGrottos = 3; | ||
| 254 | } | ||
| 255 | |||
| 256 | if (GlobalState.events.GetEvent("ProgressiveRedGrotto") < requiredGrottos) | ||
| 257 | { | ||
| 258 | __result.exists = false; | ||
| 259 | GlobalState.SpawnEntity((Entity)new DoorToggle(__result.Position, __result.width, __result.height)); | ||
| 260 | } | ||
| 261 | } | ||
| 230 | } | 262 | } |
| 231 | } | 263 | } |
| 232 | } | 264 | } |
