private static void customizeParticles(On.Celeste.HeartGem.orig_Awake orig, HeartGem self, Scene scene) { orig(self, scene); if (!self.IsGhost && LobbyHelper.IsHeartSide(self.SceneAs <Level>().Session.Area.GetSID())) { // we are in a heartside: make the heart particles match the heart sprite. DynData <HeartGem> selfData = new DynData <HeartGem>(self); switch (selfData.Get <Sprite>("sprite").Texture.AtlasPath) { case "collectables/heartGem/1/00": selfData["shineParticle"] = HeartGem.P_RedShine; break; case "collectables/heartGem/2/00": selfData["shineParticle"] = HeartGem.P_GoldShine; break; case "CollabUtils2/crystalHeart/expert/00": selfData["shineParticle"] = new ParticleType(HeartGem.P_BlueShine) { Color = Color.Orange }; break; case "CollabUtils2/crystalHeart/grandmaster/00": selfData["shineParticle"] = new ParticleType(HeartGem.P_BlueShine) { Color = Color.DarkViolet }; break; } } }
public override void Initialize() { base.Initialize(); LobbyHelper.OnInitialize(); InGameOverworldHelper.Initialize(); }
public override void Load() { Logger.SetLogLevel("CollabUtils2", LogLevel.Info); InGameOverworldHelper.Load(); ReturnToLobbyHelper.Load(); StrawberryHooks.Load(); MiniHeartDoor.Load(); LobbyHelper.Load(); SpeedBerryTimerDisplay.Load(); SpeedBerryPBInChapterPanel.Load(); JournalTrigger.Load(); CustomCrystalHeartHelper.Load(); GoldenBerryPlayerRespawnPoint.Load(); SpeedBerry.Load(); AreaCompleteInfoInLevel.Load(); SilverBlock.Load(); MiniHeartDoorUnlockCutsceneTrigger.Load(); LazyLoadingHandler.Load(); SilverBerryCollectTrigger.Load(); Everest.Content.OnUpdate += onModAssetUpdate; hookOrigSessionCtor = new Hook(typeof(Session).GetMethod("orig_ctor"), typeof(CollabModule).GetMethod(nameof(onNewSession), BindingFlags.NonPublic | BindingFlags.Static)); }
public override void LoadSession(int index, bool forceNew) { base.LoadSession(index, forceNew); if (forceNew) { ReturnToLobbyHelper.OnSessionCreated(); LobbyHelper.OnSessionCreated(); } }
private void onModAssetUpdate(ModAsset oldAsset, ModAsset newAsset) { if (newAsset?.PathVirtual == "CollabUtils2CollabID") { LobbyHelper.LoadCollabIDFile(newAsset); } if (newAsset != null && newAsset.PathVirtual.StartsWith("Graphics/CollabUtils2/CrystalHeartSwaps_")) { reloadCrystalHeartSwapSpriteBanks(); } }
public override void DeserializeSession(int index, byte[] data) { base.DeserializeSession(index, data); if (data == null && global::Celeste.SaveData.Instance?.CurrentSession_Safe != null) { // the session is new, but this isn't a newly created save file. ReturnToLobbyHelper.OnSessionCreated(); LobbyHelper.OnSessionCreated(); } }
public override void Unload() { InGameOverworldHelper.Unload(); ReturnToLobbyHelper.Unload(); StrawberryHooks.Unload(); MiniHeartDoor.Unload(); LobbyHelper.Unload(); SpeedBerryTimerDisplay.Unload(); SpeedBerryPBInChapterPanel.Unload(); JournalTrigger.Unload(); CustomCrystalHeartHelper.Unload(); GoldenBerryPlayerRespawnPoint.Unload(); SpeedBerry.Unload(); AreaCompleteInfoInLevel.Unload(); SilverBlock.Unload(); Everest.Content.OnUpdate -= onModAssetUpdate; }
public override void Load() { Logger.SetLogLevel("CollabUtils2", LogLevel.Info); InGameOverworldHelper.Load(); ReturnToLobbyHelper.Load(); StrawberryHooks.Load(); MiniHeartDoor.Load(); LobbyHelper.Load(); SpeedBerryTimerDisplay.Load(); SpeedBerryPBInChapterPanel.Load(); JournalTrigger.Load(); CustomCrystalHeartHelper.Load(); GoldenBerryPlayerRespawnPoint.Load(); SpeedBerry.Load(); AreaCompleteInfoInLevel.Load(); SilverBlock.Load(); Everest.Content.OnUpdate += onModAssetUpdate; }
public override void Unload() { InGameOverworldHelper.Unload(); ReturnToLobbyHelper.Unload(); StrawberryHooks.Unload(); MiniHeartDoor.Unload(); LobbyHelper.Unload(); SpeedBerryTimerDisplay.Unload(); SpeedBerryPBInChapterPanel.Unload(); JournalTrigger.Unload(); CustomCrystalHeartHelper.Unload(); GoldenBerryPlayerRespawnPoint.Unload(); SpeedBerry.Unload(); AreaCompleteInfoInLevel.Unload(); SilverBlock.Unload(); MiniHeartDoorUnlockCutsceneTrigger.Unload(); LazyLoadingHandler.Unload(); SilverBerryCollectTrigger.Unload(); Everest.Content.OnUpdate -= onModAssetUpdate; hookOrigSessionCtor?.Dispose(); hookOrigSessionCtor = null; }
public override void Initialize() { base.Initialize(); LobbyHelper.OnInitialize(); }