예제 #1
0
        internal static void Init()
        {
            state = ZetArtifactsPlugin.EclifactEnable.Value;
            if (ZetArtifactsPlugin.PluginLoaded("com.TPDespair.DiluvianArtifact"))
            {
                state = 0;
            }
            if (state < 1)
            {
                return;
            }

            ZetArtifactsPlugin.RegisterLanguageToken("ARTIFACT_ZETECLIFACT_NAME", "Artifact of the Eclipse");
            ZetArtifactsPlugin.RegisterLanguageToken("ARTIFACT_ZETECLIFACT_DESC", "Enables all Eclipse modifiers.\n\n<style=cStack>>Ally Starting Health: <style=cDeath>-50%</style>\n>Teleporter Radius: <style=cDeath>-50%</style>\n>Ally Fall Damage: <style=cDeath>+100% and lethal</style>\n>Enemy Speed: <style=cDeath>+40%</style>\n>Ally Healing: <style=cDeath>-50%</style>\n>Enemy Gold Drops: <style=cDeath>-20%</style>\n>Enemy Cooldowns: <style=cDeath>-50%</style>\n>Allies receive <style=cDeath>permanent damage</style></style>");

            if (state == 1)
            {
                RunArtifactManager.onArtifactEnabledGlobal  += OnArtifactEnabled;
                RunArtifactManager.onArtifactDisabledGlobal += OnArtifactDisabled;
            }
            else
            {
                EnableEffects();
            }
        }
예제 #2
0
        internal static void Init()
        {
            state = ZetArtifactsPlugin.DropifactEnable.Value;
            if (state < 1)
            {
                return;
            }

            ZetArtifactsPlugin.RegisterLanguageToken("ARTIFACT_ZETDROPIFACT_NAME", "Artifact of Tossing");
            ZetArtifactsPlugin.RegisterLanguageToken("ARTIFACT_ZETDROPIFACT_DESC", "Allows players to drop and scrap items.\n\n<style=cStack>LeftAlt + RMB to scrap</style>");

            NetworkingAPI.RegisterMessageType <ZetDropReply>();
            NetworkingAPI.RegisterMessageType <ZetDropRequest>();

            ItemCatalog.availability.CallWhenAvailable(FindIndexes);

            ItemIconHook();
            EquipmentIconHook();

            MarkedDropletBypassHook();

            PreventVoidBearBuffBug();
            appliedVoidBearFix = true;

            SceneDirector.onGenerateInteractableCardSelection += RemoveScrapperCard;
        }
예제 #3
0
        internal static void Init()
        {
            state = ZetArtifactsPlugin.RivivifactEnable.Value;
            if (state < 1)
            {
                return;
            }

            ZetArtifactsPlugin.RegisterLanguageToken("ARTIFACT_ZETREVIVIFACT_NAME", "Artifact of Revival");
            ZetArtifactsPlugin.RegisterLanguageToken("ARTIFACT_ZETREVIVIFACT_DESC", "Dead players respawn after the boss is defeated.");

            SaveDeathPositionHook();
            RevivalHook();
        }
예제 #4
0
        internal static void Init()
        {
            state = ZetArtifactsPlugin.MultifactEnable.Value;
            if (state < 1)
            {
                return;
            }

            int countMult = Math.Max(2, ZetArtifactsPlugin.MultifactMultiplier.Value);

            ZetArtifactsPlugin.RegisterLanguageToken("ARTIFACT_ZETMULTIFACT_NAME", "Artifact of Multitudes");
            string str;

            if (countMult == 2)
            {
                str = "Double";
            }
            else if (countMult == 3)
            {
                str = "Triple";
            }
            else if (countMult == 4)
            {
                str = "Quadruple";
            }
            else
            {
                str = "x" + countMult;
            }
            ZetArtifactsPlugin.RegisterLanguageToken("ARTIFACT_ZETMULTIFACT_DESC", str + " player count scaling.");

            get_LPC_Method = typeof(Run).GetMethod("get_livingPlayerCount", flags);
            get_PPC_Method = typeof(Run).GetMethod("get_participatingPlayerCount", flags);

            GLPCH_Method = typeof(ZetMultifact).GetMethod(nameof(GetLivingPlayerCountHook), flags);
            GPPCH_Method = typeof(ZetMultifact).GetMethod(nameof(GetParticipatingPlayerCountHook), flags);

            // sometimes interactable cost would not reflect increased count
            SceneDirector.onPrePopulateSceneServer += UpdateDifficultyCoeff_Scene;
            appliedSceneCostFix = true;
            // combat shrines seem to have trouble selecting a spawn card if they are given too many credits ???
            On.RoR2.ShrineCombatBehavior.Start += ShrineCombatBehavior_Start;
            appliedCombatShrineFix              = true;

            GoldFromKillHook();

            PlayerCountHook();
            PlayerTriggerHook();
        }
예제 #5
0
        internal static void Init()
        {
            state = ZetArtifactsPlugin.LoopifactEnable.Value;
            if (state < 1)
            {
                return;
            }

            ZetArtifactsPlugin.RegisterLanguageToken("ARTIFACT_ZETLOOPIFACT_NAME", "Artifact of Escalation");
            ZetArtifactsPlugin.RegisterLanguageToken("ARTIFACT_ZETLOOPIFACT_DESC", "Monster and interactable types can appear earlier than usual. Post-loop Elites begin to appear at monster level " + ZetArtifactsPlugin.LoopifactEliteLevel.Value + ".");
            //ZetArtifactsPlugin.RegisterLanguageToken("ARTIFACT_ZETLOOPIFACT_DESC", "Monster and interactable types can appear earlier than usual.");

            SceneDirector.onPostPopulateSceneServer += OnScenePopulated;
            SceneExitController.onBeginExit         += OnSceneExit;

            MinimumStageHook();
            DirectorMoneyHook();
            AddEarlyEliteDef();
        }