Decompiled source of ShouMod v0.4.0
ShouMod.dll
Decompiled 3 weeks ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using AddWatermark; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using Cysharp.Threading.Tasks; 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.Randoms; using LBoL.Core.Stations; using LBoL.Core.StatusEffects; using LBoL.Core.Units; using LBoL.EntityLib.Cards; using LBoL.EntityLib.Cards.Enemy; using LBoL.EntityLib.Exhibits; using LBoL.EntityLib.StatusEffects.Basic; using LBoL.EntityLib.StatusEffects.Cirno; using LBoL.EntityLib.StatusEffects.ExtraTurn; using LBoL.Presentation; using LBoLEntitySideloader; using LBoLEntitySideloader.Attributes; using LBoLEntitySideloader.CustomKeywords; using LBoLEntitySideloader.Entities; using LBoLEntitySideloader.Resource; using LBoLEntitySideloader.Utils; using SampleCharacterMod.Config; using ShouMod.BattleActions; using ShouMod.Cards; using ShouMod.Cards.Template; using ShouMod.Config; using ShouMod.Enemies.Template; using ShouMod.GunName; using ShouMod.ImageLoader; using ShouMod.Localization; using ShouMod.Patches; using ShouMod.StatusEffects; using UnityEngine; using UnityEngine.Experimental.Rendering; [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("ShouMod")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+22ab2539b8811a0b12ad06570ad44b2aa11bd9fe")] [assembly: AssemblyProduct("ShouMod")] [assembly: AssemblyTitle("ShouMod")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace SampleCharacterMod.Config { public struct CustomConfigEntry<T> { public T Value { get; set; } public string Section { get; set; } public string Key { get; set; } public string Description { get; set; } public CustomConfigEntry(T value, string section, string key, string description) { Value = value; Section = section; Key = key; Description = description; } } } namespace ShouMod { [BepInPlugin("Worldsoul15.LBoL.Character.ShouMod", "ShouMod", "0.4.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInProcess("LBoL.exe")] public class BepinexPlugin : BaseUnityPlugin { public static string modUniqueID = "ShouMod"; public static string playerName = "Shou"; public static bool useInGameModel = false; public static string modelName = "Youmu"; public static bool modelIsFlipped = true; public static List<ManaColor> offColors = new List<ManaColor> { (ManaColor)1, (ManaColor)4, (ManaColor)3, (ManaColor)5, (ManaColor)2, (ManaColor)6 }; public static ConfigEntry<bool> enableAct1Boss; public static CustomConfigEntry<bool> enableAct1BossEntry = new CustomConfigEntry<bool>(value: false, "EnableAct1Boss", "EnableAct1Boss", "Toggle the Act 1 boss. Default: Off"); 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("Worldsoul15.LBoL.Character.ShouMod", ""); private void Awake() { log = ((BaseUnityPlugin)this).Logger; enableAct1Boss = ((BaseUnityPlugin)this).Config.Bind<bool>(enableAct1BossEntry.Section, enableAct1BossEntry.Key, enableAct1BossEntry.Value, enableAct1BossEntry.Description); Object.DontDestroyOnLoad((Object)(object)((Component)this).gameObject); ((Object)((Component)this).gameObject).hideFlags = (HideFlags)61; CardIndexGenerator.PromiseClearIndexSet(); EntityManager.RegisterSelf(); harmony.PatchAll(); if (Chainloader.PluginInfos.ContainsKey("neo.lbol.tools.watermark")) { WatermarkWrapper.ActivateWatermark(); } Func<Sprite> func = () => ResourceLoader.LoadSprite("BossIcon.png", (IResourceSource)(object)directorySource, (Rect?)null, 1, (Vector2?)null); EnemyUnitTemplate.AddBossNodeIcon("SampleCharacterMod", func, (Assembly)null); } private void OnDestroy() { if (harmony != null) { harmony.UnpatchSelf(); } } } public static class PInfo { public const string GUID = "Worldsoul15.LBoL.Character.ShouMod"; public const string Name = "ShouMod"; public const string version = "0.4.0"; public static readonly Harmony harmony = new Harmony("Worldsoul15.LBoL.Character.ShouMod"); } public class SampleCharacterLoadouts { public static string UltimateSkillA = "ShouVajraBuddhist"; public static string UltimateSkillB = "ShouTreasureGun"; public static string ExhibitA = "ShouDullPagoda"; public static string ExhibitB = "ShouMouseBasket"; public static List<string> DeckA = new List<string> { "Shoot", "Shoot", "Boundary", "Boundary", "ShouAttackW", "ShouAttackR", "ShouBlockW", "ShouBlockW", "ShouBlockR", "ShouChannelingPower" }; public static List<string> DeckB = new List<string> { "Shoot", "Shoot", "Boundary", "Boundary", "ShouAttackW", "ShouAttackW", "ShouBlockW", "ShouBlockR", "ShouBlockW", "ShouGemstoneManufacturing" }; public static PlayerUnitConfig playerUnitConfig; static SampleCharacterLoadouts() { //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Expected O, but got Unknown string modUniqueID = BepinexPlugin.modUniqueID; int? num = 0; int? num2 = 6; ManaGroup val = default(ManaGroup); ((ManaGroup)(ref val)).White = 3; ((ManaGroup)(ref val)).Red = 1; playerUnitConfig = new PlayerUnitConfig(modUniqueID, false, "", 0, 8, num, true, num2, (ManaColor)4, (ManaColor)1, val, "#f3c259", 80, 99, 0, UltimateSkillA, UltimateSkillB, ExhibitA, ExhibitB, (IReadOnlyList<string>)DeckA, (IReadOnlyList<string>)DeckB, 1, 3); } } public sealed class ShouModDef : PlayerUnitTemplate { [EntityLogic(typeof(ShouModDef))] public sealed class ShouMod : PlayerUnit { } public UniTask<Sprite>? LoadSpellPortraitAsync { get; private set; } public override IdContainer GetId() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) return IdContainer.op_Implicit(BepinexPlugin.modUniqueID); } public override LocalizationOption LoadLocalization() { return (LocalizationOption)(object)SampleCharacterLocalization.PlayerUnitBatchLoc.AddEntity((EntityDefinition)(object)this); } public override PlayerImages LoadPlayerImages() { return SampleCharacterImageLoader.LoadPlayerImages(BepinexPlugin.playerName); } public override PlayerUnitConfig MakeConfig() { return SampleCharacterLoadouts.playerUnitConfig; } } internal class WatermarkWrapper { [MethodImpl(MethodImplOptions.NoInlining)] internal static void ActivateWatermark() { API.ActivateWatermark(); } } } namespace ShouMod.SampleCharacterUlt { public sealed class ShouTreasureGunDef : SampleCharacterUltTemplate { public override UltimateSkillConfig MakeConfig() { UltimateSkillConfig defaulUltConfig = GetDefaulUltConfig(); defaulUltConfig.Damage = 5; defaulUltConfig.Value1 = 8; defaulUltConfig.Value2 = 2; defaulUltConfig.RelativeCards = new List<string> { "ShouDiamond", "ShouEmerald", "ShouOnyx", "ShouOpal", "ShouPearl", "ShouRuby", "ShouSapphire" }; return defaulUltConfig; } } [EntityLogic(typeof(ShouTreasureGunDef))] public sealed class ShouTreasureGun : UltimateSkill { public List<Type> Gemstones = new List<Type> { typeof(ShouDiamond), typeof(ShouEmerald), typeof(ShouOnyx), typeof(ShouOpal), typeof(ShouPearl), typeof(ShouRuby), typeof(ShouSapphire) }; public ShouTreasureGun() { ((UltimateSkill)this).TargetType = (TargetType)1; ((UltimateSkill)this).GunName = GunNameID.GetGunFromId(4158); } protected override IEnumerable<BattleAction> Actions(UnitSelector selector) { EnemyUnit enemy = selector.GetEnemy(((UltimateSkill)this).Battle); yield return (BattleAction)(object)PerformAction.Spell((Unit)(object)((UltimateSkill)this).Owner, "ShouTreasureGun"); List<Card> list = new List<Card>(); CollectionsExtensions.Shuffle<Type>((IList<Type>)Gemstones, ((GameEntity)this).GameRun.BattleCardRng); for (int j = 0; j < ((UltimateSkill)this).Value2; j++) { list.Add(Library.CreateCard(Gemstones[j])); } for (int i = 0; i < ((UltimateSkill)this).Value1; i++) { yield return (BattleAction)new DamageAction((Unit)(object)((UltimateSkill)this).Owner, (Unit)(object)enemy, ((UltimateSkill)this).Damage, ((UltimateSkill)this).GunName, (GunType)0); } if (!((UltimateSkill)this).Battle.BattleShouldEnd) { yield return (BattleAction)new AddCardsToHandAction((IEnumerable<Card>)list, (AddCardsType)1); } } } public sealed class ShouVajraBuddhistDef : SampleCharacterUltTemplate { public override UltimateSkillConfig MakeConfig() { UltimateSkillConfig defaulUltConfig = GetDefaulUltConfig(); defaulUltConfig.Damage = 23; defaulUltConfig.Value1 = 3; defaulUltConfig.Value2 = 1; defaulUltConfig.RelativeEffects = new List<string> { "ShouHardenSe", "Firepower" }; return defaulUltConfig; } } [EntityLogic(typeof(ShouVajraBuddhistDef))] public sealed class ShouVajraBuddhist : UltimateSkill { public ShouVajraBuddhist() { ((UltimateSkill)this).TargetType = (TargetType)2; ((UltimateSkill)this).GunName = GunNameID.GetGunFromId(4158); } protected override IEnumerable<BattleAction> Actions(UnitSelector selector) { Unit[] targets = selector.GetUnits(((UltimateSkill)this).Battle); yield return (BattleAction)(object)PerformAction.Spell((Unit)(object)((UltimateSkill)this).Owner, "ShouVajraBuddhist"); yield return (BattleAction)new DamageAction((Unit)(object)((UltimateSkill)this).Owner, (IEnumerable<Unit>)targets, ((UltimateSkill)this).Damage, ((UltimateSkill)this).GunName, (GunType)0); if (!((UltimateSkill)this).Battle.BattleShouldEnd) { yield return (BattleAction)(object)new ApplyStatusEffectAction<ShouHardenSe>((Unit)(object)((UltimateSkill)this).Battle.Player, (int?)0, (int?)((UltimateSkill)this).Value1, (int?)0, (int?)0, 0.2f, true); yield return (BattleAction)(object)new ApplyStatusEffectAction<Firepower>((Unit)(object)((UltimateSkill)this).Battle.Player, (int?)((UltimateSkill)this).Value2, (int?)0, (int?)0, (int?)0, 0.2f, true); } } } public class SampleCharacterUltTemplate : UltimateSkillTemplate { public override IdContainer GetId() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) return IdContainer.op_Implicit(SampleCharacterDefaultConfig.DefaultID((EntityDefinition)(object)this)); } public override LocalizationOption LoadLocalization() { return (LocalizationOption)(object)SampleCharacterLocalization.UltimateSkillsBatchLoc.AddEntity((EntityDefinition)(object)this); } public override Sprite LoadSprite() { return SampleCharacterImageLoader.LoadUltLoader((UltimateSkillTemplate)(object)this); } public override UltimateSkillConfig MakeConfig() { throw new NotImplementedException(); } public UltimateSkillConfig GetDefaulUltConfig() { return SampleCharacterDefaultConfig.GetDefaultUltConfig(); } } } namespace ShouMod.StatusEffects { public sealed class SampleCharacterEnhanceSeDef : SampleCharacterStatusEffectTemplate { public override Sprite LoadSprite() { return null; } } [EntityLogic(typeof(SampleCharacterEnhanceSeDef))] public sealed class SampleCharacterEnhanceSe : StatusEffect { } public sealed class ShouAbsoluteJusticeSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.RelativeEffects = new List<string> { "Weak", "Vulnerable" }; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouAbsoluteJusticeSeDef))] public sealed class ShouAbsoluteJusticeSe : StatusEffect { private int Counter { get; set; } private List<Type> Types { get; set; } protected override void OnAdded(Unit unit) { ((StatusEffect)this).OnAdded(unit); Counter = 0; Types = new List<Type> { typeof(Weak), typeof(Vulnerable) }; ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnStarted); } private IEnumerable<BattleAction> OnOwnerTurnStarted(UnitEventArgs args) { if (!((StatusEffect)this).Battle.BattleShouldEnd) { if (Counter % 2 == 0) { CollectionsExtensions.Shuffle<Type>((IList<Type>)Types, ((GameEntity)this).GameRun.EnemyBattleRng); } <>n__0(); Type type = Types[Counter % 2]; Unit player = (Unit)(object)((StatusEffect)this).Battle.RandomAliveEnemy; int? duration = ((StatusEffect)this).Level; yield return (BattleAction)new ApplyStatusEffectAction(type, player, (int?)null, duration, (int?)null, (int?)null, 0f, false); int counter = Counter + 1; Counter = counter; } } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } public sealed class ShouBloodMoneySeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = true; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouBloodMoneySeDef))] public sealed class ShouBloodMoneySe : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).Owner.ReactBattleEvent<DieEventArgs>(((StatusEffect)this).Battle.EnemyDied, (Func<DieEventArgs, IEnumerable<BattleAction>>)OnEnemyDied); } private IEnumerable<BattleAction> OnEnemyDied(DieEventArgs args) { if (!args.Unit.HasStatusEffect<Servant>()) { yield return (BattleAction)new GainMoneyAction(((StatusEffect)this).Level, (SpecialSourceType)0); } } } public sealed class ShouByakurenTeammateBuffSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = false; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouByakurenTeammateBuffSeDef))] public sealed class ShouByakurenTeammateBuffSe : StatusEffect { public ManaGroup Mana => ManaGroup.Empty; protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((Unit)((StatusEffect)this).Battle.Player).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnTurnStarted); } private IEnumerable<BattleAction> OnTurnStarted(UnitEventArgs args) { Card[] array = ((StatusEffect)this).Battle.RollCardsWithoutManaLimit(new CardWeightTable(RarityWeightTable.BattleCard, OwnerWeightTable.AllOnes, CardTypeWeightTable.CanBeLoot, false), 1, (Predicate<CardConfig>)((CardConfig config) => (int)config.Rarity == 2 && config.Id != "ShouByakurenTeammateDef")); Card[] array2 = array; foreach (Card card in array2) { card.IsEthereal = true; card.IsExile = true; card.SetBaseCost(Mana); } yield return (BattleAction)new AddCardsToHandAction(array); } } public sealed class ShouColdCashSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = true; defaultStatusEffectConfig.RelativeEffects = new List<string> { "Cold" }; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouColdCashSeDef))] public sealed class ShouColdCashSe : StatusEffect { public List<Type> Gemstones = new List<Type> { typeof(ShouAmber), typeof(ShouDiamond), typeof(ShouEmerald), typeof(ShouOnyx), typeof(ShouOpal), typeof(ShouPearl), typeof(ShouRuby), typeof(ShouSapphire) }; protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<CardUsingEventArgs>(((StatusEffect)this).Battle.CardUsed, (EventSequencedReactor<CardUsingEventArgs>)OnCardUsed); ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnEnding, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnEnding); } private IEnumerable<BattleAction> OnCardUsed(CardUsingEventArgs args) { if (args.Card is ShouGemstoneCard) { yield return (BattleAction)(object)new ApplyStatusEffectAction<Cold>((Unit)(object)((StatusEffect)this).Battle.RandomAliveEnemy, (int?)0, (int?)0, (int?)0, (int?)0, 0.2f, true); } } private IEnumerable<BattleAction> OnOwnerTurnEnding(UnitEventArgs args) { yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f); } } public sealed class ShouCrimsonTearsSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = true; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouCrimsonTearsSeDef))] public sealed class ShouCrimsonTearsSe : StatusEffect { private int count = 0; protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<DamageEventArgs>(((StatusEffect)this).Owner.DamageReceived, (EventSequencedReactor<DamageEventArgs>)OnDamageReceived); ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnStarted); } private IEnumerable<BattleAction> OnDamageReceived(DamageEventArgs args) { int num; if (args.Source != ((StatusEffect)this).Owner && args.Source.IsAlive) { DamageInfo damageInfo = args.DamageInfo; if ((int)((DamageInfo)(ref damageInfo)).DamageType == 2) { damageInfo = args.DamageInfo; num = ((((DamageInfo)(ref damageInfo)).Amount > 0f) ? 1 : 0); goto IL_0080; } } num = 0; goto IL_0080; IL_0080: if (num != 0) { <>n__0(); if (count < ((StatusEffect)this).Level) { yield return (BattleAction)new AddCardsToDiscardAction((IEnumerable<Card>)Library.CreateCards<ShouRuby>(1, false), (AddCardsType)0); count++; } } } private IEnumerable<BattleAction> OnOwnerTurnStarted(UnitEventArgs args) { count = 0; yield break; } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } public sealed class ShouCycleofWealthSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = false; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouCycleofWealthSeDef))] public sealed class ShouCycleofWealthSe : StatusEffect { public List<Type> Gemstones = new List<Type> { typeof(ShouAmber), typeof(ShouDiamond), typeof(ShouEmerald), typeof(ShouOnyx), typeof(ShouOpal), typeof(ShouPearl), typeof(ShouRuby), typeof(ShouSapphire) }; protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<CardUsingEventArgs>(((StatusEffect)this).Battle.CardUsed, (EventSequencedReactor<CardUsingEventArgs>)OnCardUsed); } private IEnumerable<BattleAction> OnCardUsed(CardUsingEventArgs args) { if (args.Card is ShouGemstoneCard) { CollectionsExtensions.Shuffle<Type>((IList<Type>)Gemstones, ((GameEntity)this).GameRun.BattleCardRng); yield return (BattleAction)new ExileCardAction(args.Card); yield return (BattleAction)new AddCardsToDiscardAction((Card[])(object)new Card[1] { Library.CreateCard(Gemstones[0]) }); } } } public sealed class ShouDivineProtectorSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = true; defaultStatusEffectConfig.RelativeEffects = new List<string> { "ShouResonanceSe" }; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouDivineProtectorSeDef))] public sealed class ShouDivineProtectorSe : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<CardUsingEventArgs>(((StatusEffect)this).Battle.CardUsed, (EventSequencedReactor<CardUsingEventArgs>)OnCardUsed); } private IEnumerable<BattleAction> OnCardUsed(CardUsingEventArgs args) { yield return (BattleAction)(object)new ApplyStatusEffectAction<ShouResonanceSe>((Unit)(object)((StatusEffect)this).Battle.Player, (int?)((StatusEffect)this).Level, (int?)0, (int?)0, (int?)0, 0.2f, true); } } public sealed class ShouEndlessWealthSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.IsStackable = false; defaultStatusEffectConfig.LevelStackType = (StackType)3; defaultStatusEffectConfig.HasCount = true; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouEndlessWealthSeDef))] public sealed class ShouEndlessWealthSe : StatusEffect { public List<Type> Gemstones = new List<Type> { typeof(ShouRuby), typeof(ShouOnyx), typeof(ShouSapphire), typeof(ShouPearl), typeof(ShouEmerald), typeof(ShouOpal) }; public string NextGem { get { string[] array = ((StatusEffect)this).Brief.Split(" "); return array[(((StatusEffect)this).Count + 1) % 6]; } } protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnStarted); } private IEnumerable<BattleAction> OnOwnerTurnStarted(UnitEventArgs args) { ((StatusEffect)this).Count = (((StatusEffect)this).Count + 1) % 6; yield return (BattleAction)new AddCardsToHandAction((Card[])(object)new Card[1] { Library.CreateCard(Gemstones[((StatusEffect)this).Count]) }); } } public sealed class ShouFocusingLightSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.RelativeEffects = new List<string> { "Firepower" }; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouFocusingLightSeDef))] public sealed class ShouFocusingLightSe : StatusEffect { public ManaGroup Mana => ManaGroup.Single((ManaColor)7); protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnStarted); } private IEnumerable<BattleAction> OnOwnerTurnStarted(UnitEventArgs args) { if (!((StatusEffect)this).Battle.BattleShouldEnd) { yield return (BattleAction)new GainManaAction(ManaGroup.Philosophies(1)); yield return ((StatusEffect)this).BuffAction<Firepower>(((StatusEffect)this).Level, 0, 0, 0, 0.2f); } } } public sealed class ShouGemstoneReferenceSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { return SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); } } [EntityLogic(typeof(ShouGemstoneReferenceSeDef))] public sealed class ShouGemstoneReferenceSe : StatusEffect { public List<Type> Gemstones = new List<Type> { typeof(ShouDiamond), typeof(ShouEmerald), typeof(ShouOnyx), typeof(ShouOpal), typeof(ShouPearl), typeof(ShouRuby), typeof(ShouSapphire) }; } public sealed class ShouHardenedSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = false; defaultStatusEffectConfig.HasDuration = true; defaultStatusEffectConfig.DurationDecreaseTiming = (DurationDecreaseTiming)3; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouHardenedSeDef))] public sealed class ShouHardenedSe : StatusEffect { } public sealed class ShouHardenSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = false; defaultStatusEffectConfig.HasDuration = true; defaultStatusEffectConfig.DurationDecreaseTiming = (DurationDecreaseTiming)3; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouHardenSeDef))] public sealed class ShouHardenSe : StatusEffect { public int ExtraShield { get { if (((Unit)((StatusEffect)this).Battle.Player).HasStatusEffect<ShouResonanceSe>()) { return 30 + ((StatusEffect)((Unit)((StatusEffect)this).Battle.Player).GetStatusEffect<ShouResonanceSe>()).Level; } return 30; } } protected override void OnAdded(Unit unit) { if (unit is PlayerUnit) { ((StatusEffect)this).HandleOwnerEvent<BlockShieldEventArgs>(unit.BlockShieldGaining, (GameEventHandler<BlockShieldEventArgs>)OnBlockGaining); } else { Debug.LogError((object)(((GameEntity)this).Name + " added to enemy " + ((GameEntity)unit).Name + ", which has no effect.")); } } private void OnBlockGaining(BlockShieldEventArgs args) { //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Invalid comparison between Unknown and I4 //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Invalid comparison between Unknown and I4 //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Invalid comparison between Unknown and I4 int num = 30; if (((Unit)((StatusEffect)this).Battle.Player).HasStatusEffect<ShouResonanceSe>()) { num += ((StatusEffect)((Unit)((StatusEffect)this).Battle.Player).GetStatusEffect<ShouResonanceSe>()).Level; } if ((int)((GameEventArgs)args).Cause == 1 || (int)((GameEventArgs)args).Cause == 20) { float num2 = 1f + (float)num / 100f; if ((int)args.Type != 2) { args.Block *= num2; args.Shield *= num2; } } } } public sealed class ShouHeartSutraRecitationSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = true; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouHeartSutraRecitationSeDef))] public sealed class ShouHeartSutraRecitationSe : StatusEffect { public List<Type> Gemstones = new List<Type> { typeof(ShouAmber), typeof(ShouDiamond), typeof(ShouEmerald), typeof(ShouOnyx), typeof(ShouOpal), typeof(ShouPearl), typeof(ShouRuby), typeof(ShouSapphire) }; protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<CardEventArgs>(((StatusEffect)this).Battle.CardExiled, (EventSequencedReactor<CardEventArgs>)OnCardExiled); } private IEnumerable<BattleAction> OnCardExiled(CardEventArgs args) { if ((int)((GameEventArgs)args).Cause != 3 && args.Card is ShouGemstoneCard) { yield return (BattleAction)new CastBlockShieldAction((Unit)(object)((StatusEffect)this).Battle.Player, ((StatusEffect)this).Level, 0, (BlockShieldType)2, false); } } } public sealed class ShouInstinctiveCharitySeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = true; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouInstinctiveCharitySeDef))] public sealed class ShouInstinctiveCharitySe : StatusEffect { public List<Type> Gemstones = new List<Type> { typeof(ShouAmber), typeof(ShouDiamond), typeof(ShouEmerald), typeof(ShouOnyx), typeof(ShouOpal), typeof(ShouPearl), typeof(ShouRuby), typeof(ShouSapphire) }; protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnStarted); } private IEnumerable<BattleAction> OnOwnerTurnStarted(UnitEventArgs args) { List<Card> list = new List<Card>(); CollectionsExtensions.Shuffle<Type>((IList<Type>)Gemstones, ((GameEntity)this).GameRun.BattleCardRng); for (int i = 0; i < ((StatusEffect)this).Level; i++) { list.Add(Library.CreateCard(Gemstones[i])); } yield return (BattleAction)new AddCardsToDrawZoneAction((IEnumerable<Card>)list, (DrawZoneTarget)2, (AddCardsType)0); } } public sealed class ShouLimitlessBenevolenceSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = true; defaultStatusEffectConfig.RelativeEffects = new List<string> { "LockedOn", "ShouVigorSe" }; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouLimitlessBenevolenceSeDef))] public sealed class ShouLimitlessBenevolenceSe : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<DamageEventArgs>(((StatusEffect)this).Owner.DamageReceived, (EventSequencedReactor<DamageEventArgs>)OnDamageReceived); } public IEnumerable<BattleAction> OnDamageReceived(DamageEventArgs args) { int num; if (args.Source != ((StatusEffect)this).Owner && args.Source.IsAlive) { DamageInfo damageInfo = args.DamageInfo; if ((int)((DamageInfo)(ref damageInfo)).DamageType == 2) { damageInfo = args.DamageInfo; num = ((((DamageInfo)(ref damageInfo)).Amount > 0f) ? 1 : 0); goto IL_0080; } } num = 0; goto IL_0080; IL_0080: if (num != 0 && ((Unit)((StatusEffect)this).Battle.Player).HasStatusEffect<ShouVigorSe>()) { yield return (BattleAction)(object)new ApplyStatusEffectAction<LockedOn>(args.Source, (int?)((StatusEffect)this).Level, (int?)0, (int?)0, (int?)0, 0.2f, true); } } } public sealed class ShouPrimalPowerSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = true; defaultStatusEffectConfig.RelativeEffects = new List<string> { "ShouResonanceSe" }; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouPrimalPowerSeDef))] public sealed class ShouPrimalPowerSe : StatusEffect { public ManaGroup Mana => ManaGroup.Single((ManaColor)7); protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<CardUsingEventArgs>(((StatusEffect)this).Battle.CardUsed, (EventSequencedReactor<CardUsingEventArgs>)OnCardUsed); ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnEnding, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnEnding); } private IEnumerable<BattleAction> OnCardUsed(CardUsingEventArgs args) { if ((int)args.Card.CardType == 1) { yield return (BattleAction)new GainManaAction(Mana); yield return (BattleAction)new DrawCardAction(); yield return (BattleAction)(object)new ApplyStatusEffectAction<ShouResonanceSe>((Unit)(object)((StatusEffect)this).Battle.Player, (int?)3, (int?)0, (int?)0, (int?)0, 0.2f, true); 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); } } } private IEnumerable<BattleAction> OnOwnerTurnEnding(UnitEventArgs args) { yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f); } } public sealed class ShouRefractingLightSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = true; defaultStatusEffectConfig.RelativeEffects = new List<string> { "TempFirepower", "TempSpirit" }; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouRefractingLightSeDef))] public sealed class ShouRefractingLightSe : StatusEffect { public List<Type> Gemstones = new List<Type> { typeof(ShouAmber), typeof(ShouDiamond), typeof(ShouEmerald), typeof(ShouOnyx), typeof(ShouOpal), typeof(ShouPearl), typeof(ShouRuby), typeof(ShouSapphire) }; protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<CardUsingEventArgs>(((StatusEffect)this).Battle.CardUsed, (EventSequencedReactor<CardUsingEventArgs>)OnCardUsed); } private IEnumerable<BattleAction> OnCardUsed(CardUsingEventArgs args) { if (!((StatusEffect)this).Battle.BattleShouldEnd && args.Card is ShouGemstoneCard) { yield return (BattleAction)(object)new ApplyStatusEffectAction<TempFirepower>((Unit)(object)((StatusEffect)this).Battle.Player, (int?)((StatusEffect)this).Level, (int?)0, (int?)0, (int?)0, 0.2f, true); yield return (BattleAction)(object)new ApplyStatusEffectAction<TempSpirit>((Unit)(object)((StatusEffect)this).Battle.Player, (int?)((StatusEffect)this).Level, (int?)0, (int?)0, (int?)0, 0.2f, true); } } } public sealed class ShouResonanceSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = true; defaultStatusEffectConfig.LevelStackType = (StackType)0; defaultStatusEffectConfig.RelativeEffects = new List<string> { "ShouHardenSe", "ShouVigorSe" }; defaultStatusEffectConfig.Order = 5; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouResonanceSeDef))] public sealed class ShouResonanceSe : StatusEffect { } public sealed class ShouScatteredProtectionSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = true; defaultStatusEffectConfig.RelativeEffects = new List<string> { "TempFirepowerNegative", "ShouHardenSe" }; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouScatteredProtectionSeDef))] public sealed class ShouScatteredProtectionSe : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<DamageEventArgs>(((Unit)((StatusEffect)this).Battle.Player).DamageDealt, (EventSequencedReactor<DamageEventArgs>)OnPlayerDamageDealt); } public IEnumerable<BattleAction> OnPlayerDamageDealt(DamageEventArgs args) { int num; if (args.Source == ((StatusEffect)this).Battle.Player && args.Target != null) { DamageInfo damageInfo = args.DamageInfo; num = (((int)((DamageInfo)(ref damageInfo)).DamageType == 2) ? 1 : 0); } else { num = 0; } if (num != 0 && args.Target.IsAlive && ((Unit)((StatusEffect)this).Battle.Player).HasStatusEffect<ShouHardenSe>()) { yield return (BattleAction)(object)new ApplyStatusEffectAction<TempFirepowerNegative>(args.Target, (int?)((StatusEffect)this).Level, (int?)0, (int?)0, (int?)0, 0.2f, true); } } } public sealed class ShouScorchedEarthMandalaSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = true; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouScorchedEarthMandalaSeDef))] public sealed class ShouScorchedEarthMandalaSe : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<CardUsingEventArgs>(((StatusEffect)this).Battle.CardUsed, (EventSequencedReactor<CardUsingEventArgs>)OnCardUsed); } private IEnumerable<BattleAction> OnCardUsed(CardUsingEventArgs args) { if ((int)args.Card.CardType == 1) { yield return (BattleAction)(object)new ApplyStatusEffectAction<ShouResonanceSe>((Unit)(object)((StatusEffect)this).Battle.Player, (int?)((StatusEffect)this).Level, (int?)0, (int?)0, (int?)0, 0.2f, true); } else if ((int)args.Card.CardType == 2 && ((Unit)((StatusEffect)this).Battle.Player).HasStatusEffect<ShouVigorSe>()) { ShouVigorSe Vigor = ((Unit)((StatusEffect)this).Battle.Player).GetStatusEffect<ShouVigorSe>(); yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)Vigor, true, 0.1f); } } } public sealed class ShouTimeisMoneySeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = true; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouTimeisMoneySeDef))] public sealed class ShouTimeisMoneySe : ExtraTurnPartner { public List<Type> Gemstones = new List<Type> { typeof(ShouAmber), typeof(ShouDiamond), typeof(ShouEmerald), typeof(ShouOnyx), typeof(ShouOpal), typeof(ShouPearl), typeof(ShouRuby), typeof(ShouSapphire) }; protected override void OnAdded(Unit unit) { ((ExtraTurnPartner)this).ThisTurnActivating = false; ((StatusEffect)this).HandleOwnerEvent<UnitEventArgs>(((Unit)((StatusEffect)this).Battle.Player).TurnStarting, (GameEventHandler<UnitEventArgs>)delegate { if (((Unit)((StatusEffect)this).Battle.Player).IsExtraTurn && !((StatusEffect)this).Battle.Player.IsSuperExtraTurn && ((Unit)((StatusEffect)this).Battle.Player).GetStatusEffectExtend<ExtraTurnPartner>() == this) { ((ExtraTurnPartner)this).ThisTurnActivating = true; } }); ((StatusEffect)this).HandleOwnerEvent<CardEventArgs>(((StatusEffect)this).Battle.Predraw, (GameEventHandler<CardEventArgs>)OnPredraw); ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnStarted); } private IEnumerable<BattleAction> OnOwnerTurnStarted(UnitEventArgs args) { if (((ExtraTurnPartner)this).ThisTurnActivating) { CollectionsExtensions.Shuffle<Type>((IList<Type>)Gemstones, ((GameEntity)this).GameRun.BattleCardRng); List<Card> list = new List<Card>(); for (int i = 0; i < ((StatusEffect)this).Level; i++) { list.Add(Library.CreateCard(Gemstones[i])); } yield return (BattleAction)new AddCardsToHandAction((IEnumerable<Card>)list, (AddCardsType)0); yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f); } } private void OnPredraw(CardEventArgs args) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Invalid comparison between Unknown and I4 if (((ExtraTurnPartner)this).ThisTurnActivating && (int)((GameEventArgs)args).Cause == 12) { ((GameEventArgs)args).CancelBy((GameEntity)(object)this); } } } public sealed class ShouVigorousSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = false; defaultStatusEffectConfig.HasDuration = true; defaultStatusEffectConfig.DurationDecreaseTiming = (DurationDecreaseTiming)3; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouVigorousSeDef))] public sealed class ShouVigorousSe : StatusEffect { } public sealed class ShouVigorSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = false; defaultStatusEffectConfig.HasDuration = true; defaultStatusEffectConfig.DurationDecreaseTiming = (DurationDecreaseTiming)3; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouVigorSeDef))] public sealed class ShouVigorSe : StatusEffect { public int ExtraDamage { get { if (((Unit)((StatusEffect)this).Battle.Player).HasStatusEffect<ShouResonanceSe>()) { return 30 + ((StatusEffect)((Unit)((StatusEffect)this).Battle.Player).GetStatusEffect<ShouResonanceSe>()).Level; } return 30; } } protected override void OnAdded(Unit unit) { ((StatusEffect)this).HandleOwnerEvent<DamageDealingEventArgs>(unit.DamageDealing, (GameEventHandler<DamageDealingEventArgs>)OnDamageDealing); } private void OnDamageDealing(DamageDealingEventArgs args) { //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: 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) //IL_0041: Invalid comparison between Unknown and I4 //IL_0067: Unknown result type (might be due to invalid IL or missing references) int num = 30; if (((Unit)((StatusEffect)this).Battle.Player).HasStatusEffect<ShouResonanceSe>()) { num += ((StatusEffect)((Unit)((StatusEffect)this).Battle.Player).GetStatusEffect<ShouResonanceSe>()).Level; } DamageInfo damageInfo = args.DamageInfo; if ((int)((DamageInfo)(ref damageInfo)).DamageType == 2) { ((DamageInfo)(ref damageInfo)).Damage = ((DamageInfo)(ref damageInfo)).Amount * (1f + (float)num / 100f); args.DamageInfo = damageInfo; ((GameEventArgs)args).AddModifier((GameEntity)(object)this); } } } public sealed class ShouWantNotSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = true; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouWantNotSeDef))] public sealed class ShouWantNotSe : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnEnding, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnEnding); } private IEnumerable<BattleAction> OnOwnerTurnEnding(UnitEventArgs args) { if (((StatusEffect)this).Battle.BattleShouldEnd) { yield break; } List<Card> list = ((StatusEffect)this).Battle.DiscardZone.Where((Card c) => c is ShouGemstoneCard).ToList(); SelectCardInteraction interaction = new SelectCardInteraction(0, 3, (IEnumerable<Card>)list, (SelectedCardHandling)0) { Source = (GameEntity)(object)this }; yield return (BattleAction)new InteractionAction((Interaction)(object)interaction, true); IReadOnlyList<Card> selectedCards = interaction.SelectedCards; if (selectedCards == null) { yield break; } foreach (Card card in selectedCards) { yield return (BattleAction)new CastBlockShieldAction((Unit)(object)((StatusEffect)this).Battle.Player, 0, ((StatusEffect)this).Level, (BlockShieldType)2, false); yield return (BattleAction)new ExileCardAction(card); } } } public sealed class ShouWondersofNatureSeDef : SampleCharacterStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.IsStackable = false; defaultStatusEffectConfig.HasLevel = false; return defaultStatusEffectConfig; } } [EntityLogic(typeof(ShouWondersofNatureSeDef))] public sealed class ShouWondersofNatureSe : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<CardsEventArgs>(((StatusEffect)this).Battle.CardsAddedToDiscard, (EventSequencedReactor<CardsEventArgs>)OnAddCard); ((StatusEffect)this).ReactOwnerEvent<CardsEventArgs>(((StatusEffect)this).Battle.CardsAddedToHand, (EventSequencedReactor<CardsEventArgs>)OnAddCard); ((StatusEffect)this).ReactOwnerEvent<CardsEventArgs>(((StatusEffect)this).Battle.CardsAddedToExile, (EventSequencedReactor<CardsEventArgs>)OnAddCard); ((StatusEffect)this).ReactOwnerEvent<CardsAddingToDrawZoneEventArgs>(((StatusEffect)this).Battle.CardsAddedToDrawZone, (EventSequencedReactor<CardsAddingToDrawZoneEventArgs>)OnCardsAddedToDrawZone); } private IEnumerable<BattleAction> OnAddCard(CardsEventArgs args) { Card[] cards = args.Cards; foreach (Card card in cards) { if (card is ShouGemstoneCard && card.CanUpgradeAndPositive) { yield return (BattleAction)new UpgradeCardAction(card); } } } private IEnumerable<BattleAction> OnCardsAddedToDrawZone(CardsAddingToDrawZoneEventArgs args) { Card[] cards = args.Cards; foreach (Card card in cards) { if (card is ShouGemstoneCard && card.CanUpgradeAndPositive) { yield return (BattleAction)new UpgradeCardAction(card); } } } } public class SampleCharacterStatusEffectTemplate : StatusEffectTemplate { public override IdContainer GetId() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) return IdContainer.op_Implicit(SampleCharacterDefaultConfig.DefaultID((EntityDefinition)(object)this)); } public override LocalizationOption LoadLocalization() { return (LocalizationOption)(object)SampleCharacterLocalization.StatusEffectsBatchLoc.AddEntity((EntityDefinition)(object)this); } public override Sprite LoadSprite() { return SampleCharacterImageLoader.LoadStatusEffectLoader((StatusEffectTemplate)(object)this); } public override StatusEffectConfig MakeConfig() { return GetDefaultStatusEffectConfig(); } public static StatusEffectConfig GetDefaultStatusEffectConfig(EntityDefinition entity = null) { return SampleCharacterDefaultConfig.DefaultStatusEffectConfig(entity); } } } namespace ShouMod.Patches { [HarmonyPatch] internal class CustomGameEventManager { public static GameEvent<BuffAttackEventArgs> PreCustomEvent { get; set; } public static GameEvent<BuffAttackEventArgs> PostCustomEvent { get; set; } [HarmonyPatch(typeof(GameRunController), "EnterBattle")] private static bool Prefix(GameRunController __instance) { PreCustomEvent = new GameEvent<BuffAttackEventArgs>(); PostCustomEvent = new GameEvent<BuffAttackEventArgs>(); return true; } } } namespace ShouMod.model { public sealed class SampleCharacterModel : UnitModelTemplate { public static bool useInGameModel = BepinexPlugin.useInGameModel; public static string model_name = (useInGameModel ? BepinexPlugin.modelName : "ShouModel.png"); public static string spellsprite_name = "ShouStand.png"; public override IdContainer GetId() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) return IdContainer.op_Implicit(BepinexPlugin.modUniqueID); } public override LocalizationOption LoadLocalization() { return (LocalizationOption)(object)SampleCharacterLocalization.UnitModelBatchLoc.AddEntity((EntityDefinition)(object)this); } public override ModelOption LoadModelOptions() { //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) //IL_0053: Expected O, but got Unknown //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown if (useInGameModel) { return new ModelOption(ResourcesHelper.LoadSpineUnitAsync(model_name)); } return new ModelOption(ResourceLoader.LoadSpriteAsync(model_name, BepinexPlugin.directorySource, 265, (GraphicsFormat)4, 1, (FilterMode)1, (SpriteMeshType)1, (Rect?)null, (Vector2?)null, "file://")); } public override UniTask<Sprite> LoadSpellSprite() { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) if (useInGameModel) { return ResourcesHelper.LoadSpellPortraitAsync(model_name); } return ResourceLoader.LoadSpriteAsync(spellsprite_name, BepinexPlugin.directorySource, 100, (GraphicsFormat)4, 1, (FilterMode)1, (SpriteMeshType)1, (Rect?)null, (Vector2?)null, "file://"); } public override UnitModelConfig MakeConfig() { //IL_0057: Unknown result type (might be due to invalid IL or missing references) if (useInGameModel) { UnitModelConfig val = ObjectExtensions.Copy<UnitModelConfig>(UnitModelConfig.FromName(model_name)); val.Flip = BepinexPlugin.modelIsFlipped; return val; } UnitModelConfig val2 = ObjectExtensions.Copy<UnitModelConfig>(((UnitModelTemplate)this).DefaultConfig()); val2.Flip = BepinexPlugin.modelIsFlipped; val2.Type = 0; val2.Offset = new Vector2(-0.2f, -0.7f); val2.HasSpellPortrait = true; return val2; } } } namespace ShouMod.Localization { public sealed class SampleCharacterLocalization { public static string Cards = "Cards"; public static string Exhibits = "Exhibits"; public static string PlayerUnit = "PlayerUnit"; public static string EnemiesUnit = "EnemyUnit"; public static string UnitModel = "UnitModel"; public static string UltimateSkills = "UltimateSkills"; public static string StatusEffects = "StatusEffects"; public static BatchLocalization CardsBatchLoc = new BatchLocalization((IResourceSource)(object)BepinexPlugin.directorySource, typeof(CardTemplate), Cards, (Locale)0, false); public static BatchLocalization ExhibitsBatchLoc = new BatchLocalization((IResourceSource)(object)BepinexPlugin.directorySource, typeof(ExhibitTemplate), Exhibits, (Locale)0, false); public static BatchLocalization PlayerUnitBatchLoc = new BatchLocalization((IResourceSource)(object)BepinexPlugin.directorySource, typeof(PlayerUnitTemplate), PlayerUnit, (Locale)0, false); public static BatchLocalization EnemiesUnitBatchLoc = new BatchLocalization((IResourceSource)(object)BepinexPlugin.directorySource, typeof(EnemyUnitTemplate), EnemiesUnit, (Locale)0, false); public static BatchLocalization UnitModelBatchLoc = new BatchLocalization((IResourceSource)(object)BepinexPlugin.directorySource, typeof(UnitModelTemplate), UnitModel, (Locale)0, false); public static BatchLocalization UltimateSkillsBatchLoc = new BatchLocalization((IResourceSource)(object)BepinexPlugin.directorySource, typeof(UltimateSkillTemplate), UltimateSkills, (Locale)0, false); public static BatchLocalization StatusEffectsBatchLoc = new BatchLocalization((IResourceSource)(object)BepinexPlugin.directorySource, typeof(StatusEffectTemplate), StatusEffects, (Locale)0, false); public static void Init() { CardsBatchLoc.DiscoverAndLoadLocFiles(Cards); ExhibitsBatchLoc.DiscoverAndLoadLocFiles(Exhibits); PlayerUnitBatchLoc.DiscoverAndLoadLocFiles(PlayerUnit); EnemiesUnitBatchLoc.DiscoverAndLoadLocFiles(EnemiesUnit); UnitModelBatchLoc.DiscoverAndLoadLocFiles(UnitModel); UltimateSkillsBatchLoc.DiscoverAndLoadLocFiles(UltimateSkills); StatusEffectsBatchLoc.DiscoverAndLoadLocFiles(StatusEffects); } } } namespace ShouMod.ImageLoader { public sealed class SampleCharacterImageLoader { public static string file_extension = ".png"; public static PlayerImages LoadPlayerImages(string name) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown PlayerImages val = new PlayerImages(); val.AutoLoad(name, (Func<string, Sprite>)((string s) => ResourceLoader.LoadSprite(s, (IResourceSource)(object)BepinexPlugin.directorySource, 100, 1, (FilterMode)1, true, (Rect?)null, (Vector2?)null)), (Func<string, UniTask<Sprite>>)((string s) => ResourceLoader.LoadSpriteAsync(s, BepinexPlugin.directorySource, 100, (GraphicsFormat)4, 1, (FilterMode)1, (SpriteMeshType)1, (Rect?)null, (Vector2?)null, "file://")), (UseSame)2, ".png", ""); return val; } public static CardImages LoadCardImages(CardTemplate cardTemplate) { //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, file_extension, "", false); return val; } public static ExhibitSprites LoadExhibitSprite(ExhibitTemplate exhibit) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0009: Unknown result type (might be due to invalid IL or missing references) ExhibitSprites val = new ExhibitSprites(); val.main = ResourceLoader.LoadSprite(IdContainer.op_Implicit(((EntityDefinition)exhibit).GetId()) + file_extension, BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null); return val; } public static Sprite LoadUltLoader(UltimateSkillTemplate ult) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) return LoadSprite(((EntityDefinition)ult).GetId()); } public static Sprite LoadStatusEffectLoader(StatusEffectTemplate status) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) return LoadSprite(((EntityDefinition)status).GetId()); } public static Sprite LoadSprite(IdContainer ID) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) return ResourceLoader.LoadSprite(IdContainer.op_Implicit(ID) + file_extension, BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null); } } } namespace ShouMod.GunName { public static class GunNameID { private static IReadOnlyList<GunConfig> gunConfig = GunConfig.AllConfig(); public static string GetGunFromId(int id) { string text = ""; try { return (from config in gunConfig where config.Id == id select config.Name).ToList()[0]; } catch { Debug.Log((object)("id: " + id + " doesn't exist. Check whether the ID is correct.")); return "Instant"; } } } } namespace ShouMod.Exhibits { public class SampleCharacterExhibitTemplate : ExhibitTemplate { public override IdContainer GetId() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) return IdContainer.op_Implicit(SampleCharacterDefaultConfig.DefaultID((EntityDefinition)(object)this)); } public override LocalizationOption LoadLocalization() { return (LocalizationOption)(object)SampleCharacterLocalization.ExhibitsBatchLoc.AddEntity((EntityDefinition)(object)this); } public override ExhibitSprites LoadSprite() { return SampleCharacterImageLoader.LoadExhibitSprite((ExhibitTemplate)(object)this); } public override ExhibitConfig MakeConfig() { return GetDefaultExhibitConfig(); } public ExhibitConfig GetDefaultExhibitConfig() { return SampleCharacterDefaultConfig.GetDefaultExhibitConfig(); } } public sealed class ShouDullPagodaDef : SampleCharacterExhibitTemplate { public override ExhibitConfig MakeConfig() { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) ExhibitConfig defaultExhibitConfig = GetDefaultExhibitConfig(); defaultExhibitConfig.Value1 = 1; ManaGroup value = default(ManaGroup); ((ManaGroup)(ref value)).Philosophy = 1; defaultExhibitConfig.Mana = value; defaultExhibitConfig.BaseManaColor = (ManaColor)4; defaultExhibitConfig.RelativeEffects = new List<string> { "Firepower" }; return defaultExhibitConfig; } } [EntityLogic(typeof(ShouDullPagodaDef))] public sealed class ShouDullPagoda : ShiningExhibit { protected override void OnEnterBattle() { ((Exhibit)this).ReactBattleEvent<GameEventArgs>(((Exhibit)this).Battle.BattleStarted, (EventSequencedReactor<GameEventArgs>)OnBattleStarted); } private IEnumerable<BattleAction> OnBattleStarted(GameEventArgs args) { <>n__0(); yield return (BattleAction)new GainManaAction(((Exhibit)this).Mana); yield return (BattleAction)(object)new ApplyStatusEffectAction<Firepower>((Unit)(object)((Exhibit)this).Owner, (int?)1, (int?)null, (int?)null, (int?)null, 0f, true); } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((Exhibit)this).NotifyActivating(); } } public sealed class ShouMouseBasketDef : SampleCharacterExhibitTemplate { public override ExhibitConfig MakeConfig() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) ExhibitConfig defaultExhibitConfig = GetDefaultExhibitConfig(); defaultExhibitConfig.Value1 = 1; defaultExhibitConfig.Value2 = 1; ManaGroup value = default(ManaGroup); ((ManaGroup)(ref value)).White = 1; defaultExhibitConfig.Mana = value; defaultExhibitConfig.BaseManaColor = (ManaColor)1; defaultExhibitConfig.HasCounter = true; defaultExhibitConfig.InitialCounter = 0; defaultExhibitConfig.RelativeCards = new List<string> { "ShouNazrinTeammate" }; return defaultExhibitConfig; } } [EntityLogic(typeof(ShouMouseBasketDef))] public sealed class ShouMouseBasket : ShiningExhibit { protected override void OnEnterBattle() { ((Exhibit)this).ReactBattleEvent<UnitEventArgs>(((Unit)((Exhibit)this).Battle.Player).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarted); } private IEnumerable<BattleAction> OnPlayerTurnStarted(GameEventArgs args) { if (((Unit)((Exhibit)this).Battle.Player).TurnCounter == 1) { <>n__0(); Card card = (Card)(object)Library.CreateCard<ShouNazrinTeammate>(false); card.IsRetain = true; yield return (BattleAction)new AddCardsToHandAction((Card[])(object)new Card[1] { card }); } } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((Exhibit)this).NotifyActivating(); } } } namespace ShouMod.Enemies { public sealed class SampleCharacterEnemyGroupDef : SampleCharacterEnemyGroupTemplate { public override IdContainer GetId() { //IL_0005: Unknown result type (might be due to invalid IL or missing references) return IdContainer.op_Implicit("SampleCharacterMod"); } public override EnemyGroupConfig MakeConfig() { EnemyGroupConfig enemyGroupDefaultConfig = GetEnemyGroupDefaultConfig(); enemyGroupDefaultConfig.Name = "SampleCharacterMod"; enemyGroupDefaultConfig.FormationName = "Single"; enemyGroupDefaultConfig.Enemies = new List<string> { "SampleCharacterMod" }; enemyGroupDefaultConfig.EnemyType = (EnemyType)3; enemyGroupDefaultConfig.RollBossExhibit = true; return enemyGroupDefaultConfig; } } public sealed class SampleCharacterEnemyUnitDef : SampleCharacterEnemyUnitTemplate { public override IdContainer GetId() { //IL_0005: Unknown result type (might be due to invalid IL or missing references) return IdContainer.op_Implicit("SampleCharacterMod"); } public override EnemyUnitConfig MakeConfig() { //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) EnemyUnitConfig enemyUnitDefaultConfig = GetEnemyUnitDefaultConfig(); enemyUnitDefaultConfig.IsPreludeOpponent = BepinexPlugin.enableAct1Boss.Value; enemyUnitDefaultConfig.BaseManaColor = new List<ManaColor> { (ManaColor)1 }; enemyUnitDefaultConfig.Type = (EnemyType)3; enemyUnitDefaultConfig.MaxHp = 250; enemyUnitDefaultConfig.MaxHpHard = 255; enemyUnitDefaultConfig.MaxHpLunatic = 260; enemyUnitDefaultConfig.Damage1 = 10; enemyUnitDefaultConfig.Damage1Hard = 11; enemyUnitDefaultConfig.Damage1Lunatic = 12; enemyUnitDefaultConfig.Damage2 = 15; enemyUnitDefaultConfig.Damage2Hard = 16; enemyUnitDefaultConfig.Damage2Lunatic = 17; enemyUnitDefaultConfig.Damage3 = 20; enemyUnitDefaultConfig.Damage3Hard = 21; enemyUnitDefaultConfig.Damage3Lunatic = 22; enemyUnitDefaultConfig.Damage4 = 25; enemyUnitDefaultConfig.Damage4Hard = 26; enemyUnitDefaultConfig.Damage4Lunatic = 27; enemyUnitDefaultConfig.Defend = 10; enemyUnitDefaultConfig.DefendHard = 11; enemyUnitDefaultConfig.DefendLunatic = 12; enemyUnitDefaultConfig.Count1 = 1; enemyUnitDefaultConfig.Count1Hard = 1; enemyUnitDefaultConfig.Count1Lunatic = 2; enemyUnitDefaultConfig.Count2 = 1; enemyUnitDefaultConfig.Count2Hard = 1; enemyUnitDefaultConfig.Count2Lunatic = 2; enemyUnitDefaultConfig.PowerLoot = new MinMax(100, 100); enemyUnitDefaultConfig.BluePointLoot = new MinMax(100, 100); enemyUnitDefaultConfig.Gun1 = new List<string> { GunNameID.GetGunFromId(800) }; enemyUnitDefaultConfig.Gun2 = new List<string> { GunNameID.GetGunFromId(800) }; enemyUnitDefaultConfig.Gun3 = new List<string> { GunNameID.GetGunFromId(800) }; enemyUnitDefaultConfig.Gun4 = new List<string> { GunNameID.GetGunFromId(800) }; return enemyUnitDefaultConfig; } } [EntityLogic(typeof(SampleCharacterEnemyUnitDef))] public sealed class SampleCharacterMod : EnemyUnit { private enum MoveType { BasicAttack, BasicDefend } private MoveType Last { get; set; } private MoveType Next { get; set; } public string BasicAttackMove => ((EnemyUnit)this).GetSpellCardName((int?)0, 0); public string BasicDefendMove => ((EnemyUnit)this).GetSpellCardName((int?)0, 1); protected override void OnEnterBattle(BattleController battle) { Last = MoveType.BasicDefend; Next = MoveType.BasicAttack; } protected override IEnumerable<IEnemyMove> GetTurnMoves() { switch (Next) { case MoveType.BasicAttack: yield return ((EnemyUnit)this).AttackMove(BasicAttackMove, ((EnemyUnit)this).Gun1, ((EnemyUnit)this).Damage1, 1, false, "Instant", false); Last = MoveType.BasicAttack; break; case MoveType.BasicDefend: yield return (IEnemyMove)new SimpleEnemyMove(Intention.Defend().WithMoveName(((EnemyUnit)this).GetMove(1)), BasicDefendAction()); Last = MoveType.BasicDefend; break; } } private IEnumerable<BattleAction> BasicDefendAction() { yield return (BattleAction)new EnemyMoveAction((EnemyUnit)(object)this, ((EnemyUnit)this).GetMove(1), true); yield return (BattleAction)new CastBlockShieldAction((Unit)(object)this, ((EnemyUnit)this).Defend, 0, (BlockShieldType)1, true); } protected override void UpdateMoveCounters() { Next = ((Last == MoveType.BasicAttack) ? MoveType.BasicDefend : MoveType.BasicAttack); } } } namespace ShouMod.Enemies.Template { public abstract class SampleCharacterEnemyGroupTemplate : EnemyGroupTemplate { public override IdContainer GetId() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) return IdContainer.op_Implicit(SampleCharacterDefaultConfig.DefaultID((EntityDefinition)(object)this)); } public override EnemyGroupConfig MakeConfig() { return SampleCharacterDefaultConfig.GetEnemyGroupDefaultConfig(); } public EnemyGroupConfig GetEnemyGroupDefaultConfig() { return SampleCharacterDefaultConfig.GetEnemyGroupDefaultConfig(); } } public class SampleCharacterEnemyUnitTemplate : EnemyUnitTemplate { public override IdContainer GetId() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) return IdContainer.op_Implicit(SampleCharacterDefaultConfig.DefaultID((EntityDefinition)(object)this)); } public override EnemyUnitConfig MakeConfig() { return SampleCharacterDefaultConfig.GetEnemyUnitDefaultConfig(); } public override LocalizationOption LoadLocalization() { return (LocalizationOption)(object)SampleCharacterLocalization.EnemiesUnitBatchLoc.AddEntity((EntityDefinition)(object)this); } public override Type TemplateType() { return typeof(EnemyUnitTemplate); } public EnemyUnitConfig GetEnemyUnitDefaultConfig() { return SampleCharacterDefaultConfig.GetEnemyUnitDefaultConfig(); } } } namespace ShouMod.Source.Config { public sealed class GemstoneEffect : SampleCharacterStatusEffectTemplate { public override IdContainer GetId() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) return IdContainer.op_Implicit("GemstoneStatus"); } [DontOverwrite] public override Sprite LoadSprite() { return null; } public override StatusEffectConfig MakeConfig() { return SampleCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig(); } } [EntityLogic(typeof(GemstoneEffect))] public sealed class GemstoneStatus : StatusEffect { } public static class ShouKeyword { public static CardKeyword Gemstone = new CardKeyword("GemstoneStatus", false) { descPos = (KwDescPos)1 }; } } namespace ShouMod.Config { public sealed class SampleCharacterDefaultConfig { private static readonly string OwnerName = BepinexPlugin.modUniqueID; public static string DefaultID(EntityDefinition entity) { if (entity == null) { return ""; } string name = ((object)entity).GetType().Name; return name.Remove(name.Length - 3); } public static CardConfig GetCardDefaultConfig() { //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Expected O, but got Unknown return new CardConfig(0, "", 10, true, new string[0][], "", "", 0, false, true, false, true, true, (Rarity)0, (CardType)0, (TargetType?)null, (IReadOnlyList<ManaColor>)new List<ManaColor>(), false, default(ManaGroup), (ManaGroup?)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, (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>(), (IReadOnlyList<string>)new List<string>(), OwnerName, "", "", false, (string)null, (IReadOnlyList<string>)new List<string>()); } public static ExhibitConfig GetDefaultExhibitConfig() { //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Expected O, but got Unknown return new ExhibitConfig(0, "", 10, false, false, false, false, (AppearanceType)3, OwnerName, (ExhibitLosableType)1, (Rarity)3, (int?)null, (int?)null, (int?)null, (ManaGroup?)default(ManaGroup), (ManaColor?)null, (ManaColor?)(ManaColor)1, 1, false, (int?)null, (Keyword)0, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>()); } public static StatusEffectConfig DefaultStatusEffectConfig(EntityDefinition entity) { //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Expected O, but got Unknown return new StatusEffectConfig(0, "", 10, (StatusEffectType)0, false, true, (int?)null, true, (StackType?)(StackType)0, false, (StackType?)(StackType)0, (DurationDecreaseTiming)0, false, (StackType?)(StackType)3, (StackType?)(StackType)3, false, (Keyword)0, (IReadOnlyList<string>)new List<string>(), (string)null, "Default", "Default", "Default"); } public static UltimateSkillConfig GetDefaultUltConfig() { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Expected O, but got Unknown return new UltimateSkillConfig("", 10, 100, 100, 2, (UsRepeatableType)1, 1, 0, 0, (Keyword)256, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>()); } public static EnemyUnitConfig GetEnemyUnitDefaultConfig() { //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Expected O, but got Unknown return new EnemyUnitConfig("", false, false, (IReadOnlyList<ManaColor>)new List<ManaColor> { (ManaColor)6 }, 10, "", "#ffff", (EnemyType)3, true, (float?)null, (int?)null, 250, (int?)10, (int?)10, (int?)10, (int?)10, (int?)1, (int?)15, (int?)1, (int?)2, (int?)250, (int?)10, (int?)10, (int?)10, (int?)10, (int?)1, (int?)15, (int?)1, (int?)2, (int?)250, (int?)10, (int?)10, (int?)10, (int?)10, (int?)1, (int?)15, (int?)1, (int?)2, new MinMax(100, 100), new MinMax(100, 100), (IReadOnlyList<string>)new List<string> { GunNameID.GetGunFromId(800) }, (IReadOnlyList<string>)new List<string> { GunNameID.GetGunFromId(800) }, (IReadOnlyList<string>)new List<string> { GunNameID.GetGunFromId(800) }, (IReadOnlyList<string>)new List<string> { GunNameID.GetGunFromId(800) }); } public static EnemyGroupConfig GetEnemyGroupDefaultConfig() { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Expected O, but got Unknown return new EnemyGroupConfig("", false, (IReadOnlyList<string>)new List<string>(), "", "Single", (IReadOnlyList<string>)new List<string>(), (EnemyType)3, true, 1f, true, new Vector2(-4f, 0.5f), "", "", (string)null); } } } namespace ShouMod.Cards { public sealed class ShouHungryTigerDef : SampleCharacterCardTemplate { 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) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.GunName = GunNameID.GetGunFromId(400); cardDefaultConfig.IsPooled = false; cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)3 }; ManaGroup cost = default(ManaGroup); ((ManaGroup)(ref cost)).Any = 2; ((ManaGroup)(ref cost)).Black = 1; cardDefaultConfig.Cost = cost; cardDefaultConfig.Rarity = (Rarity)1; cardDefaultConfig.Type = (CardType)1; cardDefaultConfig.TargetType = (TargetType)1; cardDefaultConfig.Damage = 18; cardDefaultConfig.UpgradedDamage = 21; cardDefaultConfig.Value1 = 10; cardDefaultConfig.Keywords = (Keyword)65536; cardDefaultConfig.UpgradedKeywords = (Keyword)65792; cardDefaultConfig.Illustrator = "茨木童子"; cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig); return cardDefaultConfig; } } [EntityLogic(typeof(ShouHungryTigerDef))] public sealed class ShouHungryTiger : SampleCharacterCard { 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 && !args.Unit.HasStatusEffect<Servant>()) { yield return ((Card)this).HealAction(((Card)this).Value1); } } } public sealed class ShouScorchedEarthMandalaDef : SampleCharacterCardTemplate { public override CardConfig MakeConfig() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)3 }; ManaGroup val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 2; ((ManaGroup)(ref val)).Black = 1; cardDefaultConfig.Cost = val; val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 1; ((ManaGroup)(ref val)).Black = 1; cardDefaultConfig.UpgradedCost = val; cardDefaultConfig.Rarity = (Rarity)1; cardDefaultConfig.Type = (CardType)4; cardDefaultConfig.TargetType = (TargetType)4; cardDefaultConfig.Value1 = 4; cardDefaultConfig.UpgradedValue1 = 5; cardDefaultConfig.Value2 = 1; cardDefaultConfig.UpgradedValue2 = 2; cardDefaultConfig.RelativeEffects = new List<string> { "ShouVigorSe", "ShouResonanceSe", "ShouScorchedEarthMandalaSe" }; cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "ShouVigorSe", "ShouResonanceSe", "ShouScorchedEarthMandalaSe" }; cardDefaultConfig.Illustrator = "ぶるぅぎ"; cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig); return cardDefaultConfig; } } [EntityLogic(typeof(ShouScorchedEarthMandalaDef))] public sealed class ShouScorchedEarthMandala : SampleCharacterCard { 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).BuffAction<ShouVigorSe>(0, ((Card)this).Value2, 0, 0, 0.2f); yield return ((Card)this).BuffAction<ShouScorchedEarthMandalaSe>(((Card)this).Value1, 0, 0, 0, 0.2f); } } public sealed class ShouAmberDef : SampleCharacterCardTemplate { public override CardConfig MakeConfig() { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_004f: 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_0068: Unknown result type (might be due to invalid IL or missing references) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.GunName = GunNameID.GetGunFromId(400); cardDefaultConfig.IsPooled = false; cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)1, (ManaColor)5 }; ManaGroup val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 1; cardDefaultConfig.Cost = val; val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 0; cardDefaultConfig.UpgradedCost = val; cardDefaultConfig.Rarity = (Rarity)2; cardDefaultConfig.Type = (CardType)3; cardDefaultConfig.TargetType = (TargetType)4; cardDefaultConfig.ToolPlayableTimes = 1; cardDefaultConfig.Value1 = 3; cardDefaultConfig.Keywords = (Keyword)8388608; cardDefaultConfig.UpgradedKeywords = (Keyword)8388608; cardDefaultConfig.RelativeEffects = new List<string> { "ShouGemstoneReferenceSe" }; cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "ShouGemstoneReferenceSe" }; cardDefaultConfig.Illustrator = "Radal"; cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig); return cardDefaultConfig; } } [EntityLogic(typeof(ShouAmberDef))] public sealed class ShouAmber : ShouGemstoneCard { public override void Initialize() { ((Card)this).Initialize(); ((Card)this).DeckCounter = ((Card)this).ToolPlayableTimes; } 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).HealAction(((Card)this).Value1); ((Card)this).DeckCounter = ((Card)this).DeckCounter - 1; if (((Card)this).DeckCounter <= 0) { yield return (BattleAction)new ExileCardAction((Card)(object)this); } } } public sealed class ShouDiamondDef : SampleCharacterCardTemplate { public override CardConfig MakeConfig() { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_004f: 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_0068: Unknown result type (might be due to invalid IL or missing references) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.GunName = GunNameID.GetGunFromId(400); cardDefaultConfig.IsPooled = false; cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)1, (ManaColor)2 }; ManaGroup val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 1; cardDefaultConfig.Cost = val; val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 0; cardDefaultConfig.UpgradedCost = val; cardDefaultConfig.Rarity = (Rarity)2; cardDefaultConfig.Type = (CardType)3; cardDefaultConfig.TargetType = (TargetType)4; cardDefaultConfig.Value1 = 2; cardDefaultConfig.ToolPlayableTimes = 1; cardDefaultConfig.Keywords = (Keyword)8388608; cardDefaultConfig.UpgradedKeywords = (Keyword)8388608; cardDefaultConfig.RelativeEffects = new List<string> { "ShouGemstoneReferenceSe" }; cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "ShouGemstoneReferenceSe" }; cardDefaultConfig.Illustrator = "Radal"; cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig); return cardDefaultConfig; } } [EntityLogic(typeof(ShouDiamondDef))] public sealed class ShouDiamond : ShouGemstoneCard { public override void Initialize() { ((Card)this).Initialize(); ((Card)this).DeckCounter = ((Card)this).ToolPlayableTimes; } 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).BuffAction<Amulet>(((Card)this).Value1, 0, 0, 0, 0.2f); yield return ((Card)this).BuffAction<AmuletForCard>(((Card)this).Value1, 0, 0, 0, 0.2f); ((Card)this).DeckCounter = ((Card)this).DeckCounter - 1; if (((Card)this).DeckCounter <= 0) { yield return (BattleAction)new ExileCardAction((Card)(object)this); } } } public sealed class ShouEmeraldDef : SampleCharacterCardTemplate { 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_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.GunName = GunNameID.GetGunFromId(400); cardDefaultConfig.IsPooled = false; cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)5 }; ManaGroup val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 1; cardDefaultConfig.Cost = val; val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 0; cardDefaultConfig.UpgradedCost = val; cardDefaultConfig.Rarity = (Rarity)1; cardDefaultConfig.Type = (CardType)3; cardDefaultConfig.TargetType = (TargetType)4; val = default(ManaGroup); ((ManaGroup)(ref val)).Philosophy = 2; ((ManaGroup)(ref val)).Colorless = 1; cardDefaultConfig.Mana = val; cardDefaultConfig.ToolPlayableTimes = 1; cardDefaultConfig.Keywords = (Keyword)8388608; cardDefaultConfig.UpgradedKeywords = (Keyword)8388608; cardDefaultConfig.RelativeEffects = new List<string> { "ShouGemstoneReferenceSe" }; cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "ShouGemstoneReferenceSe" }; cardDefaultConfig.Illustrator = "Radal"; cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig); return cardDefaultConfig; } } [EntityLogic(typeof(ShouEmeraldDef))] public sealed class ShouEmerald : ShouGemstoneCard { public override void Initialize() { ((Card)this).Initialize(); ((Card)this).DeckCounter = ((Card)this).ToolPlayableTimes; } 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)new GainManaAction(((Card)this).Mana); ((Card)this).DeckCounter = ((Card)this).DeckCounter - 1; if (((Card)this).DeckCounter <= 0) { yield return (BattleAction)new ExileCardAction((Card)(object)this); } } } public sealed class ShouOnyxDef : SampleCharacterCardTemplate { 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_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.GunName = GunNameID.GetGunFromId(400); cardDefaultConfig.IsPooled = false; cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)3 }; ManaGroup val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 1; cardDefaultConfig.Cost = val; val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 0; cardDefaultConfig.UpgradedCost = val; cardDefaultConfig.Rarity = (Rarity)0; cardDefaultConfig.Type = (CardType)2; cardDefaultConfig.TargetType = (TargetType)4; cardDefaultConfig.Block = 10; cardDefaultConfig.UpgradedBlock = 10; cardDefaultConfig.ToolPlayableTimes = 3; cardDefaultConfig.Keywords = (Keyword)8388608; cardDefaultConfig.UpgradedKeywords = (Keyword)8388608; cardDefaultConfig.RelativeEffects = new List<string> { "ShouGemstoneReferenceSe" }; cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "ShouGemstoneReferenceSe" }; cardDefaultConfig.Illustrator = "Radal"; cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig); return cardDefaultConfig; } } [EntityLogic(typeof(ShouOnyxDef))] public sealed class ShouOnyx : ShouGemstoneCard { public override void Initialize() { ((Card)this).Initialize(); ((Card)this).DeckCounter = ((Card)this).ToolPlayableTimes; } 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); ((Card)this).DeckCounter = ((Card)this).DeckCounter - 1; if (((Card)this).DeckCounter <= 0) { yield return (BattleAction)new ExileCardAction((Card)(object)this); } } } public sealed class ShouOpalDef : SampleCharacterCardTemplate { public override CardConfig MakeConfig() { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_004f: 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_0068: Unknown result type (might be due to invalid IL or missing references) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.GunName = GunNameID.GetGunFromId(400); cardDefaultConfig.IsPooled = false; cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)2, (ManaColor)4 }; ManaGroup val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 1; cardDefaultConfig.Cost = val; val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 0; cardDefaultConfig.UpgradedCost = val; cardDefaultConfig.Rarity = (Rarity)1; cardDefaultConfig.Type = (CardType)3; cardDefaultConfig.TargetType = (TargetType)4; cardDefaultConfig.Value1 = 2; cardDefaultConfig.ToolPlayableTimes = 1; cardDefaultConfig.Keywords = (Keyword)8388608; cardDefaultConfig.UpgradedKeywords = (Keyword)8388608; cardDefaultConfig.RelativeEffects = new List<string> { "ShouGemstoneReferenceSe" }; cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "ShouGemstoneReferenceSe" }; cardDefaultConfig.Illustrator = "Radal"; cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig); return cardDefaultConfig; } } [EntityLogic(typeof(ShouOpalDef))] public sealed class ShouOpal : ShouGemstoneCard { public override void Initialize() { ((Card)this).Initialize(); ((Card)this).DeckCounter = ((Card)this).ToolPlayableTimes; } 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)new DrawManyCardAction(((Card)this).Value1); ((Card)this).DeckCounter = ((Card)this).DeckCounter - 1; if (((Card)this).DeckCounter <= 0) { yield return (BattleAction)new ExileCardAction((Card)(object)this); } } } public sealed class ShouPearlDef : SampleCharacterCardTemplate { 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_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.GunName = GunNameID.GetGunFromId(400); cardDefaultConfig.IsPooled = false; cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)1 }; ManaGroup val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 1; cardDefaultConfig.Cost = val; val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 0; cardDefaultConfig.UpgradedCost = val; cardDefaultConfig.Rarity = (Rarity)0; cardDefaultConfig.Type = (CardType)2; cardDefaultConfig.TargetType = (TargetType)4; cardDefaultConfig.Shield = 6; cardDefaultConfig.UpgradedShield = 6; cardDefaultConfig.ToolPlayableTimes = 2; cardDefaultConfig.Keywords = (Keyword)8388608; cardDefaultConfig.UpgradedKeywords = (Keyword)8388608; cardDefaultConfig.RelativeEffects = new List<string> { "ShouGemstoneReferenceSe" }; cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "ShouGemstoneReferenceSe" }; cardDefaultConfig.Illustrator = "Radal"; cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig); return cardDefaultConfig; } } [EntityLogic(typeof(ShouPearlDef))] public sealed class ShouPearl : ShouGemstoneCard { public override void Initialize() { ((Card)this).Initialize(); ((Card)this).DeckCounter = ((Card)this).ToolPlayableTimes; } 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); ((Card)this).DeckCounter = ((Card)this).DeckCounter - 1; if (((Card)this).DeckCounter <= 0) { yield return (BattleAction)new ExileCardAction((Card)(object)this); } } } public sealed class ShouRubyDef : SampleCharacterCardTemplate { 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_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.GunName = GunNameID.GetGunFromId(400); cardDefaultConfig.IsPooled = false; cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)4 }; ManaGroup val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 1; cardDefaultConfig.Cost = val; val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 0; cardDefaultConfig.UpgradedCost = val; cardDefaultConfig.Rarity = (Rarity)0; cardDefaultConfig.Type = (CardType)1; cardDefaultConfig.TargetType = (TargetType)1; cardDefaultConfig.Damage = 10; cardDefaultConfig.UpgradedDamage = 10; cardDefaultConfig.ToolPlayableTimes = 3; cardDefaultConfig.Keywords = (Keyword)8388608; cardDefaultConfig.UpgradedKeywords = (Keyword)8388608; cardDefaultConfig.RelativeEffects = new List<string> { "ShouGemstoneReferenceSe" }; cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "ShouGemstoneReferenceSe" }; cardDefaultConfig.Illustrator = "Radal"; cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig); return cardDefaultConfig; } } [EntityLogic(typeof(ShouRubyDef))] public sealed class ShouRuby : ShouGemstoneCard { public override void Initialize() { ((Card)this).Initialize(); ((Card)this).DeckCounter = ((Card)this).ToolPlayableTimes; } 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).AttackAction(selector, ((Card)this).GunName); ((Card)this).DeckCounter = ((Card)this).DeckCounter - 1; if (((Card)this).DeckCounter <= 0) { yield return (BattleAction)new ExileCardAction((Card)(object)this); } } } public sealed class ShouSapphireDef : SampleCharacterCardTemplate { 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_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.GunName = GunNameID.GetGunFromId(400); cardDefaultConfig.IsPooled = false; cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)2 }; ManaGroup val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 1; cardDefaultConfig.Cost = val; val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 0; cardDefaultConfig.UpgradedCost = val; cardDefaultConfig.Rarity = (Rarity)0; cardDefaultConfig.Type = (CardType)1; cardDefaultConfig.TargetType = (TargetType)2; cardDefaultConfig.Damage = 7; cardDefaultConfig.UpgradedDamage = 7; cardDefaultConfig.ToolPlayableTimes = 2; cardDefaultConfig.Keywords = (Keyword)8388608; cardDefaultConfig.UpgradedKeywords = (Keyword)8388608; cardDefaultConfig.RelativeEffects = new List<string> { "ShouGemstoneReferenceSe" }; cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "ShouGemstoneReferenceSe" }; cardDefaultConfig.Illustrator = "Radal"; cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig); return cardDefaultConfig; } } [EntityLogic(typeof(ShouSapphireDef))] public sealed class ShouSapphire : ShouGemstoneCard { public override void Initialize() { ((Card)this).Initialize(); ((Card)this).DeckCounter = ((Card)this).ToolPlayableTimes; } 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).AttackAction(selector, ((Card)this).GunName); ((Card)this).DeckCounter = ((Card)this).DeckCounter - 1; if (((Card)this).DeckCounter <= 0) { yield return (BattleAction)new ExileCardAction((Card)(object)this); } } } public sealed class ShouAmberblastDef : SampleCharacterCardTemplate { public override CardConfig MakeConfig() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)5 }; ManaGroup cost = default(ManaGroup); ((ManaGroup)(ref cost)).Any = 1; ((ManaGroup)(ref cost)).Green = 1; cardDefaultConfig.Cost = cost; cardDefaultConfig.Rarity = (Rarity)1; cardDefaultConfig.Type = (CardType)1; cardDefaultConfig.TargetType = (TargetType)1; cardDefaultConfig.Damage = 15; cardDefaultConfig.UpgradedDamage = 20; cardDefaultConfig.Value2 = 2; cardDefaultConfig.UpgradedValue2 = 2; cardDefaultConfig.Illustrator = ""; cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig); return cardDefaultConfig; } } [EntityLogic(typeof(ShouAmberblastDef))] public sealed class ShouAmberblast : SampleCharacterCard { 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).AttackAction(selector, (GunPair)null); List<ShouAmberblast> list = Library.CreateCards<ShouAmberblast>(2, ((Card)this).IsUpgraded).ToList(); ShouAmberblast first = list[0]; ShouAmberblast gemChoice = list[1]; ((Card)first).ChoiceCardIndicator = 1; ((Card)gemChoice).ChoiceCardIndicator = 2; ((Card)first).SetBattle(((Card)this).Battle); ((Card)gemChoice).SetBattle(((Card)this).Battle); MiniSelectCardInteraction interaction = new MiniSelectCardInteraction((IEnumerable<Card>)list, false, false, false) { Source = (GameEntity)(object)this }; yield return (BattleAction)new InteractionAction((Interaction)(object)interaction, false); if (interaction.SelectedCard == first) { yield return (BattleAction)new AddCardsToHandAction((IEnumerable<Card>)Library.CreateCards<ShouEmerald>(((Card)this).Value2, false), (AddCardsType)0); yield return (BattleAction)new AddCardsToDiscardAction((IEnumerable<Card>)Library.CreateCards<ShouAmber>(((Card)this).Value2, false), (AddCardsType)0); } else { yield return (BattleAction)new AddCardsToHandAction((IEnumerable<Card>)Library.CreateCards<ShouAmber>(((Card)this).Value2, false), (AddCardsType)0); yield return (BattleAction)new AddCardsToDiscardAction((IEnumerable<Card>)Library.CreateCards<ShouEmerald>(((Card)this).Value2, false), (AddCardsType)0); } } } public sealed class ShouPrimalPowerDef : SampleCharacterCardTemplate { public override CardConfig MakeConfig() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)5 }; ManaGroup val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 2; ((ManaGroup)(ref val)).Green = 1; cardDefaultConfig.Cost = val; val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 1; ((ManaGroup)(ref val)).Green = 1; cardDefaultConfig.UpgradedCost = val; cardDefaultConfig.Rarity = (Rarity)1; cardDefaultConfig.Type = (CardType)3; cardDefaultConfig.TargetType = (TargetType)4; cardDefaultConfig.Value1 = 5; cardDefaultConfig.UpgradedValue1 = 6; val = default(ManaGroup); ((ManaGroup)(ref val)).Philosophy = 1; cardDefaultConfig.Mana = val; cardDefaultConfig.RelativeEffects = new List<string> { "ShouPrimalPowerSe", "ShouResonanceSe" }; cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "ShouPrimalPowerSe", "ShouResonanceSe" }; cardDefaultConfig.Keywords = (Keyword)65536; cardDefaultConfig.UpgradedKeywords = (Keyword)65536; cardDefaultConfig.Illustrator = "Radal"; ca