コード例 #1
0
        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;
                }
            }
        }
コード例 #2
0
        public override void Initialize()
        {
            base.Initialize();

            LobbyHelper.OnInitialize();
            InGameOverworldHelper.Initialize();
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        public override void LoadSession(int index, bool forceNew)
        {
            base.LoadSession(index, forceNew);

            if (forceNew)
            {
                ReturnToLobbyHelper.OnSessionCreated();
                LobbyHelper.OnSessionCreated();
            }
        }
コード例 #5
0
 private void onModAssetUpdate(ModAsset oldAsset, ModAsset newAsset)
 {
     if (newAsset?.PathVirtual == "CollabUtils2CollabID")
     {
         LobbyHelper.LoadCollabIDFile(newAsset);
     }
     if (newAsset != null && newAsset.PathVirtual.StartsWith("Graphics/CollabUtils2/CrystalHeartSwaps_"))
     {
         reloadCrystalHeartSwapSpriteBanks();
     }
 }
コード例 #6
0
        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();
            }
        }
コード例 #7
0
        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;
        }
コード例 #8
0
        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;
        }
コード例 #9
0
        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;
        }
コード例 #10
0
        public override void Initialize()
        {
            base.Initialize();

            LobbyHelper.OnInitialize();
        }