using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Reflection.Emit;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using System.Text;
using AddWatermark;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using DG.Tweening;
using DG.Tweening.Core;
using DG.Tweening.Plugins.Options;
using HarmonyLib;
using LBoL.Base;
using LBoL.Base.Extensions;
using LBoL.ConfigData;
using LBoL.Core;
using LBoL.Core.Battle;
using LBoL.Core.Battle.BattleActions;
using LBoL.Core.Battle.Interactions;
using LBoL.Core.Cards;
using LBoL.Core.Helpers;
using LBoL.Core.Intentions;
using LBoL.Core.Randoms;
using LBoL.Core.Stations;
using LBoL.Core.StatusEffects;
using LBoL.Core.Units;
using LBoL.EntityLib.Adventures.Stage2;
using LBoL.EntityLib.Cards.Adventure;
using LBoL.EntityLib.Cards.Character.Marisa;
using LBoL.EntityLib.Cards.Character.Sakuya;
using LBoL.EntityLib.Cards.Enemy;
using LBoL.EntityLib.Cards.Neutral.Black;
using LBoL.EntityLib.Cards.Neutral.NoColor;
using LBoL.EntityLib.EnemyUnits.Normal.Yinyangyus;
using LBoL.EntityLib.Exhibits;
using LBoL.Presentation;
using LBoL.Presentation.UI.Panels;
using LBoL.Presentation.UI.Widgets;
using LBoLEntitySideloader;
using LBoLEntitySideloader.Attributes;
using LBoLEntitySideloader.Entities;
using LBoLEntitySideloader.PersistentValues;
using LBoLEntitySideloader.PersistentValues.TypeConverters;
using LBoLEntitySideloader.ReflectionHelpers;
using LBoLEntitySideloader.Resource;
using LBoLEntitySideloader.UIAdditions.CardUIAdds;
using LBoLEntitySideloader.Utils;
using UnityEngine;
using VariantsC.Marisa.C;
using VariantsC.Reimu.C;
using VariantsC.Rng;
using VariantsC.Sakuya.C;
using VariantsC.Shared;
using YamlDotNet.Serialization;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: IgnoresAccessChecksTo("LBoL.Base")]
[assembly: IgnoresAccessChecksTo("LBoL.ConfigData")]
[assembly: IgnoresAccessChecksTo("LBoL.Core")]
[assembly: IgnoresAccessChecksTo("LBoL.EntityLib")]
[assembly: IgnoresAccessChecksTo("LBoL.Presentation")]
[assembly: IgnoresAccessChecksTo("Untitled.ConfigDataBuilder.Base")]
[assembly: AssemblyCompany("VariantsC")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("VariantsC")]
[assembly: AssemblyTitle("VariantsC")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace VariantsC
{
public static class CustomLoadouts
{
public static void AddLoadouts()
{
List<string> second = new List<string> { "Shoot", "Shoot", "Boundary", "Boundary" };
PlayerUnitTemplate.AddLoadout("Reimu", "JabReimuCUlt", "ChocolateCoinEx", new List<string> { "ReimuAttackR", "ReimuAttackW", "ReimuBlockR", "ReimuBlockW", "BalancedBasicCard", "RollingPebbleCard" }.Concat(second).ToList(), 2, (Assembly)null);
PlayerUnitTemplate.AddLoadout("Sakuya", "BatFormUlt", "BloodyRipperEx", new List<string> { "SakuyaAttackU", "SakuyaAttackW", "SakuyaBlockU", "SakuyaBlockW", "ConsequenceOfHickeysCard", "ChaoticBloodMagicCard", "Shoot", "Shoot", "Shoot", "Boundary" }.ToList(), 3, (Assembly)null);
PlayerUnitTemplate.AddLoadout("Marisa", "SpringCleaningUlt", "PachyBagEx", new List<string> { "EverHoardingCard", "Potion", "BasicTreasurePack", "BasicAttacksPack", "BasicDefencePack", "BasicMiseryPack" }.ToList(), 2, (Assembly)null);
}
}
[BepInPlugin("neo.lbol.gameplay.VariantsC", "Variants C", "0.5.5000")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInProcess("LBoL.exe")]
public class BepinexPlugin : BaseUnityPlugin
{
private static readonly Harmony harmony = PInfo.harmony;
internal static ManualLogSource log;
internal static TemplateSequenceTable sequenceTable = new TemplateSequenceTable(0);
internal static IResourceSource embeddedSource = (IResourceSource)new EmbeddedSource(Assembly.GetExecutingAssembly());
internal static DirectorySource directorySource = new DirectorySource("neo.lbol.gameplay.VariantsC", "");
internal static ConfigEntry<bool> poolNewCards;
internal static ConfigEntry<bool> poolNewExhibits;
internal static BatchLocalization CardBatchLoc = new BatchLocalization((IResourceSource)(object)directorySource, typeof(CardTemplate), "Card", (Locale)0, false);
internal static BatchLocalization StatusEffectBatchLoc = new BatchLocalization((IResourceSource)(object)directorySource, typeof(StatusEffectTemplate), "StatusEffect", (Locale)0, false);
internal static BatchLocalization ExhibitBatchLoc = new BatchLocalization((IResourceSource)(object)directorySource, typeof(ExhibitTemplate), "Exhibit", (Locale)0, false);
internal static BatchLocalization UltimateSkillBatchLoc = new BatchLocalization((IResourceSource)(object)directorySource, typeof(UltimateSkillTemplate), "UltimateSkill", (Locale)0, false);
private void Awake()
{
log = ((BaseUnityPlugin)this).Logger;
Object.DontDestroyOnLoad((Object)(object)((Component)this).gameObject);
((Object)((Component)this).gameObject).hideFlags = (HideFlags)61;
poolNewCards = ((BaseUnityPlugin)this).Config.Bind<bool>("Pools", "poolNewCardsWhenExhibit", false, "Pool new starting cards of a loadout when not in a possession of the corresponding loadout exhibit. For example, when set to false, Blood Magic and Consequence of Hickeys cards won't be rewarded or generated unless player has Bloody Ripper exhibit.");
poolNewExhibits = ((BaseUnityPlugin)this).Config.Bind<bool>("Pools", "poolNewExhibits", false, "Makes C variant exhibits discoverable after defeating their owner.");
((CustomGameRunSaveData)new SaveContainer()).RegisterSelf("neo.lbol.gameplay.VariantsC");
EntityManager.RegisterSelf();
harmony.PatchAll();
if (Chainloader.PluginInfos.ContainsKey("neo.lbol.tools.watermark"))
{
WatermarkWrapper.ActivateWatermark();
}
CustomLoadouts.AddLoadouts();
}
private void OnDestroy()
{
if (harmony != null)
{
harmony.UnpatchSelf();
}
}
}
public class Config
{
[HarmonyPatch]
private class Gr_cctor_Patch
{
private static IEnumerable<MethodBase> TargetMethods()
{
yield return AccessTools.Constructor(typeof(GameRunController), new Type[1] { typeof(GameRunStartupParameters) }, false);
}
private static void Postfix(GameRunController __instance)
{
if (!BepinexPlugin.poolNewExhibits.Value)
{
__instance.ShiningExhibitPool.RemoveAll((Type t) => cExhibits.Contains(t));
}
}
}
[HarmonyPatch(/*Could not decode attribute arguments.*/)]
private class EnumerateRollableCardTypes_Patch
{
private static int CheckConfig(CardType cardType, CardConfig config)
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0003: Invalid comparison between Unknown and I4
if ((int)cardType == 8)
{
return 0;
}
GameRunController currentGameRun = Singleton<GameMaster>.Instance.CurrentGameRun;
if (currentGameRun != null && !BepinexPlugin.poolNewCards.Value && newCards.SelectMany((string[] l) => l).Contains(config.Id))
{
return (from ex in currentGameRun.Player.Exhibits
select Array.IndexOf(cExhibits, ((object)ex).GetType()) into i
where i >= 0
select i).SelectMany((int i) => newCards[i]).Contains(config.Id) ? 1 : 0;
}
return 1;
}
private static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions, ILGenerator generator)
{
//IL_0003: Unknown result type (might be due to invalid IL or missing references)
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
//IL_0033: Expected O, but got Unknown
//IL_006a: Unknown result type (might be due to invalid IL or missing references)
//IL_0070: Expected O, but got Unknown
//IL_0098: Unknown result type (might be due to invalid IL or missing references)
//IL_009e: Expected O, but got Unknown
//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
//IL_00b7: Expected O, but got Unknown
return new CodeMatcher(instructions, (ILGenerator)null).MatchEndForward((CodeMatch[])(object)new CodeMatch[1] { CodeMatch.op_Implicit(new CodeInstruction(OpCodes.Callvirt, (object)AccessTools.PropertyGetter(typeof(CardConfig), "Type"))) }).MatchEndForward((CodeMatch[])(object)new CodeMatch[1] { CodeMatch.op_Implicit(OpCodes.Ldloc_S) }).Advance(1)
.RemoveInstruction()
.InsertAndAdvance((CodeInstruction[])(object)new CodeInstruction[1]
{
new CodeInstruction(OpCodes.Ldloc_2, (object)null)
})
.InsertAndAdvance((CodeInstruction[])(object)new CodeInstruction[1]
{
new CodeInstruction(OpCodes.Call, (object)AccessTools.Method(typeof(EnumerateRollableCardTypes_Patch), "CheckConfig", (Type[])null, (Type[])null))
})
.InsertAndAdvance((CodeInstruction[])(object)new CodeInstruction[1]
{
new CodeInstruction(OpCodes.Ldc_I4_0, (object)null)
})
.InstructionEnumeration();
}
}
public static readonly Type[] cExhibits = new Type[3]
{
typeof(ChocolateCoinEx),
typeof(BloodyRipperEx),
typeof(PachyBagEx)
};
public static readonly string[][] newCards = new string[3][]
{
new string[1] { "RollingPebbleCard" },
new string[2] { "ConsequenceOfHickeysCard", "ChaoticBloodMagicCard" },
new string[1] { "EverHoardingCard" }
};
}
public static class Helpers
{
public static int ToInt(this bool value)
{
return value ? 1 : 0;
}
}
public static class PInfo
{
public const string GUID = "neo.lbol.gameplay.VariantsC";
public const string Name = "Variants C";
public const string version = "0.5.5000";
public static readonly Harmony harmony = new Harmony("neo.lbol.gameplay.VariantsC");
}
internal class WatermarkWrapper
{
[MethodImpl(MethodImplOptions.NoInlining)]
internal static void ActivateWatermark()
{
API.ActivateWatermark();
}
}
}
namespace VariantsC.Shared
{
public sealed class BalancedBasicCardDef : CardTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("BalancedBasicCard");
}
public override CardImages LoadCardImages()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Expected O, but got Unknown
CardImages val = new CardImages(BepinexPlugin.embeddedSource);
val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
return val;
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
}
public override CardConfig MakeConfig()
{
//IL_0030: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
//IL_015a: Unknown result type (might be due to invalid IL or missing references)
//IL_0160: Expected O, but got Unknown
string[][] array = new string[0][];
TargetType? val = (TargetType)1;
List<ManaColor> list = new List<ManaColor>();
ManaGroup val2 = default(ManaGroup);
((ManaGroup)(ref val2)).Any = 2;
return new CardConfig(0, "", 10, true, array, "ShootC", "ShootC1", 0, false, false, true, false, true, (Rarity)0, (CardType)1, val, (IReadOnlyList<ManaColor>)list, false, val2, (ManaGroup?)null, (int?)null, (int?)4, (int?)7, (int?)4, (int?)7, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)2, (Keyword)2, false, (Keyword)0, (Keyword)0, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (string)null, "", "", false, "白Shiro@", (IReadOnlyList<string>)new List<string>());
}
}
[EntityLogic(typeof(BalancedBasicCardDef))]
public sealed class BalancedBasicCard : Card
{
protected override IEnumerable<BattleAction> Actions(UnitSelector selector, ManaGroup consumingMana, Interaction precondition)
{
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
//IL_0017: Unknown result type (might be due to invalid IL or missing references)
yield return ((Card)this).DefenseAction(true);
yield return ((Card)this).AttackAction(selector, (GunPair)null);
}
}
public static class CardColors
{
public static readonly string common = "#a0a1a0";
public static readonly string uncommon = "#3277d1";
public static readonly string rare = "#d6cd28";
public static readonly string basicAndCommon = "#898e89";
public static readonly string misfortune = "#8a3baf";
public static readonly string status = "#b25eee";
public static string ColorName(Card card, string defaultColor = "#000000")
{
//IL_002f: Unknown result type (might be due to invalid IL or missing references)
//IL_0035: Invalid comparison between Unknown and I4
//IL_0050: Unknown result type (might be due to invalid IL or missing references)
//IL_0055: Unknown result type (might be due to invalid IL or missing references)
//IL_0057: Unknown result type (might be due to invalid IL or missing references)
//IL_0059: Unknown result type (might be due to invalid IL or missing references)
//IL_005a: Unknown result type (might be due to invalid IL or missing references)
//IL_005c: Invalid comparison between Unknown and I4
//IL_0060: Unknown result type (might be due to invalid IL or missing references)
//IL_0062: Invalid comparison between Unknown and I4
//IL_008a: Unknown result type (might be due to invalid IL or missing references)
//IL_008f: Unknown result type (might be due to invalid IL or missing references)
//IL_0091: Unknown result type (might be due to invalid IL or missing references)
//IL_0093: Unknown result type (might be due to invalid IL or missing references)
//IL_0095: Unknown result type (might be due to invalid IL or missing references)
//IL_00b0: Expected I4, but got Unknown
string text = ((GameEntity)card).Name + (card.IsUpgraded ? " +" : "");
if (card.IsBasic && (int)card.Config.Rarity == 0)
{
return text.WrapHex(basicAndCommon);
}
CardType cardType = card.CardType;
CardType val = cardType;
if ((int)val != 7)
{
if ((int)val == 8)
{
return text.WrapHex(misfortune);
}
Rarity rarity = card.Config.Rarity;
Rarity val2 = rarity;
switch ((int)val2)
{
case 0:
return text.WrapHex(common);
case 1:
return text.WrapHex(uncommon);
case 2:
case 3:
case 4:
return text.WrapHex(rare);
default:
return text.WrapHex(defaultColor);
}
}
return text.WrapHex(status);
}
public static string WrapHex(this string text, string hex)
{
return "<color=" + hex + ">" + text + "</color>";
}
}
public class ProcessDeckCardsAction : SimpleAction
{
[HarmonyPatch(typeof(ActionResolver), "InternalResolve")]
private class CaputreActionResolverDepth
{
public static int capDepth;
private static void Prefix(BattleAction action, int depth)
{
if (((object)action).GetType() == typeof(ProcessDeckCardsAction))
{
capDepth = depth;
}
}
}
private Card[] cards;
private Action<IEnumerable<Card>> proccessAction;
private readonly string actionTitle;
public int batchSize = 5;
public float finalDelay = 0.5f;
public float batchDelay = 0.4f;
private int resolutionDepth;
public ProcessDeckCardsAction(Card[] cards, Action<IEnumerable<Card>> proccessAction, string actionTitle)
{
this.cards = cards;
this.proccessAction = proccessAction;
this.actionTitle = actionTitle;
}
public override void ResolvePhase()
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Expected O, but got Unknown
((BattleAction)this).React(Reactor.op_Implicit((BattleAction)new WaitForCoroutineAction(ProcessManyCards())), (GameEntity)null, (ActionCause?)null);
CaputreActionResolverDepth.capDepth = 0;
}
public override string ExportDebugDetails()
{
StringBuilder pad = new StringBuilder(" ");
resolutionDepth = CaputreActionResolverDepth.capDepth + 2;
for (int i = 0; i < resolutionDepth; i++)
{
pad.Append(" ");
}
return actionTitle + ": \n" + string.Join("\n", cards.Select((Card c) => string.Concat(new string[2]
{
pad.ToString(),
CardColors.ColorName(c)
})));
}
private IEnumerator ProcessManyCards()
{
for (int i = 0; i < cards.Length; i += batchSize)
{
int upper = Math.Min(cards.Length, i + batchSize);
Card[] display = cards[i..upper];
proccessAction(display);
if (upper < cards.Length)
{
yield return (object)new WaitForSecondsRealtime(batchDelay + 0.2f * (float)batchSize);
}
}
yield return (object)new WaitForSecondsRealtime(finalDelay);
}
}
public class StackDrawToDiscard : EventBattleAction<GameEventArgs>
{
private static class Viewer
{
public static IEnumerator ViewMove(StackDrawToDiscard action, CardUi cardUi)
{
if (cardUi.DrawCount > 0)
{
AudioManager.PlayUi("CardReshuffle", false);
int count = Math.Min(cardUi.DrawCount, 10);
for (int i = 0; i < count; i++)
{
AudioManager.PlayUi("CardFly", false);
Transform parent = Object.Instantiate<Transform>(cardUi.cardFlyHelperPrefab, cardUi.cardEffectLayer);
parent.localPosition = ((Component)cardUi.discardButton).transform.localPosition;
CardFlyBrief clone = Object.Instantiate<CardFlyBrief>(cardUi.cardFlyBrief, parent);
Transform transform = ((Component)clone).transform;
TweenSettingsExtensions.OnComplete<TweenerCore<Vector3, Vector3, VectorOptions>>(TweenSettingsExtensions.SetEase<TweenerCore<Vector3, Vector3, VectorOptions>>(ShortcutExtensions.DOLocalMove(parent, ((Component)cardUi.discardButton).transform.localPosition, 0.5f, false), (Ease)2), (TweenCallback)delegate
{
clone.CloseCard();
Object.Destroy((Object)(object)((Component)parent).gameObject, 0.5f);
});
int num = Random.Range(100, 300);
TweenSettingsExtensions.SetLoops<TweenerCore<Vector3, Vector3, VectorOptions>>(TweenSettingsExtensions.SetRelative<TweenerCore<Vector3, Vector3, VectorOptions>>(TweenSettingsExtensions.SetEase<TweenerCore<Vector3, Vector3, VectorOptions>>(ShortcutExtensions.DOLocalMoveY(transform, (float)num, 0.25f, false), (Ease)3), true), 2, (LoopType)1);
yield return (object)new WaitForSecondsRealtime(0.05f);
}
yield return (object)new WaitForSecondsRealtime(0.3f);
cardUi.DrawCount = cardUi.Battle.DrawZone.Count;
cardUi.DiscardCount = cardUi.Battle.DiscardZone.Count;
cardUi.ExileCount = cardUi.Battle.ExileZone.Count;
}
cardUi.RefreshAll();
}
}
[HarmonyPatch(typeof(CardUi), "EnterBattle")]
private class CardUiEnterBattle_Patch
{
private static void Postfix(CardUi __instance)
{
BattleActionViewer<StackDrawToDiscard> val = CardUiExtensions.BAV_DelegateWrap<StackDrawToDiscard>((Func<StackDrawToDiscard, CardUi, IEnumerator>)Viewer.ViewMove, __instance);
__instance.Battle.ActionViewer.Register<StackDrawToDiscard>(val, (Predicate<StackDrawToDiscard>)null);
}
}
[HarmonyPatch(typeof(CardUi), "LeaveBattle")]
private class CardUiLeaveBattle_Patch
{
private static void Prefix(CardUi __instance)
{
BattleActionViewer<StackDrawToDiscard> val = CardUiExtensions.BAV_DelegateWrap<StackDrawToDiscard>((Func<StackDrawToDiscard, CardUi, IEnumerator>)Viewer.ViewMove, __instance);
__instance.Battle.ActionViewer.Unregister<StackDrawToDiscard>(val);
}
}
public override bool IsCanceled => false;
public StackDrawToDiscard()
{
//IL_0009: Unknown result type (might be due to invalid IL or missing references)
//IL_0013: Expected O, but got Unknown
base.Args = new GameEventArgs();
}
public void ResolvePhase()
{
foreach (Card item in ((BattleAction)this).Battle._drawZone)
{
item.Zone = (CardZone)3;
}
((BattleAction)this).Battle._discardZone.AddRange(((BattleAction)this).Battle._drawZone);
((BattleAction)this).Battle._drawZone.Clear();
}
public override IEnumerable<Phase> GetPhases()
{
yield return ((BattleAction)this).CreatePhase("Main", (Action)ResolvePhase, false);
yield return ((BattleAction)this).CreatePhase("Visual", (Action)delegate
{
}, true);
}
}
}
namespace VariantsC.Sakuya.C
{
public sealed class BatFormUltDef : UltimateSkillTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("BatFormUlt");
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.UltimateSkillBatchLoc.AddEntity((EntityDefinition)(object)this);
}
public override Sprite LoadSprite()
{
return ResourceLoader.LoadSprite("BatFormUlt.png", BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null);
}
public override UltimateSkillConfig MakeConfig()
{
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
//IL_003b: Expected O, but got Unknown
return new UltimateSkillConfig("", 10, 100, 100, 2, (UsRepeatableType)1, 0, 2, 2, (Keyword)0, (IReadOnlyList<string>)new List<string> { "BloodDrainSe" }, (IReadOnlyList<string>)new List<string> { "Knife" });
}
}
[EntityLogic(typeof(BatFormUltDef))]
public sealed class BatFormUlt : UltimateSkill
{
public BatFormUlt()
{
((UltimateSkill)this).TargetType = (TargetType)4;
}
protected override IEnumerable<BattleAction> Actions(UnitSelector selector)
{
yield return (BattleAction)(object)PerformAction.Spell((Unit)(object)((UltimateSkill)this).Owner, ((GameEntity)this).Id);
yield return (BattleAction)(object)PerformAction.Effect((Unit)(object)((UltimateSkill)this).Owner, "MoonR", 0f, "Wolf", 0f, (EffectBehavior)0, 0f);
yield return (BattleAction)(object)new ApplyStatusEffectAction<BloodDrainSe>((Unit)(object)((UltimateSkill)this).Owner, (int?)((UltimateSkill)this).Value1, (int?)1, (int?)null, (int?)null, 0f, true);
yield return (BattleAction)new AddCardsToHandAction((IEnumerable<Card>)Library.CreateCards<Knife>(((UltimateSkill)this).Value2, false), (AddCardsType)0);
}
}
public sealed class BloodDrainSeDef : StatusEffectTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("BloodDrainSe");
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.StatusEffectBatchLoc.AddEntity((EntityDefinition)(object)this);
}
public override Sprite LoadSprite()
{
return ResourcesHelper.TryGetSprite<StatusEffect>("Vampire");
}
public override StatusEffectConfig MakeConfig()
{
StatusEffectConfig val = ObjectExtensions.Copy<StatusEffectConfig>(StatusEffectConfig.FromId("Vampire"));
val.HasLevel = true;
val.LevelStackType = (StackType)0;
val.HasDuration = true;
val.DurationStackType = (StackType)3;
val.Keywords = (Keyword)0;
val.DurationDecreaseTiming = (DurationDecreaseTiming)3;
return val;
}
}
[EntityLogic(typeof(BloodDrainSeDef))]
public sealed class BloodDrainSe : StatusEffect
{
private Stack<GameEntity> dmgSources = new Stack<GameEntity>();
protected override void OnAdded(Unit unit)
{
((StatusEffect)this).ReactOwnerEvent<StatisticalDamageEventArgs>(((StatusEffect)this).Owner.StatisticalTotalDamageDealt, (EventSequencedReactor<StatisticalDamageEventArgs>)OnStatisticalDamageDealt);
((StatusEffect)this).HandleOwnerEvent<DamageEventArgs>(((StatusEffect)this).Owner.DamageDealt, (GameEventHandler<DamageEventArgs>)OnDamageDealt);
}
private bool CouldActivate(DamageInfo damageInfo)
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0008: Invalid comparison between Unknown and I4
return (int)((DamageInfo)(ref damageInfo)).DamageType == 2 && ((DamageInfo)(ref damageInfo)).Amount > 0f;
}
private void OnDamageDealt(DamageEventArgs args)
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0009: Invalid comparison between Unknown and I4
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
if ((int)((GameEventArgs)args).Cause != 20 && CouldActivate(args.DamageInfo) && dmgSources.Count < ((StatusEffect)this).Level && !dmgSources.Contains(((GameEventArgs)args).ActionSource))
{
dmgSources.Push(((GameEventArgs)args).ActionSource);
}
}
private IEnumerable<BattleAction> OnStatisticalDamageDealt(StatisticalDamageEventArgs args)
{
bool activated = false;
if (dmgSources.Count <= 0 || dmgSources.Peek() != ((GameEventArgs)args).ActionSource)
{
yield break;
}
foreach (KeyValuePair<Unit, IReadOnlyList<DamageEventArgs>> unitDmgs in args.ArgsTable)
{
int totalHeal = 0;
unitDmgs.Deconstruct(out var unit, out var damageEvents);
foreach (DamageEventArgs dmg in damageEvents)
{
if (CouldActivate(dmg.DamageInfo))
{
activated = true;
int num = totalHeal;
DamageInfo damageInfo = dmg.DamageInfo;
totalHeal = num + MathExtensions.ToInt(((DamageInfo)(ref damageInfo)).Damage);
}
}
if (totalHeal > 0)
{
<>n__0();
yield return (BattleAction)new HealAction(unit, ((StatusEffect)this).Owner, totalHeal, (HealType)1, 0f);
}
unit = null;
damageEvents = null;
}
if (activated)
{
int level = ((StatusEffect)this).Level;
((StatusEffect)this).Level = level - 1;
if (((StatusEffect)this).Level <= 0)
{
yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f);
}
}
dmgSources.Pop();
}
[CompilerGenerated]
[DebuggerHidden]
private void <>n__0()
{
((StatusEffect)this).NotifyActivating();
}
}
public sealed class BloodyRipperExDef : ExhibitTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("BloodyRipperEx");
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.ExhibitBatchLoc.AddEntity((EntityDefinition)(object)this);
}
public override ExhibitSprites LoadSprite()
{
//IL_0022: Unknown result type (might be due to invalid IL or missing references)
//IL_0028: Expected O, but got Unknown
return new ExhibitSprites(ResourceLoader.LoadSprite("BloodyRipperEx.png", BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null));
}
public override ExhibitConfig MakeConfig()
{
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0078: Expected O, but got Unknown
return new ExhibitConfig(0, "", 25, false, false, false, false, (AppearanceType)0, "Sakuya", (ExhibitLosableType)1, (Rarity)3, (int?)13, (int?)3, (int?)null, (ManaGroup?)null, (ManaColor?)null, (ManaColor?)(ManaColor)4, 1, true, (int?)null, (Keyword)0, (IReadOnlyList<string>)new List<string> { "BloodDrainSe" }, (IReadOnlyList<string>)new List<string> { "Knife" });
}
}
[EntityLogic(typeof(BloodyRipperExDef))]
public sealed class BloodyRipperEx : ShiningExhibit
{
private int TrackCounter
{
get
{
return ((Exhibit)this).Counter;
}
set
{
((Exhibit)this).Counter = Math.Max(0, value);
BloodyRipperSe bloodyRipperSe = default(BloodyRipperSe);
if (((Unit)((Exhibit)this).Owner).TryGetStatusEffect<BloodyRipperSe>(ref bloodyRipperSe))
{
((StatusEffect)bloodyRipperSe).Count = ((Exhibit)this).Counter;
}
}
}
public override void OnGain(PlayerUnit player)
{
((ShiningExhibit)this).OnGain(player);
((GameEntity)this).GameRun.GainMaxHp(((Exhibit)this).Value1, true, false);
}
public override void OnLose(PlayerUnit player)
{
((ShiningExhibit)this).OnLose(player);
((GameEntity)this).GameRun.LoseMaxHp(((Exhibit)this).Value1, true);
}
protected override void OnEnterBattle()
{
((Exhibit)this).ReactBattleEvent<CardUsingEventArgs>(((Exhibit)this).Battle.CardUsed, (EventSequencedReactor<CardUsingEventArgs>)OnCardUsed);
((Exhibit)this).HandleBattleEvent<UnitEventArgs>(((Unit)((Exhibit)this).Owner).TurnEnding, (GameEventHandler<UnitEventArgs>)delegate
{
TrackCounter--;
});
((Exhibit)this).HandleBattleEvent<GameEventArgs>(((Exhibit)this).Battle.BattleStarting, (GameEventHandler<GameEventArgs>)delegate
{
PlayerUnit owner = ((Exhibit)this).Owner;
int? num = ((Exhibit)this).Value2;
int? num2 = 0;
((GameEntity)this).React(Reactor.op_Implicit((BattleAction)(object)new ApplyStatusEffectAction<BloodyRipperSe>((Unit)(object)owner, num, (int?)null, num2, (int?)null, 0f, true)));
}, (GameEventPriority)(-50));
TrackCounter = 0;
}
protected override void OnLeaveBattle()
{
TrackCounter = 0;
}
private IEnumerable<BattleAction> OnCardUsed(CardUsingEventArgs args)
{
if (((Exhibit)this).Battle.BattleShouldEnd)
{
yield break;
}
if ((int)args.Card.CardType == 1)
{
TrackCounter++;
if (TrackCounter >= ((Exhibit)this).Value2)
{
((Exhibit)this).NotifyActivating();
BloodyRipperSe br = default(BloodyRipperSe);
if (((Unit)((Exhibit)this).Owner).TryGetStatusEffect<BloodyRipperSe>(ref br))
{
((StatusEffect)br).NotifyActivating();
}
yield return (BattleAction)(object)new ApplyStatusEffectAction<BloodDrainSe>((Unit)(object)((Exhibit)this).Owner, (int?)1, (int?)1, (int?)null, (int?)null, 0f, true);
TrackCounter = 0;
}
}
if (((GameEntity)args.Card).Id != "Knife")
{
int dmg = ((GameEntity)this).GameRun.BattleRng.NextInt(1, 3);
if (dmg >= ((Unit)((Exhibit)this).Owner).Hp)
{
dmg = ((Unit)((Exhibit)this).Owner).Hp - 1;
}
yield return (BattleAction)new DamageAction((Unit)(object)((Exhibit)this).Owner, (Unit)(object)((Exhibit)this).Owner, DamageInfo.HpLose((float)dmg, true), "Sacrifice", (GunType)0);
}
}
}
public sealed class BloodRipperSeDef : StatusEffectTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("BloodyRipperSe");
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.StatusEffectBatchLoc.AddEntity((EntityDefinition)(object)this);
}
public override Sprite LoadSprite()
{
return ResourceLoader.LoadSprite("BloodyRipperEx.png", BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null);
}
public override StatusEffectConfig MakeConfig()
{
StatusEffectConfig val = ((StatusEffectTemplate)this).DefaultConfig();
val.HasLevel = true;
val.Type = (StatusEffectType)2;
val.HasCount = true;
return val;
}
}
[EntityLogic(typeof(BloodRipperSeDef))]
public sealed class BloodyRipperSe : StatusEffect
{
}
public sealed class ChaoticBloodMagicCardDef : CardTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("ChaoticBloodMagicCard");
}
public override CardImages LoadCardImages()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Expected O, but got Unknown
CardImages val = new CardImages(BepinexPlugin.embeddedSource);
val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
return val;
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
}
public override CardConfig MakeConfig()
{
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_0050: Unknown result type (might be due to invalid IL or missing references)
//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
//IL_00d2: Unknown result type (might be due to invalid IL or missing references)
//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
//IL_019c: Unknown result type (might be due to invalid IL or missing references)
//IL_01a2: Expected O, but got Unknown
string[][] array = new string[0][];
TargetType? val = (TargetType)2;
List<ManaColor> obj = new List<ManaColor> { (ManaColor)4 };
ManaGroup val2 = default(ManaGroup);
((ManaGroup)(ref val2)).Any = 1;
((ManaGroup)(ref val2)).Red = 1;
ManaGroup val3 = val2;
int? num = 11;
int? num2 = 17;
val2 = default(ManaGroup);
((ManaGroup)(ref val2)).Red = 2;
ManaGroup? val4 = val2;
val2 = default(ManaGroup);
((ManaGroup)(ref val2)).Red = 1;
((ManaGroup)(ref val2)).Philosophy = 1;
return new CardConfig(0, "", 10, true, array, "RemiZhua", "RemiZhuaB", 0, false, true, true, false, true, (Rarity)0, (CardType)1, val, (IReadOnlyList<ManaColor>)obj, false, val3, (ManaGroup?)null, (int?)null, num, num2, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, val4, (ManaGroup?)val2, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)0, (Keyword)0, false, (Keyword)0, (Keyword)0, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), "Sakuya", "", "", false, "かわやばぐ", (IReadOnlyList<string>)new List<string>());
}
}
[EntityLogic(typeof(ChaoticBloodMagicCardDef))]
public sealed class ChaoticBloodMagicCard : Card
{
protected override void OnEnterBattle(BattleController battle)
{
((Card)this).ReactBattleEvent<DieEventArgs>(((Card)this).Battle.EnemyDied, (EventSequencedReactor<DieEventArgs>)OnEnemyDied);
}
private IEnumerable<BattleAction> OnEnemyDied(DieEventArgs args)
{
if (args.DieSource == this)
{
yield return (BattleAction)new GainManaAction(((Card)this).Mana);
}
}
}
public sealed class ConsequenceOfHickeysCardDef : CardTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("ConsequenceOfHickeysCard");
}
public override CardImages LoadCardImages()
{
//IL_0014: Unknown result type (might be due to invalid IL or missing references)
//IL_001a: Expected O, but got Unknown
return new CardImages(BepinexPlugin.embeddedSource, ResourceLoader.LoadTexture("ConsequencesOfHickeysCard.png", BepinexPlugin.embeddedSource));
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
}
public override CardConfig MakeConfig()
{
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_004a: Unknown result type (might be due to invalid IL or missing references)
//IL_0059: Unknown result type (might be due to invalid IL or missing references)
//IL_0189: Unknown result type (might be due to invalid IL or missing references)
//IL_018f: Expected O, but got Unknown
string[][] array = new string[0][];
TargetType? val = (TargetType)1;
List<ManaColor> obj = new List<ManaColor> { (ManaColor)4 };
ManaGroup val2 = default(ManaGroup);
((ManaGroup)(ref val2)).Red = 1;
ManaGroup val3 = val2;
val2 = default(ManaGroup);
((ManaGroup)(ref val2)).Any = 1;
return new CardConfig(0, "", 10, true, array, "Simple1", "Simple2", 0, false, true, true, false, true, (Rarity)0, (CardType)1, val, (IReadOnlyList<ManaColor>)obj, false, val3, (ManaGroup?)val2, (int?)null, (int?)3, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)2, (int?)1, (int?)2, (int?)3, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)0, (Keyword)0, false, (Keyword)0, (Keyword)0, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string> { "Knife" }, (IReadOnlyList<string>)new List<string> { "Knife" }, "Sakuya", "", "", false, "@kon_ypaaa", (IReadOnlyList<string>)new List<string>());
}
}
[EntityLogic(typeof(ConsequenceOfHickeysCardDef))]
public sealed class ConsequenceOfHickeysCard : Card
{
protected override IEnumerable<BattleAction> Actions(UnitSelector selector, ManaGroup consumingMana, Interaction precondition)
{
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
//IL_0017: Unknown result type (might be due to invalid IL or missing references)
yield return (BattleAction)(object)PerformAction.Gun((Unit)(object)((Card)this).Battle.Player, (Unit)(object)((Card)this).Battle.Player, "ESakuyaShoot2", 0f);
yield return ((Card)this).SacrificeAction(((Card)this).Value1);
yield return ((Card)this).AttackAction(selector, (GunPair)null);
yield return (BattleAction)new AddCardsToHandAction((IEnumerable<Card>)Library.CreateCards<Knife>(((Card)this).Value2, false), (AddCardsType)0);
}
}
}
namespace VariantsC.Sakuya.C.BunniesCorrection
{
public sealed class MoonTipsSpacesuitCardDef : CardTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("MoonTipsSpacesuitCard");
}
public override CardImages LoadCardImages()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Expected O, but got Unknown
CardImages val = new CardImages(BepinexPlugin.embeddedSource);
val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
return val;
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
}
public override CardConfig MakeConfig()
{
//IL_0030: Unknown result type (might be due to invalid IL or missing references)
//IL_0036: Unknown result type (might be due to invalid IL or missing references)
//IL_015a: Unknown result type (might be due to invalid IL or missing references)
//IL_0160: Expected O, but got Unknown
return new CardConfig(0, "", 10, true, new string[0][], "Simple1", "Simple1", 0, false, false, true, true, false, (Rarity)1, (CardType)6, (TargetType?)(TargetType)0, (IReadOnlyList<ManaColor>)new List<ManaColor>(), false, default(ManaGroup), (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)1, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)0, (Keyword)0, false, (Keyword)0, (Keyword)0, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (string)null, "", "", false, "DD/neo", (IReadOnlyList<string>)new List<string>());
}
}
[EntityLogic(typeof(MoonTipsSpacesuitCardDef))]
public sealed class MoonTipsSpacesuitCard : Card
{
}
public sealed class MoonTipsSpacesuitSeDef : StatusEffectTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("MoonTipsSpacesuitSe");
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.StatusEffectBatchLoc.AddEntity((EntityDefinition)(object)this);
}
public override Sprite LoadSprite()
{
return ResourcesHelper.TryGetSprite<Exhibit>("Yuhangfu");
}
public override StatusEffectConfig MakeConfig()
{
//IL_0048: Unknown result type (might be due to invalid IL or missing references)
//IL_004e: Expected O, but got Unknown
return new StatusEffectConfig(0, "", 10, (StatusEffectType)0, false, true, (int?)null, false, (StackType?)(StackType)0, false, (StackType?)(StackType)0, (DurationDecreaseTiming)0, false, (StackType?)(StackType)3, (StackType?)(StackType)3, false, (Keyword)0, (IReadOnlyList<string>)new List<string>(), "Default", "Default", "Default");
}
}
[EntityLogic(typeof(MoonTipsSpacesuitSeDef))]
public sealed class MoonTipsSpacesuitSe : StatusEffect
{
protected override void OnAdded(Unit unit)
{
((StatusEffect)this).HandleOwnerEvent<DamageEventArgs>(((StatusEffect)this).Owner.DamageTaking, (GameEventHandler<DamageEventArgs>)OnPlayerDamageTaking);
}
private void OnPlayerDamageTaking(DamageEventArgs args)
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_0025: Unknown result type (might be due to invalid IL or missing references)
//IL_002a: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Unknown result type (might be due to invalid IL or missing references)
DamageInfo damageInfo = args.DamageInfo;
if (MathExtensions.RoundToInt(((DamageInfo)(ref damageInfo)).Damage) > 0)
{
((StatusEffect)this).NotifyActivating();
damageInfo = args.DamageInfo;
args.DamageInfo = ((DamageInfo)(ref damageInfo)).ReduceActualDamageBy(1);
((GameEventArgs)args).AddModifier((GameEntity)(object)this);
}
}
}
[HarmonyPatch]
internal class MoonTipsBag_Patch
{
private static IEnumerable<MethodBase> TargetMethods()
{
yield return ExtraAccess.InnerMoveNext(typeof(MoonTipsBag), "Actions");
}
public static bool DoPatch()
{
GameMaster instance = Singleton<GameMaster>.Instance;
bool? obj;
if (instance == null)
{
obj = null;
}
else
{
GameRunController currentGameRun = instance.CurrentGameRun;
if (currentGameRun == null)
{
obj = null;
}
else
{
PlayerUnit player = currentGameRun.Player;
obj = ((player != null) ? new bool?(player.HasExhibit<BloodyRipperEx>()) : null);
}
}
bool? flag = obj;
return flag.GetValueOrDefault();
}
private static void CreateNewOption(List<Card> list)
{
if (DoPatch())
{
list.Add((Card)(object)Library.CreateCard<MoonTipsSpacesuitCard>());
}
}
private static bool CheckOption(Card card, MoonTipsBag moonTipsBag)
{
if (card is MoonTipsSpacesuitCard)
{
((Card)moonTipsBag).Battle.RequestDebugAction(((Card)moonTipsBag).BuffAction<MoonTipsSpacesuitSe>(0, 0, 0, 0, 0.2f), "Special Moon Tip");
return true;
}
return false;
}
private static IEnumerable<CodeInstruction> Transpiler(MethodBase original, IEnumerable<CodeInstruction> instructions, ILGenerator generator)
{
//IL_0003: Unknown result type (might be due to invalid IL or missing references)
//IL_0073: Unknown result type (might be due to invalid IL or missing references)
//IL_007d: Expected O, but got Unknown
//IL_0097: Unknown result type (might be due to invalid IL or missing references)
//IL_009d: Expected O, but got Unknown
//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
//IL_00cb: Expected O, but got Unknown
//IL_00f2: Unknown result type (might be due to invalid IL or missing references)
//IL_00fc: Expected O, but got Unknown
//IL_0116: Unknown result type (might be due to invalid IL or missing references)
//IL_011c: Expected O, but got Unknown
//IL_012f: Unknown result type (might be due to invalid IL or missing references)
//IL_0135: Expected O, but got Unknown
//IL_015d: Unknown result type (might be due to invalid IL or missing references)
//IL_0163: Expected O, but got Unknown
//IL_017b: Unknown result type (might be due to invalid IL or missing references)
//IL_0181: Expected O, but got Unknown
Label label = default(Label);
return new CodeMatcher(instructions, generator).End().MatchBack(false, (CodeMatch[])(object)new CodeMatch[1] { CodeMatch.op_Implicit(OpCodes.Ldarg_0) }).CreateLabel(ref label)
.Start()
.MatchForward(true, (CodeMatch[])(object)new CodeMatch[1] { CodeMatch.op_Implicit(new CodeInstruction(OpCodes.Call, (object)AccessTools.Method(typeof(Library), "CreateCard", new Type[0], (Type[])null).MakeGenericMethod(typeof(MoonTipsHeal)))) })
.Advance(2)
.InsertAndAdvance((CodeInstruction[])(object)new CodeInstruction[1]
{
new CodeInstruction(OpCodes.Dup, (object)null)
})
.InsertAndAdvance((CodeInstruction[])(object)new CodeInstruction[1]
{
new CodeInstruction(OpCodes.Call, (object)AccessTools.Method(typeof(MoonTipsBag_Patch), "CreateNewOption", (Type[])null, (Type[])null))
})
.MatchForward(false, (CodeMatch[])(object)new CodeMatch[1] { CodeMatch.op_Implicit(new CodeInstruction(OpCodes.Callvirt, (object)AccessTools.PropertyGetter(typeof(MiniSelectCardInteraction), "SelectedCard"))) })
.Advance(2)
.InsertAndAdvance((CodeInstruction[])(object)new CodeInstruction[1]
{
new CodeInstruction(OpCodes.Ldloc_3, (object)null)
})
.InsertAndAdvance((CodeInstruction[])(object)new CodeInstruction[1]
{
new CodeInstruction(OpCodes.Ldloc_1, (object)null)
})
.InsertAndAdvance((CodeInstruction[])(object)new CodeInstruction[1]
{
new CodeInstruction(OpCodes.Call, (object)AccessTools.Method(typeof(MoonTipsBag_Patch), "CheckOption", (Type[])null, (Type[])null))
})
.InsertAndAdvance((CodeInstruction[])(object)new CodeInstruction[1]
{
new CodeInstruction(OpCodes.Brtrue, (object)label)
})
.InstructionEnumeration();
}
}
}
namespace VariantsC.Rng
{
public class PerRngs
{
[YamlIgnore]
private static ConditionalWeakTable<GameRunController, PerRngs> table = new ConditionalWeakTable<GameRunController, PerRngs>();
public RandomGen everHoardingRng;
public RandomGen springCleaningRng;
public static PerRngs Get(GameRunController gr)
{
return table.GetOrCreateValue(gr);
}
public static void Assign(GameRunController gr, PerRngs persistentRngs)
{
table.AddOrUpdate(gr, persistentRngs);
}
public void InitRngs(RandomGen rng)
{
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_000d: Expected O, but got Unknown
//IL_0014: Unknown result type (might be due to invalid IL or missing references)
//IL_001e: Expected O, but got Unknown
//IL_0025: Unknown result type (might be due to invalid IL or missing references)
//IL_002f: Expected O, but got Unknown
RandomGen val = new RandomGen(rng.NextULong());
everHoardingRng = new RandomGen(val.NextULong());
springCleaningRng = new RandomGen(val.NextULong());
}
}
[HarmonyPatch]
[HarmonyPriority(200)]
internal class Gr_cctor_Patch
{
private static IEnumerable<MethodBase> TargetMethods()
{
yield return AccessTools.Constructor(typeof(GameRunController), new Type[1] { typeof(GameRunStartupParameters) }, false);
}
private static void Postfix(GameRunController __instance)
{
PerRngs.Get(__instance).InitRngs(__instance.RootRng);
}
}
public class SaveContainer : CustomGameRunSaveData
{
public PerRngs persistentRngs;
public override void Restore(GameRunController gameRun)
{
PerRngs.Assign(gameRun, persistentRngs);
}
public override void Save(GameRunController gameRun)
{
persistentRngs = PerRngs.Get(gameRun);
}
public override IEnumerable<IYamlTypeConverter> TypeConverters()
{
yield return (IYamlTypeConverter)new RandomGenTypeConverter();
}
}
}
namespace VariantsC.Reimu.C
{
public sealed class ChocolateCoinExDef : ExhibitTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("ChocolateCoinEx");
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.ExhibitBatchLoc.AddEntity((EntityDefinition)(object)this);
}
public override ExhibitSprites LoadSprite()
{
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
//IL_0029: Expected O, but got Unknown
return new ExhibitSprites(ResourceLoader.LoadSprite("ChocolateCoinEx.png", BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null));
}
public override ExhibitConfig MakeConfig()
{
//IL_0060: Unknown result type (might be due to invalid IL or missing references)
//IL_0066: Expected O, but got Unknown
return new ExhibitConfig(0, "", -5, false, false, false, false, (AppearanceType)0, "Reimu", (ExhibitLosableType)1, (Rarity)3, (int?)4, (int?)null, (int?)null, (ManaGroup?)null, (ManaColor?)null, (ManaColor?)(ManaColor)6, 1, true, (int?)null, (Keyword)65538, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>());
}
}
[EntityLogic(typeof(ChocolateCoinExDef))]
public sealed class ChocolateCoinEx : ShiningExhibit
{
protected override void OnEnterBattle()
{
((Exhibit)this).ReactBattleEvent<UnitEventArgs>(((Unit)((Exhibit)this).Battle.Player).TurnStarting, (EventSequencedReactor<UnitEventArgs>)OnTurnStarting);
((Exhibit)this).Counter = ((Exhibit)this).Value1;
}
protected override void OnLeaveBattle()
{
((Exhibit)this).Counter = 0;
}
private IEnumerable<BattleAction> OnTurnStarting(UnitEventArgs args)
{
if (((Exhibit)this).Counter <= 0)
{
yield break;
}
IEnumerable<Card> basics = ((Exhibit)this).Battle.DrawZone.Where((Card c) => c.IsBasic);
if (basics.Count() == 0)
{
basics = ((Exhibit)this).Battle.DiscardZone.Where((Card c) => c.IsBasic);
}
if (basics.Count() == 0)
{
basics = ((Exhibit)this).Battle.HandZone.Where((Card c) => c.IsBasic);
}
if (basics.Count() > 0)
{
((Exhibit)this).NotifyActivating();
yield return (BattleAction)new ExileCardAction(CollectionsExtensions.Sample<Card>(basics, ((GameEntity)this).GameRun.BattleRng));
}
int counter = ((Exhibit)this).Counter;
((Exhibit)this).Counter = counter - 1;
}
}
public sealed class JabReimuCUltDef : UltimateSkillTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("JabReimuCUlt");
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.UltimateSkillBatchLoc.AddEntity((EntityDefinition)(object)this);
}
public override Sprite LoadSprite()
{
return ResourceLoader.LoadSprite("reimu_fist.png", BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null);
}
public override UltimateSkillConfig MakeConfig()
{
//IL_001e: Unknown result type (might be due to invalid IL or missing references)
//IL_0024: Expected O, but got Unknown
return new UltimateSkillConfig("", 10, 45, 45, 5, (UsRepeatableType)0, 13, 0, 0, (Keyword)0, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>());
}
}
[EntityLogic(typeof(JabReimuCUltDef))]
public sealed class JabReimuCUlt : UltimateSkill
{
public override DamageInfo Damage => DamageInfo.Attack((float)((UltimateSkill)this).Config.Damage, false);
public JabReimuCUlt()
{
((UltimateSkill)this).TargetType = (TargetType)1;
((UltimateSkill)this).GunName = "博丽一拳";
}
protected override IEnumerable<BattleAction> Actions(UnitSelector selector)
{
yield return (BattleAction)new DamageAction((Unit)(object)((UltimateSkill)this).Owner, (Unit)(object)selector.GetEnemy(((UltimateSkill)this).Battle), ((UltimateSkill)this).Damage, ((UltimateSkill)this).GunName, (GunType)0);
}
}
public sealed class RollingPebbleCardDef : CardTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("RollingPebbleCard");
}
public override CardImages LoadCardImages()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Expected O, but got Unknown
CardImages val = new CardImages(BepinexPlugin.embeddedSource);
val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
return val;
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
}
public override CardConfig MakeConfig()
{
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_0180: Unknown result type (might be due to invalid IL or missing references)
//IL_0186: Expected O, but got Unknown
string[][] array = new string[0][];
TargetType? val = (TargetType)1;
List<ManaColor> obj = new List<ManaColor> { (ManaColor)6 };
ManaGroup val2 = default(ManaGroup);
((ManaGroup)(ref val2)).Any = 1;
return new CardConfig(0, "", 10, true, array, "ENitoriShoot1", "", 0, false, true, true, false, true, (Rarity)0, (CardType)1, val, (IReadOnlyList<ManaColor>)obj, false, val2, (ManaGroup?)null, (int?)null, (int?)6, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)5, (int?)null, (int?)null, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)2147483648u, (Keyword)2147483904u, false, (Keyword)0, (Keyword)0, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), "Koishi", "", "", false, "わらび餅", (IReadOnlyList<string>)new List<string> { "minato_hitori" });
}
}
[EntityLogic(typeof(RollingPebbleCardDef))]
public sealed class RollingPebbleCard : Card
{
private int extraDmg = 0;
public override DamageInfo Damage => CalcDmg();
protected override void OnLeaveBattle()
{
extraDmg = 0;
}
private DamageInfo CalcDmg()
{
//IL_0014: Unknown result type (might be due to invalid IL or missing references)
return DamageInfo.Attack((float)(((Card)this).RawDamage + extraDmg), ((Card)this).IsAccuracy);
}
protected override IEnumerable<BattleAction> Actions(UnitSelector selector, ManaGroup consumingMana, Interaction precondition)
{
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
//IL_0017: Unknown result type (might be due to invalid IL or missing references)
if (((Card)this).IsUpgraded)
{
extraDmg += ((Card)this).Value1 * ((Card)this).SynergyAmount(consumingMana, (ManaColor)0, 1);
}
string gun = ((Card)this).GunName;
DamageInfo damage = ((Card)this).Damage;
if (((DamageInfo)(ref damage)).Amount >= 30f)
{
gun = "ENitoriShoot2";
}
yield return ((Card)this).AttackAction((IEnumerable<Unit>)selector.GetUnits(((Card)this).Battle), gun, CalcDmg());
if (!((Card)this).IsUpgraded)
{
extraDmg += ((Card)this).Value1 * ((Card)this).SynergyAmount(consumingMana, (ManaColor)0, 1);
}
}
}
}
namespace VariantsC.Marisa.C
{
[OverwriteVanilla]
public sealed class AntiStallOrbDef : EnemyUnitTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("YinyangyuBlue");
}
[DontOverwrite]
public override LocalizationOption LoadLocalization()
{
throw new NotImplementedException();
}
[DontOverwrite]
public override EnemyUnitConfig MakeConfig()
{
throw new NotImplementedException();
}
}
[EntityLogic(typeof(AntiStallOrbDef))]
public sealed class YinyangyuBlue : YinyangyuBlueOrigin
{
private enum ExplodeSequence
{
Dont,
Charge,
Explode
}
private ExplodeSequence explodeSequence = ExplodeSequence.Dont;
public override void OnEnterBattle(BattleController battle)
{
((Unit)this).HandleBattleEvent<DamageEventArgs>(((Unit)this).DamageReceived, (GameEventHandler<DamageEventArgs>)delegate
{
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
Intention? obj = ((IEnumerable<Intention>)((EnemyUnit)this).Intentions).FirstOrDefault((Func<Intention, bool>)((Intention i) => i is ExplodeIntention));
ExplodeIntention val = (ExplodeIntention)(object)((obj is ExplodeIntention) ? obj : null);
if (val != null)
{
val.Damage = DamageInfo.Attack((float)((Unit)this).Shield, false);
((EnemyUnit)this).NotifyIntentionsChanged();
}
});
((YinyangyuBlueOrigin)this).OnEnterBattle(battle);
}
public override void UpdateMoveCounters()
{
Spirit val = default(Spirit);
if (explodeSequence == ExplodeSequence.Charge)
{
explodeSequence = ExplodeSequence.Explode;
}
else if (((GameEntity)this).GameRun.Player.HasExhibit<PachyBagEx>() && ((Unit)this).TryGetStatusEffect<Spirit>(ref val) && ((StatusEffect)val).Level >= 16 && ((Unit)this).Battle.AllAliveEnemies.All((EnemyUnit e) => e is YinyangyuBlueOrigin))
{
explodeSequence = ExplodeSequence.Charge;
}
else
{
((YinyangyuBlueOrigin)this).UpdateMoveCounters();
}
}
public override IEnumerable<IEnemyMove> GetTurnMoves()
{
switch (explodeSequence)
{
case ExplodeSequence.Charge:
yield return (IEnemyMove)new SimpleEnemyMove(Intention.Unknown(), (BattleAction)new EnemyMoveAction((EnemyUnit)(object)this, ((EnemyUnit)this).GetMove(0), true));
yield break;
case ExplodeSequence.Explode:
yield return (IEnemyMove)new SimpleEnemyMove(Intention.Explode(((Unit)this).Shield), ExplodeAction());
yield break;
}
foreach (IEnemyMove item in <>n__0())
{
yield return item;
}
}
private IEnumerable<BattleAction> ExplodeAction()
{
yield return (BattleAction)new ExplodeAction((EnemyUnit)(object)this, (Unit)(object)((Unit)this).Battle.Player, DamageInfo.Attack((float)((Unit)this).Shield, false), (DieCause)4, (GameEntity)(object)this, "GuihuoExplodeB2", (GunType)0);
}
[CompilerGenerated]
[DebuggerHidden]
private IEnumerable<IEnemyMove> <>n__0()
{
return ((YinyangyuBlueOrigin)this).GetTurnMoves();
}
}
public sealed class EverHoardingCardDef : CardTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("EverHoardingCard");
}
public override CardImages LoadCardImages()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Expected O, but got Unknown
CardImages val = new CardImages(BepinexPlugin.embeddedSource);
val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
return val;
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
}
public override CardConfig MakeConfig()
{
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_004a: Unknown result type (might be due to invalid IL or missing references)
//IL_0062: Unknown result type (might be due to invalid IL or missing references)
//IL_00c7: Unknown result type (might be due to invalid IL or missing references)
//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
//IL_019a: Unknown result type (might be due to invalid IL or missing references)
//IL_01a1: Expected O, but got Unknown
string[][] array = new string[0][];
TargetType? val = (TargetType)0;
List<ManaColor> obj = new List<ManaColor> { (ManaColor)5 };
ManaGroup val2 = default(ManaGroup);
((ManaGroup)(ref val2)).Green = 1;
ManaGroup val3 = val2;
val2 = default(ManaGroup);
((ManaGroup)(ref val2)).Green = 1;
((ManaGroup)(ref val2)).Any = 2;
ManaGroup? val4 = val2;
int? num = 3;
int? num2 = 2;
val2 = default(ManaGroup);
((ManaGroup)(ref val2)).Any = 1;
return new CardConfig(0, "", 10, true, array, "", "", 0, false, true, false, false, true, (Rarity)2, (CardType)4, val, (IReadOnlyList<ManaColor>)obj, false, val3, val4, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, num, num2, (int?)null, (int?)null, (ManaGroup?)val2, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)2097152, (Keyword)3145728, false, (Keyword)0, (Keyword)0, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), "Marisa", "", "", false, "porokin", (IReadOnlyList<string>)new List<string>());
}
}
[EntityLogic(typeof(EverHoardingCardDef))]
public sealed class EverHoardingCard : Card
{
[HarmonyPatch(typeof(Card), "Verify")]
private class DoNotVerify_Patch
{
private static bool Prefix(Card __instance)
{
if (__instance is EverHoardingCard)
{
return false;
}
return true;
}
}
private int _cardCounter = 0;
public readonly float rareWMult = 1.15f;
public readonly float uncommonWMult = 0.95f;
public int CardCounter
{
get
{
return _cardCounter;
}
set
{
_cardCounter = value % (((Card)this).Value1 + 1);
}
}
public string CardCounterWrap => (((Card)this).Battle == null) ? "" : $"{{<color=#B2FFFF>{CardCounter}</color>}} ";
public string JustName => ((Card)this).LocalizeProperty("JustName", false, true);
public string JustNameBlue => StringDecorator.GetEntityName(JustName);
public override string Name => RuntimeFormatterExtensions.RuntimeFormat(((GameEntity)this).Name, ((GameEntity)this).FormatWrapper);
public int MaxGen => 13;
public int GenAmount
{
get
{
//IL_0003: 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)
ManaGroup cost = ((Card)this).Cost;
return _GenAmount(((ManaGroup)(ref cost)).Amount);
}
}
public string CommonColor => CardColors.common;
public string CommonChance
{
get
{
//IL_0004: Unknown result type (might be due to invalid IL or missing references)
//IL_0009: Unknown result type (might be due to invalid IL or missing references)
ManaGroup cost = ((Card)this).Cost;
RarityWeightTable dynamicRarityTable = GetDynamicRarityTable(GetRarityX(((ManaGroup)(ref cost)).Amount));
return $"{dynamicRarityTable.Common:F2}";
}
}
public string UncommonColor => CardColors.uncommon;
public string UncommonChance
{
get
{
//IL_0004: Unknown result type (might be due to invalid IL or missing references)
//IL_0009: Unknown result type (might be due to invalid IL or missing references)
ManaGroup cost = ((Card)this).Cost;
RarityWeightTable dynamicRarityTable = GetDynamicRarityTable(GetRarityX(((ManaGroup)(ref cost)).Amount));
return $"{dynamicRarityTable.Uncommon:F2}";
}
}
public string RareColor => CardColors.rare;
public string RareChance
{
get
{
//IL_0004: Unknown result type (might be due to invalid IL or missing references)
//IL_0009: Unknown result type (might be due to invalid IL or missing references)
ManaGroup cost = ((Card)this).Cost;
RarityWeightTable dynamicRarityTable = GetDynamicRarityTable(GetRarityX(((ManaGroup)(ref cost)).Amount));
return $"{dynamicRarityTable.Rare:F2}";
}
}
public override void Initialize()
{
((Card)this).Initialize();
CardCounter = ((Card)this).Value1;
}
protected override void OnEnterBattle(BattleController battle)
{
CardCounter = ((Card)this).Value1;
((Card)this).HandleBattleEvent<CardUsingEventArgs>(((Card)this).Battle.CardUsed, (GameEventHandler<CardUsingEventArgs>)delegate
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0008: Invalid comparison between Unknown and I4
//IL_003a: Unknown result type (might be due to invalid IL or missing references)
if ((int)((Card)this).Zone == 2)
{
CardCounter--;
((GameEntity)this).NotifyChanged();
if (CardCounter <= 0)
{
((Card)this).IncreaseBaseCost(((Card)this).Mana);
CardCounter = ((Card)this).Value1;
((Card)this).NotifyActivating();
}
}
}, (GameEventPriority)0);
}
public override void Upgrade()
{
((Card)this).Upgrade();
if (((Card)this).Battle == null)
{
CardCounter = ((Card)this).Value1;
}
((GameEntity)this).NotifyChanged();
}
protected override IReadOnlyList<string> LocalizeListProperty(string key, bool required = true)
{
return ((Card)this).LocalizeListProperty(key, required);
}
private RarityWeightTable GetDynamicRarityTable(int amount)
{
//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
//IL_00b1: Expected O, but got Unknown
double num = 1.0;
double num2 = Math.Clamp(num * (1.0 / (1.0 + Math.Exp(-0.3 * (double)(amount - 11)))), 0.0, 0.699999988079071);
num -= num2;
double num3 = Math.Clamp(num * (double)((float)amount / 9f) * 0.8999999761581421, 0.0, num);
num -= num3;
double num4 = Math.Clamp(num, 0.0, 1.0);
return new RarityWeightTable(MathExtensions.ToFloat(num4), MathExtensions.ToFloat(num3), MathExtensions.ToFloat(num2), 0f);
}
private int GetRarityX(int x)
{
return x - 1;
}
public int _GenAmount(int x)
{
return Math.Clamp(x - 1, 0, MaxGen);
}
protected override IEnumerable<BattleAction> Actions(UnitSelector selector, ManaGroup consumingMana, Interaction precondition)
{
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
//IL_0017: Unknown result type (might be due to invalid IL or missing references)
int genAmount = _GenAmount(((ManaGroup)(ref consumingMana)).Amount);
if (genAmount > 0)
{
CardWeightTable cardWTable = new CardWeightTable(GetDynamicRarityTable(GetRarityX(((ManaGroup)(ref consumingMana)).Amount)), OwnerWeightTable.Hierarchy, CardTypeWeightTable.CanBeLoot, false);
Card[] cards2 = ((GameEntity)this).GameRun.RollCards(PerRngs.Get(((GameEntity)this).GameRun).everHoardingRng, cardWTable, genAmount, false, true, (Predicate<CardConfig>)null);
yield return (BattleAction)(object)new ProcessDeckCardsAction(cards2, delegate(IEnumerable<Card> cards)
{
((GameEntity)this).GameRun.AddDeckCards(cards, true, (VisualSourceData)null);
}, "Gained")
{
batchSize = 7,
batchDelay = 0.35f,
finalDelay = 0f
};
}
}
}
public abstract class NodeData
{
public abstract string Key { get; }
}
public class CardData : NodeData
{
public List<Card> cards = new List<Card>();
public override string Key => "CardData";
}
public sealed class PachyBagExDef : ExhibitTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("PachyBagEx");
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.ExhibitBatchLoc.AddEntity((EntityDefinition)(object)this);
}
public override ExhibitSprites LoadSprite()
{
//IL_0022: Unknown result type (might be due to invalid IL or missing references)
//IL_0028: Expected O, but got Unknown
return new ExhibitSprites(ResourceLoader.LoadSprite("PachyBagEx.png", BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null));
}
public override ExhibitConfig MakeConfig()
{
//IL_005a: Unknown result type (might be due to invalid IL or missing references)
//IL_0060: Expected O, but got Unknown
return new ExhibitConfig(0, "", 10, false, false, false, false, (AppearanceType)0, "Marisa", (ExhibitLosableType)2, (Rarity)3, (int?)30, (int?)2, (int?)null, (ManaGroup?)null, (ManaColor?)null, (ManaColor?)(ManaColor)5, 1, true, (int?)null, (Keyword)0, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>());
}
}
[EntityLogic(typeof(PachyBagExDef))]
public sealed class PachyBagEx : ShiningExhibit
{
public int ExtraMana => ((GameEntity)this).GameRun.BaseDeck.Count / ((Exhibit)this).Value1;
protected override void OnAdded(PlayerUnit player)
{
((Exhibit)this).HandleGameRunEvent<CardsEventArgs>(((GameEntity)this).GameRun.DeckCardsAdded, (GameEventHandler<CardsEventArgs>)UpdateCounter);
((Exhibit)this).HandleGameRunEvent<CardsEventArgs>(((GameEntity)this).GameRun.DeckCardsRemoved, (GameEventHandler<CardsEventArgs>)UpdateCounter);
((Exhibit)this).HandleGameRunEvent<StationEventArgs>(((GameEntity)this).GameRun.StationRewardGenerating, (GameEventHandler<StationEventArgs>)delegate(StationEventArgs args)
{
//IL_0009: Unknown result type (might be due to invalid IL or missing references)
//IL_000f: Invalid comparison between Unknown and I4
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: Invalid comparison between Unknown and I4
//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
//IL_0105: Expected O, but got Unknown
Station station = args.Station;
if ((int)station.Type == 1)
{
((Exhibit)this).NotifyActivating();
station.Rewards.Add(station.Stage.GetEnemyCardReward());
}
else
{
if ((int)station.Type != 2)
{
AdventureStation val = (AdventureStation)(object)((station is AdventureStation) ? station : null);
if (val == null || !(val.Adventure is YachieOppression))
{
goto IL_0082;
}
}
((Exhibit)this).NotifyActivating();
station.Rewards.Add(station.Stage.GetEliteEnemyCardReward());
}
goto IL_0082;
IL_0082:
foreach (StationReward item in station.Rewards.FindAll(delegate(StationReward re)
{
List<Card> cards = re.Cards;
return cards != null && cards.Count >= 2;
}))
{
int count = item.Cards.Count;
List<int> list = Enumerable.Range(0, Math.Max(10, count)).ToList();
RandomGen val2 = new RandomGen(((GameEntity)this).GameRun.GameRunEventRng.NextULong());
CollectionsExtensions.Shuffle<int>((IList<int>)list, val2);
HashSet<Card> toRemove = new HashSet<Card>();
int num = ((count - ((Exhibit)this).Value2 < 1) ? 1 : ((Exhibit)this).Value2);
foreach (int item2 in list)
{
if (item2 < count)
{
toRemove.Add(item.Cards[item2]);
if (toRemove.Count >= num)
{
break;
}
}
}
item.Cards.RemoveAll((Card c) => toRemove.Contains(c));
}
}, (GameEventPriority)99);
}
private void UpdateCounter(CardsEventArgs args)
{
int counter = ((Exhibit)this).Counter;
((Exhibit)this).Counter = ExtraMana;
if (((Exhibit)this).Counter != counter)
{
((Exhibit)this).NotifyActivating();
}
}
protected override void OnEnterBattle()
{
((Exhibit)this).ReactBattleEvent<UnitEventArgs>(((Unit)((Exhibit)this).Owner).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnStarted);
((Exhibit)this).HandleBattleEvent<GameEventArgs>(((Exhibit)this).Battle.BattleStarting, (GameEventHandler<GameEventArgs>)OnBattleStarting, (GameEventPriority)(-99));
}
private void OnBattleStarting(GameEventArgs args)
{
//IL_004c: Unknown result type (might be due to invalid IL or missing references)
//IL_0056: Expected O, but got Unknown
int num = (((Exhibit)this).Battle.DrawZone.Count - 1) / 2 + 1;
Card[] subArray = ((Exhibit)this).Battle.DrawZone.ToArray()[..(num + 1)];
CollectionsExtensions.Shuffle<Card>((IList<Card>)subArray, new RandomGen(((GameEntity)this).GameRun.BattleCardRng.NextULong()));
((Exhibit)this).Battle._drawZone.RemoveRange(0, subArray.Length);
List<Card> collection = ((Exhibit)this).Battle.DrawZone.ToList();
((Exhibit)this).Battle._drawZone.Clear();
((Exhibit)this).Battle._drawZone.AddRange(subArray);
((Exhibit)this).Battle._drawZone.AddRange(collection);
}
private IEnumerable<BattleAction> OnOwnerTurnStarted(UnitEventArgs args)
{
for (int i = 0; i < ExtraMana; i++)
{
((Exhibit)this).NotifyActivating();
ManaGroup manaGroup = ManaGroup.Single(CollectionsExtensions.Sample<ManaColor>((IEnumerable<ManaColor>)ManaColors.Colors, ((GameEntity)this).GameRun.BattleRng));
yield return (BattleAction)new GainManaAction(manaGroup);
}
}
}
public abstract class RootRandomStartersDef : CardTemplate
{
public override CardImages LoadCardImages()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Expected O, but got Unknown
CardImages val = new CardImages(BepinexPlugin.embeddedSource);
val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
return val;
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
}
public override CardConfig MakeConfig()
{
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
//IL_0177: Unknown result type (might be due to invalid IL or missing references)
//IL_017d: Expected O, but got Unknown
string[][] array = new string[0][];
TargetType? val = (TargetType)0;
List<ManaColor> obj = new List<ManaColor> { (ManaColor)6 };
ManaGroup val2 = default(ManaGroup);
((ManaGroup)(ref val2)).Colorless = 1;
ManaGroup val3 = val2;
val2 = default(ManaGroup);
return new CardConfig(0, "", 10, true, array, "", "", 0, false, false, false, true, false, (Rarity)0, (CardType)3, val, (IReadOnlyList<ManaColor>)obj, false, val3, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (ManaGroup?)val2, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)2, (Keyword)2, false, (Keyword)0, (Keyword)0, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), "Marisa", "", "", false, "", (IReadOnlyList<string>)new List<string>());
}
}
public class RootRandomStarter : Card
{
public static RandomGen transformRng;
public virtual RandomPoolEntry<Type[]>[] PotentialCardTypes { get; }
public string ListCards => string.Join(";\n", from rp in PotentialCards()
select string.Join(", ", rp.Elem.Select((Card c) => UiUtils.WrapByColor(((GameEntity)c).Name, GlobalConfig.DefaultKeywordColor)))) + ";";
public string AddTimesWrap => (AddTimes <= 1) ? "" : $" <b>{{X{AddTimes}}}</b>";
public virtual int AddTimes => 1;
public string JustName => ((Card)this).LocalizeProperty("JustName", false, true);
public string JustNameBlue => StringDecorator.GetEntityName(JustName);
public override string Name => RuntimeFormatterExtensions.RuntimeFormat(((GameEntity)this).Name, ((GameEntity)this).FormatWrapper);
public override void Initialize()
{
((Card)this).Initialize();
((Card)this).Config.RelativeCards = new List<string>((from t in PotentialCardTypes.SelectMany((RandomPoolEntry<Type[]> rp) => rp.Elem)
select t.Name).Distinct());
}
public IEnumerable<RandomPoolEntry<List<Card>>> PotentialCards(GameRunController gr = null)
{
return PotentialCardTypes.Select(delegate(RandomPoolEntry<Type[]> rp)
{
List<Card> list = new List<Card>();
Type[] elem = rp.Elem;
foreach (Type type in elem)
{
Card val = Library.CreateCard(type);
((GameEntity)val).GameRun = gr;
list.Add(val);
}
return new RandomPoolEntry<List<Card>>(list, rp.Weight);
});
}
protected override string LocalizeProperty(string key, bool decorated = false, bool required = true)
{
if (key == "Description")
{
return TypeFactory<Card>.LocalizeProperty("FakePackForCommonLoc", key, decorated, required);
}
if (key == "Name")
{
return TypeFactory<Card>.LocalizeProperty("FakePackForCommonLoc", "Name", decorated, required);
}
return ((Card)this).LocalizeProperty(key, decorated, required);
}
public void OnGrStarted(GameRunController gr)
{
//IL_0021: Unknown result type (might be due to invalid IL or missing references)
//IL_002b: Expected O, but got Unknown
gr.RemoveDeckCard((Card)(object)this, false);
if (transformRng == null)
{
transformRng = new RandomGen(gr.CardRng.NextULong());
}
RepeatableRandomPool<List<Card>> val = new RepeatableRandomPool<List<Card>>();
val.AddRange(PotentialCards(gr));
for (int i = 0; i < AddTimes; i++)
{
gr.AddDeckCards(from c in val.Sample(transformRng)
select c.Clone(false), false, (VisualSourceData)null);
}
}
protected override IEnumerable<BattleAction> Actions(UnitSelector selector, ManaGroup consumingMana, Interaction precondition)
{
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
//IL_0017: Unknown result type (might be due to invalid IL or missing references)
yield break;
}
}
[HarmonyPatch]
[HarmonyPriority(100)]
internal class GrStartEvents
{
public static List<Action<GameRunController>> onGrStarted = new List<Action<GameRunController>>();
private static IEnumerable<MethodBase> TargetMethods()
{
yield return AccessTools.Constructor(typeof(GameRunController), new Type[1] { typeof(GameRunStartupParameters) }, false);
}
private static void Prefix(GameRunStartupParameters startupParameters)
{
onGrStarted.Clear();
RootRandomStarter.transformRng = null;
CollectionExtensions.Do<RootRandomStarter>(startupParameters.Deck.Where((Card c) => c is RootRandomStarter).Cast<RootRandomStarter>(), (Action<RootRandomStarter>)delegate(RootRandomStarter sp)
{
onGrStarted.Add(sp.OnGrStarted);
});
}
private static void Postfix(GameRunController __instance)
{
CollectionExtensions.Do<Action<GameRunController>>((IEnumerable<Action<GameRunController>>)onGrStarted, (Action<Action<GameRunController>>)delegate(Action<GameRunController> a)
{
a(__instance);
});
}
}
public sealed class SpringCleaningUltDef : UltimateSkillTemplate
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("SpringCleaningUlt");
}
public override LocalizationOption LoadLocalization()
{
return (LocalizationOption)(object)BepinexPlugin.UltimateSkillBatchLoc.AddEntity((EntityDefinition)(object)this);
}
public override Sprite LoadSprite()
{
return ResourceLoader.LoadSprite("SpringCleaningUlt.png", BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null);
}
public override UltimateSkillConfig MakeConfig()
{
//IL_002a: Unknown result type (might be due to invalid IL or missing references)
//IL_0030: Expected O, but got Unknown
return new UltimateSkillConfig("", 10, 200, 200, 1, (UsRepeatableType)2, 0, 7, 2, (Keyword)70368744177664L, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>());
}
}
[EntityLogic(typeof(SpringCleaningUltDef))]
public sealed class SpringCleaningUlt : UltimateSkill
{
private ManaGroup _mana;
public ManaGroup Mana => _mana;
public int HalfDeck => Math.Min(((GameEntity)this).GameRun.BaseDeck.Count / 2, ((GameEntity)this).GameRun.BaseDeckWithOutUnremovable.Where((Card c) => !c.IsUpgraded).Count());
public string HalfDeckWrap => (((GameEntity)this).GameRun == null) ? ((GameEntity)this).LocalizeProperty("Several", false, true) : $"<color=#B2FFFF>{HalfDeck}</color>";
public int ToRemove => HalfDeck / 2;
public string ToRemoveWrap => (((GameEntity)this).GameRun == null) ? "" : $"(<color=#B2FFFF>{ToRemove}</color>)";
public int ToUpgrade => (HalfDeck - ToRemove - 1) / 2 + 1;
public string ToUpgradeWrap => (((GameEntity)this).GameRun == null) ? "" : $"(<color=#B2FFFF>{ToUpgrade}</color>)";
public SpringCleaningUlt()
{
//IL_0003: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Unknown result type (might be due to invalid IL or missing references)
//IL_0013: Unknown result type (might be due to invalid IL or missing references)
ManaGroup mana = default(ManaGroup);
((ManaGroup)(ref mana)).Philosophy = 3;
_mana = mana;
((UltimateSkill)this)..ctor();
((UltimateSkill)this).TargetType = (TargetType)4;
}
protected override IEnumerable<BattleAction> Actions(UnitSelector selector)
{
yield return (BattleAction)(object)PerformAction.Spell((Unit)(object)((UltimateSkill)this).Owner, ((GameEntity)this).Id);
yield return (BattleAction)(object)PerformAction.Effect((Unit)(object)((UltimateSkill)this).Owner, "MoonG", 0f, "MarisaBottleLaunch", 0f, (EffectBehavior)0, 0f);
RandomGen subRootRng = new RandomGen(PerRngs.Get(((GameEntity)this).GameRun).springCleaningRng.NextULong());
List<Card> selected = (from c in ((GameEntity)this).GameRun.BaseDeckWithOutUnremovable
where ((GameEntity)c).Id != "EverHoardingCard" && !c.IsUpgraded
group c by c.IsUpgraded.ToInt() into g
orderby g.Key
select g).Select(delegate(IGrouping<int, Card> g)
{
//IL_0014: Unknown result type (might be due to invalid IL or missing references)
//IL_001e: Expected O, but got Unknown
List<Card> list = g.ToList();
CollectionsExtensions.Shuffle<Card>((IList<Card>)list, new RandomGen(subRootRng.NextULong()));
return list;
}).SelectMany((List<Card> l) => l).Take(HalfDeck)
.ToList();
Card[] cardsToRemove = selected.GetRange(0, ToRemove).ToArray();
HashSet<int> cardsToRemoveIdSet = cardsToRemove.Select((Card c) => c.InstanceId).ToHashSet();
Card[] cardsToUpgrade = (from c in selected.GetRange(ToRemove, selected.Count - ToRemove)
where c.CanUpgradeAndPositive
select c).Take(ToUpgrade).ToArray();
HashSet<int> cardsToUpgradeIdSet = cardsToUpgrade.Select((Card c) => c.InstanceId).ToHashSet();
yield return (BattleAction)(object)new ProcessDeckCardsAction(cardsToRemove, delegate(IEnumerable<Card> cards)
{
((GameEntity)this).GameRun.RemoveDeckCards(cards, true);
}, "Removed");
yield return (BattleAction)(object)new ProcessDeckCardsAction(cardsToUpgrade, delegate(IEnumerable<Card> cards)
{
((GameEntity)this).GameRun.UpgradeDeckCards(cards, true);
}, "Upgraded");
foreach (Card c2 in ((UltimateSkill)this).Battle.EnumerateAllCards().ToList())
{
if (cardsToRemoveIdSet.Contains(c2.InstanceId))
{
yield return (BattleAction)new RemoveCardAction(c2);
}
else if (cardsToUpgradeIdSet.Contains(c2.InstanceId) && c2.CanUpgrade)
{
c2.Upgrade();
}
}
Card misfortune = ((GameEntity)this).GameRun.GetRandomCurseCard(subRootRng, true);
((GameEntity)this).GameRun.AddDeckCard(misfortune, true, (VisualSourceData)null);
yield return (BattleAction)new DiscardManyAction((IEnumerable<Card>)((UltimateSkill)this).Battle.HandZone);
yield return (BattleAction)(object)new StackDrawToDiscard();
yield return (BattleAction)new DrawManyCardAction(((UltimateSkill)this).Value1);
yield return (BattleAction)new GainManaAction(Mana);
}
private IEnumerator ProcessManyCards(Card[] cards, Action<IEnumerable<Card>> proccessAction, float finalDelay)
{
int batchSize = 5;
for (int i = 0; i < cards.Length; i += batchSize)
{
int upper = Math.Min(cards.Length, i + batchSize);
Card[] display = cards[i..upper];
proccessAction(display);
if (upper < cards.Length)
{
yield return (object)new WaitForSecondsRealtime(0.5f + 0.2f * (float)batchSize);
}
}
yield return (object)new WaitForSecondsRealtime(finalDelay);
}
}
public sealed class FakePackForCommonLocDef : RootRandomStartersDef
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("FakePackForCommonLoc");
}
public override CardImages LoadCardImages()
{
return null;
}
}
[EntityLogic(typeof(FakePackForCommonLocDef))]
public sealed class FakePackForCommonLoc : Card
{
}
public sealed class BasicTreasurePackDef : RootRandomStartersDef
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("BasicTreasurePack");
}
public override CardConfig MakeConfig()
{
CardConfig val = base.MakeConfig();
val.Illustrator = "lif";
return val;
}
}
[EntityLogic(typeof(BasicTreasurePackDef))]
public sealed class BasicTreasurePack : RootRandomStarter
{
public override int AddTimes => 1;
public override RandomPoolEntry<Type[]>[] PotentialCardTypes => new RandomPoolEntry<Type[]>[2]
{
new RandomPoolEntry<Type[]>(new Type[1] { typeof(JungleMaster) }, 1f),
new RandomPoolEntry<Type[]>(new Type[2]
{
typeof(Astrology),
typeof(Astrology)
}, 1f)
};
}
public sealed class BasicAttacksPackDef : RootRandomStartersDef
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("BasicAttacksPack");
}
public override CardConfig MakeConfig()
{
CardConfig val = base.MakeConfig();
val.Illustrator = "鬼针草";
return val;
}
}
[EntityLogic(typeof(BasicAttacksPackDef))]
public sealed class BasicAttacksPack : RootRandomStarter
{
public override int AddTimes => 4;
public override RandomPoolEntry<Type[]>[] PotentialCardTypes => new RandomPoolEntry<Type[]>[6]
{
new RandomPoolEntry<Type[]>(new Type[1] { typeof(MarisaAttackB) }, 1f),
new RandomPoolEntry<Type[]>(new Type[1] { typeof(MarisaAttackR) }, 1f),
new RandomPoolEntry<Type[]>(new Type[1] { typeof(Shoot) }, 1.2f),
new RandomPoolEntry<Type[]>(new Type[1] { typeof(BalancedBasicCard) }, 0.8f),
new RandomPoolEntry<Type[]>(new Type[2]
{
typeof(Shoot),
typeof(Shoot)
}, 0.5f),
new RandomPoolEntry<Type[]>(new Type[3]
{
typeof(MarisaAttackB),
typeof(MarisaAttackR),
typeof(BalancedBasicCard)
}, 0.2f)
};
}
public sealed class BasicDefencePackDef : RootRandomStartersDef
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("BasicDefencePack");
}
public override CardConfig MakeConfig()
{
CardConfig val = base.MakeConfig();
val.Illustrator = "@kyotyanehh";
return val;
}
}
[EntityLogic(typeof(BasicDefencePackDef))]
public sealed class BasicDefencePack : RootRandomStarter
{
public override int AddTimes => 6;
public override RandomPoolEntry<Type[]>[] PotentialCardTypes => new RandomPoolEntry<Type[]>[6]
{
new RandomPoolEntry<Type[]>(new Type[1] { typeof(MarisaBlockB) }, 1f),
new RandomPoolEntry<Type[]>(new Type[1] { typeof(MarisaBlockR) }, 1f),
new RandomPoolEntry<Type[]>(new Type[1] { typeof(Boundary) }, 1f),
new RandomPoolEntry<Type[]>(new Type[1] { typeof(BalancedBasicCard) }, 0.75f),
new RandomPoolEntry<Type[]>(new Type[2]
{
typeof(Boundary),
typeof(BalancedBasicCard)
}, 0.35f),
new RandomPoolEntry<Type[]>(new Type[3]
{
typeof(Boundary),
typeof(Boundary),
typeof(Boundary)
}, 0.2f)
};
}
public sealed class BasicMyseryPackDef : RootRandomStartersDef
{
public override IdContainer GetId()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return IdContainer.op_Implicit("BasicMiseryPack");
}
public override CardConfig MakeConfig()
{
CardConfig val = base.MakeConfig();
val.Illustrator = "ル一キ一ドリフト";
return val;
}
}
[EntityLogic(typeof(BasicMyseryPackDef))]
public sealed class BasicMiseryPack : RootRandomStarter
{
public override int AddTimes => 3;
public override RandomPoolEntry<Type[]>[] PotentialCardTypes => new RandomPoolEntry<Type[]>[7]
{
new RandomPoolEntry<Type[]>(new Type[1] { typeof(Yueguang) }, 1f),
new RandomPoolEntry<Type[]>(new Type[1] { typeof(Riguang) }, 1f),
new RandomPoolEntry<Type[]>(new Type[1] { typeof(Shadow) }, 1f),
new RandomPoolEntry<Type[]>(new Type[1] { typeof(BlackResidue) }, 0.8f),
new RandomPoolEntry<Type[]>(new Type[1] { typeof(WolfFur) }, 0.75f),
new RandomPoolEntry<Type[]>(new Type[2]
{
typeof(Xingguang),
typeof(HatateNews)
}, 0.8f),
new RandomPoolEntry<Type[]>(new Type[2]
{
typeof(Xingguang),
typeof(AyaNews)
}, 0.75f)
};
}
}
namespace System.Runtime.CompilerServices
{
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
internal sealed class IgnoresAccessChecksToAttribute : Attribute
{
internal IgnoresAccessChecksToAttribute(string assemblyName)
{
}
}
}