private int GetExtraDamage(CardState thisCard)
        {
            CardStateModifiers cardStateModifiers          = thisCard.GetCardStateModifiers();
            CardStateModifiers temporaryCardStateModifiers = thisCard.GetTemporaryCardStateModifiers();

            return(CardStateModifiers.GetUpgradedStatValue(CardStateModifiers.GetUpgradedStatValue(0, CardStateModifiers.StatType.Damage, cardStateModifiers), CardStateModifiers.StatType.Damage, temporaryCardStateModifiers));
        }
        static void Postfix(CardEffectState __instance, ref int __result, int startingParam)
        {
            CardStateModifiers cardStateModifiers  = null;
            CardStateModifiers cardStateModifiers2 = null;

            if (__instance.GetParentCardState() != null)
            {
                cardStateModifiers  = __instance.GetParentCardState().GetCardStateModifiers();
                cardStateModifiers2 = __instance.GetParentCardState().GetTemporaryCardStateModifiers();
            }
            if (__instance.GetCardEffect() is CardEffectEmberwave)
            {
                __result = CardStateModifiers.GetUpgradedStatValue(__result, CardStateModifiers.StatType.Damage, cardStateModifiers);
                __result = CardStateModifiers.GetUpgradedStatValue(__result, CardStateModifiers.StatType.Damage, cardStateModifiers2);
            }
        }
Example #3
0
        static void Postfix(CardDraftScreen __instance, IDraftableUI draftedItem)
        {
            //Get SaveManager and DraftItems
            SaveManager save = ReflectionMethods.GetInstanceField<SaveManager, CardDraftScreen>(__instance,"saveManager");
            List<IDraftableUI> draftItems = ReflectionMethods.GetInstanceField<List<IDraftableUI>, CardDraftScreen>(__instance, "draftItems");

            //Safety First
            if (save != null)
            {
                foreach (IDraftableUI uI in draftItems)
                {
                    if (uI != draftedItem)
                    {
                        CardState cardState = (uI as CardUI).GetCardState();
                        CardData cardData = save.GetAllGameData().FindCardData(cardState.GetCardDataID());
                        CardStateModifiers cardStateModifiers = cardState.GetCardStateModifiers();
                        save.AddCardToDeck(cardData, cardStateModifiers, true, true, false, true, true);
                    }
                }
            }
        }
Example #4
0
        public string GetCardStateName(CardState card)
        {
            string             modifiers = "";
            CardStateModifiers st        = card.GetCardStateModifiers();

            if (st != null)
            {
                List <CardUpgradeState> upgrades = st.GetCardUpgrades().OrderBy(x => x.GetUpgradeTitle()).ToList();
                if (upgrades.Count > 0)
                {
                    modifiers += ":";
                }
                for (int index = 0; index < upgrades.Count; index++)
                {
                    modifiers += GetUpgradeText(data.FindCardUpgradeData(upgrades[index].GetCardUpgradeDataId())) + ((index != upgrades.Count - 1) ? ", " : "");
                }
            }
            string text2 = $"{card.GetTitle()}{modifiers}";

            return(text2);
        }
        static void Postfix(CardTooltipContainer __instance, CardState cardState, CardStateModifiers cardModifiers, CardStateModifiers tempCardModifiers, SaveManager saveManager)
        {
            // This generates additional generic tooltips for both the card and the character, hardcoded to this character to avoid conflicts
            if (cardState.GetID() != "e124d0b1-0c5e-4f6b-98a0-4b70faabf752")
            {
                return;
            }

            // This check will find cards that have upgrades already applied to them
            foreach (CardUpgradeState cardUpgrade in cardModifiers.GetCardUpgrades())
            {
                foreach (RoomModifierData roomModifier in cardUpgrade.GetRoomModifierUpgrades())
                {
                    if (roomModifier.GetRoomStateModifierClassName() == typeof(RoomStateModifierStartersConsumeRebate).AssemblyQualifiedName)
                    {
                        // Add tooltips for both Consume and Rebate (in that order)
                        __instance.InstantiateTooltip(CardTraitData.GetTraitCardTextLocalizationKey("CardTraitExhaustState"), TooltipDesigner.TooltipDesignType.Keyword)?.InitCardExplicitTooltip(CardTraitData.GetTraitCardTextLocalizationKey("CardTraitExhaustState"), CardTraitData.GetTraitTooltipTextLocalizationKey("CardTraitExhaustState"));
                        __instance.InstantiateTooltip("Rebate_TooltipTitle", TooltipDesigner.TooltipDesignType.Keyword)?.InitCardExplicitTooltip("Rebate_TooltipTitle", "Rebate_TooltipBody");
                    }
                }
            }

            // This check will find cards with temporary upgrades (ie. In the Dark Forge)
            foreach (CardUpgradeState cardUpgrade in tempCardModifiers.GetCardUpgrades())
            {
                foreach (RoomModifierData roomModifier in cardUpgrade.GetRoomModifierUpgrades())
                {
                    Trainworks.Trainworks.Log(BepInEx.Logging.LogLevel.All, "Found Temp RoomModifierData");
                    if (roomModifier.GetRoomStateModifierClassName() == typeof(RoomStateModifierStartersConsumeRebate).AssemblyQualifiedName)
                    {
                        Trainworks.Trainworks.Log(BepInEx.Logging.LogLevel.All, "Match!");
                        // Add tooltips for both Consume and Rebate (in that order)
                        __instance.InstantiateTooltip(CardTraitData.GetTraitCardTextLocalizationKey("CardTraitExhaustState"), TooltipDesigner.TooltipDesignType.Keyword)?.InitCardExplicitTooltip(CardTraitData.GetTraitCardTextLocalizationKey("CardTraitExhaustState"), CardTraitData.GetTraitTooltipTextLocalizationKey("CardTraitExhaustState"));
                        __instance.InstantiateTooltip("Rebate_TooltipTitle", TooltipDesigner.TooltipDesignType.Keyword)?.InitCardExplicitTooltip("Rebate_TooltipTitle", "Rebate_TooltipBody");
                    }
                }
            }
        }