Decompiled source of KijinSeija v0.2.1
KijinSeijaMod_windows.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; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Serialization; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Text.RegularExpressions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using Cysharp.Threading.Tasks; using HarmonyLib; using KijinSeijaMod.BattleActions; using KijinSeijaMod.Cards; using KijinSeijaMod.Cards.Template; using KijinSeijaMod.Config; using KijinSeijaMod.Enemies; using KijinSeijaMod.Enemies.Template; using KijinSeijaMod.GunName; using KijinSeijaMod.ImageLoader; using KijinSeijaMod.Localization; using KijinSeijaMod.Patches; using KijinSeijaMod.StatusEffects; 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.Dialogs; using LBoL.Core.Intentions; using LBoL.Core.Randoms; using LBoL.Core.Stations; using LBoL.Core.StatusEffects; using LBoL.Core.Units; using LBoL.EntityLib.Cards; using LBoL.EntityLib.Exhibits; using LBoL.EntityLib.StatusEffects.Basic; using LBoL.EntityLib.StatusEffects.Cirno; using LBoL.EntityLib.StatusEffects.Enemy; using LBoL.EntityLib.StatusEffects.ExtraTurn; using LBoL.EntityLib.StatusEffects.Koishi; using LBoL.EntityLib.StatusEffects.Neutral.Black; using LBoL.EntityLib.StatusEffects.Neutral.TwoColor; using LBoL.EntityLib.StatusEffects.Others; using LBoL.EntityLib.StatusEffects.Sakuya; using LBoL.Presentation; using LBoL.Presentation.UI.Panels; using LBoL.Presentation.UI.Widgets; using LBoL.Presentation.Units; using LBoLEntitySideloader; using LBoLEntitySideloader.Attributes; using LBoLEntitySideloader.Entities; using LBoLEntitySideloader.Resource; using LBoLEntitySideloader.Utils; using Microsoft.CodeAnalysis; using TMPro; using UnityEngine; using UnityEngine.Experimental.Rendering; using UnityEngine.UI; using YamlDotNet.Serialization; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = "")] [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("KijinSeijaMod_windows")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("KijinSeijaMod_windows")] [assembly: AssemblyTitle("KijinSeijaMod_windows")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace KijinSeijaMod { [BepInPlugin("author.game.typeofmod.KijinSeija", "KijinSeijaMod", "0.2.1")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInProcess("LBoL.exe")] public class BepinexPlugin : BaseUnityPlugin { public static string modUniqueID = "KijinSeijaMod"; public static string playerName = "KijinSeija"; public static bool useInGameModel = false; public static string modelName = "KijinSeija"; public static bool modelIsFlipped = true; public static List<ManaColor> offColors = new List<ManaColor> { (ManaColor)6 }; public static ConfigEntry<bool> enableAct1Boss; public static CustomConfigEntry<bool> enableAct1BossEntry = new CustomConfigEntry<bool>(value: false, "EnableAct1Boss", "EnableAct1Boss", "Toggle the Act 1 boss. Default: Off"); private static readonly Harmony harmony = PInfo.harmony; internal static ManualLogSource log; internal static BatchLocalization unitModelLoc = new BatchLocalization((IResourceSource)(object)directorySource, typeof(UnitModelTemplate), false); internal static TemplateSequenceTable sequenceTable = new TemplateSequenceTable(0); internal static BatchLocalization exhibitLoc = new BatchLocalization((IResourceSource)(object)directorySource, typeof(ExhibitTemplate), false); internal static IResourceSource embeddedSource = (IResourceSource)new EmbeddedSource(Assembly.GetExecutingAssembly()); internal static DirectorySource directorySource = new DirectorySource("author.game.typeofmod.KijinSeija", ""); public static ConfigEntry<string> KijinSeijaRecords; private static object KijinSeija() { throw new NotImplementedException(); } private void Awake() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown Harmony val = new Harmony(modUniqueID); val.PatchAll(); log = ((BaseUnityPlugin)this).Logger; enableAct1Boss = ((BaseUnityPlugin)this).Config.Bind<bool>(enableAct1BossEntry.Section, enableAct1BossEntry.Key, enableAct1BossEntry.Value, enableAct1BossEntry.Description); Object.DontDestroyOnLoad((Object)(object)((Component)this).gameObject); ((Object)((Component)this).gameObject).hideFlags = (HideFlags)61; CardIndexGenerator.PromiseClearIndexSet(); EntityManager.RegisterSelf(); KijinSeijaRecords = ((BaseUnityPlugin)this).Config.Bind<string>("Records", "Records", "", "May cause an error if edited manually."); Func<Sprite> func = () => ResourceLoader.LoadSprite("BossIcon.png", (IResourceSource)(object)directorySource, (Rect?)null, 1, (Vector2?)null); EnemyUnitTemplate.AddBossNodeIcon("KijinSeijaSagume", func, (Assembly)null); } private void OnDestroy() { if (harmony != null) { harmony.UnpatchSelf(); } } } public static class PInfo { public const string GUID = "author.game.typeofmod.KijinSeija"; public const string Name = "KijinSeijaMod"; public const string version = "0.2.1"; public static readonly Harmony harmony = new Harmony("author.game.typeofmod.KijinSeija"); } public class KijinSeijaLoadouts { public static string UltimateSkillA = "KijinSeijaUltA"; public static string UltimateSkillB = "KijinSeijaUltB"; public static string ExhibitA = "KijinSeijaExhibitA"; public static string ExhibitB = "KijinSeijaExhibitB"; public static List<string> DeckA = new List<string> { "Shoot", "Shoot", "Boundary", "Boundary", "KijinSeijaAttackR", "KijinSeijaAttackR", "KijinSeijaBlockU", "KijinSeijaBlockU", "KijinSeijaAccurateAttack", "KijinSeijaEscape", "Zhukeling" }; public static List<string> DeckB = new List<string> { "Shoot", "Shoot", "Boundary", "Boundary", "KijinSeijaAttackW", "KijinSeijaAttackW", "KijinSeijaBlockB", "KijinSeijaBlockB", "KijinSeijaGraze", "KijinSeijaEscape", "Zhukeling" }; public static PlayerUnitConfig playerUnitConfig; static KijinSeijaLoadouts() { //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Expected O, but got Unknown string modUniqueID = BepinexPlugin.modUniqueID; int? num = 10; ManaGroup val = default(ManaGroup); ((ManaGroup)(ref val)).White = 0; ((ManaGroup)(ref val)).Blue = 0; ((ManaGroup)(ref val)).Black = 1; ((ManaGroup)(ref val)).Red = 1; ((ManaGroup)(ref val)).Green = 0; ((ManaGroup)(ref val)).Colorless = 2; ((ManaGroup)(ref val)).Philosophy = 0; ManaGroup val2 = val; playerUnitConfig = new PlayerUnitConfig(modUniqueID, true, "", 0, 8, num, true, (int?)null, (ManaColor)7, (ManaColor)6, val2, "#ff0000ff", 24, 999, 99, UltimateSkillA, UltimateSkillB, ExhibitA, ExhibitB, (IReadOnlyList<string>)DeckA, (IReadOnlyList<string>)DeckB, 3, 2); } } public sealed class KijinSeijaModDef : PlayerUnitTemplate { [EntityLogic(typeof(KijinSeijaModDef))] public sealed class KijinSeijaMod : PlayerUnit { public class KijinSeijaTextForcer : MonoBehaviour { public string adventureId = "Debut"; private bool _loaded = false; private List<(string target, string replacement)> _titleReps = new List<(string, string)>(); private List<(string target, string replacement)> _npcReps = new List<(string, string)>(); private void Update() { if (!SeijaRunTracker.IsSeijaRun) { return; } if (!CustomEventTextManager.IsLoaded) { CustomEventTextManager.LoadAllCustomYamls(); } if (!_loaded && CustomEventTextManager.IsLoaded) { _titleReps.Clear(); _npcReps.Clear(); foreach (Dictionary<string, string> value5 in CustomEventTextManager.MasterTextDict.Values) { if (value5.TryGetValue("TargetTitle_" + adventureId, out var value) && value5.TryGetValue("Title_" + adventureId, out var value2)) { _titleReps.Add((value.Trim(), value2.Trim())); } if (value5.TryGetValue("TargetNPC_" + adventureId, out var value3)) { string value4 = null; if (!value5.TryGetValue("NPC_" + adventureId, out value4)) { value5.TryGetValue("HostName_" + adventureId, out value4); } if (!string.IsNullOrEmpty(value4)) { _npcReps.Add((value3.Trim(), value4.Trim())); } } } _loaded = true; } if (!_loaded || (_titleReps.Count == 0 && _npcReps.Count == 0)) { return; } TextMeshProUGUI[] array = Object.FindObjectsOfType<TextMeshProUGUI>(); foreach (TextMeshProUGUI val in array) { if (string.IsNullOrWhiteSpace(((TMP_Text)val).text)) { continue; } string text = Regex.Replace(((TMP_Text)val).text, "<.*?>", string.Empty).Replace("\ufeff", "").Trim(); foreach (var titleRep in _titleReps) { if (text == titleRep.target) { ((TMP_Text)val).text = ((TMP_Text)val).text.Replace(titleRep.target, titleRep.replacement); } } foreach (var npcRep in _npcReps) { if (text == npcRep.target) { ((TMP_Text)val).text = ((TMP_Text)val).text.Replace(npcRep.target, npcRep.replacement); } } } } } [HarmonyPatch(typeof(GameRunController), "EnterMapNode")] public class EnterMapNode_Patch { [Obsolete] private static void Prefix(GameRunController __instance, MapNode node) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) if ((int)node.StationType != 5) { return; } UnitView val = null; UnitView[] array = Object.FindObjectsOfType<UnitView>(); UnitView[] array2 = array; foreach (UnitView val2 in array2) { if ((object)val2.Unit == __instance.Player) { val = val2; break; } } if ((Object)(object)val != (Object)null && __instance.Player is KijinSeijaMod mod) { GameObject val3 = Object.Instantiate<GameObject>(((Component)val).gameObject); val3.transform.position = ((Component)val).transform.position + new Vector3(6.6f, 0.6f, 0f); Renderer[] componentsInChildren = val3.GetComponentsInChildren<Renderer>(); foreach (Renderer val4 in componentsInChildren) { val4.enabled = false; } UnitView component = val3.GetComponent<UnitView>(); if ((Object)(object)component != (Object)null) { ((MonoBehaviour)component).StartCoroutine(LoopShopDialogue(component, val, mod, __instance.CurrentStage.Level, node.X)); } Object.Destroy((Object)(object)val3, 60f); } } private static IEnumerator LoopShopDialogue(UnitView boss, UnitView player, KijinSeijaMod mod, int currentLevel, int nodeX) { yield return (object)new WaitForSeconds(4.5f); bool isFinalAct = currentLevel == 4 && nodeX == 1; bool isFirstEncounter = currentLevel == 1 && nodeX == 1; if (isFinalAct) { boss.Chat(mod.shop6, 4f, (CloudType)2, 0f); yield return (object)new WaitForSeconds(4.5f); player.Chat(mod.shop7, 4f, (CloudType)2, 0f); yield return (object)new WaitForSeconds(4.5f); player.Chat(mod.shop8, 4f, (CloudType)2, 0f); yield return (object)new WaitForSeconds(4.5f); boss.Chat(mod.shop9, 4f, (CloudType)2, 0f); yield return (object)new WaitForSeconds(4.5f); boss.Chat(mod.shop10, 4f, (CloudType)2, 0f); yield return (object)new WaitForSeconds(4.5f); } else if (isFirstEncounter) { player.Chat(mod.shop1, 3f, (CloudType)2, 0f); yield return (object)new WaitForSeconds(3.5f); boss.Chat(mod.shop2, 4f, (CloudType)2, 0f); yield return (object)new WaitForSeconds(4.5f); player.Chat(mod.shop3, 4f, (CloudType)2, 0f); yield return (object)new WaitForSeconds(4.5f); boss.Chat(mod.shop4, 4f, (CloudType)2, 0f); yield return (object)new WaitForSeconds(4.5f); boss.Chat(mod.shop45, 4f, (CloudType)2, 0f); yield return (object)new WaitForSeconds(4.5f); player.Chat(mod.shop5, 4f, (CloudType)2, 0f); yield return (object)new WaitForSeconds(4.5f); boss.Chat(mod.shop52, 4f, (CloudType)2, 0f); yield return (object)new WaitForSeconds(4.5f); } } } public bool DialogueTriggered = false; private float Multiplier => 0.8f; public string shop1 => ((GameEntity)this).LocalizeProperty("shop1", false, true); public string shop2 => ((GameEntity)this).LocalizeProperty("shop2", false, true); public string shop3 => ((GameEntity)this).LocalizeProperty("shop3", false, true); public string shop4 => ((GameEntity)this).LocalizeProperty("shop4", false, true); public string shop45 => ((GameEntity)this).LocalizeProperty("shop45", false, true); public string shop5 => ((GameEntity)this).LocalizeProperty("shop5", false, true); public string shop52 => ((GameEntity)this).LocalizeProperty("shop52", false, true); public string shop6 => ((GameEntity)this).LocalizeProperty("shop6", false, true); public string shop7 => ((GameEntity)this).LocalizeProperty("shop7", false, true); public string shop8 => ((GameEntity)this).LocalizeProperty("shop8", false, true); public string shop9 => ((GameEntity)this).LocalizeProperty("shop9", false, true); public string shop10 => ((GameEntity)this).LocalizeProperty("shop10", false, true); public string FJ1 => ((GameEntity)this).LocalizeProperty("FJ1", false, true); public bool Blackout { get; private set; } public string LocShortcut(string key, bool decorated, bool required) { return ((GameEntity)this).LocalizeProperty(key, decorated, required); } protected override void OnEnterGameRun(GameRunController gameRun) { //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Expected O, but got Unknown GameRunController gameRun2 = ((GameEntity)this).GameRun; gameRun2.ShopPriceMultiplier *= Multiplier; ((GameEntity)this).GameRun.TrueEndingProviders.Add((GameEntity)(object)this); bool flag = gameRun.CurrentMap == null; GameObject shinObj = new GameObject("Shinmyoumaru_Debut"); Object.DontDestroyOnLoad((Object)(object)shinObj); if (flag) { SpriteRenderer val = shinObj.AddComponent<SpriteRenderer>(); val.sprite = ResourceLoader.LoadSprite("KijinSeijaShinmyoumaru.png", (IResourceSource)(object)BepinexPlugin.directorySource, (Rect?)null, 84, (Vector2?)null); ((Renderer)val).sortingLayerName = "Default"; ((Renderer)val).sortingOrder = 50; shinObj.transform.position = new Vector3(5.4f, 0f, 0f); shinObj.transform.localScale = new Vector3(-1f, 1f, 1f); } else { Debug.Log((object)"不是全新开局"); } KijinSeijaTextForcer kijinSeijaTextForcer = shinObj.AddComponent<KijinSeijaTextForcer>(); kijinSeijaTextForcer.adventureId = "Debut"; ((Unit)this).HandleGameRunEvent<StationEventArgs>(((GameEntity)this).GameRun.StationFinished, (GameEventHandler<StationEventArgs>)delegate { if ((Object)(object)shinObj != (Object)null) { Object.Destroy((Object)(object)shinObj); } }); GameObject val2 = new GameObject("ShinDebutHandler"); Object.DontDestroyOnLoad((Object)(object)val2); ShinmyoumaruDebutHandler shinmyoumaruDebutHandler = val2.AddComponent<ShinmyoumaruDebutHandler>(); shinmyoumaruDebutHandler.gameRun = gameRun; ((Unit)this).HandleGameRunEvent<StationEventArgs>(((GameEntity)this).GameRun.StationEntered, (GameEventHandler<StationEventArgs>)delegate(StationEventArgs args) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Invalid comparison between Unknown and I4 if ((int)args.Station.Type == 4) { ((GameEntity)this).GameRun.LoseMoney(200); } if (gameRun.CurrentStage.Level == 1) { GameMap currentMap = gameRun.CurrentMap; if (currentMap != null) { int num = 1; for (int i = 0; i < currentMap.Width; i++) { MapNode val3 = currentMap.Nodes[num, i]; if (val3 != null) { val3.StationType = (StationType)5; } } } } }); } protected override void OnEnterBattle(BattleController battle) { DialogueTriggered = false; } } 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)KijinSeijaLocalization.PlayerUnitBatchLoc.AddEntity((EntityDefinition)(object)this); } public override PlayerImages LoadPlayerImages() { return KijinSeijaImageLoader.LoadPlayerImages(BepinexPlugin.playerName); } public override PlayerUnitConfig MakeConfig() { return KijinSeijaLoadouts.playerUnitConfig; } } } namespace KijinSeijaMod.KijinSeijaUlt { public sealed class KijinSeijaUltADef : KijinSeijaUltTemplate { public override UltimateSkillConfig MakeConfig() { UltimateSkillConfig defaulUltConfig = GetDefaulUltConfig(); defaulUltConfig.Damage = 30; defaulUltConfig.PowerCost = 100; return defaulUltConfig; } } [EntityLogic(typeof(KijinSeijaUltADef))] public sealed class KijinSeijaUltA : UltimateSkill { private string LastType { get; set; } public KijinSeijaUltA() { ((UltimateSkill)this).TargetType = (TargetType)1; } private string GetGunName(int gunIndex) { string text = LastType + gunIndex; if (GunConfig.FromName(text) != null) { return text; } return "SingleJiandaoSe" + gunIndex; } protected override IEnumerable<BattleAction> Actions(UnitSelector selector) { EnemyUnit enemy = selector.GetEnemy(((UltimateSkill)this).Battle); PlayerUnit player = ((UltimateSkill)this).Battle.Player; yield return (BattleAction)(object)PerformAction.Spell((Unit)(object)((UltimateSkill)this).Battle.Player, "天壤梦弓的诏敕"); yield return (BattleAction)(object)PerformAction.Animation((Unit)(object)((UltimateSkill)this).Battle.Player, "spell", 1f, (string)null, 0f, -1); yield return (BattleAction)new DamageAction((Unit)(object)((UltimateSkill)this).Battle.Player, (Unit)(object)enemy, DamageInfo.Reaction((float)player.Us.MaxPowerLevel * 30f, false), GetGunName(1), (GunType)0); } } public sealed class KijinSeijaUltBDef : KijinSeijaUltTemplate { public override UltimateSkillConfig MakeConfig() { UltimateSkillConfig defaulUltConfig = GetDefaulUltConfig(); defaulUltConfig.Damage = 18; return defaulUltConfig; } } [EntityLogic(typeof(KijinSeijaUltBDef))] public sealed class KijinSeijaUltB : UltimateSkill { private string LastType { get; set; } public KijinSeijaUltB() { ((UltimateSkill)this).TargetType = (TargetType)2; } protected override IEnumerable<BattleAction> Actions(UnitSelector selector) { int Value18 = ((Unit)((UltimateSkill)this).Battle.Player).StatusEffects.Where((StatusEffect se) => (int)se.Type == 1).Count(); yield return (BattleAction)(object)PerformAction.Spell((Unit)(object)((UltimateSkill)this).Battle.Player, "天下翻覆"); yield return (BattleAction)(object)PerformAction.Animation((Unit)(object)((UltimateSkill)this).Battle.Player, "spell", 1f, (string)null, 0f, -1); foreach (EnemyUnit enemy in ((UltimateSkill)this).Battle.AllAliveEnemies) { if (((Unit)enemy).IsAlive && !((UltimateSkill)this).Battle.BattleShouldEnd) { for (int Value19 = 0; Value19 < Value18 + 1; Value19++) { yield return (BattleAction)new DamageAction((Unit)(object)((UltimateSkill)this).Owner, (IEnumerable<Unit>)((UltimateSkill)this).Battle.AllAliveEnemies, ((UltimateSkill)this).Damage, "Guiren1", (GunType)0); } yield return (BattleAction)new RemoveAllNegativeStatusEffectAction((Unit)(object)((UltimateSkill)this).Battle.Player, 0.2f); yield break; } } } } public class KijinSeijaUltTemplate : 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(KijinSeijaDefaultConfig.DefaultID((EntityDefinition)(object)this)); } public override LocalizationOption LoadLocalization() { return (LocalizationOption)(object)KijinSeijaLocalization.UltimateSkillsBatchLoc.AddEntity((EntityDefinition)(object)this); } public override Sprite LoadSprite() { return KijinSeijaImageLoader.LoadUltLoader((UltimateSkillTemplate)(object)this); } public override UltimateSkillConfig MakeConfig() { throw new NotImplementedException(); } public UltimateSkillConfig GetDefaulUltConfig() { return KijinSeijaDefaultConfig.DefaultUltConfig(); } } } namespace KijinSeijaMod.StatusEffects { public sealed class AccuracyModule1Def : KijinSeijaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = KijinSeijaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.RelativeEffects = new List<string> { "Spirit" }; return defaultStatusEffectConfig; } } [EntityLogic(typeof(AccuracyModule1Def))] public sealed class AccuracyModule1 : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).HandleOwnerEvent<DamageDealingEventArgs>(((StatusEffect)this).Owner.DamageDealing, (GameEventHandler<DamageDealingEventArgs>)OnDamageDealing); } private void OnDamageDealing(DamageDealingEventArgs args) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) DamageInfo damageInfo = args.DamageInfo; ((DamageInfo)(ref damageInfo)).IsAccuracy = true; args.DamageInfo = damageInfo; ((GameEventArgs)args).AddModifier((GameEntity)(object)this); } } public sealed class KijinSeijaEnhanceSeDef : KijinSeijaStatusEffectTemplate { public override Sprite LoadSprite() { return null; } } [EntityLogic(typeof(KijinSeijaEnhanceSeDef))] public sealed class KijinSeijaEnhanceSe : StatusEffect { } public sealed class KijinSeijaBoomSeDef : KijinSeijaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = KijinSeijaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.RelativeEffects = new List<string> { "Spirit" }; return defaultStatusEffectConfig; } } [EntityLogic(typeof(KijinSeijaBoomSeDef))] public sealed class KijinSeijaBoomSe : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnStarted); } private IEnumerable<BattleAction> OnOwnerTurnStarted(UnitEventArgs args) { yield return (BattleAction)new DamageAction(((StatusEffect)this).Owner, (IEnumerable<Unit>)((StatusEffect)this).Battle.EnemyGroup.Alives, DamageInfo.Reaction(40f, false), "ExhTNT", (GunType)0); yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f); } } public sealed class KijinSeijaBorrowedBlade1Def : KijinSeijaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = KijinSeijaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.RelativeEffects = new List<string> { "Spirit" }; defaultStatusEffectConfig.Type = (StatusEffectType)0; return defaultStatusEffectConfig; } } [EntityLogic(typeof(KijinSeijaBorrowedBlade1Def))] public sealed class KijinSeijaBorrowedBlade1 : StatusEffect { private Queue<ReflectDamage> ReflectDamages { get; set; } = new Queue<ReflectDamage>(); protected override void OnAdded(Unit unit) { ((StatusEffect)this).HandleOwnerEvent<DamageEventArgs>(((Unit)((StatusEffect)this).Battle.Player).DamageTaking, (GameEventHandler<DamageEventArgs>)OnPlayerDamageTaking); ((StatusEffect)this).ReactOwnerEvent<DamageEventArgs>(((Unit)((StatusEffect)this).Battle.Player).DamageReceived, (EventSequencedReactor<DamageEventArgs>)OnPlayerDamageReceived); ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnStarted); } private void OnPlayerDamageTaking(DamageEventArgs args) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Expected O, but got Unknown DamageInfo damageInfo = args.DamageInfo; int num = MathExtensions.RoundToInt(((DamageInfo)(ref damageInfo)).Damage); if (num >= 1) { ((StatusEffect)this).NotifyActivating(); args.DamageInfo = ((DamageInfo)(ref damageInfo)).ReduceActualDamageBy(num); ((GameEventArgs)args).AddModifier((GameEntity)(object)this); Unit source = args.Source; if (source is EnemyUnit && source.IsAlive) { ReflectDamages.Enqueue(new ReflectDamage(args.Source, num)); } } } private IEnumerable<BattleAction> OnPlayerDamageReceived(DamageEventArgs args) { while (ReflectDamages.Count > 0) { ReflectDamage reflectDamage = ReflectDamages.Dequeue(); EnemyUnit target = ((StatusEffect)this).Battle.RandomAliveEnemy; if (reflectDamage.Target.IsAlive) { yield return (BattleAction)new DamageAction((Unit)(object)((StatusEffect)this).Battle.Player, (Unit)(object)target, DamageInfo.Reaction((float)reflectDamage.Damage, false), "ESakuyaSE1", (GunType)0); } } } private IEnumerable<BattleAction> OnOwnerTurnStarted(UnitEventArgs args) { yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f); } } public sealed class KijinSeijaFastAttackDef : KijinSeijaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = KijinSeijaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.RelativeEffects = new List<string> { "Spirit" }; defaultStatusEffectConfig.HasCount = true; return defaultStatusEffectConfig; } } [EntityLogic(typeof(KijinSeijaFastAttackDef))] public sealed class KijinSeijaFastAttack : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<GameEventArgs>(((StatusEffect)this).Battle.AllEnemyTurnStarted, (EventSequencedReactor<GameEventArgs>)OnAllEnemyTurnStarted); ((StatusEffect)this).Highlight = true; } private IEnumerable<BattleAction> OnAllEnemyTurnStarted(GameEventArgs args) { if (((StatusEffect)this).Owner != null && !((StatusEffect)this).Battle.BattleShouldEnd) { yield return (BattleAction)new DamageAction((Unit)(object)((StatusEffect)this).Battle.Player, (Unit)(object)((StatusEffect)this).Battle.FirstAliveEnemy, DamageInfo.Attack((float)((StatusEffect)this).Level, false), "鸦天狗触发B", (GunType)0); ((StatusEffect)this).Highlight = false; } } } public sealed class KijinSeijaFriendS1Def : KijinSeijaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = KijinSeijaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.RelativeEffects = new List<string> { "Spirit" }; return defaultStatusEffectConfig; } } [EntityLogic(typeof(KijinSeijaFriendS1Def))] public sealed class KijinSeijaFriendS1 : StatusEffect { protected override void OnAdded(Unit unit) { //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Expected O, but got Unknown foreach (EnemyUnit allAliveEnemy in ((StatusEffect)this).Battle.AllAliveEnemies) { ((GameEntity)this).GameRun.SetEnemyHpAndMaxHp(((Unit)((StatusEffect)this).Battle.Player).Hp, ((Unit)((StatusEffect)this).Battle.Player).Hp, allAliveEnemy, false); } ((StatusEffect)this).HandleOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (GameEventHandler<UnitEventArgs>)OnOwnerTurnStarted); } protected void OnOwnerTurnStarted(UnitEventArgs args) { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Expected O, but got Unknown //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected O, but got Unknown ((GameEntity)this).React(Reactor.op_Implicit((BattleAction)(object)new ApplyStatusEffectAction<Invincible>((Unit)((StatusEffect)this).Battle.AllAliveEnemies, (int?)16, (int?)16, (int?)0, (int?)0, 0.2f, true))); ((GameEntity)this).React(Reactor.op_Implicit((BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f))); } } public sealed class KijinSeijaFriendS2Def : KijinSeijaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = KijinSeijaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.RelativeEffects = new List<string> { "Spirit" }; return defaultStatusEffectConfig; } } [EntityLogic(typeof(KijinSeijaFriendS2Def))] public sealed class KijinSeijaFriendS2 : StatusEffect { protected override void OnAdded(Unit unit) { ((GameEntity)this).GameRun.SetHpAndMaxHp(((Unit)((StatusEffect)this).Battle.Player).Hp, ((Unit)((StatusEffect)this).Battle.Player).MaxHp * 11 / 10, false); ((StatusEffect)this).HandleOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (GameEventHandler<UnitEventArgs>)OnOwnerTurnEnded); } protected void OnOwnerTurnEnded(UnitEventArgs args) { //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Expected O, but got Unknown ((GameEntity)this).GameRun.SetHpAndMaxHp(((Unit)((StatusEffect)this).Battle.Player).Hp, ((Unit)((StatusEffect)this).Battle.Player).MaxHp * 9 / 10, false); ((GameEntity)this).React(Reactor.op_Implicit(((StatusEffect)this).DebuffAction<Poison>((Unit)(object)((StatusEffect)this).Battle.Player, ((Unit)((StatusEffect)this).Battle.Player).Hp, 0, 0, 0, true, 0.2f))); ((GameEntity)this).React(Reactor.op_Implicit((BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f))); } } public sealed class KijinSeijaFriedS3Def : KijinSeijaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = KijinSeijaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.RelativeEffects = new List<string> { "Spirit" }; return defaultStatusEffectConfig; } } [EntityLogic(typeof(KijinSeijaFriedS3Def))] public sealed class KijinSeijaFriedS3 : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<DieEventArgs>(((StatusEffect)this).Battle.EnemyDied, (EventSequencedReactor<DieEventArgs>)OnEnemyDied); ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((Unit)((StatusEffect)this).Battle.Player).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnturnStarted); } private IEnumerable<BattleAction> OnEnemyDied(DieEventArgs args) { EnemyUnit unit2 = CollectionsExtensions.MinBy<EnemyUnit, int>((IEnumerable<EnemyUnit>)((StatusEffect)this).Battle.EnemyGroup, (Func<EnemyUnit, int>)((EnemyUnit val) => ((Unit)val).Hp)); <>n__0(); ((GameEntity)this).GameRun.GainMaxHp((int)((float)((Unit)unit2).MaxHp / 10f), true, true); yield break; } private IEnumerable<BattleAction> OnturnStarted(GameEventArgs args) { yield return (BattleAction)(object)new ApplyStatusEffectAction<NextTurnLoseGame>((Unit)(object)((StatusEffect)this).Battle.Player, (int?)0, (int?)0, (int?)0, (int?)0, 0.2f, true); } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } public sealed class KijinSeijaHeal1Def : KijinSeijaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = KijinSeijaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.RelativeEffects = new List<string> { "Spirit" }; defaultStatusEffectConfig.HasCount = true; return defaultStatusEffectConfig; } } [EntityLogic(typeof(KijinSeijaHeal1Def))] public sealed class KijinSeijaHeal1 : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).HandleOwnerEvent<DieEventArgs>(((StatusEffect)this).Owner.Dying, (GameEventHandler<DieEventArgs>)OnDying); ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnStarted); } private void OnDying(DieEventArgs args) { //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Expected O, but got Unknown ((GameEventArgs)args).CancelBy((GameEntity)(object)this); ((StatusEffect)this).NotifyActivating(); if (((Unit)((StatusEffect)this).Battle.Player).MaxHp <= 30) { ((GameEntity)this).GameRun.SetHpAndMaxHp(((Unit)((StatusEffect)this).Battle.Player).MaxHp, ((Unit)((StatusEffect)this).Battle.Player).MaxHp, false); } else { ((GameEntity)this).GameRun.SetHpAndMaxHp(30, ((Unit)((StatusEffect)this).Battle.Player).MaxHp, false); } ((GameEntity)this).React(Reactor.op_Implicit((BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f))); } private IEnumerable<BattleAction> OnOwnerTurnStarted(UnitEventArgs args) { yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f); } } public sealed class KijinSeijaInvertedWorld1Def : KijinSeijaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = KijinSeijaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.RelativeEffects = new List<string> { "Spirit" }; defaultStatusEffectConfig.Type = (StatusEffectType)0; return defaultStatusEffectConfig; } } [EntityLogic(typeof(KijinSeijaInvertedWorld1Def))] public sealed class KijinSeijaInvertedWorld1 : StatusEffect { protected override void OnAdded(Unit unit) { foreach (EnemyUnit allAliveEnemy in ((StatusEffect)this).Battle.AllAliveEnemies) { ((StatusEffect)this).ReactOwnerEvent<BlockShieldEventArgs>(((Unit)allAliveEnemy).BlockShieldGained, (EventSequencedReactor<BlockShieldEventArgs>)OnBlockShieldGained); } } private IEnumerable<BattleAction> OnBlockShieldGained(BlockShieldEventArgs args) { using IEnumerator<EnemyUnit> enumerator = ((StatusEffect)this).Battle.AllAliveEnemies.GetEnumerator(); if (enumerator.MoveNext()) { EnemyUnit enemyUnit = enumerator.Current; if (args.Block > 0f) { yield return (BattleAction)new DamageAction((Unit)(object)((StatusEffect)this).Battle.Player, (Unit)(object)enemyUnit, DamageInfo.Reaction(args.Block * 2f, false), "假面", (GunType)0); } if (args.Shield > 0f) { yield return (BattleAction)new DamageAction((Unit)(object)((StatusEffect)this).Battle.Player, (Unit)(object)enemyUnit, DamageInfo.Reaction(args.Shield * 2f, false), "假面", (GunType)0); } yield break; } } } public sealed class KijinSeijaMaoYuSeDef : KijinSeijaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = KijinSeijaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.RelativeEffects = new List<string> { "Spirit" }; return defaultStatusEffectConfig; } } [EntityLogic(typeof(KijinSeijaMaoYuSeDef))] public sealed class KijinSeijaMaoYuSe : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<StatisticalDamageEventArgs>(((StatusEffect)this).Owner.StatisticalTotalDamageReceived, (EventSequencedReactor<StatisticalDamageEventArgs>)OnOwnerStatisticalTotalDamageReceived); } private IEnumerable<BattleAction> OnOwnerStatisticalTotalDamageReceived(StatisticalDamageEventArgs totalArgs) { <>n__0(); yield return (BattleAction)new CastBlockShieldAction(((StatusEffect)this).Owner, new ShieldInfo(((Unit)((StatusEffect)this).Battle.Player).MaxHp / 2, (BlockShieldType)2), false); yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f); } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } public sealed class KijinSeijaMoney1Def : KijinSeijaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = KijinSeijaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.RelativeEffects = new List<string> { "Spirit" }; defaultStatusEffectConfig.HasCount = true; return defaultStatusEffectConfig; } } [EntityLogic(typeof(KijinSeijaMoney1Def))] public sealed class KijinSeijaMoney1 : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<GameEventArgs>(((StatusEffect)this).Battle.BattleEnding, (EventSequencedReactor<GameEventArgs>)OnBattleEnding); } private IEnumerable<BattleAction> OnBattleEnding(GameEventArgs args) { int Value1 = ((Unit)((StatusEffect)this).Battle.Player).Hp; int Value2 = ((Unit)((StatusEffect)this).Battle.Player).MaxHp; if (Value1 < 4) { <>n__0(); yield return (BattleAction)new GainMoneyAction(999, (SpecialSourceType)0); } else if (Value1 == Value2) { <>n__0(); yield return (BattleAction)new GainMoneyAction(99, (SpecialSourceType)0); } } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } public sealed class KijinSeijaTiaoZhan1Def : KijinSeijaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = KijinSeijaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.RelativeEffects = new List<string> { "Spirit" }; defaultStatusEffectConfig.Type = (StatusEffectType)2; defaultStatusEffectConfig.HasCount = true; return defaultStatusEffectConfig; } } [EntityLogic(typeof(KijinSeijaTiaoZhan1Def))] public sealed class KijinSeijaTiaoZhan1 : StatusEffect { public int value44 = 0; public int value45 = 0; protected override void OnAdded(Unit unit) { SetCount(); ((StatusEffect)this).HandleOwnerEvent<UnitEventArgs>(((Unit)((StatusEffect)this).Battle.Player).TurnStarted, (GameEventHandler<UnitEventArgs>)delegate { SetCount(); }); ((StatusEffect)this).HandleOwnerEvent<DamageEventArgs>(unit.DamageReceived, (GameEventHandler<DamageEventArgs>)OnDamageReceived); ((StatusEffect)this).ReactOwnerEvent<GameEventArgs>(((StatusEffect)this).Battle.BattleEnded, (EventSequencedReactor<GameEventArgs>)OnBattleEnded); } private void SetCount() { if (value44 >= 25) { value45++; value44 = 0; } else { value44 = 0; } ((StatusEffect)this).Count = value45; } private void OnDamageReceived(DamageEventArgs args) { //IL_0009: 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) int num = value44; DamageInfo damageInfo = args.DamageInfo; value44 = num + (int)((DamageInfo)(ref damageInfo)).Damage; } private IEnumerable<BattleAction> OnBattleEnded(GameEventArgs args) { new List<Exhibit>(); if (value45 <= 2) { yield return (BattleAction)new GainMoneyAction(50, (SpecialSourceType)0); } else if (value45 > 2 && value45 <= 4) { yield return (BattleAction)new GainMoneyAction(150, (SpecialSourceType)0); ((GameEntity)this).GameRun.GainMaxHp(10, true, true); } else if (value45 > 4 && value45 <= 6) { yield return (BattleAction)new GainMoneyAction(400, (SpecialSourceType)0); ((GameEntity)this).GameRun.GainMaxHp(20 + ((Unit)((StatusEffect)this).Battle.Player).MaxHp / 10, true, true); } else if (value45 > 6) { yield return (BattleAction)new GainMoneyAction(700, (SpecialSourceType)0); ((GameEntity)this).GameRun.GainMaxHp(30 + ((Unit)((StatusEffect)this).Battle.Player).MaxHp / 5, true, true); } } } public sealed class KijinSeijaTSGDef : KijinSeijaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = KijinSeijaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.RelativeEffects = new List<string> { "Spirit" }; defaultStatusEffectConfig.Type = (StatusEffectType)1; return defaultStatusEffectConfig; } } [EntityLogic(typeof(KijinSeijaTSGDef))] public sealed class KijinSeijaTSG : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).HandleOwnerEvent<DieEventArgs>(((Unit)((StatusEffect)this).Battle.Player).Dying, (GameEventHandler<DieEventArgs>)OnPlayerDying); } private void OnPlayerDying(DieEventArgs args) { //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Expected O, but got Unknown //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Expected O, but got Unknown ((GameEventArgs)args).CancelBy((GameEntity)(object)this); if (((StatusEffect)this).Owner.Hp <= ((Unit)((StatusEffect)this).Battle.Player).MaxHp) { ((GameEntity)this).GameRun.SetHpAndMaxHp(((StatusEffect)this).Owner.Hp, ((Unit)((StatusEffect)this).Battle.Player).MaxHp, false); } else { ((GameEntity)this).GameRun.SetHpAndMaxHp(((Unit)((StatusEffect)this).Battle.Player).MaxHp, ((Unit)((StatusEffect)this).Battle.Player).MaxHp, false); } ((GameEntity)this).React(Reactor.op_Implicit((BattleAction)new ForceKillAction((Unit)(object)((StatusEffect)this).Battle.Player, ((StatusEffect)this).Owner))); ((GameEntity)this).React(Reactor.op_Implicit((BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f))); } } public sealed class KijinSeijaTurnGainSpiritSeDef : KijinSeijaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = KijinSeijaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.RelativeEffects = new List<string> { "Spirit" }; return defaultStatusEffectConfig; } } [EntityLogic(typeof(KijinSeijaTurnGainSpiritSeDef))] public sealed class KijinSeijaTurnGainSpiritSe : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<CardUsingEventArgs>(((StatusEffect)this).Battle.CardUsing, (EventSequencedReactor<CardUsingEventArgs>)OnCardUsing); ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnEnded, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnEnded); } private IEnumerable<BattleAction> OnCardUsing(CardUsingEventArgs args) { <>n__0(); args.PlayTwice = true; ((GameEventArgs)args).AddModifier((GameEntity)(object)this); yield break; } private IEnumerable<BattleAction> OnOwnerTurnEnded(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 KijinSeijaYinyangyuSeDef : KijinSeijaStatusEffectTemplate { public override StatusEffectConfig MakeConfig() { StatusEffectConfig defaultStatusEffectConfig = KijinSeijaStatusEffectTemplate.GetDefaultStatusEffectConfig(); defaultStatusEffectConfig.RelativeEffects = new List<string> { "Spirit" }; return defaultStatusEffectConfig; } } [EntityLogic(typeof(KijinSeijaYinyangyuSeDef))] public sealed class KijinSeijaYinyangyuSe : StatusEffect { protected override void OnAdded(Unit unit) { ((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((Unit)((StatusEffect)this).Battle.Player).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnturnStarted); } private IEnumerable<BattleAction> OnturnStarted(GameEventArgs args) { <>n__0(); yield return (BattleAction)(object)new ApplyStatusEffectAction<Firepower>(((StatusEffect)this).Owner, (int?)1, (int?)null, (int?)null, (int?)null, 0f, true); yield return (BattleAction)(object)new ApplyStatusEffectAction<Spirit>(((StatusEffect)this).Owner, (int?)1, (int?)null, (int?)null, (int?)null, 0f, true); } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((StatusEffect)this).NotifyActivating(); } } public class KijinSeijaStatusEffectTemplate : 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(KijinSeijaDefaultConfig.DefaultID((EntityDefinition)(object)this)); } public override LocalizationOption LoadLocalization() { return (LocalizationOption)(object)KijinSeijaLocalization.StatusEffectsBatchLoc.AddEntity((EntityDefinition)(object)this); } public override Sprite LoadSprite() { return KijinSeijaImageLoader.LoadStatusEffectLoader((StatusEffectTemplate)(object)this); } public override StatusEffectConfig MakeConfig() { return GetDefaultStatusEffectConfig(); } public static StatusEffectConfig GetDefaultStatusEffectConfig() { return KijinSeijaDefaultConfig.DefaultStatusEffectConfig(); } } } namespace KijinSeijaMod.model { public sealed class KijinSeijaModel : UnitModelTemplate { public static bool useInGameModel = BepinexPlugin.useInGameModel; public static string model_name = (useInGameModel ? BepinexPlugin.modelName : "KijinSeijaModel.png"); public static string spellsprite_name = "KijinSeijaStand.png"; public override IdContainer GetId() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) return IdContainer.op_Implicit(BepinexPlugin.modUniqueID); } public override LocalizationOption LoadLocalization() { return (LocalizationOption)(object)KijinSeijaLocalization.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, 565, (GraphicsFormat)4, 1, (FilterMode)1, (SpriteMeshType)1, (Rect?)null, (Vector2?)null, "file://")); } public override UniTask<Sprite> LoadSpellSprite() { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) if (useInGameModel) { return ResourcesHelper.LoadSpellPortraitAsync(model_name); } return ResourceLoader.LoadSpriteAsync(spellsprite_name, BepinexPlugin.directorySource, 100, (GraphicsFormat)4, 1, (FilterMode)1, (SpriteMeshType)1, (Rect?)null, (Vector2?)null, "file://"); } public override UnitModelConfig MakeConfig() { //IL_0057: Unknown result type (might be due to invalid IL or missing references) if (useInGameModel) { UnitModelConfig val = ObjectExtensions.Copy<UnitModelConfig>(UnitModelConfig.FromName(model_name)); val.Flip = BepinexPlugin.modelIsFlipped; return val; } UnitModelConfig val2 = ObjectExtensions.Copy<UnitModelConfig>(((UnitModelTemplate)this).DefaultConfig()); val2.Flip = BepinexPlugin.modelIsFlipped; val2.Type = 0; val2.Offset = new Vector2(0f, -0.1f); val2.HasSpellPortrait = true; return val2; } } } namespace KijinSeijaMod.Models { public sealed class KijinSeijaShinmyoumaruModel : UnitModelTemplate { public override IdContainer GetId() { //IL_0005: Unknown result type (might be due to invalid IL or missing references) return IdContainer.op_Implicit("KijinSeijaShinmyoumaru"); } public override UnitModelConfig MakeConfig() { //IL_0038: Unknown result type (might be due to invalid IL or missing references) UnitModelConfig val = ObjectExtensions.Copy<UnitModelConfig>(UnitModelConfig.FromName("Reimu")); val.Name = "KijinSeijaShinmyoumaru"; val.Type = 0; val.Flip = false; val.Offset = new Vector2(0f, 0.04f); return val; } public override ModelOption LoadModelOptions() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Expected O, but got Unknown return new ModelOption(UniTask.FromResult<Sprite>(ResourceLoader.LoadSprite("KijinSeijaShinmyoumaru.png", (IResourceSource)(object)BepinexPlugin.directorySource, (Rect?)null, 100, (Vector2?)null))); } public override UniTask<Sprite> LoadSpellSprite() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) return UniTask.FromResult<Sprite>((Sprite)null); } public override LocalizationOption LoadLocalization() { return null; } } } namespace KijinSeijaMod.Localization { public sealed class KijinSeijaLocalization { public static string Cards = "Cards"; public static string Exhibits = "Exhibits"; public static string PlayerUnit = "PlayerUnit"; public static string EnemiesUnit = "EnemyUnit"; public static string UnitModel = "UnitModel"; public static string UltimateSkills = "UltimateSkills"; public static string StatusEffects = "StatusEffects"; public static BatchLocalization CardsBatchLoc = new BatchLocalization((IResourceSource)(object)BepinexPlugin.directorySource, typeof(CardTemplate), Cards, (Locale)0, false); public static BatchLocalization ExhibitsBatchLoc = new BatchLocalization((IResourceSource)(object)BepinexPlugin.directorySource, typeof(ExhibitTemplate), Exhibits, (Locale)0, false); public static BatchLocalization PlayerUnitBatchLoc = new BatchLocalization((IResourceSource)(object)BepinexPlugin.directorySource, typeof(PlayerUnitTemplate), PlayerUnit, (Locale)0, false); public static BatchLocalization EnemiesUnitBatchLoc = new BatchLocalization((IResourceSource)(object)BepinexPlugin.directorySource, typeof(EnemyUnitTemplate), EnemiesUnit, (Locale)0, false); public static BatchLocalization UnitModelBatchLoc = new BatchLocalization((IResourceSource)(object)BepinexPlugin.directorySource, typeof(UnitModelTemplate), UnitModel, (Locale)0, false); public static BatchLocalization UltimateSkillsBatchLoc = new BatchLocalization((IResourceSource)(object)BepinexPlugin.directorySource, typeof(UltimateSkillTemplate), UltimateSkills, (Locale)0, false); public static BatchLocalization StatusEffectsBatchLoc = new BatchLocalization((IResourceSource)(object)BepinexPlugin.directorySource, typeof(StatusEffectTemplate), StatusEffects, (Locale)0, false); public static void Init() { CardsBatchLoc.DiscoverAndLoadLocFiles(Cards); ExhibitsBatchLoc.DiscoverAndLoadLocFiles(Exhibits); PlayerUnitBatchLoc.DiscoverAndLoadLocFiles(PlayerUnit); EnemiesUnitBatchLoc.DiscoverAndLoadLocFiles(EnemiesUnit); UnitModelBatchLoc.DiscoverAndLoadLocFiles(UnitModel); UltimateSkillsBatchLoc.DiscoverAndLoadLocFiles(UltimateSkills); StatusEffectsBatchLoc.DiscoverAndLoadLocFiles(StatusEffects); } } } namespace KijinSeijaMod.ImageLoader { public sealed class KijinSeijaImageLoader { 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, "", !BasicTypeExtensions.IsNullOrEmpty(cardTemplate.MakeConfig().UpgradeImageId)); return val; } public static ExhibitSprites LoadExhibitSprite(ExhibitTemplate exhibit) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0009: Unknown result type (might be due to invalid IL or missing references) ExhibitSprites val = new ExhibitSprites(); val.main = ResourceLoader.LoadSprite(IdContainer.op_Implicit(((EntityDefinition)exhibit).GetId()) + file_extension, BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null); return val; } public static Sprite LoadUltLoader(UltimateSkillTemplate ult) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) return LoadSprite(((EntityDefinition)ult).GetId()); } public static Sprite LoadStatusEffectLoader(StatusEffectTemplate status) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) return LoadSprite(((EntityDefinition)status).GetId()); } public static Sprite LoadSprite(IdContainer ID) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) return ResourceLoader.LoadSprite(IdContainer.op_Implicit(ID) + file_extension, BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null); } } } namespace KijinSeijaMod.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 KijinSeijaMod.Exhibits { public sealed class KijinSeijaExhibitADef : KijinSeijaExhibitTemplate { public override ExhibitConfig MakeConfig() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) ExhibitConfig defaultExhibitConfig = GetDefaultExhibitConfig(); defaultExhibitConfig.HasCounter = true; defaultExhibitConfig.InitialCounter = 0; ManaGroup value = default(ManaGroup); ((ManaGroup)(ref value)).Philosophy = 1; defaultExhibitConfig.Mana = value; defaultExhibitConfig.BaseManaColor = (ManaColor)7; return defaultExhibitConfig; } } [EntityLogic(typeof(KijinSeijaExhibitADef))] public sealed class KijinSeijaExhibitA : ShiningExhibit { public int count; private bool Blackout; protected override void OnEnterBattle() { ((Exhibit)this).HandleBattleEvent<CardEventArgs>(((Exhibit)this).Battle.CardRemoved, (GameEventHandler<CardEventArgs>)OnCardWasFuckingDelected); count = 0; Blackout = true; if (((Exhibit)this).Owner.Us != null) { ((Exhibit)this).Owner.Us.MaxPowerLevel = 2 + ((Exhibit)this).Counter; } } private void OnCardWasFuckingDelected(CardEventArgs args) { ((GameEntity)this).GameRun.GainMaxHp(2, true, true); count++; if (count >= 4 && Blackout) { ((Exhibit)this).Counter = ((Exhibit)this).Counter + 1; if (((Exhibit)this).Owner.Us != null) { ((Exhibit)this).Owner.Us.MaxPowerLevel = 2 + ((Exhibit)this).Counter; } Blackout = false; } } } public sealed class KijinSeijaExhibitBDef : KijinSeijaExhibitTemplate { public override ExhibitConfig MakeConfig() { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) ExhibitConfig defaultExhibitConfig = GetDefaultExhibitConfig(); ManaGroup value = default(ManaGroup); ((ManaGroup)(ref value)).Colorless = 1; defaultExhibitConfig.Mana = value; defaultExhibitConfig.BaseManaColor = (ManaColor)6; defaultExhibitConfig.IsPooled = false; defaultExhibitConfig.RelativeEffects = new List<string>(); return defaultExhibitConfig; } } [EntityLogic(typeof(KijinSeijaExhibitBDef))] public sealed class KijinSeijaExhibitB : ShiningExhibit { protected override void OnEnterBattle() { ((Exhibit)this).HandleBattleEvent<CardUsingEventArgs>(((Exhibit)this).Battle.CardUsed, (GameEventHandler<CardUsingEventArgs>)OnCardUsed); } private void OnCardUsed(CardUsingEventArgs args) { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Expected O, but got Unknown ((GameEntity)this).React(Reactor.op_Implicit((BattleAction)new HealAction((Unit)(object)((Exhibit)this).Battle.Player, (Unit)(object)((Exhibit)this).Battle.Player, 1, (HealType)0, 0.2f))); } } public class KijinSeijaExhibitTemplate : 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(KijinSeijaDefaultConfig.DefaultID((EntityDefinition)(object)this)); } public override LocalizationOption LoadLocalization() { return (LocalizationOption)(object)KijinSeijaLocalization.ExhibitsBatchLoc.AddEntity((EntityDefinition)(object)this); } public override ExhibitSprites LoadSprite() { return KijinSeijaImageLoader.LoadExhibitSprite((ExhibitTemplate)(object)this); } public override ExhibitConfig MakeConfig() { return GetDefaultExhibitConfig(); } public ExhibitConfig GetDefaultExhibitConfig() { return KijinSeijaDefaultConfig.DefaultExhibitConfig(); } } } namespace KijinSeijaMod.Exhibits.Common { public sealed class KijinSeijaDragonBallSeDef : KijinSeijaExhibitTemplate { public override ExhibitConfig MakeConfig() { ExhibitConfig defaultExhibitConfig = GetDefaultExhibitConfig(); defaultExhibitConfig.Rarity = (Rarity)1; defaultExhibitConfig.Owner = null; defaultExhibitConfig.BaseManaColor = null; defaultExhibitConfig.HasCounter = true; defaultExhibitConfig.InitialCounter = 0; defaultExhibitConfig.LosableType = (ExhibitLosableType)0; defaultExhibitConfig.RelativeCards = new List<string> { "KijinSeijaToken" }; defaultExhibitConfig.IsPooled = true; defaultExhibitConfig.Appearance = (AppearanceType)0; defaultExhibitConfig.RelativeEffects = new List<string>(); return defaultExhibitConfig; } } [EntityLogic(typeof(KijinSeijaDragonBallSeDef))] public sealed class KijinSeijaDragonBallSe : Exhibit { protected override void OnEnterBattle() { ((Exhibit)this).Counter = 0; ((Exhibit)this).ReactBattleEvent<UnitEventArgs>(((Unit)((Exhibit)this).Battle.Player).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarteded); ((Exhibit)this).HandleBattleEvent<UnitEventArgs>(((Unit)((Exhibit)this).Battle.Player).TurnEnded, (GameEventHandler<UnitEventArgs>)delegate { if (((Exhibit)this).Counter % 2 != 0 || ((Exhibit)this).Counter < 2) { ((Exhibit)this).Blackout = true; } else { ((Exhibit)this).Blackout = false; } }); } private IEnumerable<BattleAction> OnPlayerTurnStarteded(GameEventArgs arg) { if (!((Exhibit)this).Battle.BattleShouldEnd) { ((Exhibit)this).Counter = ((Exhibit)this).Counter + 1; if (((Exhibit)this).Counter >= 3 && ((Exhibit)this).Counter % 2 != 0) { <>n__0(); yield return (BattleAction)new AddCardsToDrawZoneAction((IEnumerable<Card>)Library.CreateCards<KijinSeijaToken>(1, false), (DrawZoneTarget)2, (AddCardsType)0); } } } protected override void OnLeaveBattle() { ((Exhibit)this).Active = false; ((Exhibit)this).Blackout = false; } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((Exhibit)this).NotifyActivating(); } } public sealed class KijinSeijaHolyGrailSeDef : KijinSeijaExhibitTemplate { public override ExhibitConfig MakeConfig() { ExhibitConfig defaultExhibitConfig = GetDefaultExhibitConfig(); defaultExhibitConfig.Rarity = (Rarity)1; defaultExhibitConfig.Owner = null; defaultExhibitConfig.BaseManaColor = null; defaultExhibitConfig.LosableType = (ExhibitLosableType)0; defaultExhibitConfig.HasCounter = true; defaultExhibitConfig.InitialCounter = 0; defaultExhibitConfig.IsPooled = true; defaultExhibitConfig.Appearance = (AppearanceType)0; defaultExhibitConfig.RelativeEffects = new List<string>(); return defaultExhibitConfig; } } [EntityLogic(typeof(KijinSeijaHolyGrailSeDef))] public sealed class KijinSeijaHolyGrailSe : Exhibit { protected override void OnEnterBattle() { ((Exhibit)this).Counter = 0; ((Exhibit)this).ReactBattleEvent<UnitEventArgs>(((Unit)((Exhibit)this).Battle.Player).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarted); ((Exhibit)this).HandleBattleEvent<UnitEventArgs>(((Unit)((Exhibit)this).Battle.Player).TurnEnded, (GameEventHandler<UnitEventArgs>)delegate { if (((Exhibit)this).Counter == 0) { ((Exhibit)this).Blackout = true; } }); } private IEnumerable<BattleAction> OnPlayerTurnStarted(GameEventArgs args) { if (((Exhibit)this).Battle.BattleShouldEnd) { yield break; } if (((Exhibit)this).Counter < 6) { int counter = ((Exhibit)this).Counter + 1; ((Exhibit)this).Counter = counter; if (((Exhibit)this).Counter == 5) { ((Exhibit)this).Active = true; } yield break; } <>n__0(); foreach (EnemyUnit enemy in ((Exhibit)this).Battle.AllAliveEnemies) { foreach (StatusEffect item in ((Unit)enemy).StatusEffects.Where((StatusEffect se) => (int)se.Type == 0).ToList()) { yield return (BattleAction)new RemoveStatusEffectAction(item, true, 0.1f); } } ((Exhibit)this).Active = false; } protected override void OnLeaveBattle() { ((Exhibit)this).Active = false; ((Exhibit)this).Blackout = false; } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((Exhibit)this).NotifyActivating(); } } public sealed class KijinSeijaMadokaBowSeDef : KijinSeijaExhibitTemplate { public override ExhibitConfig MakeConfig() { //IL_0033: 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) ExhibitConfig defaultExhibitConfig = GetDefaultExhibitConfig(); defaultExhibitConfig.Rarity = (Rarity)1; defaultExhibitConfig.Owner = null; defaultExhibitConfig.BaseManaColor = null; defaultExhibitConfig.LosableType = (ExhibitLosableType)0; ManaGroup value = default(ManaGroup); ((ManaGroup)(ref value)).Colorless = 3; defaultExhibitConfig.Mana = value; defaultExhibitConfig.HasCounter = true; defaultExhibitConfig.InitialCounter = 0; defaultExhibitConfig.IsPooled = true; defaultExhibitConfig.Appearance = (AppearanceType)0; defaultExhibitConfig.RelativeEffects = new List<string>(); return defaultExhibitConfig; } } [EntityLogic(typeof(KijinSeijaMadokaBowSeDef))] public sealed class KijinSeijaMadokaBowSe : Exhibit { protected override void OnAdded(PlayerUnit player) { GameRunController gameRun = ((GameEntity)this).GameRun; int removeBadCardForbidden = gameRun.RemoveBadCardForbidden + 1; gameRun.RemoveBadCardForbidden = removeBadCardForbidden; } protected override void OnRemoved(PlayerUnit player) { //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_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Invalid comparison between Unknown and I4 //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Invalid comparison between Unknown and I8 GameRunController gameRun = ((GameEntity)this).GameRun; int removeBadCardForbidden = gameRun.RemoveBadCardForbidden - 1; gameRun.RemoveBadCardForbidden = removeBadCardForbidden; if (((Exhibit)this).Battle == null || ((GameEntity)this).GameRun.RemoveBadCardForbidden > 0) { return; } foreach (Card item in ((Exhibit)this).Battle.EnumerateAllCards()) { CardType cardType = item.CardType; if ((int)cardType == 8 && (long)(item.Config.Keywords & 0x8000) > 0L) { item.IsForbidden = true; } } } protected override void OnEnterBattle() { ((Exhibit)this).HandleBattleEvent<CardUsingEventArgs>(((Exhibit)this).Battle.CardUsing, (GameEventHandler<CardUsingEventArgs>)OnCardUsing); } private void OnCardUsing(CardUsingEventArgs args) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Invalid comparison between Unknown and I4 //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown if ((int)args.Card.CardType == 8) { ((Exhibit)this).NotifyActivating(); ((GameEntity)this).React(Reactor.op_Implicit((BattleAction)new GainManaAction(((Exhibit)this).Mana))); } } } public sealed class KijinSeijaQiannianShenqiSeDef : KijinSeijaExhibitTemplate { public override ExhibitConfig MakeConfig() { ExhibitConfig defaultExhibitConfig = GetDefaultExhibitConfig(); defaultExhibitConfig.Rarity = (Rarity)1; defaultExhibitConfig.Owner = null; defaultExhibitConfig.BaseManaColor = null; defaultExhibitConfig.LosableType = (ExhibitLosableType)0; defaultExhibitConfig.HasCounter = true; defaultExhibitConfig.InitialCounter = 0; defaultExhibitConfig.IsPooled = true; defaultExhibitConfig.Appearance = (AppearanceType)0; defaultExhibitConfig.RelativeEffects = new List<string>(); return defaultExhibitConfig; } } [EntityLogic(typeof(KijinSeijaQiannianShenqiSeDef))] public sealed class KijinSeijaQiannianShenqiSe : Exhibit { protected override void OnEnterBattle() { ((Exhibit)this).ReactBattleEvent<UnitEventArgs>(((Unit)((Exhibit)this).Battle.Player).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarteded); } private IEnumerable<BattleAction> OnPlayerTurnStarteded(GameEventArgs arg) { EnemyUnit[] enemies = UnitSelector.AllEnemies.GetEnemies(((Exhibit)this).Battle); int attackCount = enemies.Count((EnemyUnit enemy) => enemy.Intentions.Any((Intention i) => true)); if (attackCount > 1) { yield return (BattleAction)(object)new ApplyStatusEffectAction<Firepower>((Unit)(object)((Exhibit)this).Battle.Player, (int?)(attackCount - 1), (int?)null, (int?)null, (int?)null, 0f, true); yield return (BattleAction)(object)new ApplyStatusEffectAction<Spirit>((Unit)(object)((Exhibit)this).Battle.Player, (int?)(attackCount - 1), (int?)null, (int?)null, (int?)null, 0f, true); } } } public sealed class KijinSeijaSakuraWandSeDef : KijinSeijaExhibitTemplate { public override ExhibitConfig MakeConfig() { ExhibitConfig defaultExhibitConfig = GetDefaultExhibitConfig(); defaultExhibitConfig.Rarity = (Rarity)2; defaultExhibitConfig.Owner = null; defaultExhibitConfig.BaseManaColor = null; defaultExhibitConfig.LosableType = (ExhibitLosableType)0; defaultExhibitConfig.HasCounter = true; defaultExhibitConfig.InitialCounter = 0; defaultExhibitConfig.IsPooled = true; defaultExhibitConfig.Appearance = (AppearanceType)0; defaultExhibitConfig.RelativeEffects = new List<string>(); return defaultExhibitConfig; } } [EntityLogic(typeof(KijinSeijaSakuraWandSeDef))] public sealed class KijinSeijaSakuraWandSe : Exhibit { protected override void OnEnterBattle() { ((Exhibit)this).HandleBattleEvent<CardUsingEventArgs>(((Exhibit)this).Battle.CardUsing, (GameEventHandler<CardUsingEventArgs>)OnCardUsing); } private void OnCardUsing(CardUsingEventArgs args) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Invalid comparison between Unknown and I4 if ((int)args.Card.CardType == 1) { args.PlayTwice = true; } } } public sealed class KijinSeijaShenDengSeDef : KijinSeijaExhibitTemplate { public override ExhibitConfig MakeConfig() { ExhibitConfig defaultExhibitConfig = GetDefaultExhibitConfig(); defaultExhibitConfig.Rarity = (Rarity)2; defaultExhibitConfig.Owner = null; defaultExhibitConfig.BaseManaColor = null; defaultExhibitConfig.LosableType = (ExhibitLosableType)0; defaultExhibitConfig.HasCounter = true; defaultExhibitConfig.InitialCounter = 0; defaultExhibitConfig.IsPooled = true; defaultExhibitConfig.Appearance = (AppearanceType)0; defaultExhibitConfig.RelativeEffects = new List<string>(); return defaultExhibitConfig; } } [EntityLogic(typeof(KijinSeijaShenDengSeDef))] public sealed class KijinSeijaShenDengSe : Exhibit { private List<Type> Types { get; set; } private int Counter { get; set; } protected override void OnEnterBattle() { Counter = 0; Types = new List<Type> { typeof(Weak), typeof(Fragil), typeof(Vulnerable) }; ((Exhibit)this).ReactBattleEvent<UnitEventArgs>(((Unit)((Exhibit)this).Battle.Player).TurnEnding, (EventSequencedReactor<UnitEventArgs>)OnTurnEnding); } private IEnumerable<BattleAction> OnTurnEnding(UnitEventArgs args) { if (Counter % 3 == 0) { CollectionsExtensions.Shuffle<Type>((IList<Type>)Types, ((GameEntity)this).GameRun.EnemyBattleRng); } <>n__0(); Type type = Types[Counter % 3]; EnemyUnit target = ((Exhibit)this).Battle.RandomAliveEnemy; int? duration = 3; yield return (BattleAction)new ApplyStatusEffectAction(type, (Unit)(object)target, (int?)null, duration, (int?)null, (int?)null, 0f, false); int counter = Counter + 1; Counter = counter; } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((Exhibit)this).NotifyActivating(); } } public sealed class KijinSeijaSihunYuSeDef : KijinSeijaExhibitTemplate { public override ExhibitConfig MakeConfig() { ExhibitConfig defaultExhibitConfig = GetDefaultExhibitConfig(); defaultExhibitConfig.Rarity = (Rarity)1; defaultExhibitConfig.Owner = null; defaultExhibitConfig.BaseManaColor = null; defaultExhibitConfig.LosableType = (ExhibitLosableType)0; defaultExhibitConfig.HasCounter = true; defaultExhibitConfig.InitialCounter = 0; defaultExhibitConfig.IsPooled = true; defaultExhibitConfig.Appearance = (AppearanceType)0; defaultExhibitConfig.RelativeEffects = new List<string>(); return defaultExhibitConfig; } } [EntityLogic(typeof(KijinSeijaSihunYuSeDef))] public sealed class KijinSeijaSihunYuSe : Exhibit { protected override void OnEnterBattle() { ((Exhibit)this).ReactBattleEvent<UnitEventArgs>(((Unit)((Exhibit)this).Battle.Player).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarteded); } private IEnumerable<BattleAction> OnPlayerTurnStarteded(UnitEventArgs arg) { if (((Exhibit)this).Battle.BattleShouldEnd) { yield break; } List<Card> list = ((Exhibit)this).Battle.RollCards(new CardWeightTable(RarityWeightTable.BattleCard, OwnerWeightTable.AllOnes, CardTypeWeightTable.OnlyFriend, false), 1, (Predicate<CardConfig>)delegate(CardConfig config) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) ManaGroup cost = config.Cost; return ((ManaGroup)(ref cost)).Amount < 5; }).ToList(); if (list.Count <= 0) { yield break; } <>n__0(); foreach (Card card in list) { card.Summon(); } yield return (BattleAction)new AddCardsToHandAction((IEnumerable<Card>)list, (AddCardsType)0, false); } [CompilerGenerated] [DebuggerHidden] private void <>n__0() { ((Exhibit)this).NotifyActivating(); } } } namespace KijinSeijaMod.Enemies { public sealed class KijinSeijaEnemyGroupDef : KijinSeijaEnemyGroupTemplate { 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("KijinSeijaSagume"); } public override EnemyGroupConfig MakeConfig() { EnemyGroupConfig defaultEnemyGroupConfig = GetDefaultEnemyGroupConfig(); defaultEnemyGroupConfig.Name = "KijinSeijaSagume"; defaultEnemyGroupConfig.FormationName = "Single"; defaultEnemyGroupConfig.Enemies = new List<string> { "KijinSeijaSagume" }; defaultEnemyGroupConfig.EnemyType = (EnemyType)3; defaultEnemyGroupConfig.RollBossExhibit = false; return defaultEnemyGroupConfig; } } public sealed class KijinSeijaEnemyUnitDef : KijinSeijaEnemyUnitTemplate { public override IdContainer GetId() { //IL_0005: Unknown result type (might be due to invalid IL or missing references) return IdContainer.op_Implicit("KijinSeijaSagume"); } public override EnemyUnitConfig MakeConfig() { //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Unknown result type (might be due to invalid IL or missing references) EnemyUnitConfig defaultEnemyUnitConfig = GetDefaultEnemyUnitConfig(); defaultEnemyUnitConfig.IsPreludeOpponent = false; defaultEnemyUnitConfig.ModleName = "KijinSeijaSagume"; defaultEnemyUnitConfig.BaseManaColor = new List<ManaColor> { (ManaColor)4, (ManaColor)3 }; defaultEnemyUnitConfig.Type = (EnemyType)3; defaultEnemyUnitConfig.MaxHp = 1688; defaultEnemyUnitConfig.MaxHpHard = 1789; defaultEnemyUnitConfig.MaxHpLunatic = 1917; defaultEnemyUnitConfig.Damage1 = 8; defaultEnemyUnitConfig.Damage1Hard = 11; defaultEnemyUnitConfig.Damage1Lunatic = 14; defaultEnemyUnitConfig.Damage2 = 45; defaultEnemyUnitConfig.Damage2Hard = 70; defaultEnemyUnitConfig.Damage2Lunatic = 100; defaultEnemyUnitConfig.Defend = 100; defaultEnemyUnitConfig.DefendHard = 200; defaultEnemyUnitConfig.DefendLunatic = 350; defaultEnemyUnitConfig.Count1 = 10; defaultEnemyUnitConfig.Count1Hard = 12; defaultEnemyUnitConfig.Count1Lunatic = 15; defaultEnemyUnitConfig.Count2 = 1; defaultEnemyUnitConfig.Count2Hard = 2; defaultEnemyUnitConfig.Count2Lunatic = 3; defaultEnemyUnitConfig.PowerLoot = new MinMax(500, 500); defaultEnemyUnitConfig.BluePointLoot = new MinMax(1000, 1000); defaultEnemyUnitConfig.Gun1 = new List<string> { "Simple1" }; defaultEnemyUnitConfig.Gun2 = new List<string> { "Simple1" }; defaultEnemyUnitConfig.Gun3 = new List<string> { "Simple1" }; defaultEnemyUnitConfig.Gun4 = new List<string> { "Simple1" }; return defaultEnemyUnitConfig; } } [EntityLogic(typeof(KijinSeijaEnemyUnitDef))] public sealed class KijinSeijaSagume : EnemyUnit { private enum MoveType { move1, move2, move3, move4 } private bool _nextDevil; private MoveType Last { get; set; } public RandomGen SeijaRng { get; set; } private MoveType Next { get; set; } public string move1 => ((EnemyUnit)this).GetSpellCardName((int?)0, 1); public string move2 => ((EnemyUnit)this).GetSpellCardName((int?)2, 3); public string move3 => ((EnemyUnit)this).GetSpellCardName((int?)4, 5); public string move4 => ((EnemyUnit)this).GetSpellCardName((int?)6, 7); public string Sagume1 => ((GameEntity)this).LocalizeProperty("Sagume1", false, true); public string Sagume2 => ((GameEntity)this).LocalizeProperty("Sagume2", false, true); public string Sagume3 => ((GameEntity)this).LocalizeProperty("Sagume3", false, true); public string Sagume4 => ((GameEntity)this).LocalizeProperty("Sagume4", false, true); public string Sagume5 => ((GameEntity)this).LocalizeProperty("Sagume5", false, true); public string Sagume55 => ((GameEntity)this).LocalizeProperty("Sagume55", false, true); public string Sagume6 => ((GameEntity)this).LocalizeProperty("Sagume6", false, true); public string Sagume7 => ((GameEntity)this).LocalizeProperty("Sagume7", false, true); public string Sagume8 => ((GameEntity)this).LocalizeProperty("Sagume8", false, true); public string Sagume9 => ((GameEntity)this).LocalizeProperty("Sagume9", false, true); public string Sagume10 => ((GameEntity)this).LocalizeProperty("Sagume10", false, true); public string Sagume11 => ((GameEntity)this).LocalizeProperty("Sagume11", false, true); public string Sagume12 => ((GameEntity)this).LocalizeProperty("Sagume12", false, true); public string Sagume13 => ((GameEntity)this).LocalizeProperty("Sagume13", false, true); protected override void OnEnterBattle(BattleController battle) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Expected O, but got Unknown Last = MoveType.move2; Next = MoveType.move1; SeijaRng = new RandomGen(((GameEntity)this).GameRun.FinalBossSeed); ((Unit)this).ReactBattleEvent<GameEventArgs>(((Unit)this).Battle.BattleStarted, (Func<GameEventArgs, IEnumerable<BattleAction>>)OnBattleStarted); ((Unit)this).HandleBattleEvent<DamageEventArgs>(((Unit)this).DamageReceived, (GameEventHandler<DamageEventArgs>)OnDamageReceived); ((Unit)this).HandleBattleEvent<DieEventArgs>(((Unit)this).Dying, (GameEventHandler<DieEventArgs>)OnDying); } private IEnumerable<BattleAction> OnBattleStarted(GameEventArgs arg) { yield return (BattleAction)(object)PerformAction.Chat((Unit)(object)((Unit)this).Battle.Player, Sagume1, 3f, 0f, 3.2f, true); yield return (BattleAction)(object)PerformAction.Chat((Unit)(object)this, Sagume2, 7f, 0f, 7.2f, true); yield return (BattleAction)(object)PerformAction.Chat((Unit)(object)((Unit)this).Battle.Player, Sagume3, 5f, 0f, 5.2f, true); yield return (BattleAction)(object)PerformAction.Chat((Unit)(object)this, Sagume4, 5f, 0f, 5.2f, true); yield return (BattleAction)(object)PerformAction.Chat((Unit)(object)this, Sagume5, 5f, 0f, 5.2f, true); yield return (BattleAction)(object)PerformAction.Chat((Unit)(object)this, Sagume55, 5f, 0f, 5.2f, true); yield return (BattleAction)(object)PerformAction.Chat((Unit)(object)((Unit)this).Battle.Player, Sagume6, 5f, 0f, 5.2f, true); yield return (BattleAction)(object)PerformAction.Chat((Unit)(object)this, Sagume7, 5f, 0f, 5.2f, true); yield return (BattleAction)(object)PerformAction.Chat((Unit)(object)this, Sagume8, 5f, 0f, 5.2f, true); yield return (BattleAction)(object)new ApplyStatusEffectAction<ScarletDestiny>((Unit)(object)this, (int?)null, (int?)null, (int?)null, (int?)(21 - 3 * ((EnemyUnit)this).Count2), 0f, true); yield return (BattleAction)(object)new ApplyStatusEffectAction<FlatPeach>((Unit)(object)this, (int?)(1 + 2 * ((EnemyUnit)this).Count2), (int?)null, (int?)null, (int?)null, 0f, true); yield return (BattleAction)(object)new ApplyStatusEffectAction<Curiosity>((Unit)(object)this, (int?)(((int)((EnemyUnit)this).Difficulty != 3) ? 1 : 2), (int?)null, (int?)null, (int?)null, 0f, true); yield return (BattleAction)(object)new ApplyStatusEffectAction<JunkoPurify>((Unit)(object)this, (int?)((EnemyUnit)this).Count2, (int?)null, (int?)null, (int?)null, 0f, true); yield return (BattleAction)(object)new ApplyStatusEffectAction<LongLight>((Unit)(object)this, (int?)((EnemyUnit)this).Count2, (int?)null, (int?)null, (int?)null, 0f, true); yield return (BattleAction)(object)new ApplyStatusEffectAction<WindGirl>((Unit)(object)this, (int?)((EnemyUnit)this).Count2, (int?)null, (int?)null, (int?)null, 0f, true); } private void OnDying(DieEventArgs args) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Expected O, but got Unknown ((GameEventArgs)args).CancelBy((GameEntity)(object)this); ((GameEntity)this).React(Reactor.op_Implicit((BattleAction)new RemoveAllNegativeStatusEffectAction((Unit)(object)this, 0.2f))); ((GameEntity)this).React(Reactor.op_Implicit((BattleAction)(object)new ApplyStatusEffectAction<Invincible>((Unit)(object)this, (int?)999, (int?)0, (int?)0, (int?)0, 0f, true))); ((GameEntity)this).React(Reactor.op_Implicit((BattleAction)(object)PerformAction.Chat((Unit)(object)((Unit)this).Battle.Player, Sagume9, 5f, 0f, 5.2f, true))); ((GameEntity)this).React(Reactor.op_Implicit((BattleAction)(object)PerformAction.Chat((Unit)(object)this, Sagume10, 5f, 0f, 5.2f, true))); ((GameEntity)this).React(Reactor.op_Implicit((BattleAction)(object)PerformAction.Chat((Unit)(object)((Unit)this).Battle.Player, Sagume11, 5f, 0f, 5.2f, true))); ((GameEntity)this).React(Reactor.op_Implicit((BattleAction)(object)PerformAction.Chat((Unit)(object)this, Sagume12, 5f, 0f, 5.2f, true))); ((GameEntity)this).React(Reactor.op_Implicit((BattleAction)(object)PerformAction.Chat((Unit)(object)this, Sagume13, 5f, 0f, 5.2f, true))); ((GameEntity)this).React(Reactor.op_Implicit((BattleAction)new EscapeAction((Unit)(object)this))); } private void OnDamageReceived(DamageEventArgs args) { if (((Unit)this).Hp <= 300) { if (((Unit)this).IsInTurn) { _nextDevil = true; return; } Next = MoveType.move4; ((EnemyUnit)this).UpdateTurnMoves(); } } private IEnumerable<BattleAction> BuffAndClear() { yield return (BattleAction)(object)PerformAction.Animation((Unit)(object)this, "spell", 1f, (string)null, 0f, -1); yield return (BattleAction)(object)new ApplyStatusEffectAction<Invincible>((Unit)(object)this, (int?)null, (int?)((EnemyUnit)this).Count2, (int?)null, (int?)null, 0f, true); yield return (BattleAction)(object)new ApplyStatusEffectAction<YuyukoDeath>((Unit)(object)((Unit)this).Battle.Player, (int?)((EnemyUnit)this).Count2, (int?)null, (int?)null, (int?)null, 0.2f, true); yield return (BattleAction)(object)new ApplyStatusEffectAction<Vulnerable>((Unit)(object)((Unit)this).Battle.Player, (int?)null, (int?)((EnemyUnit)this).Count2, (int?)null, (int?)null, 0f, false); yield return (BattleAction)(object)new ApplyStatusEffectAction<LockedOn>((Unit)(object)((Unit)this).Battle.Player, (int?)((EnemyUnit)this).Count1, (int?)null, (int?)null, (int?)null, 0f, false); } private IEnumerable<BattleAction> SetMaxHp() { yield return (BattleAction)(object)PerformAction.Animation((Unit)(object)this, "skill1", 0.8f, (string)null, 0f, -1); if (((Unit)this).MaxHp >= 1453) { yield return (BattleAction)new HealAction((Unit)(object)this, (Unit)(object)this, ((Unit)this).MaxHp - ((Unit)this).Hp * 2, (HealType)0, 0.2f); } else { ((GameEntity)this).GameRun.SetEnemyHpAndMaxHp(1969, 1970, (EnemyUnit)(object)this, false); } } protected override IEnumerable<IEnemyMove> GetTurnMoves() { switch (Next) { case MoveType.move1: yield return ((EnemyUnit)this).AttackMove(move1, "ERinShoot1", ((EnemyUnit)this).Damage1, ((EnemyUnit)this).Count1, false, "Instant", true); break; case MoveType.move2: yield return ((EnemyUnit)this).AttackMove(move2, "CSweet020", ((EnemyUnit)this).Damage2, 2, true, "Instant", true); yield return (IEnemyMove)new SimpleEnemyMove(Intention.Defend(), BasicDefendAction()); break; case MoveType.move3: yield return (IEnemyMove)new SimpleEnemyMove(Intention.SpellCard(move3, (int?)null, (int?)null, false), BuffAndClear()); yield return ((EnemyUnit)this).ClearMove(0f); break; case MoveType.move4: yield return (IEnemyMove)new SimpleEnemyMove(Intention.SpellCard(move4, (int?)null, (int?)null, false), SetMaxHp()); yield return ((EnemyUnit)this).ClearMove(0f); break; default: throw new ArgumentOutOfRangeException(); } } private IEnumerable<BattleAction> BasicDefendAction() { yield return (BattleAction)new CastBlockShieldAction((Unit)(object)this, ((EnemyUnit)this).Defend, 0, (BlockShieldType)1, true); } protected override void UpdateMoveCounters() { if (_nextDevil) { Next = MoveType.move4; _nextDevil = false; return; } MoveType next = Next; if (1 == 0) { } MoveType next2 = next switch { MoveType.move1 => MoveType.move2, MoveType.move2 => MoveType.move3, MoveType.move3 => MoveType.move1, MoveType.move4 => MoveType.move1, _ => MoveType.move1, }; if (1 == 0) { } Next = next2; } } public sealed class KijinSeijaSagumeModel : UnitModelTemplate { public override IdContainer GetId() { //IL_0005: Unknown result type (might be due to invalid IL or missing references) return IdContainer.op_Implicit("KijinSeijaSagume"); } public override LocalizationOption LoadLocalization() { return null; } public override ModelOption LoadModelOptions() { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Expected O, but got Unknown return new ModelOption(UniTask.FromResult<Sprite>(ResourceLoader.LoadSprite("KijinSeijaSagume.png", (IResourceSource)(object)BepinexPlugin.directorySource, (Rect?)null, 200, (Vector2?)null))); } public override UnitModelConfig MakeConfig() { //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) UnitModelConfig val = ObjectExtensions.Copy<UnitModelConfig>(UnitModelConfig.FromName("Sakuya")); val.Name = "KijinSeijaSagume"; val.Flip = true; val.Type = 0; val.Offset = new Vector2(0f, 0.04f); val.SpellColor = (IReadOnlyList<Color32>)(object)new Color32[4] { new Color32((byte)104, (byte)15, (byte)5, byte.MaxValue), new Color32(byte.MaxValue, (byte)46, (byte)72, byte.MaxValue), new Color32((byte)74, (byte)0, (byte)1, (byte)150), new Color32(byte.MaxValue, (byte)46, (byte)72, byte.MaxValue) }; return val; } public override UniTask<Sprite> LoadSpellSprite() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) return UniTask.FromResult<Sprite>((Sprite)null); } } } namespace KijinSeijaMod.Enemies.Template { public abstract class KijinSeijaEnemyGroupTemplate : EnemyGroupTemplate { public override IdContainer GetId() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) return IdContainer.op_Implicit(KijinSeijaDefaultConfig.DefaultID((EntityDefinition)(object)this)); } public override EnemyGroupConfig MakeConfig() { return KijinSeijaDefaultConfig.DefaultEnemyGroupConfig(); } public EnemyGroupConfig GetDefaultEnemyGroupConfig() { return KijinSeijaDefaultConfig.DefaultEnemyGroupConfig(); } } public class KijinSeijaEnemyUnitTemplate : EnemyUnitTemplate { public override IdContainer GetId() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) return IdContainer.op_Implicit(KijinSeijaDefaultConfig.DefaultID((EntityDefinition)(object)this)); } public override EnemyUnitConfig MakeConfig() { return KijinSeijaDefaultConfig.DefaultEnemyUnitConfig(); } public override LocalizationOption LoadLocalization() { return (LocalizationOption)(object)KijinSeijaLocalization.EnemiesUnitBatchLoc.AddEntity((EntityDefinition)(object)this); } public override Type TemplateType() { return typeof(EnemyUnitTemplate); } public EnemyUnitConfig GetDefaultEnemyUnitConfig() { return KijinSeijaDefaultConfig.DefaultEnemyUnitConfig(); } } } namespace KijinSeijaMod.Config { public struct CustomConfigEntry<T> { public T Value { get; set; } public string Section { get; set; } public string Key { get; set; } public string Description { get; set; } public CustomConfigEntry(T value, string section, string key, string description) { Value = value; Section = section; Key = key; Description = description; } } public sealed class KijinSeijaDefaultConfig { private static readonly string OwnerName = BepinexPlugin.modUniqueID; public static string DefaultID(EntityDefinition entity) { string name = ((object)entity).GetType().Name; return name.Remove(name.Length - 3); } public static CardConfig DefaultCardConfig() { //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Expected O, but got Unknown return new CardConfig(0, "", 10, true, new string[0][], "", "", 0, false, true, false, true, true, (Rarity)0, (CardType)0, (TargetType?)null, (IReadOnlyList<ManaColor>)new List<ManaColor>(), false, default(ManaGroup), (ManaGroup?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)0, (Keyword)0, false, (Keyword)0, (Keyword)0, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), OwnerName, "", "", "", false, (string)null, (IReadOnlyList<string>)new List<string>()); } public static ExhibitConfig DefaultExhibitConfig() { //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Expected O, but got Unknown return new ExhibitConfig(0, "", 10, false, false, false, false, (AppearanceType)3, OwnerName, (ExhibitLosableType)1, (Rarity)3, (int?)null, (int?)null, (int?)null, (ManaGroup?)default(ManaGroup), (ManaColor?)null, (ManaColor?)(ManaColor)1, 1, false, (int?)null, (Keyword)0, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>()); } public static StatusEffectConfig DefaultStatusEffectConfig() { //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Expected O, but got Unknown return new StatusEffectConfig(0, "", 10, (StatusEffectType)0, false, true, (int?)null, true, (StackType?)(StackType)0, false, (StackType?)(StackType)0, (DurationDecreaseTiming)0, false, (StackType?)(StackType)3, (StackType?)(StackType)3, false, (Keyword)0, (IReadOnlyList<string>)new List<string>(), (string)null, "Default", "Default", "Default"); } public static UltimateSkillConfig DefaultUltConfig() { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Expected O, but got Unknown return new UltimateSkillConfig("", 10, 100, 100, 2, (UsRepeatableType)1, 1, 0, 0, (Keyword)256, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>()); } public static EnemyUnitConfig DefaultEnemyUnitConfig() { //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Expected O, but got Unknown return new EnemyUnitConfig("", false, false, (IReadOnlyList<ManaColor>)new List<ManaColor> { (ManaColor)6 }, 10, "", "#ffff", (EnemyType)3, false, (float?)null, (int?)null, 250, (int?)10, (int?)10, (int?)10, (int?)10, (int?)1, (int?)15, (int?)1, (int?)2, (int?)250, (int?)10, (int?)10, (int?)10, (int?)10, (int?)1, (int?)15, (int?)1, (int?)2, (int?)250, (int?)10, (int?)10, (int?)10, (int?)10, (int?)1, (int?)15, (int?)1, (int?)2, new MinMax(100, 100), new MinMax(100, 100), (IReadOnlyList<string>)new List<string> { GunNameID.GetGunFromId(800) }, (IReadOnlyList<string>)new List<string> { GunNameID.GetGunFromId(800) }, (IReadOnlyList<string>)new List<string> { GunNameID.GetGunFromId(800) }, (IReadOnlyList<string>)new List<string> { GunNameID.GetGunFromId(800) }); } public static EnemyGroupConfig DefaultEnemyGroupConfig() { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Expected O, but got Unknown return new EnemyGroupConfig("", false, (IReadOnlyList<string>)new List<string>(), "", "Single", (IReadOnlyList<string>)new List<string>(), (EnemyType)3, false, 1f, true, new Vector2(-4f, 0.5f), "", "", (string)null); } } } namespace KijinSeijaMod.Cards { public sealed class KijinSeijaDynamicCostDef : KijinSeijaCardTemplate { public override CardConfig MakeConfig() { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0040: 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_005a: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) CardConfig defaultCardConfig = GetDefaultCardConfig(); defaultCardConfig.GunName = GunNameID.GetGunFromId(400); defaultCardConfig.Colors = new List<ManaColor> { (ManaColor)6 }; ManaGroup val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 10; defaultCardConfig.Cost = val; val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 10; defaultCardConfig.UpgradedCost = val; defaultCardConfig.Rarity = (Rarity)0; defaultCardConfig.Type = (CardType)3; defaultCardConfig.TargetType = (TargetType)0; defaultCardConfig.Value1 = 2; defaultCardConfig.UpgradedValue1 = 3; defaultCardConfig.ToolPlayableTimes = 3; defaultCardConfig.Keywords = (Keyword)65536; defaultCardConfig.UpgradedKeywords = (Keyword)65536; val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 1; defaultCardConfig.Mana = val; val = default(ManaGroup); ((ManaGroup)(ref val)).Any = 2; defaultCardConfig.UpgradedMana = val; defaultCardConfig.Illustrator = ""; defaultCardConfig.Index = CardIndexGenerator.GetUniqueIndex(defaultCardConfig); return defaultCardConfig; } } [EntityLogic(typeof(KijinSeijaDynamicCostDef))] public sealed class KijinSeijaDynamicCost : KijinSeijaCard { protected override ManaGroup AdditionalCost { get { //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_003c: 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_008a: Unknown resul