Decompiled source of Yoshika Miyako v0.2.3
Yoshika_Miyako.dll
Decompiled a month 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.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.StatusEffects; using LBoL.Core.Units; using LBoL.EntityLib.Cards.Character.Cirno; using LBoL.EntityLib.Cards.Enemy; using LBoL.EntityLib.Cards.Neutral.Black; using LBoL.EntityLib.Cards.Neutral.NoColor; using LBoL.EntityLib.Cards.Tool; using LBoL.EntityLib.Exhibits; using LBoL.EntityLib.Exhibits.Shining; using LBoL.EntityLib.StatusEffects.Basic; using LBoL.EntityLib.StatusEffects.Cirno; using LBoL.EntityLib.StatusEffects.Enemy; using LBoL.EntityLib.StatusEffects.Others; using LBoL.Presentation; using LBoLEntitySideloader; using LBoLEntitySideloader.Attributes; using LBoLEntitySideloader.Entities; using LBoLEntitySideloader.Resource; using LBoLEntitySideloader.Utils; using UnityEngine; using UnityEngine.Experimental.Rendering; using Yoshika_Miyako.Source.Cards.Template; using Yoshika_Miyako.Source.Config; using Yoshika_Miyako.Source.GunName; using Yoshika_Miyako.Source.ImageLoader; using Yoshika_Miyako.Source.Loadouts; using Yoshika_Miyako.Source.Localization; using Yoshika_Miyako.Source.Player; using Yoshika_Miyako.Source.StatusEffects; [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("Yoshika_Miyako")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Yoshika_Miyako")] [assembly: AssemblyTitle("Yoshika_Miyako")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace Yoshika_Miyako { [BepInPlugin("xeno.lbol.character.Yoshika_Miyako", "Yoshika_Miyako", "0.2.3")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInProcess("LBoL.exe")] public class BepinexPlugin : BaseUnityPlugin { public static string modUniqueID = "Yoshika_Miyako"; public static string playerName = "Yoshika"; public static bool useInGameModel = false; public static string model_name = "Youmu"; public static bool model_is_flipped = true; 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("xeno.lbol.character.Yoshika_Miyako", ""); private void Awake() { log = ((BaseUnityPlugin)this).Logger; 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(); } } private void OnDestroy() { if (harmony != null) { harmony.UnpatchSelf(); } } } public static class PInfo { public const string GUID = "xeno.lbol.character.Yoshika_Miyako"; public const string Name = "Yoshika_Miyako"; public const string version = "0.2.3"; public static readonly Harmony harmony = new Harmony("xeno.lbol.character.Yoshika_Miyako"); } internal class WatermarkWrapper { [MethodImpl(MethodImplOptions.NoInlining)] internal static void ActivateWatermark() { API.ActivateWatermark(); } } } namespace Yoshika_Miyako.Source.UltimateSkills { public sealed class YoshikaUltADef : YoshikaUltTemplate { public override UltimateSkillConfig MakeConfig() { UltimateSkillConfig defaulUltConfig = GetDefaulUltConfig(); defaulUltConfig.Damage = 15; defaulUltConfig.Value1 = 2; defaulUltConfig.RelativeEffects = new List<string> { "TempFirepower" }; return defaulUltConfig; } } [EntityLogic(typeof(YoshikaUltADef))] public sealed class YoshikaUltA : UltimateSkill { public YoshikaUltA() { ((UltimateSkill)this).TargetType = (TargetType)2; ((UltimateSkill)this).GunName = GunNameID.GetGunFromId(4532); } protected override IEnumerable<BattleAction> Actions(UnitSelector selector) { List<Card> hand = ((UltimateSkill)this).Battle.HandZone.ToList(); if (hand.Count > 0) { yield return (BattleAction)new ExileManyCardAction((IEnumerable<Card>)hand); yield return (BattleAction)(object)new ApplyStatusEffectAction<TempFirepower>((Unit)(object)((UltimateSkill)this).Owner, (int?)(((UltimateSkill)this).Value1 * hand.Count), (int?)0, (int?)0, (int?)0, 0.2f, false); yield return (BattleAction)new HealAction((Unit)(object)((UltimateSkill)this).Owner, (Unit)(object)((UltimateSkill)this).Owner, ((UltimateSkill)this).Value1 * hand.Count, (HealType)0, 0.2f); } EnemyUnit[] enemies = selector.GetEnemies(((UltimateSkill)this).Battle); yield return (BattleAction)new DamageAction((Unit)(object)((UltimateSkill)this).Owner, (IEnumerable<Unit>)(object)enemies, ((UltimateSkill)this).Damage, ((UltimateSkill)this).GunName, (GunType)0); } } public sealed class YoshikaUltBDef : YoshikaUltTemplate { public override UltimateSkillConfig MakeConfig() { UltimateSkillConfig defaulUltConfig = GetDefaulUltConfig(); defaulUltConfig.Damage = 19; defaulUltConfig.Value1 = 8; defaulUltConfig.RelativeEffects = new List<string> { "Poison" }; return defaulUltConfig; } } [EntityLogic(typeof(YoshikaUltBDef))] public sealed class YoshikaUltB : UltimateSkill { public YoshikaUltB() { ((UltimateSkill)this).TargetType = (TargetType)1; ((UltimateSkill)this).GunName = GunNameID.GetGunFromId(7191); } protected override IEnumerable<BattleAction> Actions(UnitSelector selector) { EnemyUnit enemy2 = selector.GetEnemy(((UltimateSkill)this).Battle); yield return (BattleAction)new DamageAction((Unit)(object)((UltimateSkill)this).Owner, (Unit)(object)enemy2, ((UltimateSkill)this).Damage, ((UltimateSkill)this).GunName, (GunType)0); if (((Unit)enemy2).IsAlive) { yield return (BattleAction)(object)new ApplyStatusEffectAction<Poison>((Unit)(object)enemy2, (int?)((UltimateSkill)this).Value1, (int?)0, (int?)0, (int?)0, 0.2f, true); } foreach (EnemyUnit enemyUnit in ((UltimateSkill)this).Battle.AllAliveEnemies.Where((EnemyUnit enemy) => ((Unit)enemy).HasStatusEffect<Poison>())) { if (((UltimateSkill)this).Battle.BattleShouldEnd) { yield break; } foreach (BattleAction item in ((Unit)enemyUnit).GetStatusEffect<Poison>().TakeEffect()) { yield return item; } } foreach (EnemyUnit enemyUnit2 in ((UltimateSkill)this).Battle.AllAliveEnemies.Where((EnemyUnit enemy) => ((Unit)enemy).HasStatusEffect<PermaPoison>())) { if (((UltimateSkill)this).Battle.BattleShouldEnd) { yield break; } foreach (BattleAction item2 in ((Unit)enemyUnit2).GetStatusEffect<PermaPoison>().TakeEffect()) { yield return item2; } } } } public class YoshikaUltTemplate : 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(YoshikaDefaultConfig.GetDefaultID((EntityDefinition)(object)this)); } public override LocalizationOption LoadLocalization() { return (LocalizationOption)(object)YoshikaLocalization.UltimateSkillsBatchLoc.AddEntity((EntityDefinition)(object)this); } public override Sprite LoadSprite() { return YoshikaImageLoader.LoadUltLoader((UltimateSkillTemplate)(object)this); } public override UltimateSkillConfig MakeConfig() { throw new NotImplementedException(); } public UltimateSkillConfig GetDefaulUltConfig() { return YoshikaDefaultConfig.GetDefaultUltConfig(); } } } namespace Yoshika_Miyako.Source.StatusEffects { public sealed class IgnoreEnemyDebuffDef : YoshikaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = false; defaultStatusEffectConfig.HasDuration = true; return defaultStatusEffectConfig; } public override Sprite LoadSprite() { return ResourceLoader.LoadSprite("IgnoreEnemyDebuff.png", BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null); } } [EntityLogic(typeof(IgnoreEnemyDebuffDef))] public sealed class IgnoreEnemyDebuff : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<StatusEffectApplyEventArgs>(((StatusEffect)this).Owner.StatusEffectAdding, (EventSequencedReactor<StatusEffectApplyEventArgs>)OnStatusEffectAdding); ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((Unit)((StatusEffect)this).Battle.Player).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnTurnStarted); } private IEnumerable<BattleAction> OnStatusEffectAdding(StatusEffectApplyEventArgs args) { if ((int)((GameEventArgs)args).Cause == 17) { ((StatusEffect)this).NotifyActivating(); if (!((GameEventArgs)args).IsCanceled && !((StatusEffect)this).Owner.HasStatusEffect<Amulet>()) { ((GameEventArgs)args).CancelBy((GameEntity)(object)this); } } else if ((int)((GameEventArgs)args).Cause == 7 && (args.Effect is Vulnerable || args.Effect is Poison || args.Effect is LockedOn || args.Effect is TurnStartPurify)) { ((StatusEffect)this).NotifyActivating(); if (!((GameEventArgs)args).IsCanceled && !((StatusEffect)this).Owner.HasStatusEffect<Amulet>()) { ((GameEventArgs)args).CancelBy((GameEntity)(object)this); } } yield break; } private IEnumerable<BattleAction> OnTurnStarted(UnitEventArgs args) { ((StatusEffect)this).Duration = ((StatusEffect)this).Duration - 1; if (((StatusEffect)this).Duration == 0) { yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f); } } } public sealed class NextTurnLoseHpOwnerDef : YoshikaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.Type = (StatusEffectType)1; return defaultStatusEffectConfig; } public override Sprite LoadSprite() { return ResourceLoader.LoadSprite("NextTurnLoseHpOwner.png", BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null); } } [EntityLogic(typeof(NextTurnLoseHpOwnerDef))] public sealed class NextTurnLoseHpOwner : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((Unit)((StatusEffect)this).Battle.Player).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarted); } private IEnumerable<BattleAction> OnPlayerTurnStarted(UnitEventArgs args) { if (!((StatusEffect)this).Battle.BattleShouldEnd) { <>n__0(); yield return (BattleAction)new DamageAction(((StatusEffect)this).Owner, ((StatusEffect)this).Owner, DamageInfo.HpLose((float)((StatusEffect)this).Level, false), "Instant", (GunType)0); yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f); } } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } public sealed class PermaPoisonDef : YoshikaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.Type = (StatusEffectType)2; defaultStatusEffectConfig.SFX = "Poison"; return defaultStatusEffectConfig; } public override Sprite LoadSprite() { return ResourceLoader.LoadSprite("PermaPoison.png", BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null); } } [EntityLogic(typeof(PermaPoisonDef))] public sealed class PermaPoison : StatusEffect { protected override void OnAdded(Unit unit) { if (unit is EnemyUnit) { ((StatusEffect)this).ReactOwnerEvent<GameEventArgs>(((StatusEffect)this).Battle.AllEnemyTurnStarted, (EventSequencedReactor<GameEventArgs>)OnAllEnemyTurnStarted); ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnEnemyTurnStarted); } else { ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarted); } } private IEnumerable<BattleAction> OnAllEnemyTurnStarted(GameEventArgs args) { return TakeEffect(); } private IEnumerable<BattleAction> OnEnemyTurnStarted(UnitEventArgs args) { Unit owner = ((StatusEffect)this).Owner; if (owner == null || !owner.IsExtraTurn) { yield break; } foreach (BattleAction item in TakeEffect()) { yield return item; } } private IEnumerable<BattleAction> OnPlayerTurnStarted(UnitEventArgs args) { return TakeEffect(); } public IEnumerable<BattleAction> TakeEffect() { if (((StatusEffect)this).Owner != null && !((StatusEffect)this).Battle.BattleShouldEnd) { <>n__0(); yield return (BattleAction)(object)DamageAction.LoseLife(((StatusEffect)this).Owner, ((StatusEffect)this).Level, "Poison"); int num = ((StatusEffect)this).Level - 1; ((StatusEffect)this).Level = num; if (((StatusEffect)this).Level == 0) { yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f); } } } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } public sealed class RegenerationDef : YoshikaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { return YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig(); } public override Sprite LoadSprite() { return ResourceLoader.LoadSprite("Regeneration.png", BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null); } } [EntityLogic(typeof(RegenerationDef))] public sealed class Regeneration : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarted); } private IEnumerable<BattleAction> OnPlayerTurnStarted(UnitEventArgs args) { yield return (BattleAction)new HealAction(((StatusEffect)this).Owner, ((StatusEffect)this).Owner, ((StatusEffect)this).Level, (HealType)0, 0.2f); int num = ((((StatusEffect)this).Level != 1) ? (((StatusEffect)this).Level / 2) : 0); ((StatusEffect)this).Level = num; if (((StatusEffect)this).Level == 0) { yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f); } } } public sealed class StackDrowningDef : YoshikaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.Type = (StatusEffectType)1; return defaultStatusEffectConfig; } public override Sprite LoadSprite() { return ResourceLoader.LoadSprite("StackDrowning.png", BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null); } } [EntityLogic(typeof(StackDrowningDef))] public sealed class StackDrowning : StatusEffect { public override string UnitEffectName => "DrowningLoop"; protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnEnded, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnEnded); } private IEnumerable<BattleAction> OnOwnerTurnEnded(UnitEventArgs args) { if (((StatusEffect)this).Owner != null && !((StatusEffect)this).Battle.BattleShouldEnd) { <>n__0(); yield return (BattleAction)(object)DamageAction.Reaction(((StatusEffect)this).Owner, ((StatusEffect)this).Level, (((StatusEffect)this).Level >= 15) ? "溺水BuffB" : "溺水BuffA"); } } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } public class YoshikaStatusEffectTemplate : 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(YoshikaDefaultConfig.GetDefaultID((EntityDefinition)(object)this)); } public override LocalizationOption LoadLocalization() { return (LocalizationOption)(object)YoshikaLocalization.StatusEffectsBatchLoc.AddEntity((EntityDefinition)(object)this); } public override Sprite LoadSprite() { return YoshikaImageLoader.LoadStatusEffectLoader((StatusEffectTemplate)(object)this); } public override StatusEffectConfig MakeConfig() { return GetDefaultStatusEffectConfig(); } public static StatusEffectConfig GetDefaultStatusEffectConfig() { return YoshikaDefaultConfig.GetDefaultStatusEffectConfig(); } } public sealed class StinkyTofuDef : YoshikaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.Type = (StatusEffectType)1; return defaultStatusEffectConfig; } public override Sprite LoadSprite() { return ResourceLoader.LoadSprite("StinkyTofu.png", BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null); } } [EntityLogic(typeof(StinkyTofuDef))] public sealed class StinkyTofu : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<GameEventArgs>(((StatusEffect)this).Battle.BattleEnding, (EventSequencedReactor<GameEventArgs>)OnBattleEnding); } private IEnumerable<BattleAction> OnBattleEnding(GameEventArgs args) { if (((Unit)((StatusEffect)this).Battle.Player).IsAlive) { <>n__0(); yield return (BattleAction)new DamageAction((Unit)(object)((StatusEffect)this).Battle.Player, (Unit)(object)((StatusEffect)this).Battle.Player, DamageInfo.HpLose((float)((StatusEffect)this).Level, false), "Sacrifice", (GunType)0); } } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } public sealed class TextFengyinDef : YoshikaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.Type = (StatusEffectType)1; return defaultStatusEffectConfig; } } [EntityLogic(typeof(TextFengyinDef))] public sealed class TextFengyin : StatusEffect { } public sealed class TextYuyukoDeathDef : YoshikaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.Type = (StatusEffectType)2; return defaultStatusEffectConfig; } } [EntityLogic(typeof(TextYuyukoDeathDef))] public sealed class TextYuyukoDeath : StatusEffect { } public sealed class YoshikaDeathDamageSeDef : YoshikaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { return YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig(); } } [EntityLogic(typeof(YoshikaDeathDamageSeDef))] public sealed class YoshikaDeathDamageSe : StatusEffect { public DamageInfo LilyDamage => new DamageInfo((float)((StatusEffect)this).Level, (DamageType)2, false, true, false); protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarted); } private IEnumerable<BattleAction> OnPlayerTurnStarted(UnitEventArgs args) { if (((StatusEffect)this).Battle.BattleShouldEnd) { yield break; } <>n__0(); IEnumerable<EnemyUnit> enemyUnits = ((StatusEffect)this).Battle.AllAliveEnemies; foreach (EnemyUnit unit in enemyUnits) { yield return (BattleAction)new DamageAction(((StatusEffect)this).Owner, (Unit)(object)unit, LilyDamage, GunNameID.GetGunFromId(4531), (GunType)0); } } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } public sealed class YoshikaDeathFlawlessSeDef : YoshikaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.Type = (StatusEffectType)2; defaultStatusEffectConfig.HasCount = true; return defaultStatusEffectConfig; } } [EntityLogic(typeof(YoshikaDeathFlawlessSeDef))] public sealed class YoshikaDeathFlawlessSe : StatusEffect { 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>)OnPlayerTurnStarted); } private IEnumerable<BattleAction> OnDamageReceived(DamageEventArgs args) { DamageInfo damageInfo = args.DamageInfo; int num; if ((int)((DamageInfo)(ref damageInfo)).DamageType != 0) { damageInfo = args.DamageInfo; num = ((((DamageInfo)(ref damageInfo)).Damage > 0f) ? 1 : 0); } else { num = 1; } if (num != 0 && ((StatusEffect)this).Count != 0) { ((StatusEffect)this).Count = ((StatusEffect)this).Count - 1; } yield break; } private IEnumerable<BattleAction> OnPlayerTurnStarted(UnitEventArgs args) { if (((StatusEffect)this).Count != 0) { <>n__0(); if (((StatusEffect)this).Owner.HasStatusEffect<InvincibleEternal>()) { yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)((StatusEffect)this).Owner.GetStatusEffect<InvincibleEternal>(), true, 0.1f); } if (((StatusEffect)this).Owner.HasStatusEffect<Invincible>()) { yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)((StatusEffect)this).Owner.GetStatusEffect<Invincible>(), true, 0.1f); } yield return (BattleAction)new DamageAction(((StatusEffect)this).Owner, ((StatusEffect)this).Owner, DamageInfo.Reaction(9999f, false), "Instant", (GunType)0); Unit owner = ((StatusEffect)this).Owner; if (owner != null && !owner.IsDead) { yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f); } } else { ((StatusEffect)this).Count = ((StatusEffect)this).Level; } } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } public sealed class YoshikaFirepowerBleedSeDef : YoshikaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { return YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig(); } } [EntityLogic(typeof(YoshikaFirepowerBleedSeDef))] public sealed class YoshikaFirepowerBleedSe : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<DamageEventArgs>(((Unit)((StatusEffect)this).Battle.Player).DamageDealt, (EventSequencedReactor<DamageEventArgs>)OnDamageDealt); } private IEnumerable<BattleAction> OnDamageDealt(DamageEventArgs args) { DamageInfo damageInfo = args.DamageInfo; int num; if ((int)((DamageInfo)(ref damageInfo)).DamageType != 0) { damageInfo = args.DamageInfo; num = ((((DamageInfo)(ref damageInfo)).Damage > 0f) ? 1 : 0); } else { num = 1; } if (num != 0 && !((StatusEffect)this).Battle.BattleShouldEnd && args.Target != ((StatusEffect)this).Battle.Player) { <>n__0(); yield return (BattleAction)(object)new ApplyStatusEffectAction<TempFirepower>(((StatusEffect)this).Owner, (int?)((StatusEffect)this).Level, (int?)null, (int?)null, (int?)null, 0f, true); } } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } public sealed class YoshikaFirepowerDeathSeDef : YoshikaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { return YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig(); } } [EntityLogic(typeof(YoshikaFirepowerDeathSeDef))] public sealed class YoshikaFirepowerDeathSe : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<DieEventArgs>(((StatusEffect)this).Battle.EnemyDied, (EventSequencedReactor<DieEventArgs>)OnEnemyDied); } private IEnumerable<BattleAction> OnEnemyDied(DieEventArgs arg) { if (!((StatusEffect)this).Battle.BattleShouldEnd) { <>n__0(); yield return (BattleAction)(object)new ApplyStatusEffectAction<Firepower>(((StatusEffect)this).Owner, (int?)((StatusEffect)this).Level, (int?)null, (int?)null, (int?)null, 0f, true); } } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } public sealed class YoshikaFirepowerDrawSeDef : YoshikaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { return YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig(); } } [EntityLogic(typeof(YoshikaFirepowerDrawSeDef))] public sealed class YoshikaFirepowerDrawSe : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<CardUsingEventArgs>(((StatusEffect)this).Battle.CardUsed, (EventSequencedReactor<CardUsingEventArgs>)OnCardUsed); ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnEnded, (EventSequencedReactor<UnitEventArgs>)OnTurnEnded); } public IEnumerable<BattleAction> OnCardUsed(CardUsingEventArgs args) { if (!((StatusEffect)this).Battle.BattleShouldEnd && ((Unit)((StatusEffect)this).Battle.Player).IsInTurn && ((GameEntity)args.Card).Name != ((GameEntity)this).Name) { ((StatusEffect)this).NotifyActivating(); yield return (BattleAction)(object)new ApplyStatusEffectAction<Firepower>(((StatusEffect)this).Owner, (int?)((StatusEffect)this).Level, (int?)null, (int?)null, (int?)null, 0f, true); } } public IEnumerable<BattleAction> OnTurnEnded(UnitEventArgs args) { yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f); } } public sealed class YoshikaFlowerTriggerSeDef : YoshikaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = false; return defaultStatusEffectConfig; } } [EntityLogic(typeof(YoshikaFlowerTriggerSeDef))] public sealed class YoshikaFlowerTriggerSe : 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 (((StatusEffect)this).Battle.BattleShouldEnd || !(args.Card is SummerFlower)) { yield break; } <>n__0(); foreach (EnemyUnit enemyUnit in ((StatusEffect)this).Battle.AllAliveEnemies.Where((EnemyUnit enemy) => ((Unit)enemy).HasStatusEffect<Poison>())) { if (((StatusEffect)this).Battle.BattleShouldEnd) { yield break; } foreach (BattleAction item in ((Unit)enemyUnit).GetStatusEffect<Poison>().TakeEffect()) { yield return item; } } foreach (EnemyUnit enemyUnit2 in ((StatusEffect)this).Battle.AllAliveEnemies.Where((EnemyUnit enemy) => ((Unit)enemy).HasStatusEffect<PermaPoison>())) { if (((StatusEffect)this).Battle.BattleShouldEnd) { yield break; } foreach (BattleAction item2 in ((Unit)enemyUnit2).GetStatusEffect<PermaPoison>().TakeEffect()) { yield return item2; } } } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } public sealed class YoshikaHealBleedSeDef : YoshikaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.HasLevel = false; return defaultStatusEffectConfig; } } [EntityLogic(typeof(YoshikaHealBleedSeDef))] public sealed class YoshikaHealBleedSe : StatusEffect { private readonly int _value3 = 1; public int Value3 => _value3; protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<DamageEventArgs>(((StatusEffect)this).Owner.DamageReceived, (EventSequencedReactor<DamageEventArgs>)OnDamageReceived); } private IEnumerable<BattleAction> OnDamageReceived(DamageEventArgs args) { DamageInfo damageInfo = args.DamageInfo; int num; if ((int)((DamageInfo)(ref damageInfo)).DamageType != 0) { damageInfo = args.DamageInfo; num = ((((DamageInfo)(ref damageInfo)).Damage > 0f) ? 1 : 0); } else { num = 1; } if (num != 0) { <>n__0(); yield return (BattleAction)new HealAction(((StatusEffect)this).Owner, ((StatusEffect)this).Owner, 1, (HealType)0, 0.2f); } } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } public sealed class YoshikaHealSacrificeSeDef : YoshikaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { return YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig(); } } [EntityLogic(typeof(YoshikaHealSacrificeSeDef))] public sealed class YoshikaHealSacrificeSe : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarted); ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((Unit)((StatusEffect)this).Battle.Player).TurnEnding, (EventSequencedReactor<UnitEventArgs>)OnTurnEnding); } private IEnumerable<BattleAction> OnPlayerTurnStarted(UnitEventArgs args) { if (!((StatusEffect)this).Battle.BattleShouldEnd) { <>n__0(); yield return (BattleAction)(object)DamageAction.LoseLife(((StatusEffect)this).Owner, ((StatusEffect)this).Level, "Poison"); } } private IEnumerable<BattleAction> OnTurnEnding(GameEventArgs args) { if (!((StatusEffect)this).Battle.BattleShouldEnd) { <>n__0(); yield return (BattleAction)new HealAction(((StatusEffect)this).Owner, ((StatusEffect)this).Owner, ((StatusEffect)this).Level, (HealType)0, 0.2f); } } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } public sealed class YoshikaManaBleedSeDef : YoshikaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.Type = (StatusEffectType)1; defaultStatusEffectConfig.HasLevel = false; return defaultStatusEffectConfig; } } [EntityLogic(typeof(YoshikaManaBleedSeDef))] public sealed class YoshikaManaBleedSe : StatusEffect { public ManaGroup Mana { get { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) ManaGroup result = default(ManaGroup); ((ManaGroup)(ref result)).Green = 1; ((ManaGroup)(ref result)).Colorless = 1; return result; } } protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<DamageEventArgs>(((StatusEffect)this).Owner.DamageReceived, (EventSequencedReactor<DamageEventArgs>)OnDamageReceived); ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((Unit)((StatusEffect)this).Battle.Player).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarted); } private IEnumerable<BattleAction> OnDamageReceived(DamageEventArgs args) { DamageInfo damageInfo = args.DamageInfo; if (!((DamageInfo)(ref damageInfo)).IsGrazed) { <>n__0(); yield return (BattleAction)new GainManaAction(Mana); } } private IEnumerable<BattleAction> OnPlayerTurnStarted(UnitEventArgs args) { yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f); } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } public sealed class YoshikaPoisonManaGreenSeDef : YoshikaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { return YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig(); } } [EntityLogic(typeof(YoshikaPoisonManaGreenSeDef))] public sealed class YoshikaPoisonManaGreenSe : StatusEffect { public ManaGroup Mana { get { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) ManaGroup result = default(ManaGroup); ((ManaGroup)(ref result)).Green = 1; return result; } } protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<DamageEventArgs>(((StatusEffect)this).Owner.DamageReceived, (EventSequencedReactor<DamageEventArgs>)OnDamageReceived); } private IEnumerable<BattleAction> OnDamageReceived(DamageEventArgs args) { DamageInfo damageInfo = args.DamageInfo; int num; if ((int)((DamageInfo)(ref damageInfo)).DamageType != 0) { damageInfo = args.DamageInfo; num = ((((DamageInfo)(ref damageInfo)).Damage > 0f) ? 1 : 0); } else { num = 1; } if (num != 0) { <>n__0(); ManaGroup val = default(ManaGroup); ((ManaGroup)(ref val)).Green = ((StatusEffect)this).Level; yield return (BattleAction)new GainManaAction(val); } } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } public sealed class YoshikaPoisonManaPhiloSeDef : YoshikaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { return YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig(); } } [EntityLogic(typeof(YoshikaPoisonManaPhiloSeDef))] public sealed class YoshikaPoisonManaPhiloSe : StatusEffect { public ManaGroup Mana { get { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) ManaGroup result = default(ManaGroup); ((ManaGroup)(ref result)).Philosophy = 1; return result; } } protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<DamageEventArgs>(((StatusEffect)this).Owner.DamageReceived, (EventSequencedReactor<DamageEventArgs>)OnDamageReceived); } private IEnumerable<BattleAction> OnDamageReceived(DamageEventArgs args) { DamageInfo damageInfo = args.DamageInfo; int num; if ((int)((DamageInfo)(ref damageInfo)).DamageType != 0) { damageInfo = args.DamageInfo; num = ((((DamageInfo)(ref damageInfo)).Damage > 0f) ? 1 : 0); } else { num = 1; } if (num != 0) { <>n__0(); ManaGroup val = default(ManaGroup); ((ManaGroup)(ref val)).Philosophy = ((StatusEffect)this).Level; yield return (BattleAction)new GainManaAction(val); } } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } public sealed class YoshikaPoisonTriggerMasterSeDef : YoshikaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { return YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig(); } } [EntityLogic(typeof(YoshikaPoisonTriggerMasterSeDef))] public sealed class YoshikaPoisonTriggerMasterSe : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Battle.EnemySpawned, (EventSequencedReactor<UnitEventArgs>)OnEnemySpawned); ((StatusEffect)this).ReactOwnerEvent<DieEventArgs>(((StatusEffect)this).Battle.EnemyDied, (EventSequencedReactor<DieEventArgs>)OnEnemyDied); } private IEnumerable<BattleAction> OnEnemySpawned(UnitEventArgs args) { yield return (BattleAction)(object)new ApplyStatusEffectAction<YoshikaPoisonTriggerSe>(args.Unit, (int?)((StatusEffect)this).Level, (int?)null, (int?)null, (int?)null, 0.2f, true); } private IEnumerable<BattleAction> OnEnemyDied(DieEventArgs args) { if (((StatusEffect)this).Battle.BattleShouldEnd || (int)((GameEventArgs)args).Cause != 7) { yield break; } <>n__0(); EnemyUnit target = ((StatusEffect)this).Battle.RandomAliveEnemy; if (target != null) { yield return (BattleAction)(object)new ApplyStatusEffectAction<Poison>((Unit)(object)target, (int?)((StatusEffect)this).Level, (int?)null, (int?)null, (int?)null, 0.2f, true); target = ((StatusEffect)this).Battle.RandomAliveEnemy; if (target != null) { yield return (BattleAction)(object)new ApplyStatusEffectAction<Poison>((Unit)(object)target, (int?)((StatusEffect)this).Level, (int?)null, (int?)null, (int?)null, 0.2f, true); } } } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } public sealed class YoshikaPoisonTriggerSeDef : YoshikaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.Type = (StatusEffectType)2; return defaultStatusEffectConfig; } } [EntityLogic(typeof(YoshikaPoisonTriggerSeDef))] public sealed class YoshikaPoisonTriggerSe : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<DamageEventArgs>(((StatusEffect)this).Owner.DamageReceived, (EventSequencedReactor<DamageEventArgs>)OnDamageReceived); ((StatusEffect)this).ReactOwnerEvent<StatusEffectEventArgs>(((Unit)((StatusEffect)this).Battle.Player).StatusEffectRemoved, (EventSequencedReactor<StatusEffectEventArgs>)OnStatusEffectRemoved); } private IEnumerable<BattleAction> OnDamageReceived(DamageEventArgs args) { if ((int)((GameEventArgs)args).Cause != 7) { yield break; } DamageInfo damageInfo = args.DamageInfo; int num; if ((int)((DamageInfo)(ref damageInfo)).DamageType != 0) { damageInfo = args.DamageInfo; num = ((((DamageInfo)(ref damageInfo)).Damage > 0f) ? 1 : 0); } else { num = 1; } if (num == 0) { yield break; } <>n__0(); EnemyUnit target = ((StatusEffect)this).Battle.RandomAliveEnemy; if (target != null) { yield return (BattleAction)(object)new ApplyStatusEffectAction<Poison>((Unit)(object)target, (int?)((StatusEffect)this).Level, (int?)null, (int?)null, (int?)null, 0.2f, true); target = ((StatusEffect)this).Battle.RandomAliveEnemy; if (target != null) { yield return (BattleAction)(object)new ApplyStatusEffectAction<Poison>((Unit)(object)target, (int?)((StatusEffect)this).Level, (int?)null, (int?)null, (int?)null, 0.2f, true); } } } private IEnumerable<BattleAction> OnStatusEffectRemoved(StatusEffectEventArgs args) { if (args.Effect is YoshikaPoisonTriggerMasterSe) { yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f); } } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } } namespace Yoshika_Miyako.Source.Player { public sealed class YoshikaPlayerDef : PlayerUnitTemplate { [EntityLogic(typeof(YoshikaPlayerDef))] public sealed class Yoshika_Miyako : 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)YoshikaLocalization.PlayerUnitBatchLoc.AddEntity((EntityDefinition)(object)this); } public override PlayerImages LoadPlayerImages() { return YoshikaImageLoader.LoadPlayerImages(BepinexPlugin.playerName); } public override PlayerUnitConfig MakeConfig() { return YoshikaLoadouts.playerUnitConfig; } } } namespace Yoshika_Miyako.Source.Model { public sealed class Yoshika_MiyakoModel : UnitModelTemplate { public static bool useInGameModel = BepinexPlugin.useInGameModel; public static string model_name = (useInGameModel ? BepinexPlugin.model_name : "YoshikaModel.png"); public static string model_name_zombie = "YoshikaZombieModel.png"; public static string spellsprite_name = "YoshikaStand.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 ((EntityDefinition)new YoshikaPlayerDef()).UniqueId; } public override LocalizationOption LoadLocalization() { return (LocalizationOption)(object)YoshikaLocalization.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, 365, (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.model_is_flipped; return val; } UnitModelConfig val2 = ObjectExtensions.Copy<UnitModelConfig>(((UnitModelTemplate)this).DefaultConfig()); val2.Flip = BepinexPlugin.model_is_flipped; val2.Type = 0; val2.Offset = new Vector2(0f, -0.1f); val2.HasSpellPortrait = true; return val2; } } } namespace Yoshika_Miyako.Source.Localization { public sealed class YoshikaLocalization { public static string Cards = "Cards"; public static string Exhibits = "Exhibits"; public static string PlayerUnit = "PlayerUnit"; 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 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); UnitModelBatchLoc.DiscoverAndLoadLocFiles(UnitModel); UltimateSkillsBatchLoc.DiscoverAndLoadLocFiles(UltimateSkills); StatusEffectsBatchLoc.DiscoverAndLoadLocFiles(StatusEffects); } } } namespace Yoshika_Miyako.Source.Loadouts { public class YoshikaLoadouts { public static string UltimateSkillA = "YoshikaUltA"; public static string UltimateSkillB = "YoshikaUltB"; public static string ExhibitA = "YoshikaExhibitA"; public static string ExhibitB = "YoshikaExhibitB"; public static List<string> DeckA = new List<string> { "Shoot", "Shoot", "Boundary", "Boundary", "YoshikaAttackR", "YoshikaAttackG", "YoshikaBlockB", "YoshikaBlockB", "YoshikaBlockB", "YoshikaStarterR" }; public static List<string> DeckB = new List<string> { "Shoot", "Shoot", "Boundary", "Boundary", "YoshikaAttackR", "YoshikaAttackG", "YoshikaBlockB", "YoshikaBlockB", "YoshikaBlockB", "YoshikaStarterG" }; public static PlayerUnitConfig playerUnitConfig; static YoshikaLoadouts() { //IL_0148: 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_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Expected O, but got Unknown string modUniqueID = BepinexPlugin.modUniqueID; int? num = 0; ManaGroup val = default(ManaGroup); ((ManaGroup)(ref val)).White = 0; ((ManaGroup)(ref val)).Blue = 0; ((ManaGroup)(ref val)).Black = 2; ((ManaGroup)(ref val)).Red = 1; ((ManaGroup)(ref val)).Green = 1; ((ManaGroup)(ref val)).Colorless = 0; ((ManaGroup)(ref val)).Philosophy = 0; playerUnitConfig = new PlayerUnitConfig(modUniqueID, 8, 0, num, "", "#7c66ff", true, 85, val, 2, 0, UltimateSkillA, UltimateSkillB, ExhibitA, ExhibitB, (IReadOnlyList<string>)DeckA, (IReadOnlyList<string>)DeckB, 2, 1); } } } namespace Yoshika_Miyako.Source.ImageLoader { public sealed class YoshikaImageLoader { 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_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Expected O, but got Unknown ExhibitSprites val = new ExhibitSprites(); Func<string, Sprite> func = (string s) => ResourceLoader.LoadSprite(IdContainer.op_Implicit(((EntityDefinition)exhibit).GetId()) + s + file_extension, BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null); val.main = func(""); 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 Yoshika_Miyako.Source.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 Yoshika_Miyako.Source.Exhibits { public class YoshikaExhibitTemplate : 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(YoshikaDefaultConfig.GetDefaultID((EntityDefinition)(object)this)); } public override LocalizationOption LoadLocalization() { return (LocalizationOption)(object)YoshikaLocalization.ExhibitsBatchLoc.AddEntity((EntityDefinition)(object)this); } public override ExhibitSprites LoadSprite() { return YoshikaImageLoader.LoadExhibitSprite((ExhibitTemplate)(object)this); } public override ExhibitConfig MakeConfig() { return GetDefaultExhibitConfig(); } public ExhibitConfig GetDefaultExhibitConfig() { return YoshikaDefaultConfig.GetDefaultExhibitConfig(); } } public sealed class YoshikaExhibitBDef : YoshikaExhibitTemplate { 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)).Green = 1; defaultExhibitConfig.Mana = value; defaultExhibitConfig.BaseManaColor = (ManaColor)5; defaultExhibitConfig.RelativeEffects = new List<string> { "Poison" }; return defaultExhibitConfig; } } [EntityLogic(typeof(YoshikaExhibitBDef))] public sealed class YoshikaExhibitB : ShiningExhibit { protected override void OnGain(PlayerUnit player) { ((ShiningExhibit)this).OnGain(player); List<Card> list = new List<Card> { (Card)(object)Library.CreateCard<ToolAmulet>() }; ((GameEntity)this).GameRun.AddDeckCards((IEnumerable<Card>)list, false, (VisualSourceData)null); } protected override void OnEnterBattle() { foreach (EnemyUnit allAliveEnemy in ((Exhibit)this).Battle.AllAliveEnemies) { ((Exhibit)this).ReactBattleEvent<StatusEffectApplyEventArgs>(((Unit)allAliveEnemy).StatusEffectAdding, (EventSequencedReactor<StatusEffectApplyEventArgs>)OnStatusEffectAdding); } ((Exhibit)this).HandleBattleEvent<UnitEventArgs>(((Exhibit)this).Battle.EnemySpawned, (GameEventHandler<UnitEventArgs>)OnEnemySpawned); } private IEnumerable<BattleAction> OnStatusEffectAdding(StatusEffectApplyEventArgs args) { if (args.Effect is Poison) { ((Exhibit)this).NotifyActivating(); yield return (BattleAction)(object)new ApplyStatusEffectAction<PermaPoison>(args.Unit, args.Level, args.Duration, args.Count, (int?)0, 0.1f, true); if (!args.Unit.HasStatusEffect<Amulet>() && !((GameEventArgs)args).IsCanceled) { ((GameEventArgs)args).CancelBy((GameEntity)(object)this); } else { yield return (BattleAction)(object)new ApplyStatusEffectAction<Amulet>(args.Unit, (int?)1, (int?)0, (int?)0, (int?)0, 0.1f, true); } } } private void OnEnemySpawned(UnitEventArgs args) { ((Exhibit)this).ReactBattleEvent<StatusEffectApplyEventArgs>(args.Unit.StatusEffectAdding, (EventSequencedReactor<StatusEffectApplyEventArgs>)OnStatusEffectAdding); } } public sealed class YoshikaExhibitADef : YoshikaExhibitTemplate { 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 = 5; ManaGroup value = default(ManaGroup); ((ManaGroup)(ref value)).Red = 1; defaultExhibitConfig.Mana = value; defaultExhibitConfig.BaseManaColor = (ManaColor)4; return defaultExhibitConfig; } } [EntityLogic(typeof(YoshikaExhibitADef))] public sealed class YoshikaExhibitA : ShiningExhibit { public ManaGroup HeartMana { get { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) ManaGroup result = default(ManaGroup); ((ManaGroup)(ref result)).Red = 2; return result; } } protected override void OnEnterBattle() { ((Exhibit)this).ReactBattleEvent<UnitEventArgs>(((Unit)((Exhibit)this).Battle.Player).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarted); } private IEnumerable<BattleAction> OnPlayerTurnStarted(UnitEventArgs args) { if (((Unit)((Exhibit)this).Battle.Player).TurnCounter == 2) { ((Exhibit)this).NotifyActivating(); yield return (BattleAction)new HealAction((Unit)(object)((Exhibit)this).Owner, (Unit)(object)((Exhibit)this).Owner, ((Exhibit)this).Value1, (HealType)0, 0.2f); yield return (BattleAction)new GainManaAction(HeartMana); } } } public sealed class YoshikaHandOfGreedDef : YoshikaExhibitTemplate { public override ExhibitConfig MakeConfig() { ExhibitConfig defaultExhibitConfig = GetDefaultExhibitConfig(); defaultExhibitConfig.IsPooled = true; defaultExhibitConfig.Appearance = (AppearanceType)0; defaultExhibitConfig.Owner = ""; defaultExhibitConfig.LosableType = (ExhibitLosableType)0; defaultExhibitConfig.Rarity = (Rarity)1; defaultExhibitConfig.BaseManaColor = null; defaultExhibitConfig.BaseManaAmount = 0; defaultExhibitConfig.Value1 = 25; return defaultExhibitConfig; } } [EntityLogic(typeof(YoshikaHandOfGreedDef))] public sealed class YoshikaHandOfGreed : Exhibit { private class YoshikaHandOfGreedWeighter : IExhibitWeighter { public float WeightFor(Type type, GameRunController gameRun) { if (((GameEntity)gameRun.Player).Id != BepinexPlugin.modUniqueID) { return 0f; } return 1.15f; } } protected override void OnLeaveBattle() { //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Expected O, but got Unknown PlayerUnit owner = ((Exhibit)this).Owner; if (owner != null && ((Unit)owner).IsAlive && ((Unit)owner).Hp <= (((Unit)owner).MaxHp + 1) / 2) { ((GameEntity)this).GameRun.GainMoney(((Exhibit)this).Value1, true, new VisualSourceData { SourceType = (VisualSourceType)7, Source = (GameEntity)(object)this }); ((Exhibit)this).NotifyActivating(); } } } public sealed class YoshikaSpiritSnacksDef : YoshikaExhibitTemplate { public override ExhibitConfig MakeConfig() { ExhibitConfig defaultExhibitConfig = GetDefaultExhibitConfig(); defaultExhibitConfig.IsPooled = true; defaultExhibitConfig.Appearance = (AppearanceType)0; defaultExhibitConfig.Owner = ""; defaultExhibitConfig.LosableType = (ExhibitLosableType)0; defaultExhibitConfig.Rarity = (Rarity)1; defaultExhibitConfig.BaseManaColor = null; defaultExhibitConfig.BaseManaAmount = 0; defaultExhibitConfig.Value1 = 7; defaultExhibitConfig.RelativeEffects = new List<string> { "Regeneration" }; return defaultExhibitConfig; } } [EntityLogic(typeof(YoshikaSpiritSnacksDef))] public sealed class YoshikaSpiritSnacks : Exhibit { private class YoshikaSpiritSnacksWeighter : IExhibitWeighter { public float WeightFor(Type type, GameRunController gameRun) { if (((GameEntity)gameRun.Player).Id != BepinexPlugin.modUniqueID) { return 0f; } return 1.15f; } } protected override void OnEnterBattle() { ((Exhibit)this).Active = true; ((Exhibit)this).ReactBattleEvent<DamageEventArgs>(((Unit)((Exhibit)this).Battle.Player).DamageReceived, (EventSequencedReactor<DamageEventArgs>)OnPlayerDamageReceived); } private IEnumerable<BattleAction> OnPlayerDamageReceived(DamageEventArgs args) { int num; if (((Exhibit)this).Active) { DamageInfo damageInfo = args.DamageInfo; num = ((((DamageInfo)(ref damageInfo)).Damage > 0f) ? 1 : 0); } else { num = 0; } if (num != 0) { <>n__0(); ((Exhibit)this).Active = false; yield return (BattleAction)(object)new ApplyStatusEffectAction<Regeneration>((Unit)(object)((Exhibit)this).Owner, (int?)((Exhibit)this).Value1, (int?)null, (int?)null, (int?)null, 0.2f, true); } } protected override void OnLeaveBattle() { ((Exhibit)this).Active = false; } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((Exhibit)this).NotifyActivating(); } } } namespace Yoshika_Miyako.Source.Config { public sealed class YoshikaDefaultConfig { private static readonly string OwnerName = BepinexPlugin.modUniqueID; public static string GetDefaultID(EntityDefinition entity) { 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_0160: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Expected O, but got Unknown return new CardConfig(0, "", 10, true, new string[0][], "", "", 0, false, true, true, false, true, (Rarity)0, (CardType)0, (TargetType?)null, (IReadOnlyList<ManaColor>)new List<ManaColor>(), false, default(ManaGroup), (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)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 GetDefaultStatusEffectConfig() { //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Expected O, but got Unknown return new StatusEffectConfig(0, "", 10, (StatusEffectType)0, false, true, (int?)null, 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>(), "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>()); } } } namespace Yoshika_Miyako.Source.Cards.Uncommon { public sealed class YoshikaAttackBleedDef : YoshikaCardTemplate { public override CardConfig MakeConfig() { //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_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.GunName = GunNameID.GetGunFromId(12090); cardDefaultConfig.GunNameBurst = GunNameID.GetGunFromId(12091); cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)4 }; ManaGroup val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 4; ((ManaGroup)(ref val)).Red = 1; cardDefaultConfig.Cost = val; cardDefaultConfig.Rarity = (Rarity)1; cardDefaultConfig.Type = (CardType)1; cardDefaultConfig.TargetType = (TargetType)1; cardDefaultConfig.Damage = 32; cardDefaultConfig.UpgradedDamage = 44; val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 1; cardDefaultConfig.Mana = val; cardDefaultConfig.Keywords = (Keyword)2097408; cardDefaultConfig.UpgradedKeywords = (Keyword)2097408; cardDefaultConfig.RelativeKeyword = (Keyword)1099511627776L; cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)1099511627776L; cardDefaultConfig.Illustrator = ""; cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig); return cardDefaultConfig; } } [EntityLogic(typeof(YoshikaAttackBleedDef))] public sealed class YoshikaAttackBleed : YoshikaCard { protected override void OnEnterBattle(BattleController battle) { ((Card)this).ReactBattleEvent<DamageEventArgs>(((Unit)((Card)this).Battle.Player).DamageReceived, (EventSequencedReactor<DamageEventArgs>)OnDamageReceived); } private IEnumerable<BattleAction> OnDamageReceived(DamageEventArgs args) { if ((int)((Card)this).Zone != 2) { yield break; } DamageInfo damageInfo = args.DamageInfo; if ((int)((DamageInfo)(ref damageInfo)).DamageType == 0) { ((Card)this).DecreaseTurnCost(((Card)this).Mana); yield break; } damageInfo = args.DamageInfo; if (((DamageInfo)(ref damageInfo)).Damage > 0f) { ((Card)this).DecreaseTurnCost(((Card)this).Mana); } } protected override IEnumerable<BattleAction> Actions(UnitSelector selector, ManaGroup consumingMana, Interaction precondition) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) yield return (BattleAction)(object)PerformAction.Gun((Unit)(object)((Card)this).Battle.Player, (Unit)(object)selector.GetEnemy(((Card)this).Battle), ((Card)this).IsUpgraded ? GunNameID.GetGunFromId(12021) : GunNameID.GetGunFromId(12020), 0f); yield return ((Card)this).AttackAction(selector, ((Card)this).GunName); } } public sealed class YoshikaAttackPoisonDef : YoshikaCardTemplate { public override CardConfig MakeConfig() { //IL_0030: 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) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.GunName = GunNameID.GetGunFromId(853); 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 = 4; cardDefaultConfig.UpgradedDamage = 6; cardDefaultConfig.Value1 = 3; cardDefaultConfig.Value2 = 6; cardDefaultConfig.UpgradedValue2 = 9; cardDefaultConfig.RelativeEffects = new List<string> { "Poison", "TempFirepowerNegative" }; cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Poison", "TempFirepowerNegative" }; cardDefaultConfig.Illustrator = ""; cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig); return cardDefaultConfig; } } [EntityLogic(typeof(YoshikaAttackPoisonDef))] public sealed class YoshikaAttackPoison : YoshikaCard { 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) EnemyUnit target = selector.GetEnemy(((Card)this).Battle); bool Poisoned = ((Unit)target).HasStatusEffect<Poison>() || ((Unit)target).HasStatusEffect<PermaPoison>(); if (Poisoned) { yield return (BattleAction)(object)PerformAction.Gun((Unit)(object)((Card)this).Battle.Player, (Unit)(object)selector.GetEnemy(((Card)this).Battle), GunNameID.GetGunFromId(4700), 0f); } yield return (BattleAction)(object)PerformAction.Gun((Unit)(object)((Card)this).Battle.Player, (Unit)(object)selector.GetEnemy(((Card)this).Battle), ((Card)this).IsUpgraded ? GunNameID.GetGunFromId(7202) : GunNameID.GetGunFromId(7200), 0f); yield return (BattleAction)(object)PerformAction.Gun((Unit)(object)((Card)this).Battle.Player, (Unit)(object)selector.GetEnemy(((Card)this).Battle), ((Card)this).IsUpgraded ? GunNameID.GetGunFromId(7203) : GunNameID.GetGunFromId(7201), 0f); for (int i = 0; i < ((Card)this).Value1; i++) { yield return ((Card)this).AttackAction((Unit)(object)target); } if (!Poisoned) { yield break; } foreach (BattleAction item in ((Card)this).DebuffAction<TempFirepowerNegative>((IEnumerable<Unit>)((Card)this).Battle.AllAliveEnemies, ((Card)this).Value2, 0, 0, 0, true, 0.1f)) { yield return item; } } } public sealed class YoshikaAttackRandomDef : YoshikaCardTemplate { public override CardConfig MakeConfig() { //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.GunName = GunNameID.GetGunFromId(7100); cardDefaultConfig.GunNameBurst = GunNameID.GetGunFromId(7101); cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)4 }; ManaGroup cost = default(ManaGroup); ((ManaGroup)(ref cost)).Any = 3; ((ManaGroup)(ref cost)).Red = 1; cardDefaultConfig.Cost = cost; cardDefaultConfig.Rarity = (Rarity)1; cardDefaultConfig.Type = (CardType)1; cardDefaultConfig.TargetType = (TargetType)2; cardDefaultConfig.Damage = 9; cardDefaultConfig.UpgradedDamage = 8; cardDefaultConfig.Value1 = 2; cardDefaultConfig.UpgradedValue1 = 3; cardDefaultConfig.Value2 = 12; cardDefaultConfig.UpgradedValue2 = 18; cardDefaultConfig.Illustrator = ""; cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig); return cardDefaultConfig; } } [EntityLogic(typeof(YoshikaAttackRandomDef))] public sealed class YoshikaAttackRandom : YoshikaCard { 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) for (int i = 0; i < ((Card)this).Value1; i++) { yield return ((Card)this).AttackAction((Unit)(object)((Card)this).Battle.RandomAliveEnemy); } yield return (BattleAction)new DamageAction((Unit)(object)((Card)this).Battle.Player, (IEnumerable<Unit>)(object)selector.GetEnemies(((Card)this).Battle), new DamageInfo(0f, (DamageType)1, false, false, false), ((Card)this).IsUpgraded ? GunNameID.GetGunFromId(23011) : GunNameID.GetGunFromId(23010), (GunType)0); foreach (BattleAction item in ((Card)this).DebuffAction<NextTurnLoseHpOwner>((IEnumerable<Unit>)((Card)this).Battle.AllAliveEnemies, ((Card)this).Value2, 0, 0, 0, true, 0.1f)) { yield return item; } } } public sealed class YoshikaBleedDamageDef : YoshikaCardTemplate { public override CardConfig MakeConfig() { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)3, (ManaColor)5 }; cardDefaultConfig.Cost = default(ManaGroup); cardDefaultConfig.Rarity = (Rarity)1; cardDefaultConfig.Type = (CardType)3; cardDefaultConfig.TargetType = (TargetType)4; cardDefaultConfig.Value1 = 3; cardDefaultConfig.Value2 = 2; cardDefaultConfig.Keywords = (Keyword)2162688; cardDefaultConfig.UpgradedKeywords = (Keyword)2162688; cardDefaultConfig.Illustrator = ""; cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 280301; return cardDefaultConfig; } } [EntityLogic(typeof(YoshikaBleedDamageDef))] public sealed class YoshikaBleedDamage : YoshikaCard { protected override void OnEnterBattle(BattleController battle) { ((Card)this).HandleBattleEvent<HealEventArgs>(((Unit)((Card)this).Battle.Player).HealingReceived, (GameEventHandler<HealEventArgs>)OnHealingReceived, (GameEventPriority)0); ((Card)this).HandleBattleEvent<DamageEventArgs>(((Unit)((Card)this).Battle.Player).DamageReceived, (GameEventHandler<DamageEventArgs>)OnDamageReceived, (GameEventPriority)0); ((Card)this).ReactBattleEvent<UnitEventArgs>(((Unit)((Card)this).Battle.Player).TurnEnding, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnEnding); } private void OnHealingReceived(HealEventArgs args) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Invalid comparison between Unknown and I4 if ((int)((Card)this).Zone == 2) { ((Card)this).DeltaValue1 = ((Card)this).DeltaValue1 + ((Card)this).Value2; } } private void OnDamageReceived(DamageEventArgs args) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Invalid comparison between Unknown and I4 //IL_000b: 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_0013: Unknown result type (might be due to invalid IL or missing references) if ((int)((Card)this).Zone == 2) { DamageInfo damageInfo = args.DamageInfo; if ((int)((DamageInfo)(ref damageInfo)).DamageType == 0 && ((Card)this).IsUpgraded) { ((Card)this).DeltaValue1 = ((Card)this).DeltaValue1 + ((Card)this).Value2; } } } private IEnumerable<BattleAction> OnPlayerTurnEnding(UnitEventArgs args) { if (!((Card)this).Battle.BattleShouldEnd && (int)((Card)this).Zone == 2) { EnemyUnit randomEnemy = CollectionsExtensions.SampleOrDefault<EnemyUnit>(((Card)this).Battle.EnemyGroup.Alives, ((Card)this).Battle.GameRun.BattleRng); if (randomEnemy != null) { <>n__0(); yield return (BattleAction)(object)PerformAction.Effect((Unit)(object)randomEnemy, "Changzhi", 0f, "ReimuBoundaryHit", 0f, (EffectBehavior)0, 0.3f); yield return (BattleAction)new DamageAction((Unit)(object)((Card)this).Battle.Player, (Unit)(object)randomEnemy, DamageInfo.Reaction((float)((Card)this).Value1, false), "Instant", (GunType)0); } } } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((Card)this).NotifyActivating(); } } public sealed class YoshikaBlockGrowthDef : YoshikaCardTemplate { 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_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: 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 = 4; ((ManaGroup)(ref val)).Green = 1; cardDefaultConfig.Cost = val; val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 3; ((ManaGroup)(ref val)).Green = 1; cardDefaultConfig.UpgradedCost = val; cardDefaultConfig.Rarity = (Rarity)1; cardDefaultConfig.Type = (CardType)2; cardDefaultConfig.TargetType = (TargetType)4; cardDefaultConfig.Block = 21; cardDefaultConfig.UpgradedBlock = 23; val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 1; cardDefaultConfig.Mana = val; cardDefaultConfig.Value1 = 1; cardDefaultConfig.RelativeKeyword = (Keyword)4398046511616L; cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)4398046511616L; cardDefaultConfig.RelativeEffects = new List<string> { "Graze" }; cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Graze" }; cardDefaultConfig.Illustrator = ""; cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig); return cardDefaultConfig; } } [EntityLogic(typeof(YoshikaBlockGrowthDef))] public sealed class YoshikaBlockGrowth : YoshikaCard { protected override void OnEnterBattle(BattleController battle) { ((Card)this).HandleBattleEvent<GameEventArgs>(((Card)this).Battle.BattleStarted, (GameEventHandler<GameEventArgs>)OnBattleStarted, (GameEventPriority)0); } private void OnBattleStarted(GameEventArgs args) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) if (((Card)this).Battle.CardExtraGrowAmount > 0) { ((Card)this).DecreaseBaseCost(((Card)this).Mana * ((Card)this).Battle.CardExtraGrowAmount); } } protected override IEnumerable<BattleAction> Actions(UnitSelector selector, ManaGroup consumingMana, Interaction precondition) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) yield return ((Card)this).DefenseAction(true); yield return ((Card)this).BuffAction<Graze>(((Card)this).Value1, 0, 0, 0, 0.2f); } public override IEnumerable<BattleAction> AfterUseAction() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) ((Card)this).DecreaseBaseCost(((Card)this).Mana); return ((Card)this).AfterUseAction(); } } public sealed class YoshikaDrawExileDef : YoshikaCardTemplate { public override CardConfig MakeConfig() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)3 }; ManaGroup cost = default(ManaGroup); ((ManaGroup)(ref cost)).Black = 1; cardDefaultConfig.Cost = cost; cardDefaultConfig.Rarity = (Rarity)1; cardDefaultConfig.Type = (CardType)3; cardDefaultConfig.TargetType = (TargetType)4; cardDefaultConfig.Value1 = 2; cardDefaultConfig.UpgradedValue1 = 4; cardDefaultConfig.Value2 = 3; cardDefaultConfig.RelativeKeyword = (Keyword)65536; cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)65536; cardDefaultConfig.Illustrator = ""; cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig); return cardDefaultConfig; } } [EntityLogic(typeof(YoshikaDrawExileDef))] public sealed class YoshikaDrawExile : YoshikaCard { 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); yield return ((Card)this).HealAction(((Card)this).Value2); } public override IEnumerable<BattleAction> OnExile(CardZone srcZone) { //IL_000f: 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) yield return (BattleAction)new MoveCardAction((Card)(object)this, (CardZone)2); } } public sealed class YoshikaDrawFirepowerDef : YoshikaCardTemplate { public override CardConfig MakeConfig() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)4 }; cardDefaultConfig.Cost = default(ManaGroup); cardDefaultConfig.Rarity = (Rarity)1; cardDefaultConfig.Type = (CardType)3; cardDefaultConfig.TargetType = (TargetType)4; cardDefaultConfig.Value1 = 1; cardDefaultConfig.UpgradedValue1 = 2; cardDefaultConfig.Value2 = 2; cardDefaultConfig.RelativeKeyword = (Keyword)65536; cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)65536; cardDefaultConfig.RelativeEffects = new List<string> { "Firepower" }; cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Firepower" }; cardDefaultConfig.Illustrator = ""; cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 240311; return cardDefaultConfig; } } [EntityLogic(typeof(YoshikaDrawFirepowerDef))] public sealed class YoshikaDrawFirepower : YoshikaCard { 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) DrawManyCardAction drawAction = new DrawManyCardAction(((Card)this).Value1); yield return (BattleAction)(object)drawAction; IReadOnlyList<Card> drawnCards = drawAction.DrawnCards; if (drawnCards == null || drawnCards.Count <= 0) { yield break; } foreach (Card card in drawnCards) { if ((int)card.CardType != 1) { yield return (BattleAction)new ExileCardAction(card); yield return ((Card)this).BuffAction<Firepower>(((Card)this).Value2, 0, 0, 0, 0.2f); } } } } public sealed class YoshikaExileStatusDef : YoshikaCardTemplate { public override CardConfig MakeConfig() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)3 }; ManaGroup cost = default(ManaGroup); ((ManaGroup)(ref cost)).Black = 1; cardDefaultConfig.Cost = cost; cardDefaultConfig.Rarity = (Rarity)1; cardDefaultConfig.Type = (CardType)3; cardDefaultConfig.TargetType = (TargetType)4; cardDefaultConfig.Value1 = 2; cardDefaultConfig.Value2 = 2; cardDefaultConfig.Keywords = (Keyword)65536; cardDefaultConfig.UpgradedKeywords = (Keyword)196608; cardDefaultConfig.RelativeCards = new List<string> { "Shadow" }; cardDefaultConfig.UpgradedRelativeCards = new List<string> { "Shadow" }; cardDefaultConfig.Illustrator = ""; cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig); return cardDefaultConfig; } } [EntityLogic(typeof(YoshikaExileStatusDef))] public sealed class YoshikaExileStatus : YoshikaCard { public override Interaction Precondition() { //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Expected O, but got Unknown List<Card> list = (from card in ((Card)this).Battle.DrawZoneToShow.Concat(((Card)this).Battle.DiscardZone) where card != this && (int)card.Config.Rarity == 0 select card).ToList(); if (!CollectionsExtensions.Empty<Card>((IReadOnlyCollection<Card>)list)) { return (Interaction)new SelectCardInteraction(0, ((Card)this).Value1, (IEnumerable<Card>)list, (SelectedCardHandling)0); } return null; } protected override IEnumerable<BattleAction> Actions(UnitSelector selector, ManaGroup consumingMana, Interaction precondition) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) if (precondition != null) { IReadOnlyList<Card> readOnlyList = ((SelectCardInteraction)precondition).SelectedCards; if (readOnlyList.Count > 0) { yield return (BattleAction)new ExileManyCardAction((IEnumerable<Card>)readOnlyList); } } yield return (BattleAction)new AddCardsToDrawZoneAction((IEnumerable<Card>)Library.CreateCards<Shadow>(((Card)this).Value2, false), (DrawZoneTarget)2, (AddCardsType)0); } } public sealed class YoshikaFirepowerAreaDef : YoshikaCardTemplate { public override CardConfig MakeConfig() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)4 }; cardDefaultConfig.Cost = default(ManaGroup); cardDefaultConfig.Rarity = (Rarity)1; cardDefaultConfig.Type = (CardType)3; cardDefaultConfig.TargetType = (TargetType)4; cardDefaultConfig.Value1 = 8; cardDefaultConfig.UpgradedValue1 = 12; cardDefaultConfig.Value2 = 5; cardDefaultConfig.UpgradedValue2 = 8; cardDefaultConfig.Keywords = (Keyword)65536; cardDefaultConfig.UpgradedKeywords = (Keyword)65536; cardDefaultConfig.RelativeEffects = new List<string> { "TempFirepower" }; cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "TempFirepower" }; cardDefaultConfig.Illustrator = ""; cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 240301; return cardDefaultConfig; } } [EntityLogic(typeof(YoshikaFirepowerAreaDef))] public sealed class YoshikaFirepowerArea : YoshikaCard { 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<TempFirepower>(((Card)this).Value1, 0, 0, 0, 0.2f); IEnumerable<EnemyUnit> target = ((Card)this).Battle.AllAliveEnemies; if (target == null) { yield break; } foreach (EnemyUnit targetUnit in target) { yield return (BattleAction)(object)new ApplyStatusEffectAction<TempFirepower>((Unit)(object)targetUnit, (int?)((Card)this).Value2, (int?)null, (int?)null, (int?)null, 0.2f, true); } } } public sealed class YoshikaFirepowerDoubleDef : YoshikaCardTemplate { public override CardConfig MakeConfig() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)4 }; ManaGroup cost = default(ManaGroup); ((ManaGroup)(ref cost)).Red = 2; cardDefaultConfig.Cost = cost; cardDefaultConfig.Rarity = (Rarity)1; cardDefaultConfig.Type = (CardType)3; cardDefaultConfig.TargetType = (TargetType)4; cardDefaultConfig.Value1 = 3; cardDefaultConfig.Keywords = (Keyword)2097152; cardDefaultConfig.UpgradedKeywords = (Keyword)2097152; cardDefaultConfig.RelativeEffects = new List<string> { "TempFirepower" }; cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "TempFirepower" }; cardDefaultConfig.Illustrator = ""; cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig); return cardDefaultConfig; } } [EntityLogic(typeof(YoshikaFirepowerDoubleDef))] public sealed class YoshikaFirepowerDouble : YoshikaCard { protected override IEnumerable<BattleAction> Actions(UnitSelector selector, ManaGroup consumingMana, Interaction precondition) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) if (((Card)this).IsUpgraded) { yield return ((Card)this).BuffAction<TempFirepower>(((Card)this).Value1, 0, 0, 0, 0.2f); } if (((Unit)((Card)this).Battle.Player).HasStatusEffect<TempFirepower>()) { yield return ((Card)this).BuffAction<TempFirepower>(((StatusEffect)((Unit)((Card)this).Battle.Player).GetStatusEffect<TempFirepower>()).Level, 0, 0, 0, 0.2f); } else if (((Unit)((Card)this).Battle.Player).HasStatusEffect<TempFirepowerNegative>()) { yield return ((Card)this).DebuffAction<TempFirepowerNegative>((Unit)(object)((Card)this).Battle.Player, ((StatusEffect)((Unit)((Card)this).Battle.Player).GetStatusEffect<TempFirepowerNegative>()).Level, 0, 0, 0, true, 0.2f); } } } public sealed class YoshikaFirepowerManaDef : YoshikaCardTemplate { 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_005e: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00af: 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 = 1; ((ManaGroup)(ref val)).Green = 1; cardDefaultConfig.Cost = val; cardDefaultConfig.Rarity = (Rarity)1; cardDefaultConfig.Type = (CardType)3; cardDefaultConfig.TargetType = (TargetType)4; val = default(ManaGroup); ((ManaGroup)(ref val)).Black = 1; ((ManaGroup)(ref val)).Green = 1; ((ManaGroup)(ref val)).Colorless = 2; cardDefaultConfig.Mana = val; val = default(ManaGroup); ((ManaGroup)(ref val)).Black = 1; ((ManaGroup)(ref val)).Green = 1; ((ManaGroup)(ref val)).Philosophy = 2; cardDefaultConfig.UpgradedMana = val; cardDefaultConfig.Value1 = 13; cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)2048; cardDefaultConfig.RelativeEffects = new List<string> { "TempFirepowerNegative" }; cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "TempFirepowerNegative" }; cardDefaultConfig.Illustrator = ""; cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig); return cardDefaultConfig; } } [EntityLogic(typeof(YoshikaFirepowerManaDef))] public sealed class YoshikaFirepowerMana : YoshikaCard { 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).DebuffAction<TempFirepowerNegative>((Unit)(object)((Card)this).Battle.Player, ((Card)this).Value1, 0, 0, 0, true, 0.2f); yield return (BattleAction)new GainManaAction(((Card)this).Mana); } } public sealed class YoshikaFirepowerStatusDef : YoshikaCardTemplate { public override CardConfig MakeConfig() { //IL_0037: 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) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.IsPooled = false; cardDefaultConfig.FindInBattle = false; cardDefaultConfig.HideMesuem = true; 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)4; cardDefaultConfig.TargetType = (TargetType)4; cardDefaultConfig.Value1 = 5; cardDefaultConfig.UpgradedValue1 = 8; cardDefaultConfig.Value2 = 2; cardDefaultConfig.RelativeEffects = new List<string> { "Firepower" }; cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Firepower" }; cardDefaultConfig.RelativeCards = new List<string> { "BlackResidue" }; cardDefaultConfig.UpgradedRelativeCards = new List<string> { "BlackResidue" }; cardDefaultConfig.Illustrator = ""; cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig); return cardDefaultConfig; } } [EntityLogic(typeof(YoshikaFirepowerStatusDef))] public sealed class YoshikaFirepowerStatus : YoshikaCard { 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<Firepower>(((Card)this).Value1, 0, 0, 0, 0.2f); yield return (BattleAction)new AddCardsToHandAction((IEnumerable<Card>)Library.CreateCards<BlackResidue>(((Card)this).Value2, false), (AddCardsType)0); } } public sealed class YoshikaFirepowerZombieDef : YoshikaCardTemplate { public override CardConfig MakeConfig() { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) CardConfig cardDefaultConfig = GetCardDefaultConfig(); cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)3, (ManaColor)4 }; ManaGroup cost = default(ManaGroup); ((ManaGroup)(ref cost)).Any = 2; cardDefaultConfig.Cost = cost; cardDefaultConfig.Rarity = (Rarity)1; cardDefaultConfig.Type = (CardType)3; cardDefaultConfig.TargetType = (TargetType)4; cardDefaultConfig.Value1 = 2; cardDefaultConfig.UpgradedValue1 = 3; cardDefaultConfig.Keywords = (Keyword)557056; cardDefaultConfig.UpgradedKeywords = (Keyword)557056; cardDefaultConfig.RelativeKeyword = (Keyword)65536; cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)65536; cardDefaultConfig.RelativeEffects = new List<string> { "Firepower" }; cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Firepower" }; cardDefaultConfig.Illustrator = ""; cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 270301; return cardDefaultConfig; } } [EntityLogic(typeof(YoshikaFirepowerZombieDef))] public sealed class YoshikaFirepowerZombie : YoshikaCard { public bool Active => ((Card)this).Battle != null && ((Unit)((Card)this).Battle.Player).IsAlive && ((Unit)((Card)this).Battle.Player).Hp <= (((Unit)((Card)this).Battle.Player).MaxHp + 1) / 2; protected override void OnEnterBattle(BattleController battle) { ((Card)this).ReactBattleEvent<GameEventArgs>(((Card)this).Battle.BattleStarted, (EventSequencedReactor<GameEventArgs>)OnBattleStarted); } private IEnumerable<BattleAction> OnBattleStarted(GameEventArgs args) { if (!Active || this != ((Card)this).Battle.EnumerateAllCards().First((Card card) => card is YoshikaFirepowerZombie)) { yield break; } List<Card> list = ((Card)this).Battle.DrawZone.Where((Card card) => card is YoshikaFirepowerZombie).ToList(); yield return (BattleAction)new ExileManyCardAction((IEnumerable<Card>)list); foreach (Card card2 in list) { yield return (BattleAction)new MoveCardToDrawZoneAction(card2, (DrawZoneTarget)2); } yield return (BattleAction)new ExileManyCardAction((IEnumerable<Card>)list); } public override IEnumerable<BattleAction> OnExile(CardZone srcZone) { //IL_000f: 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) yield return ((Card)this).BuffAction<Firepower>(((Card)this).Value1, 0, 0, 0, 0.2f); yield return ((Card)this).HealAction(((Card)this).Value1); } } public sealed class YoshikaFlowerDamageDef : YoshikaCardTemplate { public override CardConfig MakeConfig() { //IL_0048: 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(6181); cardDefaultConfig.FindInBattle = false; cardDefaultConfig.IsPooled = false; cardDefaultConfig.HideMesuem = true; cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)5 }; ManaGroup cost = default(ManaGroup); ((ManaGroup)(ref cost)).Any = 2; ((ManaGroup)(ref cost)).Green = 1; cardDefaultConfig.Cost = cost; cardDefaultConfig.Rarity = (Rarity)1; cardDefaultConfig.Type = (CardType)1; cardDefaultConfig.TargetType = (TargetType)1; cardDefaultConfig.Damage = 20; cardDefaultConfig.Value1 = 15; cardDefaultConfig.Value2 = 5; cardDefaultConfig.Keywords = (Keyword)256; cardDefaultConfig.UpgradedKeywords = (Keyword)256; cardDefaultConfig.RelativeKeyword = (Keyword)1099511627776L; cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)1099511627776L; cardDefaultConfig.Illustrator = ""; cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig); return cardDefaultConfig; } } [EntityLogic(typeof(YoshikaFlowerDamageDef))] public sealed class YoshikaFlowerDamage : YoshikaCard { public DamageInfo FlowerDamage { get { //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) if (((Card)this).Battle != null && ((Unit)((Card)this).Battle.Player).HasStatusEffect<SummerFlowerSe>()) { return DamageInfo.Attack((float)(((Card)this).Value1 + ((StatusEffect)((Unit)((Card)this).Battle.Player).GetStatusEffect<SummerFlowerSe>()).Level), ((Card)this).IsAccuracy); } return DamageInfo.Attack((float)((Card)this).Value1, ((Card)this).IsAccuracy); } } protected override IEnumerable<BattleAction> Actions(UnitSelector selector, ManaGroup consumingMana, Interaction precondition) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) if (((Card)this).IsUpgraded) { yield return ((Card)this).AttackAction(selector, FlowerDamage, (GunPair)null); yield return (BattleAction)(object)PerformAction.Gun((Unit)(object)((Card)this).Battle.Player, (Unit)(object)selector.GetEnemy(((Card)this).Battle), GunNameID.GetGunFromId(14040), 0.1f); yield return (BattleAction)(object)PerformAction.Gun((Unit)(object)((Card)this).Battle.Player, (Unit)(object)selector.GetEnemy(((Card)this).Battle), GunNameID.GetGunFromId(14030), 0.2f); } else { yield return ((Card)this).AttackAction(selector, <>n__0(), (GunPair)null); yield return (BattleAction)(object)PerformAction.Gun((Unit)(object)((Card)this).Battle.Player, (Unit)(object)selector.GetEnemy(((Card)this).Battle), GunNameID.GetGunFromId(14041), 0.1f); yield return (BattleAction)(object)PerformAction.Gun((Unit)(object)((Card)this).Battle.Player, (Unit)(object)selector.GetEnemy(((Card)this).Battle), GunNameID.GetGunFromId(14031), 0.2f); } yield return ((Card)this).BuffAction<SummerFlowerSe>(((Card)this)