Decompiled source of NQV4PRO v0.0.2
NQV4Pro.dll
Decompiled 11 months 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.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using CardChoiceSpawnUniqueCardPatch.CustomCategories; using HarmonyLib; using Jotunn.Utils; using Microsoft.CodeAnalysis; using ModsPlus; using NQV4Pro; using Photon.Pun; using UnboundLib; using UnboundLib.Cards; using UnboundLib.GameModes; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("NQV4Pro")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("NQV4Pro")] [assembly: AssemblyTitle("NQV4Pro")] [assembly: AssemblyVersion("1.0.0.0")] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } } public class AbyssCard : CustomEffectCard<AbyssCardEffect> { public override CardDetails<AbyssCardEffect> Details { get { //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Expected O, but got Unknown CardDetails<AbyssCardEffect> val = new CardDetails<AbyssCardEffect>(); val.Title = "ナラク"; val.Description = "敵を奈落へ"; val.ModName = "NQV4PRO"; val.Rarity = (Rarity)1; val.Theme = (CardThemeColorType)4; val.Art = Assets.AbyssCard_Art; val.Stats = (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { amount = "+10000", positive = true, simepleAmount = (SimpleAmount)0, stat = "弾丸ヒット時の重力" } }; return val; } } } public class AbyssCardEffect : CardEffect { public override void OnBulletHit(GameObject projectile, HitInfo hit) { ((CardEffect)this).OnBulletHit(projectile, hit); if (!((Component)hit.collider).CompareTag("Player")) { return; } GameObject gameObject = ((Component)hit.collider).gameObject; Player val = gameObject.GetComponent<Player>() ?? gameObject.GetComponentInParent<Player>(); if ((Object)(object)val != (Object)null) { AbyssGravity abyssGravity = gameObject.GetComponent<AbyssGravity>(); if ((Object)(object)abyssGravity == (Object)null) { abyssGravity = gameObject.AddComponent<AbyssGravity>(); } abyssGravity.ApplyAbyssGravity(val); } } } public class AbyssGravity : MonoBehaviour { private Gravity gravity; private float originalGravity; private Renderer renderer; private Player player; public void ApplyAbyssGravity(Player player) { //IL_0084: Unknown result type (might be due to invalid IL or missing references) this.player = player; gravity = ((Component)player).GetComponent<Gravity>() ?? ((Component)player).GetComponentInParent<Gravity>(); if ((Object)(object)gravity != (Object)null) { originalGravity = gravity.gravityForce; gravity.gravityForce = 10000f; Debug.Log("[AbyssEffect] プレイヤーの重力を10000に設定しました"); } Renderer componentInChildren = ((Component)player).GetComponentInChildren<Renderer>(); if ((Object)(object)componentInChildren != (Object)null) { componentInChildren.material.color = new Color(0.5f, 0f, 0.5f); } } private void OnDestroy() { RestoreGravity(); } public void RestoreGravity() { if ((Object)(object)gravity != (Object)null) { gravity.gravityForce = originalGravity; Debug.Log("[AbyssEffect] プレイヤーの重力を元に戻しました"); } } } public class ChaosShoot : SimpleCard { public override CardDetails Details { get { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Expected O, but got Unknown //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Expected O, but got Unknown CardDetails val = new CardDetails(); val.Title = "Chaos Shoot"; val.Description = "アインシュタインも涙を流す"; val.ModName = "NQV4PRO"; val.Rarity = (Rarity)0; val.Theme = (CardThemeColorType)6; val.Art = Assets.ChaosShoot_Art; val.Stats = (CardInfoStat[])(object)new CardInfoStat[2] { new CardInfoStat { amount = "弾の重力", positive = true, simepleAmount = (SimpleAmount)0, stat = "反転" }, new CardInfoStat { amount = "+25%", positive = true, simepleAmount = (SimpleAmount)0, stat = "damage" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { gun.gravity = -1f; gun.damage *= 1.25f; } protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } protected override void Removed(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } } public class CloneConfusion : SimpleCard { public override CardDetails Details { get { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown CardDetails val = new CardDetails(); val.Title = "分身バカ"; val.Description = "撃つたびに自分の幻影を出す。\nカオス注意。"; val.ModName = "NQV4PRO"; val.Rarity = (Rarity)1; val.Theme = (CardThemeColorType)8; val.Art = null; val.Stats = (CardInfoStat[])(object)new CardInfoStat[0]; return val; } } protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)player).gameObject.GetComponent<CloneConfusionEffect>() == (Object)null) { ((Component)player).gameObject.AddComponent<CloneConfusionEffect>(); } } protected override void Removed(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { CloneConfusionEffect component = ((Component)player).gameObject.GetComponent<CloneConfusionEffect>(); if ((Object)(object)component != (Object)null) { Object.Destroy((Object)(object)component); } } } public class Contract_of_Blood : SimpleCard { public override CardDetails Details { get { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Expected O, but got Unknown //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Expected O, but got Unknown //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Expected O, but got Unknown //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Expected O, but got Unknown CardDetails val = new CardDetails(); val.Title = "Contract of Blood"; val.Description = "毎秒10ダメージを受けるが膨大なライフスティールを入手。"; val.ModName = "NQV4PRO"; val.Rarity = (Rarity)1; val.Theme = (CardThemeColorType)8; val.Art = Assets.Contract_of_Blood_Art; val.Stats = (CardInfoStat[])(object)new CardInfoStat[4] { new CardInfoStat { amount = "+250%", positive = true, simepleAmount = (SimpleAmount)0, stat = "Life Steal" }, new CardInfoStat { amount = "+150%", positive = true, simepleAmount = (SimpleAmount)0, stat = "movement speed" }, new CardInfoStat { amount = "+150%", positive = true, simepleAmount = (SimpleAmount)0, stat = "damage" }, new CardInfoStat { amount = "10", positive = false, simepleAmount = (SimpleAmount)0, stat = "d/s" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { statModifiers.lifeSteal = 2.5f; } protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { characterStats.movementSpeed *= 1.5f; gun.damage *= 1.5f; ((Component)player).gameObject.AddComponent<Contract_of_Blood_Effect>(); } protected override void Removed(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Contract_of_Blood_Effect[] components = ((Component)player).gameObject.GetComponents<Contract_of_Blood_Effect>(); Contract_of_Blood_Effect[] array = components; foreach (Contract_of_Blood_Effect contract_of_Blood_Effect in array) { Object.Destroy((Object)(object)contract_of_Blood_Effect); } } } public class CursorShoot : CustomEffectCard<CursorShootB> { public override CardDetails<CursorShootB> Details => new CardDetails<CursorShootB> { Title = "現実は私の意のままに", Description = "カーソルから弾を発射します", ModName = "NQV4", Rarity = (Rarity)2, Theme = (CardThemeColorType)8 }; protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { ((Component)player).gameObject.GetComponentInChildren<CursorShootB>(); } protected override void Removed(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)player).gameObject.GetComponentInChildren<CursorShootB>() != (Object)null) { ((Component)player).gameObject.GetComponentInChildren<CursorShootB>(); } } } public class FinalBullet : CustomEffectCard<FinalBulletBuff> { public override CardDetails<FinalBulletBuff> Details { get { //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Expected O, but got Unknown //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Expected O, but got Unknown //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Expected O, but got Unknown //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Expected O, but got Unknown //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Expected O, but got Unknown CardDetails<FinalBulletBuff> val = new CardDetails<FinalBulletBuff>(); val.Title = "ファイナル バレット"; val.Description = "一発あれば十分だ。"; val.ModName = "NQV4PRO"; val.Rarity = (Rarity)1; val.Theme = (CardThemeColorType)1; val.Art = Assets.FinalBullet_Art; val.Stats = (CardInfoStat[])(object)new CardInfoStat[5] { new CardInfoStat { amount = "遅い", positive = false, simepleAmount = (SimpleAmount)0, stat = "reload time" }, new CardInfoStat { amount = "1", positive = false, simepleAmount = (SimpleAmount)0, stat = "max ammo" }, new CardInfoStat { amount = "直進", positive = true, simepleAmount = (SimpleAmount)0, stat = "ammo" }, new CardInfoStat { amount = "+100%", positive = true, simepleAmount = (SimpleAmount)0, stat = "弾速" }, new CardInfoStat { amount = "触れた敵の最大体力", positive = true, simepleAmount = (SimpleAmount)0, stat = "damage" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) gun.projectileColor = new Color(0.15f, 0.15f, 0.15f, 1f); gun.reloadTime *= 2f; } protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { gun.gravity = 0f; gun.projectileSpeed *= 2f; gunAmmo.maxAmmo = 1; } protected override void Removed(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Debug.Log("[MySimpleCard] カードがプレイヤーから削除されました"); } } public class FinalBulletBuff : CardEffect { public override void OnBulletHit(GameObject projectile, HitInfo hit) { //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) ((CardEffect)this).OnBulletHit(projectile, hit); if (Object.op_Implicit((Object)(object)hit.transform)) { HealthHandler component = ((Component)hit.transform).GetComponent<HealthHandler>(); if (component != null) { Vector2 val = default(Vector2); ((Vector2)(ref val))..ctor(1E+09f, 0f); ((Damagable)component).TakeDamage(val, hit.point, (GameObject)null, ((CardEffect)this).player, true, false); } } } } public class Gambling : CustomEffectCard<GamblingEffect> { public override CardDetails<GamblingEffect> Details { get { //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Expected O, but got Unknown CardDetails<GamblingEffect> val = new CardDetails<GamblingEffect>(); val.Title = "Gambling"; val.Description = "ブロック時以下の超エキサイティングなランダムな効果を受ける(後悔しても遅いぞ)"; val.ModName = "NQV4PRO"; val.Art = Assets.Gambling_Art; val.Rarity = (Rarity)1; val.Theme = (CardThemeColorType)3; val.Stats = (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { amount = "Somethings", positive = true, simepleAmount = (SimpleAmount)0, stat = "Somethings" } }; return val; } } } public class GamblingEffect : CardEffect { public override void OnBlock(BlockTriggerType trigger) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: 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_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) ((CardEffect)this).OnBlock(trigger); HealthHandler component = ((Component)((CardEffect)this).player).GetComponent<HealthHandler>(); if ((Object)(object)component == (Object)null) { Debug.LogError("GamblingEffect: Player '" + ((Object)((CardEffect)this).player).name + "' のHealthHandlerが見つかりませんでした。"); return; } int num = Random.Range(0, 101); if (num < 10) { Debug.Log("GamblingEffect: アクション1発動"); component.Heal(100f); } else if (num < 20) { Debug.Log("GamblingEffect: アクション2発動"); component.DoDamage(new Vector2(30f, 0f), Vector2.op_Implicit(((Component)this).transform.position), Color.black, (GameObject)null, ((CardEffect)this).player, false, true, true); } else if (num < 30) { Renderer[] componentsInChildren = ((Component)((CardEffect)this).player).gameObject.GetComponentsInChildren<Renderer>(); Renderer[] array = componentsInChildren; foreach (Renderer val in array) { Material[] materials = val.materials; foreach (Material val2 in materials) { val2.EnableKeyword("_EMISSION"); val2.SetColor("_EmissionColor", Color.black * 4f); } } } else if (num < 40) { CharacterStatModifiers characterStats = ((CardEffect)this).characterStats; characterStats.movementSpeed *= 1.5f; } else if (num < 50) { CharacterStatModifiers characterStats2 = ((CardEffect)this).characterStats; characterStats2.movementSpeed *= 0.8f; } else if (num < 60) { ((CardEffect)this).gravity.gravityForce = -0.1f; } else if (num < 70) { ((CardEffect)this).gun.gravity = -100f; } else if (num < 80) { CharacterStatModifiers characterStats3 = ((CardEffect)this).characterStats; characterStats3.jump *= 1.4f; } else if (num < 90) { CharacterStatModifiers characterStats4 = ((CardEffect)this).characterStats; characterStats4.sizeMultiplier *= 1.8f; } else { CharacterStatModifiers characterStats5 = ((CardEffect)this).characterStats; characterStats5.sizeMultiplier *= 0.3f; } } } public class HeavyBullet : SimpleCard { public override CardDetails Details { get { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Expected O, but got Unknown //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Expected O, but got Unknown CardDetails val = new CardDetails(); val.Title = "Super Heavy Bullet"; val.Description = "当てればいいじゃん"; val.ModName = "NQV4PRO"; val.Rarity = (Rarity)1; val.Theme = (CardThemeColorType)6; val.Art = Assets.HeavyBullet_Art; val.Stats = (CardInfoStat[])(object)new CardInfoStat[2] { new CardInfoStat { amount = "+400%", positive = true, simepleAmount = (SimpleAmount)0, stat = "damage" }, new CardInfoStat { amount = "+1000%", positive = false, simepleAmount = (SimpleAmount)0, stat = "弾に加わる重力" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) gun.gravity = 10f; gun.projectileColor = new Color(0.3f, 0.3f, 0.3f, 1f); } protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { gun.damage *= 4f; } protected override void Removed(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Debug.Log("[MySimpleCard] カードがプレイヤーから削除されました"); } } public class Kirby : SimpleCard { public override CardDetails Details { get { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Expected O, but got Unknown CardDetails val = new CardDetails(); val.Title = "Demon of Pink"; val.Description = "カーb..."; val.ModName = "NQV4PRO"; val.Rarity = (Rarity)0; val.Theme = (CardThemeColorType)8; val.Art = Assets.Kirby_Art; val.Stats = (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { amount = "+999", positive = true, simepleAmount = (SimpleAmount)0, stat = "jump" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { statModifiers.numberOfJumps = 999; } protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } protected override void Removed(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Debug.Log("[MySimpleCard] カードがプレイヤーから削除されました"); } } public class PhantomReload : CustomEffectCard<PhantomReloadEffect> { public override CardDetails<PhantomReloadEffect> Details { get { //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Expected O, but got Unknown //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Expected O, but got Unknown //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Expected O, but got Unknown CardDetails<PhantomReloadEffect> val = new CardDetails<PhantomReloadEffect>(); val.Title = "Phantom Reload"; val.Description = "リロード時以下を入手"; val.ModName = "NQV4PRO"; val.Rarity = (Rarity)1; val.Theme = (CardThemeColorType)2; val.Art = Assets.PhantomReload_Art; val.Stats = (CardInfoStat[])(object)new CardInfoStat[3] { new CardInfoStat { amount = "1/0.2s", positive = true, simepleAmount = (SimpleAmount)0, stat = "自動回復" }, new CardInfoStat { amount = "+100%", positive = true, simepleAmount = (SimpleAmount)0, stat = "移動速度" }, new CardInfoStat { amount = "部分", positive = false, simepleAmount = (SimpleAmount)0, stat = "透明化" } }; return val; } } } public class PhantomReloadEffect : CardEffect { private Renderer[] renderers; private HealthHandler healthHandler; public override void OnOutOfAmmo(int bulletsReloaded) { renderers = ((Component)((CardEffect)this).player).gameObject.GetComponentsInChildren<Renderer>(); Renderer[] array = renderers; foreach (Renderer val in array) { val.enabled = false; } ((Component)((CardEffect)this).player).gameObject.AddComponent<PhantomReloadMono>(); ExtensionMethods.ExecuteAfterSeconds((MonoBehaviour)(object)((CardEffect)this).player, ((CardEffect)this).gun.reloadTime * (float)((CardEffect)this).gunAmmo.maxAmmo, (Action)delegate { renderers = ((Component)((CardEffect)this).player).gameObject.GetComponentsInChildren<Renderer>(); Renderer[] array2 = renderers; foreach (Renderer val2 in array2) { val2.enabled = true; } PhantomReloadMono component = ((Component)((CardEffect)this).player).gameObject.GetComponent<PhantomReloadMono>(); if ((Object)(object)component != (Object)null) { Object.Destroy((Object)(object)component); } }); } public override void OnRevive() { renderers = ((Component)((CardEffect)this).player).gameObject.GetComponentsInChildren<Renderer>(); Renderer[] array = renderers; foreach (Renderer val in array) { val.enabled = true; } PhantomReloadMono component = ((Component)((CardEffect)this).player).gameObject.GetComponent<PhantomReloadMono>(); if ((Object)(object)component != (Object)null) { Object.Destroy((Object)(object)component); } } } public class PhantomReloadMono : MonoBehaviour { private Renderer[] renderers; private float originalMovementSpeed; private HealthHandler healthHandler; private CharacterStatModifiers characterStats; public float healAmountPerSecond = 1f; public float healInterval = 0.2f; private Player player; private void Start() { player = ((Component)this).GetComponent<Player>(); healthHandler = ((Component)this).GetComponent<HealthHandler>(); characterStats = ((Component)this).GetComponent<CharacterStatModifiers>(); if ((Object)(object)characterStats != (Object)null) { originalMovementSpeed = characterStats.movementSpeed; CharacterStatModifiers obj = characterStats; obj.movementSpeed *= 2f; } ((MonoBehaviour)this).InvokeRepeating("HealOverTime", 0f, healInterval); } private void HealOverTime() { if ((Object)(object)healthHandler != (Object)null) { healthHandler.Heal(healAmountPerSecond); } } private void OnDestroy() { if ((Object)(object)characterStats != (Object)null) { characterStats.movementSpeed = originalMovementSpeed; } renderers = ((Component)player).gameObject.GetComponentsInChildren<Renderer>(); Renderer[] array = renderers; foreach (Renderer val in array) { val.enabled = true; } ((MonoBehaviour)this).CancelInvoke("HealOverTime"); PhantomReloadMono component = ((Component)player).gameObject.GetComponent<PhantomReloadMono>(); if ((Object)(object)component != (Object)null) { Object.Destroy((Object)(object)component); } } } public class Sample_Effect : CustomEffectCard<MyEffect> { public override CardDetails<MyEffect> Details { get { //IL_0043: 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) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Expected O, but got Unknown CardDetails<MyEffect> val = new CardDetails<MyEffect>(); val.Title = "MyEffectCard"; val.Description = "特定の行動で効果を発動"; val.ModName = "NQV4PRO"; val.Rarity = (Rarity)2; val.Theme = (CardThemeColorType)3; val.Stats = (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { amount = "+100%", positive = true, simepleAmount = (SimpleAmount)0, stat = "movement speed" } }; return val; } } } public class MyEffect : CardEffect { public override void OnBlock(BlockTriggerType trigger) { Debug.Log("[MyEffect] プレイヤーがブロックしました!"); } public override void OnShoot(GameObject projectile) { Debug.Log("[MyEffect] プレイヤーが発射しました!"); } } public class Sample_normal : SimpleCard { public override CardDetails Details { get { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown //IL_0043: 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) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Expected O, but got Unknown CardDetails val = new CardDetails(); val.Title = "MySimpleCard"; val.Description = "example"; val.ModName = "NQV4PRO"; val.Rarity = (Rarity)0; val.Theme = (CardThemeColorType)3; val.Stats = (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { amount = "+100%", positive = true, simepleAmount = (SimpleAmount)0, stat = "movement speed" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { } protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Debug.Log("[MySimpleCard] カードがプレイヤーに追加されました"); } protected override void Removed(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Debug.Log("[MySimpleCard] カードがプレイヤーから削除されました"); } } public class ShadowMan : CustomEffectCard<ShadowBuff> { public override CardDetails<ShadowBuff> Details { get { //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Expected O, but got Unknown CardDetails<ShadowBuff> val = new CardDetails<ShadowBuff>(); val.Title = "Shadow Man"; val.Description = "ブロック発動時、マウスカーソルの方向に高速移動します。"; val.ModName = "NQV4PRO"; val.Rarity = (Rarity)1; val.Theme = (CardThemeColorType)8; val.Art = Assets.ShadowMan_Art; val.Stats = (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { amount = "+2s", positive = false, simepleAmount = (SimpleAmount)0, stat = "防御クールダウン" } }; return val; } } protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { block.cooldown += 2f; } } public class ShadowBuff : CardEffect { public override void OnBlock(BlockTriggerType trigger) { //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_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) Vector3 val = Camera.main.ScreenToWorldPoint(Input.mousePosition); ((Component)((CardEffect)this).player).transform.position = val; Debug.Log($"Teleported to mouse position: {val}"); } } public class ShieldMaster : SimpleCard { public override CardDetails Details { get { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Expected O, but got Unknown //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Expected O, but got Unknown //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Expected O, but got Unknown CardDetails val = new CardDetails(); val.Title = "Epic Shield Master"; val.Description = "もう銃なんて必要ないね!"; val.ModName = "NQV4PRO"; val.Rarity = (Rarity)1; val.Theme = (CardThemeColorType)2; val.Art = Assets.ShieldMaster_Art; val.Stats = (CardInfoStat[])(object)new CardInfoStat[3] { new CardInfoStat { amount = "-90%", positive = true, simepleAmount = (SimpleAmount)0, stat = "防御クールダウン" }, new CardInfoStat { amount = "+20%", positive = true, simepleAmount = (SimpleAmount)0, stat = "移動速度" }, new CardInfoStat { amount = "没収", positive = false, simepleAmount = (SimpleAmount)0, stat = "銃" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { } protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { block.cooldown *= 0.1f; characterStats.movementSpeed *= 1.2f; gun.ammoReg = 0f; ((Behaviour)gun).enabled = false; } protected override void Removed(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Debug.Log("[MySimpleCard] カードがプレイヤーから削除されました"); } } public class Shining : SimpleCard { public override CardDetails Details { get { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Expected O, but got Unknown //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Expected O, but got Unknown CardDetails val = new CardDetails(); val.Title = "You Are Shining"; val.Description = "まぶしすぎる!だけだと弱すぎたので体力と攻撃力を1.2345倍にしました。目に優しい明るさになったし色もかっこいい赤にしたぞ!"; val.ModName = "NQV4PRO"; val.Rarity = (Rarity)1; val.Theme = (CardThemeColorType)4; val.Art = Assets.Shining_Art; val.Stats = (CardInfoStat[])(object)new CardInfoStat[2] { new CardInfoStat { amount = "1.2345倍", positive = true, simepleAmount = (SimpleAmount)0, stat = "輝き" }, new CardInfoStat { amount = "1.2345倍", positive = true, simepleAmount = (SimpleAmount)0, stat = "ダメージとか体力" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { } protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) CharacterData data2 = player.data; data2.maxHealth *= 1.2345f; gun.damage *= 1.2345f; Renderer[] componentsInChildren = ((Component)player).gameObject.GetComponentsInChildren<Renderer>(); Renderer[] array = componentsInChildren; foreach (Renderer val in array) { Material[] materials = val.materials; foreach (Material val2 in materials) { val2.EnableKeyword("_EMISSION"); val2.SetColor("_EmissionColor", Color.red * 4f); } } } protected override void Removed(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } } public class Sonic : SimpleCard { public override CardDetails Details { get { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Expected O, but got Unknown CardDetails val = new CardDetails(); val.Title = "blue hedgehog"; val.Description = "fast and fast"; val.ModName = "NQV4PRO"; val.Rarity = (Rarity)0; val.Theme = (CardThemeColorType)2; val.Art = Assets.Sonic_Art; val.Stats = (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { amount = "+100%", positive = true, simepleAmount = (SimpleAmount)0, stat = "movement speed" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { } protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { characterStats.movementSpeed *= 2f; } protected override void Removed(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } } public class TimeConductor : CustomEffectCard<TimeEffect> { public override CardDetails<TimeEffect> Details { get { //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Expected O, but got Unknown //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Expected O, but got Unknown //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Expected O, but got Unknown CardDetails<TimeEffect> val = new CardDetails<TimeEffect>(); val.Title = "Time Conductor"; val.Description = "ブロックすると、体力と位置を5秒前に戻す"; val.ModName = "NQV4PRO"; val.Rarity = (Rarity)1; val.Theme = (CardThemeColorType)3; val.Art = Assets.TimeConductor_Art; val.Stats = (CardInfoStat[])(object)new CardInfoStat[3] { new CardInfoStat { amount = "+100%", positive = false, simepleAmount = (SimpleAmount)0, stat = "Block クールダウン" }, new CardInfoStat { amount = "-25%", positive = false, simepleAmount = (SimpleAmount)0, stat = "体力" }, new CardInfoStat { amount = "+50%", positive = true, simepleAmount = (SimpleAmount)0, stat = "移動速度" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { } protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { CharacterData data2 = player.data; data2.maxHealth *= 0.75f; block.cooldown *= 2f; CharacterStatModifiers statModifiers = ((CustomCard)this).statModifiers; statModifiers.movementSpeed *= 1.5f; TimeRewindTracker component = ((Component)player).gameObject.GetComponent<TimeRewindTracker>(); if ((Object)(object)component == (Object)null) { component = ((Component)player).gameObject.AddComponent<TimeRewindTracker>(); } } protected override void Removed(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } } public class TimeEffect : CardEffect { public override void OnBlock(BlockTriggerType blockTriggerType) { TimeRewindTracker component = ((Component)((CardEffect)this).player).GetComponent<TimeRewindTracker>(); component.Rewind(); } } public class TimeRewindTracker : MonoBehaviour { public struct Snapshot { public Vector3 position; public float health; public float timestamp; } [CompilerGenerated] private sealed class <RewindCoroutine>d__11 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public TimeRewindTracker <>4__this; private List<Snapshot> <rewindHistory>5__1; private int <rewindFrames>5__2; private float <currentHealth>5__3; private int <i>5__4; private Snapshot <snap>5__5; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <RewindCoroutine>d__11(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <rewindHistory>5__1 = null; <>1__state = -2; } private bool MoveNext() { //IL_00b1: Unknown result type (might be due to invalid IL or missing references) switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>4__this.isRewinding = true; <rewindHistory>5__1 = new List<Snapshot>(<>4__this.history); <rewindFrames>5__2 = Mathf.Min(50, <rewindHistory>5__1.Count); Debug.Log($"[TimeConductor] {<rewindFrames>5__2} フレーム巻き戻し開始"); <i>5__4 = <rewindFrames>5__2 - 1; break; case 1: <>1__state = -1; <i>5__4--; break; } if (<i>5__4 >= 0) { <snap>5__5 = <rewindHistory>5__1[<i>5__4]; ((Component)<>4__this).transform.position = <snap>5__5.position; <>2__current = null; <>1__state = 1; return true; } <currentHealth>5__3 = <>4__this.player.data.health; <>4__this.healthHandler.Heal(<rewindHistory>5__1[0].health - <currentHealth>5__3); Debug.Log("[TimeConductor] プレイヤーを巻き戻しました(コピー履歴使用)!"); <>4__this.isRewinding = false; return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } private List<Snapshot> history = new List<Snapshot>(); private HealthHandler healthHandler; private CharacterStatModifiers characterStatModifiers; private Player player; private float recordInterval = 0.1f; private float recordTimer = 0f; private bool isRewinding = false; private void Start() { player = ((Component)this).GetComponent<Player>(); healthHandler = ((Component)this).GetComponent<HealthHandler>(); characterStatModifiers = ((Component)this).GetComponent<CharacterStatModifiers>(); } private void Update() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) recordTimer += Time.deltaTime; if (recordTimer >= recordInterval) { history.Add(new Snapshot { position = ((Component)this).transform.position, health = player.data.health, timestamp = Time.time }); recordTimer = 0f; } if (history.Count > 60) { history.RemoveAt(0); } } public void Rewind() { if (!isRewinding && history.Count >= 5) { ((MonoBehaviour)this).StartCoroutine(RewindCoroutine()); } } [IteratorStateMachine(typeof(<RewindCoroutine>d__11))] private IEnumerator RewindCoroutine() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <RewindCoroutine>d__11(0) { <>4__this = this }; } } public class Uniformrectilinearmotion : SimpleCard { public override CardDetails Details { get { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Expected O, but got Unknown CardDetails val = new CardDetails(); val.Title = "Uniform rectilinear motion"; val.Description = "弾は直進します"; val.ModName = "NQV4PRO"; val.Rarity = (Rarity)0; val.Theme = (CardThemeColorType)6; val.Art = Assets.Uniformrectilinearmotion_Art; val.Stats = (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { amount = "+50%", positive = true, simepleAmount = (SimpleAmount)0, stat = "damage" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { gun.gravity = 0f; gun.damage *= 1.5f; } protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Debug.Log("[MySimpleCard] カードがプレイヤーに追加されました"); } protected override void Removed(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Debug.Log("[MySimpleCard] カードがプレイヤーから削除されました"); } } public class ZeroGravity : SimpleCard { public override CardDetails Details { get { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Expected O, but got Unknown CardDetails val = new CardDetails(); val.Title = "0 グラビティ"; val.Description = "あなたにかかる重力はとても低いです"; val.ModName = "NQV4PRO"; val.Rarity = (Rarity)0; val.Theme = (CardThemeColorType)3; val.Art = Assets.ZeroGravity_Art; val.Stats = (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { amount = "0.1", positive = true, simepleAmount = (SimpleAmount)0, stat = "Gravity" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { statModifiers.gravity = -1f; } protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { gravity.gravityForce = -0.1f; } protected override void Removed(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Debug.Log("[MySimpleCard] カードがプレイヤーから削除されました"); } } public class CursorShootB : CardEffect { public override void OnShoot(GameObject projectile) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) Vector3 position = MainCam.instance.cam.ScreenToWorldPoint(Input.mousePosition); position.z = 0f; projectile.transform.position = position; } } public class MouseShooting : MonoBehaviour { public GameObject bulletPrefab; public float bulletSpeed = 10f; private const string ShootEvent = "MouseShooting_ShootBullet"; private Player player; private void Start() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Expected O, but got Unknown player = ((Component)this).GetComponent<Player>(); NetworkingManager.RegisterEvent("MouseShooting_ShootBullet", (PhotonEvent)delegate(object[] data) { //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) Vector3 spawnPosition = (Vector3)data[0]; Vector2 direction = (Vector2)data[1]; float speed = (float)data[2]; SpawnBullet(spawnPosition, direction, speed); }); } private void Update() { //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_0072: 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_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)player == (Object)null) && player.data.view.IsMine && Input.GetMouseButtonDown(0)) { Vector3 mousePosition = Input.mousePosition; Vector3 val = Camera.main.ScreenToWorldPoint(new Vector3(mousePosition.x, mousePosition.y, Camera.main.WorldToScreenPoint(((Component)this).transform.position).z)); Vector3 val2 = ((Component)this).transform.position - val; Vector2 val3 = Vector2.op_Implicit(((Vector3)(ref val2)).normalized); NetworkingManager.RaiseEvent("MouseShooting_ShootBullet", new object[3] { val, val3, bulletSpeed }); } } private void SpawnBullet(Vector3 spawnPosition, Vector2 direction, float speed) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: 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_005b: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) GameObject val = Object.Instantiate<GameObject>(bulletPrefab, spawnPosition, Quaternion.identity); float num = Mathf.Atan2(direction.y, direction.x) * 57.29578f; val.transform.rotation = Quaternion.Euler(0f, 0f, num); Rigidbody2D component = val.GetComponent<Rigidbody2D>(); if ((Object)(object)component != (Object)null) { component.velocity = direction * speed; } } } public class AbyssRoundHandler : MonoBehaviour { [CompilerGenerated] private sealed class <PointEnd>d__1 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public IGameModeHandler gm; public AbyssRoundHandler <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <PointEnd>d__1(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; Debug.Log("[AbyssRoundHandler] PointEnd 発火しました"); <>4__this.CleanAbyssEffects(); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <RoundEnd>d__2 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public IGameModeHandler gm; public AbyssRoundHandler <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <RoundEnd>d__2(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; Debug.Log("[AbyssRoundHandler] RoundEnd 発火しました"); <>4__this.CleanAbyssEffects(); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } private void Awake() { GameModeManager.AddHook("RoundEnd", (Func<IGameModeHandler, IEnumerator>)RoundEnd); GameModeManager.AddHook("PointEnd", (Func<IGameModeHandler, IEnumerator>)PointEnd); } [IteratorStateMachine(typeof(<PointEnd>d__1))] private IEnumerator PointEnd(IGameModeHandler gm) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <PointEnd>d__1(0) { <>4__this = this, gm = gm }; } [IteratorStateMachine(typeof(<RoundEnd>d__2))] private IEnumerator RoundEnd(IGameModeHandler gm) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <RoundEnd>d__2(0) { <>4__this = this, gm = gm }; } private void CleanAbyssEffects() { foreach (Player player in PlayerManager.instance.players) { AbyssGravity component = ((Component)player).GetComponent<AbyssGravity>(); if ((Object)(object)component != (Object)null) { component.RestoreGravity(); Object.Destroy((Object)(object)component); Debug.Log($"[AbyssRoundHandler] {player.playerID} の AbyssGravity を削除しました"); } } } } namespace NQV4Pro { public class ActiveSkillManager : MonoBehaviour { [CompilerGenerated] private sealed class <ActivateSkill>d__21 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public ActiveSkillManager <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <ActivateSkill>d__21(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { switch (<>1__state) { default: return false; case 0: <>1__state = -1; Debug.Log($"[Skill] Player {<>4__this.player.playerID} activated skill!"); <>4__this.skillCharges--; <>4__this.IsSkillActive = true; <>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.SkillEffect()); <>1__state = 1; return true; case 1: <>1__state = -1; <>4__this.IsSkillActive = false; Debug.Log($"[Skill] Skill finished. Charges remaining: {<>4__this.skillCharges}"); return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <DoHeal>d__24 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public ActiveSkillManager <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <DoHeal>d__24(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; <>4__this.health.Heal(1000f); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <OnPointEnd>d__20 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public IGameModeHandler gm; public ActiveSkillManager <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <OnPointEnd>d__20(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <OnPointStart>d__19 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public IGameModeHandler gm; public ActiveSkillManager <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <OnPointStart>d__19(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; <>4__this.skillCharges = 1; Debug.Log($"[Skill] Player {<>4__this.player.playerID} skill charge restored!"); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <SpeedBurstEffect>d__22 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public ActiveSkillManager <>4__this; private float <duration>5__1; private float <speedMultiplier>5__2; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <SpeedBurstEffect>d__22(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: { <>1__state = -1; <duration>5__1 = 3f; <speedMultiplier>5__2 = 3f; CharacterStatModifiers stats2 = <>4__this.stats; stats2.movementSpeed *= <speedMultiplier>5__2; Debug.Log("[Skill] Speed Burst active! Speed x3."); <>2__current = (object)new WaitForSeconds(<duration>5__1); <>1__state = 1; return true; } case 1: { <>1__state = -1; CharacterStatModifiers stats = <>4__this.stats; stats.movementSpeed /= <speedMultiplier>5__2; Debug.Log("[Skill] Speed Burst ended. Speed back to normal."); return false; } } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <StoneEffect>d__23 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public ActiveSkillManager <>4__this; private float <duration>5__1; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <StoneEffect>d__23(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: { <>1__state = -1; <duration>5__1 = 2f; CharacterStatModifiers stats2 = <>4__this.stats; stats2.movementSpeed *= 0.1f; Gun gun2 = <>4__this.gun; gun2.damage *= 3f; <>2__current = (object)new WaitForSeconds(<duration>5__1); <>1__state = 1; return true; } case 1: { <>1__state = -1; CharacterStatModifiers stats = <>4__this.stats; stats.movementSpeed *= 10f; Gun gun = <>4__this.gun; gun.damage /= 3f; Debug.Log("[Skill] Speed Burst ended. Speed back to normal."); return false; } } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } private int skillCharges = 1; private KeyCode[] skillKeys; private Player player; private CharacterStatModifiers stats; private Gun gun; private HealthHandler health; public Func<IEnumerator> SkillEffect { get; set; } = null; public bool IsSkillActive { get; private set; } = false; public int SkillCharges => skillCharges; private void Awake() { player = ((Component)this).GetComponent<Player>(); stats = ((Component)player).GetComponent<CharacterStatModifiers>(); health = ((Component)player).GetComponent<HealthHandler>(); GameModeManager.AddHook("PointStart", (Func<IGameModeHandler, IEnumerator>)OnPointStart); GameModeManager.AddHook("PointEnd", (Func<IGameModeHandler, IEnumerator>)OnPointEnd); } private void OnDestroy() { GameModeManager.RemoveHook("PointStart", (Func<IGameModeHandler, IEnumerator>)OnPointStart); GameModeManager.RemoveHook("PointEnd", (Func<IGameModeHandler, IEnumerator>)OnPointEnd); } private void Update() { //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) if (SkillEffect == null || skillCharges <= 0 || IsSkillActive) { return; } KeyCode[] array = skillKeys; foreach (KeyCode val in array) { if (Input.GetKeyDown(val)) { ((MonoBehaviour)this).StartCoroutine(ActivateSkill()); break; } } } [IteratorStateMachine(typeof(<OnPointStart>d__19))] private IEnumerator OnPointStart(IGameModeHandler gm) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <OnPointStart>d__19(0) { <>4__this = this, gm = gm }; } [IteratorStateMachine(typeof(<OnPointEnd>d__20))] private IEnumerator OnPointEnd(IGameModeHandler gm) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <OnPointEnd>d__20(0) { <>4__this = this, gm = gm }; } [IteratorStateMachine(typeof(<ActivateSkill>d__21))] private IEnumerator ActivateSkill() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <ActivateSkill>d__21(0) { <>4__this = this }; } [IteratorStateMachine(typeof(<SpeedBurstEffect>d__22))] public IEnumerator SpeedBurstEffect() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <SpeedBurstEffect>d__22(0) { <>4__this = this }; } [IteratorStateMachine(typeof(<StoneEffect>d__23))] public IEnumerator StoneEffect() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <StoneEffect>d__23(0) { <>4__this = this }; } [IteratorStateMachine(typeof(<DoHeal>d__24))] public IEnumerator DoHeal() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <DoHeal>d__24(0) { <>4__this = this }; } public ActiveSkillManager() { KeyCode[] array = new KeyCode[4]; RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); skillKeys = (KeyCode[])(object)array; ((MonoBehaviour)this)..ctor(); } } internal class Assets { private static readonly AssetBundle Bundle = AssetUtils.LoadAssetBundleFromResources("nqv4pro", typeof(NQV4Pro).Assembly); public static GameObject AbyssCard_Art = Bundle.LoadAsset<GameObject>("C_AbyssCard"); public static GameObject ChaosShoot_Art = Bundle.LoadAsset<GameObject>("C_ChaosShoot"); public static GameObject Contract_of_Blood_Art = Bundle.LoadAsset<GameObject>("C_Contract_of_Blood"); public static GameObject FinalBullet_Art = Bundle.LoadAsset<GameObject>("C_FinalBullet"); public static GameObject Gambling_Art = Bundle.LoadAsset<GameObject>("C_Gambling"); public static GameObject HeavyBullet_Art = Bundle.LoadAsset<GameObject>("C_HeavyBullet"); public static GameObject Kirby_Art = Bundle.LoadAsset<GameObject>("C_Kirby"); public static GameObject PhantomReload_Art = Bundle.LoadAsset<GameObject>("C_PhantomReload"); public static GameObject ShadowMan_Art = Bundle.LoadAsset<GameObject>("C_ShieldMaster"); public static GameObject ShieldMaster_Art = Bundle.LoadAsset<GameObject>("C_ShadowMan"); public static GameObject Shining_Art = Bundle.LoadAsset<GameObject>("C_Shining"); public static GameObject Sonic_Art = Bundle.LoadAsset<GameObject>("C_Sonic"); public static GameObject TimeConductor_Art = Bundle.LoadAsset<GameObject>("C_TimeConductor"); public static GameObject Uniformrectilinearmotion_Art = Bundle.LoadAsset<GameObject>("C_Uniformrectilinearmotion"); public static GameObject ZeroGravity_Art = Bundle.LoadAsset<GameObject>("C_ZeroGravity"); } public class CloneConfusionEffect : MonoBehaviour { private Player player; private Gun gun; private void Start() { player = ((Component)this).GetComponent<Player>(); gun = ((Component)((Component)player).GetComponent<Holding>().holdable).GetComponent<Gun>(); if ((Object)(object)gun != (Object)null) { Gun obj = gun; obj.ShootPojectileAction = (Action<GameObject>)Delegate.Combine(obj.ShootPojectileAction, new Action<GameObject>(OnShoot)); } } private void OnDestroy() { if ((Object)(object)gun != (Object)null) { Gun obj = gun; obj.ShootPojectileAction = (Action<GameObject>)Delegate.Remove(obj.ShootPojectileAction, new Action<GameObject>(OnShoot)); } } private void OnShoot(GameObject projectile) { //IL_001a: 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_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) if (PhotonNetwork.IsMasterClient) { Vector3 val = ((Component)player).transform.position + new Vector3(Random.Range(-2f, 2f), 0f, 0f); GameObject val2 = PhotonNetwork.Instantiate("CloneDummy", val, Quaternion.identity, (byte)0, (object[])null); CopyAppearance(player, val2); CloneDummyMover cloneDummyMover = val2.AddComponent<CloneDummyMover>(); cloneDummyMover.Init(); } } private void CopyAppearance(Player player, GameObject clone) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) Renderer[] componentsInChildren = ((Component)player).GetComponentsInChildren<Renderer>(); Renderer[] componentsInChildren2 = clone.GetComponentsInChildren<Renderer>(); for (int i = 0; i < Mathf.Min(componentsInChildren.Length, componentsInChildren2.Length); i++) { componentsInChildren2[i].material.color = componentsInChildren[i].material.color; } } } public class CloneDummyMover : MonoBehaviour { [CompilerGenerated] private sealed class <LifeCycle>d__6 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public CloneDummyMover <>4__this; private float <t>5__1; private float <alpha>5__2; private Renderer[] <>s__3; private int <>s__4; private Renderer <r>5__5; private Color <c>5__6; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <LifeCycle>d__6(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>s__3 = null; <r>5__5 = null; <>1__state = -2; } private bool MoveNext() { //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Expected O, but got Unknown //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(<>4__this.lifetime - <>4__this.fadeTime); <>1__state = 1; return true; case 1: <>1__state = -1; <t>5__1 = 0f; break; case 2: <>1__state = -1; break; } if (<t>5__1 < <>4__this.fadeTime) { <t>5__1 += Time.deltaTime; <alpha>5__2 = Mathf.Lerp(1f, 0f, <t>5__1 / <>4__this.fadeTime); <>s__3 = <>4__this.renderers; for (<>s__4 = 0; <>s__4 < <>s__3.Length; <>s__4++) { <r>5__5 = <>s__3[<>s__4]; if ((Object)(object)<r>5__5 != (Object)null && <r>5__5.material.HasProperty("_Color")) { <c>5__6 = <r>5__5.material.color; <c>5__6.a = <alpha>5__2; <r>5__5.material.color = <c>5__6; } <r>5__5 = null; } <>s__3 = null; <>2__current = null; <>1__state = 2; return true; } if (PhotonNetwork.IsMasterClient) { PhotonNetwork.Destroy(((Component)<>4__this).gameObject); } return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } private Vector3 moveDir; private float lifetime = 2.5f; private float fadeTime = 0.8f; private Renderer[] renderers; public void Init() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) moveDir = new Vector3(Random.Range(-1f, 1f), Random.Range(-0.5f, 0.5f), 0f); renderers = ((Component)this).GetComponentsInChildren<Renderer>(); ((MonoBehaviour)this).StartCoroutine(LifeCycle()); } private void Update() { //IL_0008: 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) //IL_0018: 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_0027: Unknown result type (might be due to invalid IL or missing references) Transform transform = ((Component)this).transform; transform.position += moveDir * Time.deltaTime * 2f; } [IteratorStateMachine(typeof(<LifeCycle>d__6))] private IEnumerator LifeCycle() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <LifeCycle>d__6(0) { <>4__this = this }; } } public class Contract_of_Blood_Effect : MonoBehaviour { public float damageAmount = 10f; public float damageInterval = 1f; private HealthHandler healthHandler; private void Start() { healthHandler = ((Component)this).GetComponent<HealthHandler>(); if ((Object)(object)healthHandler != (Object)null) { ((MonoBehaviour)this).InvokeRepeating("ApplySelfDamage", damageInterval, damageInterval); } else { Debug.LogError("HealthHandler not found on " + ((Object)((Component)this).gameObject).name); } } private void ApplySelfDamage() { //IL_002c: 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_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)healthHandler != (Object)null) { Vector2 val = default(Vector2); ((Vector2)(ref val))..ctor(damageAmount, 0f); Vector2 val2 = default(Vector2); ((Vector2)(ref val2))..ctor(((Component)this).transform.position.x, ((Component)this).transform.position.y); healthHandler.DoDamage(val, val2, Color.black, ((Component)this).gameObject, ((Component)this).GetComponent<Player>(), false, true, true); Debug.Log("Self-damage applied to: " + ((Object)((Component)this).gameObject).name); } } } public class FirstPickRoleHandler : MonoBehaviour { private Player player; public RoleType CurrentRole { get; private set; } = RoleType.None; public bool HasRole => CurrentRole != RoleType.None; private void Awake() { player = ((Component)this).GetComponent<Player>(); } public bool SetRole(RoleType role) { if (HasRole) { Debug.LogWarning($"[Role] Player {player.playerID} already has role: {CurrentRole}"); return false; } CurrentRole = role; Debug.Log($"[Role] Player {player.playerID} selected role: {role}"); return true; } public string GetRoleName() { return CurrentRole switch { RoleType.Tank => "タンク", RoleType.Berserker => "バーサーカー", RoleType.Support => "サポート", RoleType.Sniper => "スナイパー", RoleType.Assassin => "アサシン", _ => "なし", }; } public string GetRoleDescription() { return CurrentRole switch { RoleType.Tank => "高HP・高防御の前衛職", RoleType.Berserker => "高火力・低防御の攻撃特化職", RoleType.Support => "味方を強化するサポート職", RoleType.Sniper => "遠距離攻撃特化職", RoleType.Assassin => "高機動・高クリティカル職", _ => "ロール未選択", }; } } [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.NQV4.rounds.nqv4mod", "NQV4Pro", "0.0.0")] [BepInProcess("Rounds.exe")] public class NQV4Pro : BaseUnityPlugin { private const string ModId = "com.NQV4.rounds.nqv4mod"; private const string ModName = "NQV4Pro"; public const string Version = "0.0.0"; private void Awake() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Expected O, but got Unknown Harmony val = new Harmony("com.NQV4.rounds.nqv4mod"); val.PatchAll(); GameObject val2 = new GameObject("RolePickerManager"); val2.AddComponent<RolePickerManager>(); Object.DontDestroyOnLoad((Object)(object)val2); } private void Start() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Expected O, but got Unknown GameObject val = new GameObject("FirstPickRoleHandler"); Object.DontDestroyOnLoad((Object)(object)val); val.AddComponent<FirstPickRoleHandler>(); GameObject val2 = new GameObject("AbyssRoundHandler"); Object.DontDestroyOnLoad((Object)(object)val2); val2.AddComponent<AbyssRoundHandler>(); CustomCard.BuildCard<Sonic>((Action<CardInfo>)delegate(CardInfo c) { ExtensionMethods.SetAbbreviation(c, "S"); }); CustomCard.BuildCard<Kirby>((Action<CardInfo>)delegate(CardInfo c) { ExtensionMethods.SetAbbreviation(c, "K"); }); CustomCard.BuildCard<Contract_of_Blood>((Action<CardInfo>)delegate(CardInfo c) { ExtensionMethods.SetAbbreviation(c, "CB"); }); CustomCard.BuildCard<ShieldMaster>((Action<CardInfo>)delegate(CardInfo c) { ExtensionMethods.SetAbbreviation(c, "SM"); }); CustomCard.BuildCard<ShadowMan>((Action<CardInfo>)delegate(CardInfo c) { ExtensionMethods.SetAbbreviation(c, "SM"); }); CustomCard.BuildCard<PhantomReload>((Action<CardInfo>)delegate(CardInfo c) { ExtensionMethods.SetAbbreviation(c, "PR"); }); CustomCard.BuildCard<Uniformrectilinearmotion>((Action<CardInfo>)delegate(CardInfo c) { ExtensionMethods.SetAbbreviation(c, "U"); }); CustomCard.BuildCard<HeavyBullet>((Action<CardInfo>)delegate(CardInfo c) { ExtensionMethods.SetAbbreviation(c, "HB"); }); CustomCard.BuildCard<ChaosShoot>((Action<CardInfo>)delegate(CardInfo c) { ExtensionMethods.SetAbbreviation(c, "CS"); }); CustomCard.BuildCard<Gambling>((Action<CardInfo>)delegate(CardInfo c) { ExtensionMethods.SetAbbreviation(c, "G"); }); CustomCard.BuildCard<AbyssCard>((Action<CardInfo>)delegate(CardInfo c) { ExtensionMethods.SetAbbreviation(c, "AC"); }); CustomCard.BuildCard<Shining>((Action<CardInfo>)delegate(CardInfo c) { ExtensionMethods.SetAbbreviation(c, "S"); }); CustomCard.BuildCard<TimeConductor>((Action<CardInfo>)delegate(CardInfo c) { ExtensionMethods.SetAbbreviation(c, "S"); }); CustomCard.BuildCard<FinalBullet>((Action<CardInfo>)delegate(CardInfo c) { ExtensionMethods.SetAbbreviation(c, "FB"); }); CustomCard.BuildCard<ZeroGravity>((Action<CardInfo>)delegate(CardInfo c) { ExtensionMethods.SetAbbreviation(c, "ZG"); }); } } public enum RoleType { None, Tank, Berserker, Support, Sniper, Assassin } public class RoleManager : MonoBehaviour { private Player player; public RoleType CurrentRole { get; private set; } = RoleType.None; public bool HasRole => CurrentRole != RoleType.None; private void Awake() { player = ((Component)this).GetComponent<Player>(); } public bool SetRole(RoleType role) { if (HasRole) { Debug.LogWarning($"[Role] Player {player.playerID} already has role: {CurrentRole}"); return false; } CurrentRole = role; Debug.Log($"[Role] Player {player.playerID} selected role: {role}"); return true; } public string GetRoleName() { return CurrentRole switch { RoleType.Tank => "タンク", RoleType.Berserker => "バーサーカー", RoleType.Support => "サポート", RoleType.Sniper => "スナイパー", RoleType.Assassin => "アサシン", _ => "なし", }; } public string GetRoleDescription() { return CurrentRole switch { RoleType.Tank => "高HP・高防御の前衛職", RoleType.Berserker => "高火力・低防御の攻撃特化職", RoleType.Support => "味方を強化するサポート職", RoleType.Sniper => "遠距離攻撃特化職", RoleType.Assassin => "高機動・高クリティカル職", _ => "ロール未選択", }; } } public class RolePickerManager : MonoBehaviour { [CompilerGenerated] private sealed class <OnGameStart>d__7 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public IGameModeHandler gm; public RolePickerManager <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <OnGameStart>d__7(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; RoleSelectionComplete = false; Debug.Log("[Role Picker] Game started. Role selection reset."); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <OnPickStart>d__8 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public IGameModeHandler gm; public RolePickerManager <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <OnPickStart>d__8(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; if (!RoleSelectionComplete) { Debug.Log("[Role Picker] First pick phase - Role selection required!"); <>2__current = (object)new WaitForSeconds(0.5f); <>1__state = 1; return true; } break; case 1: <>1__state = -1; break; } return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } private static RolePickerManager instance; public static bool RoleSelectionComplete { get; private set; } private void Awake() { if ((Object)(object)instance == (Object)null) { instance = this; Object.DontDestroyOnLoad((Object)(object)((Component)this).gameObject); GameModeManager.AddHook("GameStart", (Func<IGameModeHandler, IEnumerator>)OnGameStart); GameModeManager.AddHook("PickStart", (Func<IGameModeHandler, IEnumerator>)OnPickStart); } else { Object.Destroy((Object)(object)((Component)this).gameObject); } } private void OnDestroy() { GameModeManager.RemoveHook("GameStart", (Func<IGameModeHandler, IEnumerator>)OnGameStart); GameModeManager.RemoveHook("PickStart", (Func<IGameModeHandler, IEnumerator>)OnPickStart); } [IteratorStateMachine(typeof(<OnGameStart>d__7))] private IEnumerator OnGameStart(IGameModeHandler gm) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <OnGameStart>d__7(0) { <>4__this = this, gm = gm }; } [IteratorStateMachine(typeof(<OnPickStart>d__8))] private IEnumerator OnPickStart(IGameModeHandler gm) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <OnPickStart>d__8(0) { <>4__this = this, gm = gm }; } public static bool AllPlayersHaveRoles() { List<Player> players = PlayerManager.instance.players; foreach (Player item in players) { RoleManager component = ((Component)item).GetComponent<RoleManager>(); if ((Object)(object)component == (Object)null || !component.HasRole) { return false; } } return true; } public static void CompleteRoleSelection() { RoleSelectionComplete = true; Debug.Log("[Role Picker] All players have selected roles. Normal card selection begins."); } public static bool CanSelectRoleCard(Player player) { if (RoleSelectionComplete) { return false; } RoleManager component = ((Component)player).GetComponent<RoleManager>(); if ((Object)(object)component != (Object)null && component.HasRole) { return false; } return true; } } } namespace NQV4Pro.Cards { public class Active_Heal : SimpleCard { public override CardDetails Details { get { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Expected O, but got Unknown //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_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Expected O, but got Unknown CardDetails val = new CardDetails(); val.Title = "A-即時回復"; val.Description = "回復薬(大)"; val.ModName = "NQV4-Active"; val.Rarity = (Rarity)2; val.Theme = (CardThemeColorType)3; val.Art = null; val.Stats = (CardInfoStat[])(object)new CardInfoStat[2] { new CardInfoStat { amount = "ア