Decompiled source of Forest Under The Starry Sky v2.2.319
ForestUnderTheStarrySky.dll
Decompiled 2 days agousing System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using DiskCardGame; using FUTSSNewCardsMod.Utils; using HarmonyLib; using InscryptionAPI.Ascension; using InscryptionAPI.Card; using InscryptionAPI.Guid; using InscryptionAPI.Helpers; using InscryptionAPI.Helpers.Extensions; using InscryptionAPI.Triggers; using Pixelplacement; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("ForestUnderTheStarrySky")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("ForestUnderTheStarrySky")] [assembly: AssemblyCopyright("Copyright © 2025")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("ce178e1a-8da7-40d5-a6ad-8af9c2f68bd8")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] public class Class1 { } namespace FUTSSNewCardsMod.Utils { internal static class CombatBridge { private static MethodInfo _unlockAchievement; private static FieldInfo _weightPrefabField; private static MethodInfo _showCardBlocked; private static MethodInfo _preOverkillDamage; private static MethodInfo _postOverkillDamage; private static MethodInfo _visualizeClearSniper; static CombatBridge() { Type typeFromHandle = typeof(CombatPhaseManager); Type type = Type.GetType("DiskCardGame.AchievementManager, Assembly-CSharp"); if (type != null) { _unlockAchievement = AccessTools.Method(type, "Unlock", new Type[1] { typeof(Achievement) }, (Type[])null); } Type type2 = Type.GetType("DiskCardGame.CombatPhaseManager3D, Assembly-CSharp"); if (type2 != null) { _weightPrefabField = AccessTools.Field(type2, "weightPrefab"); } _unlockAchievement = AccessTools.Method(type, "Unlock", new Type[1] { typeof(Achievement) }, (Type[])null); _weightPrefabField = AccessTools.Field(typeof(CombatPhaseManager3D), "weightPrefab"); _showCardBlocked = AccessTools.Method(typeFromHandle, "ShowCardBlocked", new Type[1] { typeof(PlayableCard) }, (Type[])null); _preOverkillDamage = AccessTools.Method(typeFromHandle, "PreOverkillDamage", new Type[1] { typeof(PlayableCard) }, (Type[])null); _postOverkillDamage = AccessTools.Method(typeFromHandle, "PostOverkillDamage", new Type[1] { typeof(PlayableCard) }, (Type[])null); _visualizeClearSniper = AccessTools.Method(typeFromHandle, "VisualizeClearSniperAbility", Type.EmptyTypes, (Type[])null); } public static void UnlockAchievement(Achievement achievement) { //IL_001e: Unknown result type (might be due to invalid IL or missing references) if (_unlockAchievement != null) { _unlockAchievement.Invoke(null, new object[1] { achievement }); } else { Debug.LogWarning((object)"[CombatBridge] UnlockAchievement 方法未找到"); } } public static GameObject GetWeightPrefab() { CombatPhaseManager instance = Singleton<CombatPhaseManager>.Instance; CombatPhaseManager3D val = (CombatPhaseManager3D)(object)((instance is CombatPhaseManager3D) ? instance : null); if ((Object)(object)val == (Object)null || _weightPrefabField == null) { return null; } object? value = _weightPrefabField.GetValue(val); return (GameObject)((value is GameObject) ? value : null); } public static IEnumerator ShowCardBlocked(PlayableCard card) { if (!(_showCardBlocked == null)) { yield return _showCardBlocked.Invoke(Singleton<CombatPhaseManager>.Instance, new object[1] { card }) as IEnumerator; } } public static IEnumerator PreOverkillDamage(PlayableCard queuedCard) { if (!(_preOverkillDamage == null)) { yield return _preOverkillDamage.Invoke(Singleton<CombatPhaseManager>.Instance, new object[1] { queuedCard }) as IEnumerator; } } public static IEnumerator PostOverkillDamage(PlayableCard queuedCard) { if (!(_postOverkillDamage == null)) { yield return _postOverkillDamage.Invoke(Singleton<CombatPhaseManager>.Instance, new object[1] { queuedCard }) as IEnumerator; } } public static void VisualizeClearSniperAbility() { if (_visualizeClearSniper != null) { _visualizeClearSniper.Invoke(Singleton<CombatPhaseManager>.Instance, null); } } } public class FakeCombatHandler { public class FakeCombatThing { private List<Transform> damageWeights = new List<Transform>(); public static bool isCombatPhase; public static Ability ability; public int DamageDealtThisPhase { get; private set; } public IEnumerator FakeCombat(bool playerIsAttacker, SpecialBattleSequencer specialSequencer, CardSlot attacker, List<CardSlot> overrideTargets = null, int overrideDMG = -1) { DamageDealtThisPhase = 0; yield return SlotAttackSequence(attacker, overrideTargets, overrideDMG); if (DamageDealtThisPhase > 0 && !isCombatPhase) { yield return (object)new WaitForSeconds(0.4f); yield return VisualizeDamageMovingToScales(playerIsAttacker); int excessDamage = 0; if (playerIsAttacker) { excessDamage = Singleton<LifeManager>.Instance.Balance + DamageDealtThisPhase - 5; excessDamage = Mathf.Max(0, excessDamage); } int damage = DamageDealtThisPhase - excessDamage; if (DamageDealtThisPhase >= 666) { CombatBridge.UnlockAchievement((Achievement)25); } if ((Object)(object)specialSequencer == (Object)null || !specialSequencer.PreventDamageAddedToScales) { yield return Singleton<LifeManager>.Instance.ShowDamageSequence(damage, damage, !playerIsAttacker, 0f, (GameObject)null, 0f, true); } if ((Object)(object)specialSequencer != (Object)null) { yield return specialSequencer.DamageAddedToScale(damage + excessDamage, playerIsAttacker); } if ((!((Object)(object)specialSequencer != (Object)null) || !specialSequencer.PreventDamageAddedToScales) && excessDamage > 0 && Singleton<TurnManager>.Instance.Opponent.NumLives == 1 && Singleton<TurnManager>.Instance.Opponent.GiveCurrencyOnDefeat) { yield return Singleton<TurnManager>.Instance.Opponent.TryRevokeSurrender(); RunState run = RunState.Run; run.currency += excessDamage; } Singleton<ViewManager>.Instance.Controller.LockState = (ViewLockState)0; DamageDealtThisPhase = 0; } } private IEnumerator VisualizeDamageMovingToScales(bool playerIsAttacker) { if ((Object)(object)Singleton<LifeManager>.Instance.Scales3D != (Object)null) { Vector3 scalesPos = (playerIsAttacker ? Singleton<LifeManager>.Instance.Scales3D.OpponentSide : Singleton<LifeManager>.Instance.Scales3D.PlayerSide); foreach (Transform transform in damageWeights) { Tween.Position(transform, scalesPos, 0.2f, 0f, Tween.EaseOut, (LoopType)0, (Action)null, (Action)null, true); Object.Destroy((Object)(object)((Component)transform).gameObject, 0.2f); yield return (object)new WaitForSeconds(0.02f); } } else { foreach (Transform transform2 in damageWeights) { Part1Scales.DissolveWeight(((Component)transform2).gameObject); yield return (object)new WaitForSeconds(0.02f); } } yield return (object)new WaitForSeconds(0.25f); } public IEnumerator SpecialVisualiseAttacking(CardSlot attackingSlot, CardSlot targetSlot, int damage) { if (!Object.op_Implicit((Object)(object)Singleton<CombatPhaseManager>.Instance)) { yield break; } if (Singleton<CombatPhaseManager>.Instance is CombatPhaseManager3D) { List<Transform> newWeights = new List<Transform>(); GameObject weightPrefab = CombatBridge.GetWeightPrefab(); if ((Object)(object)weightPrefab == (Object)null) { yield break; } for (int i = 0; i < Mathf.Min(20, damage); i++) { GameObject gameObject = Object.Instantiate<GameObject>(weightPrefab); Vector3 vector = new Vector3(0f, 0f, attackingSlot.IsPlayerSlot ? 0.75f : (-0.75f)); gameObject.transform.position = ((Component)targetSlot).transform.position + vector + new Vector3((float)i * 0.1f, 0f, (float)i * 0.1f); gameObject.transform.eulerAngles = Random.insideUnitSphere; newWeights.Add(gameObject.transform); } damageWeights.AddRange(newWeights); ((Card)attackingSlot.Card).Anim.PlayAttackAnimation(true, targetSlot, (Action)delegate { //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)Singleton<TableVisualEffectsManager>.Instance != (Object)null) { Singleton<TableVisualEffectsManager>.Instance.ThumpTable(0.075f * (float)Mathf.Min(10, damage)); } foreach (Transform item in newWeights) { if ((Object)(object)item != (Object)null) { ((Component)item).gameObject.SetActive(true); ((Component)item).GetComponent<Rigidbody>().AddForce(Vector3.up * 4f, (ForceMode)2); } } }); } else { ((Card)attackingSlot.Card).Anim.PlayAttackAnimation(true, targetSlot, (Action)delegate { }); } } public IEnumerator SlotAttackSlot(CardSlot attackingSlot, CardSlot opposingSlot, float waitAfter = 0f, int overrideDMG = -1) { yield return Singleton<GlobalTriggerHandler>.Instance.TriggerCardsOnBoard((Trigger)6, false, new object[2] { opposingSlot, attackingSlot.Card }); yield return (object)new WaitForSeconds(0.025f); if (!((Object)(object)attackingSlot.Card != (Object)null)) { yield break; } if (((Card)attackingSlot.Card).Anim.DoingAttackAnimation) { yield return (object)new WaitUntil((Func<bool>)(() => !((Card)attackingSlot.Card).Anim.DoingAttackAnimation)); yield return (object)new WaitForSeconds(0.25f); } if ((Object)(object)opposingSlot.Card != (Object)null && attackingSlot.Card.AttackIsBlocked(opposingSlot)) { ProgressionData.SetAbilityLearned((Ability)21); yield return CombatBridge.ShowCardBlocked(attackingSlot.Card); } else if (attackingSlot.Card.CanAttackDirectly(opposingSlot)) { DamageDealtThisPhase += ((overrideDMG > -1) ? overrideDMG : attackingSlot.Card.Attack); yield return SpecialVisualiseAttacking(attackingSlot, opposingSlot, (overrideDMG > -1) ? overrideDMG : attackingSlot.Card.Attack); if (attackingSlot.Card.TriggerHandler.RespondsToTrigger((Trigger)20, new object[1] { (overrideDMG > -1) ? overrideDMG : attackingSlot.Card.Attack })) { yield return attackingSlot.Card.TriggerHandler.OnTrigger((Trigger)20, new object[1] { (overrideDMG > -1) ? overrideDMG : attackingSlot.Card.Attack }); } } else { float heightOffset = (((Object)(object)opposingSlot.Card == (Object)null) ? 0f : opposingSlot.Card.SlotHeightOffset); if (heightOffset > 0f) { Tween.Position(((Component)attackingSlot.Card).transform, ((Component)attackingSlot.Card).transform.position + Vector3.up * heightOffset, 0.05f, 0f, Tween.EaseInOut, (LoopType)0, (Action)null, (Action)null, true); } ((Card)attackingSlot.Card).Anim.PlayAttackAnimation(attackingSlot.Card.IsFlyingAttackingReach(), opposingSlot, (Action)null); yield return (object)new WaitForSeconds(0.07f); ((Card)attackingSlot.Card).Anim.SetAnimationPaused(true); PlayableCard attackingCard = attackingSlot.Card; yield return Singleton<GlobalTriggerHandler>.Instance.TriggerCardsOnBoard((Trigger)7, false, new object[1] { opposingSlot.Card }); if ((Object)(object)attackingCard != (Object)null && (Object)(object)attackingCard.Slot != (Object)null) { attackingSlot = attackingCard.Slot; if (attackingSlot.Card.IsFlyingAttackingReach()) { ((Card)opposingSlot.Card).Anim.PlayJumpAnimation(); yield return (object)new WaitForSeconds(0.3f); ((Card)attackingSlot.Card).Anim.PlayAttackInAirAnimation(); } ((Card)attackingSlot.Card).Anim.SetAnimationPaused(false); yield return (object)new WaitForSeconds(0.05f); int overkillDamage = ((overrideDMG > -1) ? (overrideDMG - opposingSlot.Card.Health) : (attackingSlot.Card.Attack - opposingSlot.Card.Health)); yield return opposingSlot.Card.TakeDamage((overrideDMG > -1) ? overrideDMG : attackingSlot.Card.Attack, attackingSlot.Card); yield return DealOverkillDamage(overkillDamage, attackingSlot, opposingSlot); if ((Object)(object)attackingSlot.Card != (Object)null && heightOffset > 0f) { yield return Singleton<BoardManager>.Instance.AssignCardToSlot(attackingSlot.Card, attackingSlot.Card.Slot, 0.1f, (Action)null, false); } } } yield return (object)new WaitForSeconds(waitAfter); } private IEnumerator SlotAttackSequence(CardSlot slot, List<CardSlot> overrideTargets = null, int overrideDMG = -1) { List<CardSlot> opposingSlots = slot.Card.GetOpposingSlots(); if (overrideTargets != null) { opposingSlots = overrideTargets; } Singleton<ViewManager>.Instance.SwitchToView(Singleton<BoardManager>.Instance.CombatView, false, false); foreach (CardSlot opposingSlot in opposingSlots) { Singleton<ViewManager>.Instance.SwitchToView(Singleton<BoardManager>.Instance.CombatView, false, false); yield return SlotAttackSlot(slot, opposingSlot, (opposingSlots.Count > 1) ? 0.1f : 0f, overrideDMG); } CombatBridge.VisualizeClearSniperAbility(); } protected virtual IEnumerator DealOverkillDamage(int damage, CardSlot attackingSlot, CardSlot opposingSlot) { if (!((Object)(object)attackingSlot.Card != (Object)null) || !attackingSlot.IsPlayerSlot || damage <= 0) { yield break; } PlayableCard queuedCard = Singleton<BoardManager>.Instance.GetCardQueuedForSlot(opposingSlot); if ((Object)(object)queuedCard != (Object)null) { yield return (object)new WaitForSeconds(0.1f); Singleton<ViewManager>.Instance.SwitchToView(Singleton<BoardManager>.Instance.QueueView, false, false); yield return (object)new WaitForSeconds(0.3f); if (queuedCard.HasAbility((Ability)21)) { yield return CombatBridge.ShowCardBlocked(attackingSlot.Card); yield break; } yield return CombatBridge.PreOverkillDamage(queuedCard); yield return queuedCard.TakeDamage(damage, attackingSlot.Card); yield return CombatBridge.PostOverkillDamage(queuedCard); } } } public static IEnumerator DoSimpleFakeCombat(int damage, CardSlot attacker, CardSlot target) { bool impactFrameReached = false; ((Card)attacker.Card).Anim.PlayAttackAnimation(false, target, (Action)delegate { impactFrameReached = true; }); yield return (object)new WaitUntil((Func<bool>)(() => impactFrameReached)); yield return target.Card.TakeDamage(damage, attacker.Card); } } } namespace NewCardsMod { [BepInPlugin("NewCards", "ForestUnderTheStarrySkyMod", "2.0.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { [HarmonyPatch(typeof(RunIntroSequencer))] public static class StarterDocilePatch { [HarmonyPostfix] [HarmonyPatch("TryModifyStarterCards")] public static void AddDocileToStarters() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Expected O, but got Unknown if (!AscensionSaveData.Data.ChallengeIsActive(DocileStarterChallengeID)) { return; } Ability enumValue = GuidManager.GetEnumValue<Ability>("nevernamed.inscryption.sigils", "Docile"); if ((int)enumValue == 0) { Debug.LogError((object)"Count not find NevernamedSigils Docile!"); return; } foreach (CardInfo card in ((CardCollectionInfo)RunState.Run.playerDeck).Cards) { if (!card.HasTrait((Trait)13) && !card.HasAbility(enumValue)) { CardModificationInfo val = new CardModificationInfo(enumValue); RunState.Run.playerDeck.ModifyCard(card, val); } } } [HarmonyPostfix] [HarmonyPatch("RunIntroSequence")] public static IEnumerator ShowActivationAnnouncement(IEnumerator values) { if (AscensionSaveData.Data.ChallengeIsActive(DocileStarterChallengeID)) { ChallengeActivationUI.TryShowActivation(DocileStarterChallengeID); } yield return values; } } [HarmonyPatch(typeof(RunIntroSequencer))] public static class StarterCowardPatch { [HarmonyPostfix] [HarmonyPatch("TryModifyStarterCards")] public static void AddCowardToStarters() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Expected O, but got Unknown if (!AscensionSaveData.Data.ChallengeIsActive(CowardStarterChallengeID)) { return; } Ability enumValue = GuidManager.GetEnumValue<Ability>("nevernamed.inscryption.sigils", "Coward"); if ((int)enumValue == 0) { Debug.LogError((object)"Count not find NevernamedSigils Coward!"); return; } foreach (CardInfo card in ((CardCollectionInfo)RunState.Run.playerDeck).Cards) { if (!card.HasTrait((Trait)13) && !card.HasAbility(enumValue)) { CardModificationInfo val = new CardModificationInfo(enumValue); RunState.Run.playerDeck.ModifyCard(card, val); } } } [HarmonyPostfix] [HarmonyPatch("RunIntroSequence")] public static IEnumerator ShowActivationAnnouncement(IEnumerator values) { if (AscensionSaveData.Data.ChallengeIsActive(DocileStarterChallengeID)) { ChallengeActivationUI.TryShowActivation(DocileStarterChallengeID); } yield return values; } } [HarmonyPatch(typeof(RunIntroSequencer))] public static class StarterEndangeredPatch { [HarmonyPostfix] [HarmonyPatch("TryModifyStarterCards")] public static void AddEndangeredToStarters() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Expected O, but got Unknown if (!AscensionSaveData.Data.ChallengeIsActive(CowardStarterChallengeID)) { return; } Ability enumValue = GuidManager.GetEnumValue<Ability>("nevernamed.inscryption.sigils", "Endangered"); if ((int)enumValue == 0) { Debug.LogError((object)"Count not find NevernamedSigils Coward!"); return; } foreach (CardInfo card in ((CardCollectionInfo)RunState.Run.playerDeck).Cards) { if (!card.HasTrait((Trait)13) && !card.HasAbility(enumValue)) { CardModificationInfo val = new CardModificationInfo(enumValue); RunState.Run.playerDeck.ModifyCard(card, val); } } } [HarmonyPostfix] [HarmonyPatch("RunIntroSequence")] public static IEnumerator ShowActivationAnnouncement(IEnumerator values) { if (AscensionSaveData.Data.ChallengeIsActive(DocileStarterChallengeID)) { ChallengeActivationUI.TryShowActivation(DocileStarterChallengeID); } yield return values; } } [HarmonyPatch(typeof(TurnManager), "set_GameEnded")] public static class NirvanaCleanupPatch { [HarmonyPostfix] public static void Postfix(bool value) { if (value) { CleanupAllCards(); } } private static void CleanupAllCards() { if (RunState.Run != null && RunState.Run.playerDeck != null) { foreach (CardInfo card in ((CardCollectionInfo)RunState.Run.playerDeck).Cards) { card.Mods.RemoveAll((CardModificationInfo m) => m.singletonId == "NirvanaCostReduction"); } } if (!((Object)(object)Singleton<PlayerHand>.Instance != (Object)null)) { return; } foreach (PlayableCard item in Singleton<PlayerHand>.Instance.CardsInHand) { ((Card)item).Info.Mods.RemoveAll((CardModificationInfo m) => m.singletonId == "NirvanaCostReduction"); item.OnStatsChanged(); } } } public static SpecialTriggeredAbility NirvanaID; public static AscensionChallenge DocileStarterChallengeID; public static AscensionChallenge CowardStarterChallengeID; public static AscensionChallenge EndangeredStarterChallengeID; public static AscensionChallenge NoGoldTeethChallengeID; public static AscensionChallenge TigerModeChallengeID; private void Awake() { //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Expected O, but got Unknown ((BaseUnityPlugin)this).Logger.LogInfo((object)"Loaded Forest Under The Starry Sky Mod!"); addChallengeDoclieDeck(); addChallengeCowardDeck(); addChallengeEndangeredDeck(); Harmony val = new Harmony("NewCards"); val.PatchAll(); addExtremelyFastAttack(); addFanaticism(); addFortifiedArmor(); addKillingDesire(); addExtremitySprint(); addMonetaryRewards(); addImbalaneSuppression(); addRoar(); addMadCowDisease(); addUndercurrentsSurge(); addCornerSmash(); addHydroHunter(); AddNirvana(); addChallengeTigerMode(); } private void addExtremelyFastAttack() { //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityExtensions.SetDefaultPart1Ability(AbilityExtensions.SetPixelAbilityIcon(AbilityManager.New("NewCards", "ExtremelyFastAttack", "When [creature] is played, will direct attack once.", typeof(ExtremelyFastAttack), "ExtremelyFastAttack.png"), TextureHelper.GetImageAsTexture("Act2_ExtremelyFastAttack.png", (FilterMode)0), (FilterMode?)(FilterMode)0)); val.canStack = false; val.passive = false; val.activated = false; val.opponentUsable = true; val.powerLevel = 4; val.rulebookName = "Extremely Fast Attack"; ExtremelyFastAttack.ability = val.ability; } private void addFanaticism() { //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityExtensions.SetDefaultPart1Ability(AbilityExtensions.SetPixelAbilityIcon(AbilityManager.New("NewCards", "Fanaticism", "When [creature] is killed, it will attack once.", typeof(Fanaticism), "Fanaticism.png"), TextureHelper.GetImageAsTexture("Act2_Fanaticism.png", (FilterMode)0), (FilterMode?)(FilterMode)0)); val.canStack = false; val.passive = false; val.activated = false; val.opponentUsable = true; val.powerLevel = 4; val.rulebookName = "Fanaticism"; Fanaticism.ability = val.ability; } private void addFortifiedArmor() { //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityExtensions.SetDefaultPart1Ability(AbilityExtensions.SetPixelAbilityIcon(AbilityManager.New("NewCards", "FortifiedArmor", " [creature] will reduce the damage they receive by one point when they are injured.", typeof(FortifiedArmor), "FortifiedArmor.png"), TextureHelper.GetImageAsTexture("Act2_FortifiedArmor.png", (FilterMode)0), (FilterMode?)(FilterMode)0)); val.canStack = false; val.passive = false; val.activated = false; val.opponentUsable = true; val.powerLevel = 3; val.rulebookName = "Fortified Armor"; FortifiedArmor.ability = val.ability; } private void addKillingDesire() { //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityExtensions.SetDefaultPart1Ability(AbilityExtensions.SetPixelAbilityIcon(AbilityManager.New("NewCards", "KillingDesire", "When [creature] is kill another card, the adjacent cards gain +1 health.", typeof(KillingDesire), "KillingDesire.png"), TextureHelper.GetImageAsTexture("Act2_KillingDesire.png", (FilterMode)0), (FilterMode?)(FilterMode)0)); val.canStack = false; val.passive = false; val.activated = false; val.opponentUsable = true; val.powerLevel = 2; val.rulebookName = "KillingDesire"; KillingDesire.ability = val.ability; } private void addMonetaryRewards() { //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityExtensions.SetDefaultPart1Ability(AbilityExtensions.SetPixelAbilityIcon(AbilityManager.New("NewCards", "MonetaryRewards", "When [creature] killing other cards, it will add a weight to the opposing side's balance.", typeof(MonetaryRewards), "MonetaryRewards.png"), TextureHelper.GetImageAsTexture("Act2_MonetaryRewards.png", (FilterMode)0), (FilterMode?)(FilterMode)0)); val.canStack = false; val.passive = false; val.activated = false; val.opponentUsable = true; val.powerLevel = 2; val.rulebookName = "MonetaryRewards"; MonetaryRewards.ability = val.ability; } private void addImbalaneSuppression() { //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityExtensions.SetDefaultPart1Ability(AbilityExtensions.SetPixelAbilityIcon(AbilityManager.New("NewCards", "ImbalaneSuppression", "When [creature] is present, after the opponent's turn ends, a weight will be added to the balance of the owner; and after the enemy's turn ends, a weight will be added to the balance of the opponent.", typeof(ImbalaneSuppression), "ImbalaneSuppression.png"), TextureHelper.GetImageAsTexture("Act2_ImbalaneSuppression.png", (FilterMode)0), (FilterMode?)(FilterMode)0)); val.canStack = false; val.passive = false; val.activated = false; val.opponentUsable = false; val.powerLevel = 2; val.rulebookName = "ImbalaneSuppression"; ImbalaneSuppression.ability = val.ability; } private void addExtremitySprint() { //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityExtensions.SetDefaultPart1Ability(AbilityExtensions.SetPixelAbilityIcon(AbilityManager.New("NewCards", "ExtremitySprint", "At the end of the owner's turn, [creature] will move twice in the direction inscribed in the sigil.", typeof(ExtremitySprint), "ExtremitySprint.png"), TextureHelper.GetImageAsTexture("Act2_ExtremitySprint.png", (FilterMode)0), (FilterMode?)(FilterMode)0)); val.canStack = false; val.passive = false; val.activated = false; val.opponentUsable = true; val.powerLevel = 1; val.rulebookName = "ExtremitySprint"; ExtremitySprint.ability = val.ability; } private void addRoar() { //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityExtensions.SetDefaultPart1Ability(AbilityExtensions.SetPixelAbilityIcon(AbilityManager.New("NewCards", "Roar", "When [creature] is played, it reduces the all creatures on the opponent's -1 attack.", typeof(Roar), "Roar.png"), TextureHelper.GetImageAsTexture("Act2_Roar.png", (FilterMode)0), (FilterMode?)(FilterMode)0)); val.canStack = false; val.passive = false; val.activated = false; val.opponentUsable = false; val.powerLevel = 5; val.rulebookName = "Roar"; Roar.ability = val.ability; } private void addMadCowDisease() { //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityExtensions.SetDefaultPart1Ability(AbilityExtensions.SetPixelAbilityIcon(AbilityManager.New("NewCards", "MadCowDisease", "When [creature] is attacked,it will swap slot with attacker.", typeof(MadCowDisease), "MadCowDisease.png"), TextureHelper.GetImageAsTexture("Act2_MadCowDisease.png", (FilterMode)0), (FilterMode?)(FilterMode)0)); val.canStack = false; val.passive = false; val.activated = false; val.opponentUsable = true; val.powerLevel = 0; val.rulebookName = "MadCowDisease"; MadCowDisease.ability = val.ability; } private void addUndercurrentsSurge() { //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityExtensions.SetDefaultPart1Ability(AbilityExtensions.SetPixelAbilityIcon(AbilityManager.New("NewCards", "UndercurrentsSurge", "When [creature] is played,it will give sigil 'Waterborne' to the opposing card.", typeof(UndercurrentsSurge), "UndercurrentsSurge.png"), TextureHelper.GetImageAsTexture("Act2_UndercurrentsSurge.png", (FilterMode)0), (FilterMode?)(FilterMode)0)); val.canStack = false; val.passive = false; val.activated = false; val.opponentUsable = false; val.powerLevel = 1; val.rulebookName = "UndercurrentsSurge"; UndercurrentsSurge.ability = val.ability; } private void addCornerSmash() { //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityExtensions.SetDefaultPart1Ability(AbilityExtensions.SetPixelAbilityIcon(AbilityManager.New("NewCards", "CornerSmash", "When [creature] is moved, it will attack once.", typeof(CornerSmash), "CornerSmash.png"), TextureHelper.GetImageAsTexture("Act2_CornerSmash.png", (FilterMode)0), (FilterMode?)(FilterMode)0)); val.canStack = false; val.passive = false; val.activated = false; val.opponentUsable = false; val.powerLevel = 3; val.rulebookName = "CornerSmash"; CornerSmash.ability = val.ability; } private void addHydroHunter() { //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityExtensions.SetDefaultPart1Ability(AbilityExtensions.SetPixelAbilityIcon(AbilityManager.New("NewCards", "HydroHunter", "When [creature] is played, choose an opposing card with Waterbrone to slay and [creature] gains a buff.", typeof(HydroHunter), "HydroHunter.png"), TextureHelper.GetImageAsTexture("Act2_HydroHunter.png", (FilterMode)0), (FilterMode?)(FilterMode)0)); val.canStack = false; val.passive = false; val.activated = false; val.opponentUsable = false; val.powerLevel = 4; val.rulebookName = "HydroHunter"; HydroHunter.ability = val.ability; } private void addBloodGuzzler() { //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) AbilityInfo val = AbilityExtensions.SetDefaultPart1Ability(AbilityExtensions.SetPixelAbilityIcon(AbilityManager.New("NewCards", "BloodGuzzler", "When [creature] deals damage, it gains 1 Health for each damage dealt.", typeof(BloodGuzzler), "BloodGuzzler.png"), TextureHelper.GetImageAsTexture("Act2_BloodGuzzler.png", (FilterMode)0), (FilterMode?)(FilterMode)0)); val.canStack = false; val.passive = false; val.activated = false; val.opponentUsable = true; val.powerLevel = 4; val.rulebookName = "Blood Guzzler"; BloodGuzzler.ability = val.ability; } private void addChallengeTigerMode() { //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) FullChallenge val = ChallengeManager.Add("NewCards", "Tiger Bosses", "Bengal Tigers appear during the first 3 boss battles.", 75, TextureHelper.GetImageAsTexture("TigerMode.png", (FilterMode)0), TextureHelper.GetImageAsTexture("DefaultChallenge_activated.png", (FilterMode)0), 0, false); val.SetIncompatibleChallengeGetterStatic((AscensionChallenge[])(object)new AscensionChallenge[1] { (AscensionChallenge)13 }); TigerModeChallengeID = val.Challenge.challengeType; } private void addChallengeDoclieDeck() { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) FullChallenge val = ChallengeManager.Add("NewCards", "Lose bestiality", "Give 'Doclie' sigil to all the cards in the starter deck.", 40, TextureHelper.GetImageAsTexture("LoseBestiality.png", (FilterMode)0), TextureHelper.GetImageAsTexture("LoseBestiality_Activated.png", (FilterMode)0), 0, false); DocileStarterChallengeID = val.Challenge.challengeType; } private void addChallengeCowardDeck() { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) FullChallenge val = ChallengeManager.Add("NewCards", "Avoidance", "Give 'Coward' sigil to all the cards in the starter deck.", 25, TextureHelper.GetImageAsTexture("Avoidance.png", (FilterMode)0), TextureHelper.GetImageAsTexture("DefaultChallenge_activated.png", (FilterMode)0), 0, false); CowardStarterChallengeID = val.Challenge.challengeType; } private void addChallengeEndangeredDeck() { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) FullChallenge val = ChallengeManager.Add("NewCards", "Unstable existence", "Give 'Endangered' sigil to all the cards in the starter deck.", 30, TextureHelper.GetImageAsTexture("Unstable existence.png", (FilterMode)0), TextureHelper.GetImageAsTexture("UnstableExistence_activated.png", (FilterMode)0), 0, false); EndangeredStarterChallengeID = val.Challenge.challengeType; } private void AddNirvana() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) NirvanaID = SpecialTriggeredAbilityManager.Add("NewCards", "Nirvana", typeof(Nirvana)).Id; } } public static class PluginInfo { public const string PLUGIN_GUID = "ForestUnderTheStarrySkyMod"; public const string PLUGIN_NAME = "ForestUnderTheStarrySkyMod"; public const string PLUGIN_VERSION = "2.0.0"; } [HarmonyPatch(typeof(Part1BossOpponent), "HasGrizzlyGlitchPhase")] public static class BengalTigerPhasePatch { [HarmonyPostfix] public static void Postfix(ref bool __result) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) if (AscensionSaveData.Data != null && AscensionSaveData.Data.ChallengeIsActive(Plugin.TigerModeChallengeID)) { __result = true; } } } [HarmonyPatch(typeof(Tutorial4BattleSequencer), "BearGlitchSequence")] public static class BengalTigerBearGlitchPatch { [HarmonyPrefix] public static bool Prefix(ref IEnumerator __result) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) if (AscensionSaveData.Data == null) { return true; } if (!AscensionSaveData.Data.ChallengeIsActive(Plugin.TigerModeChallengeID)) { return true; } __result = BengalTigerGlitchSequence(); return false; } private static IEnumerator BengalTigerGlitchSequence() { CardInfo tigerInfo = CardLoader.GetCardByName("SC_BengalTiger"); ((ScreenEffect)Singleton<UIManager>.Instance.Effects.GetEffect<ScreenGlitchEffect>()).SetIntensity(1f, 1f); Singleton<CameraEffects>.Instance.Shake(0.1f, 1f); AudioController.Instance.PlaySound2D("broken_hum", (MixerGroup)0, 1f, 0f, (Pitch)null, (Repetition)null, (Randomization)null, (Distortion)null, false); foreach (CardSlot slot in Singleton<BoardManager>.Instance.OpponentSlotsCopy) { if (!Singleton<TurnManager>.Instance.Opponent.QueuedSlots.Contains(slot)) { yield return Singleton<TurnManager>.Instance.Opponent.QueueCard(tigerInfo, slot, false, false, false); } if ((Object)(object)slot.Card == (Object)null) { yield return Singleton<BoardManager>.Instance.CreateCardInSlot(tigerInfo, slot, 0f, true); } if ((Object)(object)slot.Card != (Object)null) { GiveCardReachAndRedColor(slot.Card); } } foreach (PlayableCard card in Singleton<TurnManager>.Instance.Opponent.Queue) { if (((Object)((Card)card).Info).name == "SC_BengalTiger") { GiveCardReachAndRedColor(card); } } yield return (object)new WaitForSeconds(0.5f); } private static void GiveCardReachAndRedColor(PlayableCard card) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Expected O, but got Unknown //IL_0039: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)card == (Object)null)) { CardModificationInfo val = new CardModificationInfo((Ability)23); val.fromTotem = true; if ((Object)(object)((Card)card).StatsLayer != (Object)null) { ((Card)card).StatsLayer.SetEmissionColor(GameColors.Instance.glowRed); } card.AddTemporaryMod(val); } } } public class ExtremelyFastAttack : AbilityBehaviour { public static Ability ability; public override Ability Ability => ability; public override bool RespondsToResolveOnBoard() { return true; } public override IEnumerator OnResolveOnBoard() { yield return (object)new WaitForSeconds(0.1f); yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence(); yield return (object)new WaitForSeconds(0.1f); FakeCombatHandler.FakeCombatThing fakecombat = new FakeCombatHandler.FakeCombatThing(); yield return fakecombat.FakeCombat(!((AbilityBehaviour)this).Card.OpponentCard, null, ((AbilityBehaviour)this).Card.Slot); yield return (object)new WaitForSeconds(0.1f); } } public class Fanaticism : AbilityBehaviour { public static Ability ability; public override Ability Ability => ability; public override bool RespondsToOtherCardDie(PlayableCard card, CardSlot deathSlot, bool fromCombat, PlayableCard killer) { return (Object)(object)((AbilityBehaviour)this).Card == (Object)(object)killer && (Object)(object)killer != (Object)null && (Object)(object)((AbilityBehaviour)this).Card != (Object)null; } public override IEnumerator OnOtherCardDie(PlayableCard card, CardSlot deathSlot, bool fromCombat, PlayableCard killer) { yield return (object)new WaitForSeconds(0.1f); yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence(); yield return (object)new WaitForSeconds(0.1f); FakeCombatHandler.FakeCombatThing fakecombat = new FakeCombatHandler.FakeCombatThing(); yield return fakecombat.FakeCombat(!((AbilityBehaviour)this).Card.OpponentCard, null, ((AbilityBehaviour)this).Card.Slot); yield return (object)new WaitForSeconds(0.1f); } } public class FortifiedArmor : AbilityBehaviour, IModifyDamageTaken { public static Ability ability; public override Ability Ability => ability; public bool RespondsToModifyDamageTaken(PlayableCard target, int damage, PlayableCard attacker, int originalDamage) { return (Object)(object)target == (Object)(object)((AbilityBehaviour)this).Card && damage > 0; } public int OnModifyDamageTaken(PlayableCard target, int damage, PlayableCard attacker, int originalDamage) { ((Card)((AbilityBehaviour)this).Card).Anim.StrongNegationEffect(); return Mathf.Max(0, damage - 1); } public int TriggerPriority(PlayableCard target, int damage, PlayableCard attacker) { return 0; } } public class KillingDesire : AbilityBehaviour { public static Ability ability; public override Ability Ability => ability; public override bool RespondsToOtherCardDie(PlayableCard card, CardSlot deathSlot, bool fromCombat, PlayableCard killer) { return (Object)(object)killer == (Object)(object)((AbilityBehaviour)this).Card; } public override IEnumerator OnOtherCardDie(PlayableCard card, CardSlot deathSlot, bool fromCombat, PlayableCard killer) { yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence(); CardSlot toLeft = Singleton<BoardManager>.Instance.GetAdjacent(((AbilityBehaviour)this).Card.Slot, true); if ((Object)(object)toLeft != (Object)null && (Object)(object)toLeft.Card != (Object)null) { toLeft.Card.TemporaryMods.Add(new CardModificationInfo(0, 1)); } CardSlot toRight = Singleton<BoardManager>.Instance.GetAdjacent(((AbilityBehaviour)this).Card.Slot, false); if ((Object)(object)toRight != (Object)null && (Object)(object)toRight.Card != (Object)null) { toRight.Card.TemporaryMods.Add(new CardModificationInfo(0, 1)); } ((AbilityBehaviour)this).Card.TemporaryMods.Add(new CardModificationInfo(0, 1)); yield return ((AbilityBehaviour)this).LearnAbility(0.25f); } } public class BloodGuzzler : AbilityBehaviour { public static Ability ability; public override Ability Ability => ability; public override bool RespondsToDealDamage(int amount, PlayableCard target) { return CardExtensions.NotDead(((AbilityBehaviour)this).Card) && amount > 0; } public override IEnumerator OnDealDamage(int amount, PlayableCard target) { yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence(); ((AbilityBehaviour)this).Card.AddTemporaryMod(new CardModificationInfo(0, amount)); ((AbilityBehaviour)this).Card.OnStatsChanged(); ((Card)((AbilityBehaviour)this).Card).Anim.StrongNegationEffect(); ((Card)((AbilityBehaviour)this).Card).RenderCard(); yield return (object)new WaitForSeconds(0.25f); yield return ((AbilityBehaviour)this).LearnAbility(0.25f); } } public class ExtremitySprint : AbilityBehaviour { public static Ability ability; public override Ability Ability => ability; public override bool RespondsToTurnEnd(bool playerTurnEnd) { return ((AbilityBehaviour)this).Card.OpponentCard != playerTurnEnd; } public override bool RespondsToResolveOnBoard() { //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) CardExtensions.SetExtendedProperty(((Card)((AbilityBehaviour)this).Card).Info, "ExtremitySprintDirection", (object)"1"); if (((Card)((AbilityBehaviour)this).Card).RenderInfo != null && ((Card)((AbilityBehaviour)this).Card).RenderInfo.flippedAbilityIcons != null && ((Card)((AbilityBehaviour)this).Card).RenderInfo.flippedAbilityIcons.Contains(((AbilityBehaviour)this).Ability)) { ((Card)((AbilityBehaviour)this).Card).RenderInfo.flippedAbilityIcons.Remove(((AbilityBehaviour)this).Ability); } return false; } public override IEnumerator OnTurnEnd(bool playerTurnEnd) { yield return MoveCardOnce(); yield return (object)new WaitForSeconds(0.3f); yield return MoveCardOnce(); } private IEnumerator MoveCardOnce() { CardSlot currentSlot = ((AbilityBehaviour)this).Card.Slot; if ((Object)(object)currentSlot == (Object)null) { yield break; } string dirStr = CardExtensions.GetExtendedProperty(((Card)((AbilityBehaviour)this).Card).Info, "ExtremitySprintDirection"); int direction = 1; if (!string.IsNullOrEmpty(dirStr) && int.TryParse(dirStr, out var parsed)) { direction = parsed; } if (direction != 1 && direction != -1) { direction = 1; } CardSlot targetSlot = ((direction == 1) ? CardSlotExtensions.GetAdjacent(currentSlot, false) : CardSlotExtensions.GetAdjacent(currentSlot, true)); if ((Object)(object)targetSlot == (Object)null || (Object)(object)targetSlot.Card != (Object)null) { direction *= -1; CardExtensions.SetExtendedProperty(((Card)((AbilityBehaviour)this).Card).Info, "ExtremitySprintDirection", (object)direction.ToString()); if (((Card)((AbilityBehaviour)this).Card).RenderInfo != null) { if (((Card)((AbilityBehaviour)this).Card).RenderInfo.flippedAbilityIcons == null) { ((Card)((AbilityBehaviour)this).Card).RenderInfo.flippedAbilityIcons = new List<Ability>(); } if (direction == -1) { if (!((Card)((AbilityBehaviour)this).Card).RenderInfo.flippedAbilityIcons.Contains(((AbilityBehaviour)this).Ability)) { ((Card)((AbilityBehaviour)this).Card).RenderInfo.flippedAbilityIcons.Add(((AbilityBehaviour)this).Ability); } } else if (((Card)((AbilityBehaviour)this).Card).RenderInfo.flippedAbilityIcons.Contains(((AbilityBehaviour)this).Ability)) { ((Card)((AbilityBehaviour)this).Card).RenderInfo.flippedAbilityIcons.Remove(((AbilityBehaviour)this).Ability); } } targetSlot = ((direction == 1) ? CardSlotExtensions.GetAdjacent(currentSlot, false) : CardSlotExtensions.GetAdjacent(currentSlot, true)); } if ((Object)(object)targetSlot != (Object)null && (Object)(object)targetSlot.Card == (Object)null) { yield return CardSlotExtensions.AssignCardToSlot(targetSlot, ((AbilityBehaviour)this).Card, 0.1f, (Action)null, true); } } } public class MonetaryRewards : AbilityBehaviour { public static Ability ability; public override Ability Ability => ability; public override bool RespondsToOtherCardDie(PlayableCard card, CardSlot deathSlot, bool fromCombat, PlayableCard killer) { return (Object)(object)killer == (Object)(object)((AbilityBehaviour)this).Card; } public override IEnumerator OnOtherCardDie(PlayableCard card, CardSlot deathSlot, bool fromCombat, PlayableCard killer) { yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence(); yield return Singleton<LifeManager>.Instance.ShowDamageSequence(1, 1, !((AbilityBehaviour)this).Card.Slot.IsPlayerSlot, 0.25f, (GameObject)null, 0f, true); } } public class ImbalaneSuppression : AbilityBehaviour { public static Ability ability; public override Ability Ability => ability; public override bool RespondsToTurnEnd(bool PlayerTurn) { return true; } public override IEnumerator OnTurnEnd(bool playerTurn) { yield return (object)new WaitForSeconds(0.15f); bool damageToPlayer = !playerTurn; yield return Singleton<LifeManager>.Instance.ShowDamageSequence(1, 1, damageToPlayer, 0.25f, (GameObject)null, 0f, true); yield return (object)new WaitForSeconds(0.1f); } } public class Roar : AbilityBehaviour, IPassiveAttackBuff { public static Ability ability; public override Ability Ability => ability; public int GetPassiveAttackBuff(PlayableCard target) { if (((AbilityBehaviour)this).Card.OnBoard && target.OpponentCard != ((AbilityBehaviour)this).Card.OpponentCard) { return -1; } return 0; } } public class MadCowDisease : AbilityBehaviour { public static Ability ability; public override Ability Ability => ability; public override bool RespondsToTakeDamage(PlayableCard attacker) { return (Object)(object)((AbilityBehaviour)this).Card != (Object)null && (Object)(object)attacker != (Object)null && CardExtensions.NotDead(((AbilityBehaviour)this).Card) && !attacker.HasAbility((Ability)105); } public override IEnumerator OnTakeDamage(PlayableCard source) { yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence(); CardSlot mySlot = ((AbilityBehaviour)this).Card.Slot; CardSlot attackerSlot = source.Slot; if (!((Object)(object)mySlot == (Object)null) && !((Object)(object)attackerSlot == (Object)null) && !source.Dead && source.OnBoard) { PlayableCard myCard = ((AbilityBehaviour)this).Card; if (!((Object)(object)myCard == (Object)null) && CardExtensions.NotDead(myCard)) { yield return CardSlotExtensions.AssignCardToSlot(attackerSlot, myCard, 0.1f, (Action)null, true); yield return CardSlotExtensions.AssignCardToSlot(mySlot, source, 0.1f, (Action)null, true); ((Card)myCard).Anim.StrongNegationEffect(); ((Card)source).Anim.StrongNegationEffect(); } } } } public class UndercurrentsSurge : AbilityBehaviour { public static Ability ability; public override Ability Ability => ability; public override bool RespondsToResolveOnBoard() { return (Object)(object)((AbilityBehaviour)this).Card != (Object)null && ((AbilityBehaviour)this).Card.OnBoard && !((AbilityBehaviour)this).Card.Dead; } public override IEnumerator OnResolveOnBoard() { yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence(); CardSlot opposingSlot = ((AbilityBehaviour)this).Card.Slot.opposingSlot; if (!((Object)(object)opposingSlot == (Object)null)) { PlayableCard target = opposingSlot.Card; if (!((Object)(object)target == (Object)null) && !target.Dead && !CardExtensions.HasTrait(target, (Trait)16)) { target.AddTemporaryMod(new CardModificationInfo((Ability)13)); target.OnStatsChanged(); ((Card)target).RenderCard(); ((Card)target).Anim.StrongNegationEffect(); } } } } public class CornerSmash : AbilityBehaviour { private bool hasResolved; public static Ability ability; public override Ability Ability => ability; public override bool RespondsToResolveOnBoard() { return true; } public override IEnumerator OnResolveOnBoard() { hasResolved = true; yield break; } public override bool RespondsToOtherCardAssignedToSlot(PlayableCard otherCard) { if (!hasResolved || (Object)(object)otherCard != (Object)(object)((AbilityBehaviour)this).Card) { return false; } if ((Object)(object)((AbilityBehaviour)this).Card == (Object)null || ((AbilityBehaviour)this).Card.Dead || (Object)(object)((AbilityBehaviour)this).Card.Slot == (Object)null) { return false; } return true; } public override IEnumerator OnOtherCardAssignedToSlot(PlayableCard otherCard) { yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence(); FakeCombatHandler.FakeCombatThing fakeCombat = new FakeCombatHandler.FakeCombatThing(); yield return fakeCombat.FakeCombat(!((AbilityBehaviour)this).Card.OpponentCard, null, ((AbilityBehaviour)this).Card.Slot); } } public class HydroHunter : AbilityBehaviour { public static Ability ability; public override Ability Ability => ability; public override bool RespondsToResolveOnBoard() { return Singleton<BoardManager>.Instance.OpponentSlotsCopy.Any((CardSlot slot) => ((Object)(object)slot.Card != (Object)null && ((Card)slot.Card).FaceDown) || ((Object)(object)slot.Card != (Object)null && slot.Card.HasAbility((Ability)13))); } public override IEnumerator OnResolveOnBoard() { List<CardSlot> allSlots = Singleton<BoardManager>.Instance.OpponentSlotsCopy; List<CardSlot> validSlots = allSlots.Where((CardSlot s) => (Object)(object)s.Card != (Object)null && (s.Card.HasAbility((Ability)13) || ((Card)s.Card).FaceDown)).ToList(); if (validSlots.Count == 0) { yield break; } yield return ((AbilityBehaviour)this).PreSuccessfulTriggerSequence(); Singleton<ViewManager>.Instance.SwitchToView((View)4, false, true); yield return (object)new WaitForSeconds(0.25f); CardSlot targetSlot = null; yield return Singleton<BoardManager>.Instance.ChooseTarget(allSlots, validSlots, (Action<CardSlot>)delegate(CardSlot slot) { targetSlot = slot; }, (Action<CardSlot>)null, (Action<CardSlot>)null, (Func<bool>)(() => false), (CursorType)16); Singleton<ViewManager>.Instance.Controller.LockState = (ViewLockState)0; if (!((Object)(object)targetSlot != (Object)null) || !((Object)(object)targetSlot.Card != (Object)null)) { yield break; } _ = targetSlot.Card; int attackBoost = GetDefaultIntProperty(((Card)((AbilityBehaviour)this).Card).Info, "HydroHunter_AttackBoost", 1); string bonusSigil = CardExtensions.GetExtendedProperty(((Card)((AbilityBehaviour)this).Card).Info, "HydroHunter_BonusSigil") ?? ""; CardModificationInfo mod = new CardModificationInfo(attackBoost, 0); if (!string.IsNullOrEmpty(bonusSigil)) { FullAbility foundAbilityInfo = ((IEnumerable<FullAbility>)AbilityManager.AllAbilities).FirstOrDefault((Func<FullAbility, bool>)((FullAbility a) => ((object)Unsafe.As<Ability, Ability>(ref a.Id)/*cast due to .constrained prefix*/).ToString().Equals(bonusSigil, StringComparison.OrdinalIgnoreCase) || a.Info.rulebookName.Equals(bonusSigil, StringComparison.OrdinalIgnoreCase) || ((object)Unsafe.As<Ability, Ability>(ref a.Id)/*cast due to .constrained prefix*/).ToString().EndsWith("." + bonusSigil, StringComparison.OrdinalIgnoreCase))); if (foundAbilityInfo != null) { mod.abilities.Add(foundAbilityInfo.Id); } else { Debug.LogError((object)("[FUTSS] Could not find sigil: " + bonusSigil)); } } ((AbilityBehaviour)this).Card.AddTemporaryMod(mod); ((Card)targetSlot.Card).SetFaceDown(false, false); targetSlot.Card.UpdateFaceUpOnBoardEffects(); yield return (object)new WaitForSeconds(0.2f); yield return targetSlot.Card.Die(false, ((AbilityBehaviour)this).Card, true); yield return (object)new WaitForSeconds(0.5f); } private static int GetDefaultIntProperty(CardInfo card, string propName, int defaultValue) { string extendedProperty = CardExtensions.GetExtendedProperty(card, propName); if (string.IsNullOrEmpty(extendedProperty) || !int.TryParse(extendedProperty, out var result)) { return defaultValue; } return result; } } public class Nirvana : SpecialCardBehaviour { private const string MOD_SINGLETON_ID = "NirvanaCostReduction"; public override bool RespondsToDie(bool wasSacrifice, PlayableCard killer) { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Invalid comparison between Unknown and I4 if ((Object)(object)((SpecialCardBehaviour)this).PlayableCard == (Object)null) { return false; } return (Object)(object)Singleton<GameFlowManager>.Instance != (Object)null && (int)Singleton<GameFlowManager>.Instance.CurrentGameState == 0; } public override IEnumerator OnDie(bool wasSacrifice, PlayableCard killer) { CardInfo info = ((Card)((SpecialCardBehaviour)this).PlayableCard).Info; if (!((Object)(object)info == (Object)null) && info.BloodCost > 0) { CardModificationInfo mod = new CardModificationInfo(); mod.singletonId = "NirvanaCostReduction"; mod.bloodCostAdjustment = -1; info.Mods.Add(mod); } yield break; } } }
FUTSS.StatIcon.dll
Decompiled 2 days agousing System; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using DiskCardGame; using HarmonyLib; using InscryptionAPI.Card; using InscryptionAPI.Helpers; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("FUTSS.StatIcon")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("FUTSS.StatIcon")] [assembly: AssemblyCopyright("Copyright © 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("ffb4df54-8822-434b-a101-2d8eff492872")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] namespace FUTSS.StatIcon; [BepInPlugin("starclouds.futss", "SCStatIcon", "1.0.0")] public class Plugin : BaseUnityPlugin { [HarmonyPatch(typeof(StatIconInfo), "IconAppliesToAttack")] public class SafeIconAppliesToAttack { private static bool Prefix(SpecialStatIcon icon, ref bool __result) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) StatIconInfo iconInfo = StatIconInfo.GetIconInfo(icon); if ((int)icon == 0 || (Object)(object)iconInfo == (Object)null) { __result = false; return false; } return true; } } [HarmonyPatch(typeof(StatIconInfo), "IconAppliesToHealth")] public class SafeIconAppliesToHealth { private static bool Prefix(SpecialStatIcon icon, ref bool __result) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) StatIconInfo iconInfo = StatIconInfo.GetIconInfo(icon); if ((int)icon == 0 || (Object)(object)iconInfo == (Object)null) { __result = false; return false; } return true; } } private void Awake() { //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown ((BaseUnityPlugin)this).Logger.LogInfo((object)"Loaded SCStatIcon!"); DeathHalfStat.Init(); CardManager.ModifyCardList += delegate(List<CardInfo> cards) { //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Invalid comparison between Unknown and I4 //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) foreach (CardInfo card in cards) { if (((Object)card).name.StartsWith("SC_") && (int)card.SpecialStatIcon > 0) { StatIconInfo iconInfo = StatIconInfo.GetIconInfo(card.SpecialStatIcon); if ((Object)(object)iconInfo == (Object)null) { CardExtensions.SetStatIcon(card, DeathHalfStat.iconType); } } } return cards; }; Harmony val = new Harmony("starclouds.futss"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"FUTSS_StatIcon Loaded"); } } public class DeathHalfStat : VariableStatBehaviour { private static bool initialized; public static SpecialStatIcon iconType; protected override SpecialStatIcon IconType => iconType; public static void Init() { //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) if (!initialized) { initialized = true; StatIconInfo val = ScriptableObject.CreateInstance<StatIconInfo>(); val.rulebookName = "Power of Death"; val.rulebookDescription = "The value represented is equal to half the number of creatures that have perished this battle."; Texture2D imageAsTexture = TextureHelper.GetImageAsTexture("DeathAttack.png", (FilterMode)0); val.iconGraphic = (Texture)(object)imageAsTexture; Texture2D imageAsTexture2 = TextureHelper.GetImageAsTexture("Act2_DeathAttack.png", (FilterMode)0); AbilityExtensions.SetPixelIcon(val, imageAsTexture2, (FilterMode?)null); val.metaCategories = new List<AbilityMetaCategory> { (AbilityMetaCategory)0 }; val.appliesToAttack = true; val.appliesToHealth = false; FullStatIcon val2 = StatIconManager.Add("starclouds.futss", val, typeof(DeathHalfStat)); iconType = val2.Id; StatIconInfo iconInfo = StatIconInfo.GetIconInfo(iconType); if (!((Object)(object)iconInfo != (Object)null)) { } } } protected override int[] GetStatValues() { int num = DeathCounter.NonSacrificeDeaths / 2; return new int[2] { num, 0 }; } } public static class DeathCounter { public static int NonSacrificeDeaths { get; private set; } public static void Reset() { NonSacrificeDeaths = 0; } public static void Increment() { NonSacrificeDeaths++; } } [HarmonyPatch(typeof(PlayableCard), "Die")] public static class DeathPatch { [HarmonyPrefix] public static void Prefix(PlayableCard __instance, bool wasSacrifice, PlayableCard killer) { if (!wasSacrifice && (Object)(object)__instance != (Object)null && !__instance.Dead) { DeathCounter.Increment(); } } } [HarmonyPatch(typeof(TurnManager), "StartGame", new Type[] { typeof(EncounterData) })] public static class CombatStartPatch { [HarmonyPrefix] public static void Prefix() { DeathCounter.Reset(); } }
TFYTSS.dll
Decompiled 2 days agousing System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using HarmonyLib; using InscryptionAPI.Localizing; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyTitle("TFYTSS")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("TFYTSS")] [assembly: AssemblyCopyright("Copyright © 2025")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("576aa911-76f7-4d4b-9e73-cd38ee3a4138")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] namespace TranslateLanguageToChinese; public class ForestUnderTheStarrySky { public static void RegisterTranslations() { Debug.Log((object)"Registering Tanslations for Forest_Under_The_Starry_Sky Mod"); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Super Squirrel", "超级松鼠", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "It contains [count] new cards.", "里面包含了 [count] 张新卡牌。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "African Buffalo", "非洲大水牛", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Anguidae", "蛇蜥", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "AunHai", "安凝", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "BoneSlinger", "投骨索", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Bone Slinger", "掷骨者", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Archer Fish", "射水鱼", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Armadillo", "犰狳", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Bed Bug", "臭蝽", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Beetle", "甲虫", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Black-Footed Cat", "黑足猫", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Blue Heron", "蓝鹫", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Bomb", "炸弹", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "TNT", "TNT", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Brown Bear", "棕熊", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Cheetah", "猎豹", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Desert Social Spider", "沙漠群居蛛", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Legion Spider", "军团蜘蛛", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Dragon", "龙", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Eastern Gorilla", "东部大猩猩", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Fisher Cat", "渔猫", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Fox", "狐狸", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Giant Centiped", "巨人蜈蚣", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Grizzly Cub", "灰熊幼崽", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Haney Badger", "蜜獾", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Humpback", "座头鲸", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Hunter", "猎人", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Skeleton King", "骷髅王", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Koi", "锦鲤", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Lion", "雄狮", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Lion Cub", "小幼狮", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Lioness", "雌狮", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Mantis Shrimp", "螳螂虾", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Minter", "矿工", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Venomous Cobra", "射毒眼镜蛇", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Owl", "鸮", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "MessyHair Anon P", "格衫黑白灰", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Pig", "猪", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Pirate Crab", "海盗蟹", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Poisonous Spider", "毒蜘蛛", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Qi Yao", "七幺", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Rattler Egg", "响尾蛇蛋", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Rhinoceros", "犀牛", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Ring Tailed-Lizard", "环尾蜥", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Sail Fish", "旗鱼", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Scorpion", "蝎子", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Serval", "薮猫", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Soul Devouring Wraith", "噬魂亡灵", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Spotted Hyena", "斑鬣狗", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Bengal Tiger", "孟加拉虎", (Language)10); LocalizationManager.Translate("St5arClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Tiger Shark", "虎鲨", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Vampire", "吸血鬼", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Velociraptor", "驰龙", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Wild Boar", "野猪", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Wolf King", "狼王", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Tyrannosaurus Rex", "暴龙", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Ancient Tyrannosaurus Rex", "远古暴龙", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The savannah's belligerent buffalo, a powerful defender.", "草原蛮横的水牛,强大的捍卫者。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The survivalist Anguid lizard sheds its tail when threatened, releasing foul odor to repel predators.", "求生的蛇蜥,遇敌时会断尾逃生,并释放臭味驱赶天敌。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Nimble and agile, the archerfish lurks beneath the surface, striking its prey in a single shot.", "敏捷灵活的射水鱼潜藏于水面直接,水流射出,一击制敌。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The wilderness's 'armored dwarf ', curling into a defensive ball.", "荒野的“坚盾矮人”,蜷缩时攻守兼备。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Foul stink bug, beware its encounter; a simple yet practical defense.", "恶臭的蝽虫,小心遭遇,简单又实用的防御。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "A phantom-like predator of the night, haunting the darkness.", "夜魇的掠食者,鬼影一般游荡。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Streaking across blue skies and watery marshes, using ambush camouflage for a single decisive strike.", "飞驰于蓝天于水沼,用潜伏伪装术来一击制敌。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "This is no beast, but the power of gunpowder demands respect!", "这称不上是野兽,但火药的威力不可小觑!", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "A massive form moves among the pines, paws wielding immense power.", "巨大身形穿梭杉树之中,巨掌蕴含极强的力量。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The cheetah, emperor of speed, its ferocious sprints and attacks hold more strategy than the mantis shrimp.", "猎豹乃奔跑之皇,强烈的攻击和奔跑性,远比螳螂虾更有战略。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Spiders advance as one, eroding lonely lives amidst the windblown sands.", "群蛛相辅而上,侵蚀风沙中的孤怜生命。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Might surpassing a herd of bulls, yet unmatched, the eastern gorilla defends its jungle; outsiders forbidden.", "蛮力可较群牛,而不及其也,东部大猩猩捍卫着丛林,外来者禁止踏足。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The riverbank hunter, poised for fleeting fish.", "河岸的猎手,静候鱼影游过。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Serpent-scaled, fish-backed, antlered and eagle-clawed, the dragon's eyes pierce clouds as it coils across the world.", "蛇身鱼鳞,鹿角鹰爪,枭眸刺破云层,神龙盘踞世间。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Hunting treacherous seas, the tiger shark's shadow looms over coral reefs.", "寻猎危机四伏的海洋,虎鲨的阴影笼罩群礁之间。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The cunning fox, weaving through snow-laden woods and forests.", "狡黠的狐狸,在雪地与林间穿梭。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The giant centipede, with a hundred writhing legs, crawls through caves and jungles, punishing intruders with venomous fangs.", "巨人蜈蚣有着百条扭曲的足,爬行于洞穴和丛林之中,用毒牙来惩罚入侵者。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Small yet fierce, the honey badger bares its fangs at the mighty.", "蜜獾小巧而猛烈,他敢于向强大者崭露獠牙。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The name of firepower; the cold gun feels nothing. Listen, load, fire, and claim.", "热武器之名,冰冷的枪不带感情,只听,上膛,发射,和缴获。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Bones piled high, jagged skeletons paving the way for blades; the Skeleton King, lord of the dead realm.", "尸骨堆积成山,嶙峋骸骨为刀锋开路,骷髅王乃死界之主。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "King of the savannah, lord of the pride; claws that rend all asunder.", "稀树草原之王,狮群之主,利爪会撕裂所有。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Underestimate not the cub, for it has learned the hunt and will challenge intruders.", "不要小瞧那幼狮,它早已习得狩猎,将会阻挡入侵者。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The pride's pillar, defender of cubs, food, and territory.", "狮群的支柱,捍卫着幼崽、食物、和领域。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "A fragile cage in the shifting sands—soon a ruthless hunter will shatter its shell.", "风沙中的脆弱牢笼,将有一只凶残的猎手破壳而出。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The belligerent mantis shrimp, its strike faster than the cheetah, reigns as an aquatic executioner.", "好战的螳螂虾,拳比猎豹更快,水中的猎杀者。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Gold Rush madman, obsessed seeker; his eyes see only gold.", "淘金热疯魔,偏执的寻觅者,他的眼里只有金子。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Give you hug,Code no bug!", "一帆风顺,前程似锦!", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Head raised, fangs bared, venom sacs compress and spray—a single strike seals the prey.", "昂首,展露尖牙,毒囊挤压喷射,一击制敌。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Under the moonlit night, lurking in the air, attacking in utter silence.", "月明之夜,潜伏于空中,悄无声息地袭击。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The slumbering titan of the mire, using sheer bulk to secure its sustenance.", "泥潭的酣睡汉,可以作为吃的东西", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The pirate's cutlass swings, plundering with domineering arrogance, seizing the prize.", "海盗的军刀挥舞,横行霸道的掠夺,获取奖赏。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Deep with the sea,Each breath sinks, a wave's call.", "深海中的庞然巨物,每一次沉浮换气,都是波涛的呼唤。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The lethal venomous spider, its sharp fangs and deadly toxin strike fear.", "致命的毒蜘蛛,锋利的尖牙和剧毒令人闻风丧胆。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Thick-skinned rhino, armored and imposing; enemy fangs and claws glance off like feathers.", "皮糙肉厚的犀牛,重甲震慑,敌人的尖牙利齿如同羽毛划过般。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The scale-armored lizard ensures you bear scars long before its demise.", "刺甲满身的蜥蜴,在你击杀他之前,你也满身伤疤。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Before you can even glimpse its dorsal fin, it vanishes into the blue.", "甚至来不及看清他的背鳍,就已经逃之夭夭。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The pitiful scavenger, hoping someone will lend aid.", "可怜的拾荒者,期待有人能帮助他。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The ferocious scorpion hunts with deadly precision, its stinger poised to kill.", "凶猛的蝎子,用致命的尾针精准狩猎。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The audacious serval employs lightning agility in its tactics; the overconfident face fierce reprisal.", "骄狂的薮猫,用灵敏贯彻战术,轻敌的人会遭受强烈反击。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "A curse wrought of souls, immense yet fragile.", "魂魄的诅咒,巨大但脆弱。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The massive spotted hyena, tearing and savagely plundering its prize.", "身型巨大的斑鬣狗, 他撕咬,猛烈地掠夺。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Be wary of every blade of grass and tree. Beware the Bengal tiger's ambush; its mighty paw strikes with deadly force.", "警惕身边的一草一木,小心猛虎的袭击,猛力一掌裹挟血色。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Lurker of the night, predator supreme; the bat's fangs rend its prey.", "黑夜的潜伏者,更是掠食者,蝙蝠的尖牙撕裂着猎物。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Ancient and swift, its cruel fangs enacting piratical slaughter.", "远古而迅猛,酷虐的利齿尖牙会进行海盗般的猎杀。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Treading deep within the jungle, charging headlong, the beast's fury rivals tiger or wolf.", "踏步于丛林深处,激发的怒火不差虎狼。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "As dawn fades, distant howls echo—the Wolf King's hunt begins.", "日曦落山,远方的阵阵狼吼,那是狼王狩猎的前兆。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Pay 1 bone,choose a slot to damage.", "支付1根骨头,选择一个槽位造成1点伤害。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "AllStrike", "全向打击", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, " [creature] will strike all opposing slot.", " [creature] 将会攻击敌方场上所有槽位。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "CornerSmash", "拐角猛击", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "When [creature] is moved, it will attack once.", "当 [creature] 移动时, 将攻击一次。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "ImbalaneSuppression", "失衡压制", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "When [creature] is present, after the opponent's turn ends, a weight will be added to the balance of the owner; and after the enemy's turn ends, a weight will be added to the balance of the opponent.", " [creature] 在场时,对手的回合结束后将在我方的天平上增加一个砝码,我方的回合结束后将在对手的天平上增加一个砝码。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "TripleStrike", "三重攻击", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, " [creature] will strike the opposing space two extra time when attacking.", " [creature] 会在攻击时额外攻击对面位置两次。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "MonetaryRewards", "金钱奖赏", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Monetary Rewards", "金钱奖赏", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "When [creature] killing other cards, it will add a weight to the opposing side's balance.", "当 [creature] 击杀卡牌时,将在对方的天平上增加一个砝码。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "ShortStature", "矮小", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "At the end of the owner's turn, [creature] can choose to move to a position on the owner's field.", "拥有者回合结束时, [creature] 可选择移动到己方场上一个位置,亦可以止步不前。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "GoldProspector", "淘金热", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "When [creature] killed other cards, a gold mine will be added to the owner's hand.", "当 [creature] 击杀卡牌时,将在持牌人手中加入一张金矿。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "SkeletonSummoner", "骷髅召唤者", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "When [creature] is played, two Skeleton Soldier is created on each empty adjacent space. Skeleton Soldier have 1 Power , Health and Sniper.", "当 [creature] 被打出时,将在其左右两侧召唤骷髅士兵。骷髅士兵定义为:1攻击力,1生命值以及 狙击手 印记。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "LeftStrike", "弹道偏左", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, " [creature] will strike each opposing space to the left of the spaces across it.", " [creature] 在攻击时会攻击左前方位置。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "RightStrike", "弹道偏右", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, " [creature] will strike each opposing space to the right of the spaces across it.", " [creature] 在攻击时会攻击右前方位置。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "ExtremitySprint", "极限冲刺", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "At the end of the owner's turn, [creature] will move twice in the direction inscribed in the sigil.", "回合结束时, [creature] 将朝印记方向移动两次。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Roar", "咆哮", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "When [creature] is played, it reduces the all creatures on the opponent's -1 attack.", "当 [creature] 被打出时,将使对方场上所有造物的攻击力-1。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "QuickCounterAttack", "敏捷反击", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "When [creature] is attacked, it attacks its own card.", "当 [creature] 被攻击时,将攻击攻击自身的卡牌。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "FortifiedArmor", "厚重皮甲", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, " [creature] will reduce the damage they receive by one point when they are injured.", " [creature] 大部分情况下受到的伤害-1。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "KillingDesire", "鲜血欲望", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "When [creature] is kill another card, the adjacent cards gain +1 health.", "当 [creature] 击杀其它卡牌时,其与相邻的卡牌生命值将+1。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "When [creature] deals damage, it gains 1 Health for each attack dealt.", "当 [creature] 造成伤害时,将获得与攻击力相等的生命值。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "FrenziedRoarPower", "狂哮之力", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "At the beginning of the owner's turn, if [creature] with this symbol is present on the field, the owner can choose one card +1 attack.", "回合开始时,若 [creature] 在场,则可选择己方场上一张卡牌使其攻击力+1。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Fanaticism", "狂热", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "When [creature] is killed, it will attack once.", "当 [creature] 击杀其它卡牌后,将再攻击一次。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "It'sWitchSeasonAgain", "又到了女巫季节了", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "When [creature] is played, will direct attack once.", "当 [creature] 被打出时,将直接攻击一次。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Extremely Fast Attack", "极速快攻", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "When [creature] is played,choose a opponent's card transform into Pumpkin or place a Pumpkin.", "当 [creature] 被打出时,选择对手一张卡牌转化为南瓜 或 放置一张南瓜。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Rice", "白饭", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Pumpkin", "南瓜", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Preemptive Strike", "先发制人", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Crocodile", "鳄鱼", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The crocodile’s traces appear in festering swamps;within rotting logs and murky mud, lurking peril.", "鳄鱼的身迹出没于腐烂的水沼,腐木和泥污中暗藏杀机。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Vulture", "秃鹫", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The vulture's fierce gaze scans the wasteland—where skeletal remains lie exposed, it descends as the first predator.", "秃鹫的怒目注视着荒野,若骨干遗留在地面,它将是首席掠食者。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "When [creature] deals damage, it gains 1 Health for each damage dealt..", "当 [creature] 造成伤害时,将获得等同于造成的伤害的生命值。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Peaceful Carpenter Ant", "平和弓背蚁", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Silence", "沉默", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Klipspringer", "山羚", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The mountain antelope bounded through the craggy mountains, moving with effortless ease as if walking on level ground.", "山羚在嶙峋的山脉间蹬越,如履平地般行走自如。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Wait,what is this?", "等等,这是什么?", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Nuclear Bomb", "核弹", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Ghost Projector", "幽灵投影仪", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Biscuit Crumbs", "饼干碎片", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Skeleton Soldier", "骷髅士兵", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Tardigrade", "水熊虫", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "So resilient, so small, the water bear. You can only pray there's yet some use for its soul.", "顽强弱小的水熊虫,你只能指望它的灵魂尚有用处。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "HoneyAnt", "蜜罐蚁", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "A living larder the honeypot ant may be, but a prisoner of the inverted chamber it remains for life.", "蜜罐蚁不愧为蚂蚁的粮仓,一生也只能桎梏在倒悬的蚁穴上。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "MadCowDisease", "疯牛病", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "When [creature] is attacked,it will swap slot with attacker.", "当 [creature] 被攻击时,将与攻击者交换位置。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Plague Cattle", "瘟牛", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Swordfish", "剑鱼", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Anaconda", "森蚺", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Polar Bear", "北极熊", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Hummingbird", "蜂鸟", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Chinese Dargon", "龙", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "FengHuang", "凤凰", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Phoenix", "不死鸟", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "It contains [count] new cards.", "这个卡包一共增加了 [count] 新卡牌。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Starry Forest Cards Expansion", "繁星森林 拓展卡包", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Boss HUAMIAO", "花喵开播了", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Lose bestiality", "失去兽性", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Give 'Doclie' sigil to all the cards in the starter deck.", "使初始卡组中所有卡牌获得‘温顺’印记。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Unstable existence", "不稳定的存在", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Give 'Endangered' sigil to all the cards in the starter deck.", "使初始卡组中所有卡牌获得‘濒危’印记。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Avoidance", "逃避本能", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Give 'Coward' sigil to all the cards in the starter deck.", "使初始卡组中所有卡牌获得‘贪生怕死’印记。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Jackal", "豺", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Nimble jackals, swarming as one, bring down lions and tigers.", "灵敏的豺,相倚群袭勇于打败狮虎。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "UndercurrentsSurge", "暗流涌动", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "When [creature] is played,it will give sigil 'Waterborne' to the opposing card.", "当 [creature] 被打出时,将使对立的卡牌获得 '水袭' 印记。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Zebra", "斑马", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Sheepdog", "牧羊犬", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "To Bella, a loyal and reliable partner.", "忠诚可靠的伙伴,致贝拉。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "You used to be 4 diligent 4n1mal.", "你泍是勒勉的家畗,", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Its devastating back kick proves it's no zebra crossing.", "威力巨大的后踢腿证明它不是斑马线。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Sensitive hummingbirds. At the same time, give support to both land and air.", "轻巧的蜂鸟。可以从陆和空两面给予支援。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Strong rhinoceros, its leather armor can resist damage that is not yet powerful.", "强劲的犀牛,它的皮甲能抵御不尚有威力的伤害。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The mud-wallowing sleeper, pure prey.", "泥潭的酣睡汉,纯粹的猎物。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "A creature of pure brute force, more massive than a bull, sowing chaos on your board and mine.", "纯粹蛮力的造物,比公牛还要壮硕,在你的、我的牌桌上制造混乱。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The enraged boar, a creature devoid of reason. To strike it is to enrage it.", "愤怒的野猪,丧失理智的家伙,攻击就是激怒它。·", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The colossal anaconda, jaws agape, devours prey whole.", "体型庞大的森蚺,张开口便能生吞猎物。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "No Teeth", "一贫如洗", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "You will not gain gold teeth from overkill damage after battles.", "你将不会在战斗胜利后通过过量伤害获得金牙齿", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Dolphin", "海豚", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Immortal Jellyfish", "灯塔水母", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Blue-ringed Octopus", "蓝环章鱼", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Hermit Crab", "寄居蟹", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Sea Turtle", "海龟", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Arapaima", "巨骨舌鱼", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Cuttlefish", "墨鱼", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Cuttlefish ink", "墨鱼汁", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Slime", "史莱姆", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Dice Squid", "骰子触手", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Poison Dart Frog", "箭毒蛙", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Grave Squid", "坟墓触手", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Power of Death", "噬亡之力", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The value represented is equal to half the number of creatures that have perished this battle.", "该值等于本场战斗中已经死亡生物数量的一半。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "When [creature] is played, choose an opposing card with Waterbrone to slay and [creature] gains a buff.", "当 [creature] 被打出时, 可选择一张对方场上的携带印记 水袭 的卡牌将其击杀并获得增益。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Cormorant", "鸬鹚", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "HydroHunter", "水行猎手", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Golden Monkey", "金丝猴", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Bald Eagle", "白头海雕", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Neck-Troughed Snake", "虎斑颈槽蛇", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Shaman Totem", "萨满图腾", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Peregrine Falcon", "游隼", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Mandarin Duck", "鸳鸯", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Golden Snub-nosed Monkey", "金丝猴", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Ostrich", "鸵鸟", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Little Mouse", "小老鼠", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Plague Rat", "疫鼠", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Poison Dart Frog", "箭毒蛙", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Dairy Cow", "奶牛", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Hermit Crab", "寄居蟹", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Pigeon", "鸽子", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Gray Wolf", "灰狼", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Snow Leopard", "雪豹", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Penguin", "企鹅", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Leopard", "花豹", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Albino Deer", "白化鹿", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Duskywing", "珠弄蝶", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Orchid Mantis", "兰花螳螂", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Bengal Tigers appear during the first 3 boss battles.", "前三场头目战将会出现孟加拉虎。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The brutish arapaima has a massive maw that can swallow anything.", "蛮横的巨骨舌鱼,它的大嘴可以吞下任何东西。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The bald eagle tribe holds its heads high in the sky.", "傲首于天空,白头海雕的部族。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "What bird can dive? Look no further—to fish, the cormorant is a horror story.", "什么鸟能潜水?看看它吧,对鱼来说,这是个恐怖故事。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The cuttlefish is timid, and when attacked it sprays a choking cloud of ink.", "墨鱼十分胆小,被攻击后喷射出呛人的墨雾。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Dolphins understand teamwork, and they rally the whole ocean into a charge.", "海豚们懂得配合,联合整个海洋向前攻击。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "A heart-melting grizzly cub, given time, grows from adorable to ferocious.", "灰熊楚楚动人的幼崽,过段时间,它从动人变成凶悍。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The immortal jellyfish is nature's longest-lived animal, and it can grow from adult back to juvenile.", "灯塔水母是自然中最长寿的动物,他们会从成年生长到幼年。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The pondside snake will drag someone down with it before it dies. ", "塘边的游蛇,死亡前定要拉人下水。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Half gilded gold, half crimson red—like a crowned heron, like the risen Christ—the Phoenix unfurls its wings in fire.", "半鎏金色,半赤红色,如戴冠的苍鹭,如复活的基督,腾火展翼。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The tenacious sea turtle, given but a short time, can grow new scales.", "坚韧的海龟,给它短暂的时日,它便能长出新的鳞片。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "If Charizard becomes truly angered, the flame at the tip of its tail burns in a light blue shade.", "如果喷火龙真正被激怒,它尾巴尖端的火焰会燃成淡蓝色。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Like snow, it vanishes into the white woods.", "它犹如落雪,消失在雪林中。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "A lone gray wolf. Costly, but the outcome leaves you awestruck.", "独当一面的灰狼,它虽昂贵,但结果能让你叹为观止。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The ostrich is reckless, Whether friend or foe.", "鸵鸟总是莽撞,无论是敌是友。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The diving peregrine kills in one strike. Hard to catch.", "游隼,俯冲中的游隼一击致命,难以捕捉。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "The fickle hermit crab. A new, hard shell blocks the next attack.", "喜新厌旧的寄居蟹,新的、坚硬的壳能抵挡下一次攻击。", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Taotie", "饕餮", (Language)10); LocalizationManager.Translate("StarClouds.inscryption.Forest_Under_The_Starry_Sky", (string)null, "Devourer of heaven and earth—the Taotie grows stronger with every insatiable hunger.", "吞噬天地的饕餮——永无止境的饥渴令它变得更强。", (Language)10); } } [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("StarClouds.inscryption.Forest_Under_The_Starry_Sky", "SCSimplifiedChineseLanguage", "1.0.0")] public class CVFUTSSPlugin : BaseUnityPlugin { private void Awake() { ((BaseUnityPlugin)this).Logger.LogInfo((object)"Loaded FUTSS!"); Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), "StarClouds.inscryption.Forest_Under_The_Starry_Sky"); ForestUnderTheStarrySky.RegisterTranslations(); } }