Decompiled source of SashimiCards v1.3.0
SushiCards.dll
Decompiled 6 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 HarmonyLib; using Microsoft.CodeAnalysis; using ModdingUtils.MonoBehaviours; using ModsPlus; using SushiCards; using SushiCards.Cards; 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("SushiCards")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("SushiCards")] [assembly: AssemblyTitle("SushiCards")] [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 AngelBlessingCard : CustomEffectCard<AngelBlessingEffect> { public override CardDetails<AngelBlessingEffect> Details { get { //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_0057: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Expected O, but got Unknown //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_008e: 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_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Expected O, but got Unknown CardDetails<AngelBlessingEffect> val = new CardDetails<AngelBlessingEffect>(); val.Title = "Angel Blessing"; val.Description = "Heals <color=#6CB06C>20 + 1%</color> HP when shooting."; val.ModName = "SC"; val.Art = null; val.Rarity = (Rarity)1; val.Theme = (CardThemeColorType)3; val.Stats = (CardInfoStat[])(object)new CardInfoStat[2] { new CardInfoStat { positive = false, stat = "ATK Speed", amount = "-100%", simepleAmount = (SimpleAmount)5 }, new CardInfoStat { positive = false, stat = "Ammo", amount = "-5", simepleAmount = (SimpleAmount)5 } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; gun.attackSpeed = 2f; gun.ammo = -5; } } public class AngelBlessingEffect : CardEffect { public override void OnShoot(GameObject projectile) { ((CardEffect)this).player.data.healthHandler.Heal(20f + ((CardEffect)this).player.data.maxHealth * 0.01f); } } public class DemonicShieldPactCard : CustomEffectCard<DemonicShieldPactEffect> { public override CardDetails<DemonicShieldPactEffect> Details { get { //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_0057: 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 CardDetails<DemonicShieldPactEffect> val = new CardDetails<DemonicShieldPactEffect>(); val.Title = "Demonic Shield Pact"; val.Description = "Block cost: HP <color=#FF5E5E>15 + 10%</color>\nIf the cost is paid, <color=#6CB06C>Reset</color> block CD."; val.ModName = "SC"; val.Art = null; val.Rarity = (Rarity)2; val.Theme = (CardThemeColorType)4; val.Stats = (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { positive = false, stat = "Block cooldown", amount = "+2s" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; block.cdAdd = 2f; } } public class DemonicShieldPactEffect : CardEffect { public override IEnumerator OnBlockCoroutine(BlockTriggerType blockTriggerType) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) if (((CardEffect)this).player.data.health > ((CardEffect)this).player.data.maxHealth * 0.1f + 15f) { yield return null; ((Damagable)((CardEffect)this).player.data.healthHandler).TakeDamage(Vector2.up * (((CardEffect)this).player.data.maxHealth * 0.1f + 15f), Vector2.zero, (GameObject)null, (Player)null, true, true); ((CardEffect)this).player.data.block.ResetCD(true); } } } public class DrunkenBullet : CustomEffectCard<DrunkenBulletEffect> { public override CardDetails<DrunkenBulletEffect> Details { get { //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_0057: 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 CardDetails<DrunkenBulletEffect> val = new CardDetails<DrunkenBulletEffect>(); val.Title = "Drunken Bullet"; val.Description = "Reflecting a bullet, for <color=#FBEE21>0.5</color> seconds:\nDamage <color=#6CB06C>+100%</color> and Block CD <color=#6CB06C>reset</color>."; val.ModName = "SC"; val.Art = null; val.Rarity = (Rarity)2; val.Theme = (CardThemeColorType)4; val.Stats = (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { positive = false, stat = "Block cooldown", amount = "+2s" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; } } public class DrunkenBulletEffect : CardEffect { public override void OnShoot(GameObject projectile) { if ((Object)(object)((Component)((CardEffect)this).player).gameObject.GetComponent<DrunkenBulletMono>() != (Object)null) { Object.Destroy((Object)(object)((Component)((Component)((CardEffect)this).player).transform).gameObject.GetComponent<DrunkenBulletMono>()); } ((Component)((CardEffect)this).player).gameObject.AddComponent<DrunkenBulletMono>(); } public override IEnumerator OnBattleStart(IGameModeHandler gameModeHandler) { if ((Object)(object)((Component)((CardEffect)this).player).gameObject.GetComponent<DrunkenBulletMono>() != (Object)null) { Object.Destroy((Object)(object)((Component)((Component)((CardEffect)this).player).transform).gameObject.GetComponent<DrunkenBulletMono>()); } return ((CardEffect)this).OnBattleStart(gameModeHandler); } } public class ImmunityCard : CustomEffectCard<ImmunityEffect> { public override CardDetails<ImmunityEffect> Details { get { //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_0057: 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 CardDetails<ImmunityEffect> val = new CardDetails<ImmunityEffect>(); val.Title = "Immunity"; val.Description = "<color=#FBEE21>1</color> second after taking damage:"; val.ModName = "SC"; val.Art = null; val.Rarity = (Rarity)1; val.Theme = (CardThemeColorType)5; val.Stats = (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { positive = true, stat = "HP", amount = "+200%" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; } } public class ImmunityEffect : CardEffect { private float DestroyTime; public override void OnTakeDamage(Vector2 damage, bool selfDamage) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) ((CardEffect)this).OnTakeDamage(damage, selfDamage); ResetTimer(); if ((Object)(object)((Component)((CardEffect)this).player).gameObject.GetComponent<ImmunityBuffMono>() == (Object)null) { ((Component)((CardEffect)this).player).gameObject.AddComponent<ImmunityBuffMono>(); } } public void Update() { if ((Object)(object)((Component)((CardEffect)this).player).gameObject.GetComponent<ImmunityBuffMono>() != (Object)null && Time.time >= DestroyTime) { Object.Destroy((Object)(object)((Component)((Component)((CardEffect)this).player).transform).gameObject.GetComponent<ImmunityBuffMono>()); } } private void ResetTimer() { DestroyTime = Time.time + 1f; } } public class PanicNecklaceCard : CustomEffectCard<PanicNecklaceEffect> { public override CardDetails<PanicNecklaceEffect> Details { get { //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_0057: 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_007c: 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 //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Expected O, but got Unknown CardDetails<PanicNecklaceEffect> val = new CardDetails<PanicNecklaceEffect>(); val.Title = "Panic Necklace"; val.Description = "<color=#FBEE21>3</color> second after taking damage:"; val.ModName = "SC"; val.Art = null; val.Rarity = (Rarity)1; val.Theme = (CardThemeColorType)0; val.Stats = (CardInfoStat[])(object)new CardInfoStat[3] { new CardInfoStat { positive = true, stat = "Movement Speed", amount = "+75%" }, new CardInfoStat { positive = true, stat = "Block Cooldown", amount = "-50%" }, new CardInfoStat { positive = false, stat = "Spread", amount = "+20%" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; } } public class PanicNecklaceEffect : CardEffect { private float DestroyTime; public override void OnTakeDamage(Vector2 damage, bool selfDamage) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) ((CardEffect)this).OnTakeDamage(damage, selfDamage); ResetTimer(); if ((Object)(object)((Component)((CardEffect)this).player).gameObject.GetComponent<PanicNecklaceBuffMono>() == (Object)null) { ((Component)((CardEffect)this).player).gameObject.AddComponent<PanicNecklaceBuffMono>(); } } public void Update() { if ((Object)(object)((Component)((CardEffect)this).player).gameObject.GetComponent<PanicNecklaceBuffMono>() != (Object)null && Time.time >= DestroyTime) { Object.Destroy((Object)(object)((Component)((Component)((CardEffect)this).player).transform).gameObject.GetComponent<PanicNecklaceBuffMono>()); } } private void ResetTimer() { DestroyTime = Time.time + 3f; } } public class ParryCard : CustomEffectCard<ParryEffect> { public override CardDetails<ParryEffect> Details { get { //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_0057: 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 CardDetails<ParryEffect> val = new CardDetails<ParryEffect>(); val.Title = "Parry!"; val.Description = "Reflecting a bullet, for <color=#FBEE21>0.5</color> seconds:\nDamage <color=#6CB06C>+100%</color> and Block CD <color=#6CB06C>reset</color>."; val.ModName = "SC"; val.Art = null; val.Rarity = (Rarity)1; val.Theme = (CardThemeColorType)2; val.Stats = (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { positive = false, stat = "Block cooldown", amount = "+2s" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; block.cdAdd = 2f; } } public class ParryEffect : CardEffect { public override void OnBlockProjectile(GameObject projectile, Vector3 forward, Vector3 hitPosition) { //IL_0082: 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) if ((Object)(object)((Component)((CardEffect)this).player).gameObject.GetComponent<ParryMono>() != (Object)null) { Object.Destroy((Object)(object)((Component)((Component)((CardEffect)this).player).transform).gameObject.GetComponent<ParryMono>()); } ((Component)((CardEffect)this).player).gameObject.AddComponent<ParryMono>(); ((CardEffect)this).player.data.block.ResetCD(true); Object.Destroy((Object)(object)((Component)((Component)((CardEffect)this).player).transform).gameObject.GetComponent<ParryMono>(), 0.5f); ((CardEffect)this).OnBlockProjectile(projectile, forward, hitPosition); } } public class SeppukuCard : CustomEffectCard<SeppukuEffect> { public override CardDetails<SeppukuEffect> Details { get { //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_0057: 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_007c: 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 //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Expected O, but got Unknown //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Expected O, but got Unknown CardDetails<SeppukuEffect> val = new CardDetails<SeppukuEffect>(); val.Title = "Seppuku"; val.Description = "<color=#FBEE21>1</color> second after blocking, <color=#FF5E5E>Seppuku</color> (Lose <color=#FF5E5E>75%</color> of your current HP. Can only Seppuku 1 per battle.)\nAfter performing seppuku <color=#FBEE21>5</color> times, permanent gain:"; val.ModName = "SC"; val.Art = null; val.Rarity = (Rarity)2; val.Theme = (CardThemeColorType)0; val.Stats = (CardInfoStat[])(object)new CardInfoStat[4] { new CardInfoStat { positive = true, stat = "Percentage Damage", amount = "+25%" }, new CardInfoStat { positive = true, stat = "Life steal", amount = "+150%" }, new CardInfoStat { positive = true, stat = "Decay", amount = "+2s" }, new CardInfoStat { positive = true, stat = "Regen", amount = "+10/s" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; } } public class SeppukuEffect : CardEffect { private bool SeppukuFlag; private int SeppukuCount = 0; public override IEnumerator OnBattleStart(IGameModeHandler gameModeHandler) { SeppukuFlag = true; if ((Object)(object)((Component)((CardEffect)this).player).gameObject.GetComponent<SeppukuBuffMono>() != (Object)null) { Object.Destroy((Object)(object)((Component)((Component)((CardEffect)this).player).transform).gameObject.GetComponent<SeppukuBuffMono>()); } if (SeppukuCount >= 5) { Object.Destroy((Object)(object)((Component)((Component)((CardEffect)this).player).transform).gameObject.GetComponent<SeppukuAwakeMono>()); ((Component)((CardEffect)this).player).gameObject.AddComponent<SeppukuAwakeMono>(); } return ((CardEffect)this).OnBattleStart(gameModeHandler); } public override IEnumerator OnBlockCoroutine(BlockTriggerType blockTriggerType) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) yield return null; if (!SeppukuFlag || SeppukuCount >= 5) { yield break; } ((Component)((CardEffect)this).player).gameObject.AddComponent<SeppukuBuffMono>(); Object.Destroy((Object)(object)((Component)((Component)((CardEffect)this).player).transform).gameObject.GetComponent<SeppukuBuffMono>(), 1f); yield return (object)new WaitForSeconds(1f); if (((CardEffect)this).player.data.isPlaying && !((CardEffect)this).player.data.dead) { SeppukuFlag = false; SeppukuCount++; ((Damagable)((CardEffect)this).player.data.healthHandler).TakeDamage(Vector2.up * (((CardEffect)this).player.data.health * 0.75f), Vector2.zero, (GameObject)null, (Player)null, true, true); ((CardEffect)this).player.data.block.ResetCD(true); if (SeppukuCount >= 5) { ((Component)((CardEffect)this).player).gameObject.AddComponent<SeppukuAwakeMono>(); ((Component)((CardEffect)this).player).gameObject.AddComponent<SeppukuAwakeRedMono>(); Object.Destroy((Object)(object)((Component)((Component)((CardEffect)this).player).transform).gameObject.GetComponent<SeppukuAwakeRedMono>(), 3f); } } } } public class SilverBulletCard : CustomEffectCard<SilverBulletEffect> { public override CardDetails<SilverBulletEffect> Details { get { //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_0057: 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_007c: 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 //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Expected O, but got Unknown CardDetails<SilverBulletEffect> val = new CardDetails<SilverBulletEffect>(); val.Title = "Silver Bullet"; val.Description = "The first <color=#FBEE21>6</color> Bullets:"; val.ModName = "SC"; val.Art = null; val.Rarity = (Rarity)0; val.Theme = (CardThemeColorType)3; val.Stats = (CardInfoStat[])(object)new CardInfoStat[3] { new CardInfoStat { positive = true, stat = "Percentage Damage", amount = "+40%" }, new CardInfoStat { positive = true, stat = "Knockback", amount = "+100%" }, new CardInfoStat { positive = false, stat = "Bullet gravity", amount = "+50%" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = true; } } public class SilverBulletEffect : CardEffect { private int BulletCount = 6; public override IEnumerator OnBattleStart(IGameModeHandler gameModeHandler) { BulletCount = 6; if (CardCheck.Amount(((CardEffect)this).player, "Silver Bullet") >= 2) { BulletCount += 6 * (CardCheck.Amount(((CardEffect)this).player, "Silver Bullet") - 1); } if ((Object)(object)((Component)((CardEffect)this).player).gameObject.GetComponent<SilverBulletBuffMono>() == (Object)null) { ((Component)((CardEffect)this).player).gameObject.AddComponent<SilverBulletBuffMono>(); } return ((CardEffect)this).OnBattleStart(gameModeHandler); } public override IEnumerator OnShootCoroutine(GameObject projectile) { yield return null; if (!((Object)(object)((Component)((CardEffect)this).player).gameObject.GetComponent<SilverBulletBuffMono>() != (Object)null) || !((CardEffect)this).player.data.isPlaying) { yield break; } if (BulletCount > 1) { BulletCount--; if ((Object)(object)((Component)((CardEffect)this).player).gameObject.GetComponent<SilverBulletBuffMono>() == (Object)null) { ((Component)((CardEffect)this).player).gameObject.AddComponent<SilverBulletBuffMono>(); } } else { Object.Destroy((Object)(object)((Component)((Component)((CardEffect)this).player).transform).gameObject.GetComponent<SilverBulletBuffMono>()); } } } public class SuddenDeathInsuranceCard : CustomEffectCard<SuddenDeathInsuranceEffect> { public override CardDetails<SuddenDeathInsuranceEffect> Details { get { //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_0057: 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 CardDetails<SuddenDeathInsuranceEffect> val = new CardDetails<SuddenDeathInsuranceEffect>(); val.Title = "Sudden Death Insurance"; val.Description = "First <color=#FBEE21>5</color> seconds of battle:"; val.ModName = "SC"; val.Art = null; val.Rarity = (Rarity)0; val.Theme = (CardThemeColorType)2; val.Stats = (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { positive = true, stat = "HP", amount = "+400%" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; } } public class SuddenDeathInsuranceEffect : CardEffect { public override IEnumerator OnBattleStart(IGameModeHandler gameModeHandler) { if ((Object)(object)((Component)((CardEffect)this).player).gameObject.GetComponent<SuDIBuffMono>() != (Object)null) { Object.Destroy((Object)(object)((Component)((Component)((CardEffect)this).player).transform).gameObject.GetComponent<SuDIBuffMono>()); } ((Component)((CardEffect)this).player).gameObject.AddComponent<SuDIBuffMono>(); Object.Destroy((Object)(object)((Component)((Component)((CardEffect)this).player).transform).gameObject.GetComponent<SuDIBuffMono>(), 5f); return ((CardEffect)this).OnBattleStart(gameModeHandler); } } public class YDWWTPCard : CustomEffectCard<ExampleEffect> { public override CardDetails<ExampleEffect> Details { get { //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_0057: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Expected O, but got Unknown CardDetails<ExampleEffect> val = new CardDetails<ExampleEffect>(); val.Title = "Y.D.W.W.T.P."; val.Description = "The sword of kings!"; val.ModName = "SC"; val.Art = null; val.Rarity = (Rarity)1; val.Theme = (CardThemeColorType)4; val.Stats = (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { positive = false, stat = "Block cooldown", amount = "+25%", simepleAmount = (SimpleAmount)5 } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; } } public class ExampleEffect : CardEffect { public override void OnBlock(BlockTriggerType trigger) { ((CardEffect)this).player.data.healthHandler.Heal(((CardEffect)this).player.data.maxHealth * 0.002f); } public override void OnShoot(GameObject projectile) { ((CardEffect)this).player.data.healthHandler.Heal(((CardEffect)this).player.data.maxHealth * 0.002f); } public override IEnumerator OnRoundStart(IGameModeHandler gameModeHandler) { return ((CardEffect)this).OnRoundStart(gameModeHandler); } public override IEnumerator OnBattleStart(IGameModeHandler gameModeHandler) { if ((Object)(object)((Component)((CardEffect)this).player).gameObject.GetComponent<YDWWTPMono>() != (Object)null) { Object.Destroy((Object)(object)((Component)((Component)((CardEffect)this).player).transform).gameObject.GetComponent<YDWWTPMono>()); } if ((Object)(object)((Component)((CardEffect)this).player).gameObject.GetComponent<YDWWTPBuffMono>() != (Object)null) { Object.Destroy((Object)(object)((Component)((Component)((CardEffect)this).player).transform).gameObject.GetComponent<YDWWTPBuffMono>()); } ((Component)((CardEffect)this).player).gameObject.AddComponent<YDWWTPMono>(); Object.Destroy((Object)(object)((Component)((Component)((CardEffect)this).player).transform).gameObject.GetComponent<YDWWTPMono>(), 5f); return ((CardEffect)this).OnBattleStart(gameModeHandler); } public override void OnBlockProjectile(GameObject projectile, Vector3 forward, Vector3 hitPosition) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown StatManager.Apply(((CardEffect)this).player, new StatChanges { Damage = 1.5f }); } } namespace SushiCardsSpace { [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.Sashimi.Rounds.SushiCards", "SushiCards", "1.2.1")] [BepInProcess("Rounds.exe")] public class SushiCards : BaseUnityPlugin { private const string ModId = "com.Sashimi.Rounds.SushiCards"; private const string ModName = "SushiCards"; public const string Version = "1.2.1"; public const string ModInitials = "SC"; public static SushiCards instance { get; private set; } private void Awake() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown Harmony val = new Harmony("com.Sashimi.Rounds.SushiCards"); val.PatchAll(); } private void Start() { CustomCard.BuildCard<Jiangshi>(); CustomCard.BuildCard<Bandage>(); CustomCard.BuildCard<LittleMac>(); CustomCard.BuildCard<BLOODLUST>(); CustomCard.BuildCard<Speedster>(); CustomCard.BuildCard<ChargeroundsRed>(); CustomCard.BuildCard<ChargeroundsYellow>(); CustomCard.BuildCard<ChargeroundsGreen>(); CustomCard.BuildCard<ChargeroundsPink>(); CustomCard.BuildCard<ChargeroundsBlue>(); CustomCard.BuildCard<ChargeroundsWhite>(); CustomCard.BuildCard<ChargeroundsPurple>(); CustomCard.BuildCard<RegenAmmo>(); CustomCard.BuildCard<Tenacity>(); CustomCard.BuildCard<Omosa>(); CustomCard.BuildCard<RITUALSWORD>(); CustomCard.BuildCard<HugeMagazine>(); CustomCard.BuildCard<AngelBlessingCard>(); CustomCard.BuildCard<ParryCard>(); CustomCard.BuildCard<Machinegunner>(); CustomCard.BuildCard<DemonicShieldPactCard>(); CustomCard.BuildCard<SilverBulletCard>(); CustomCard.BuildCard<ImmunityCard>(); CustomCard.BuildCard<PanicNecklaceCard>(); CustomCard.BuildCard<SuddenDeathInsuranceCard>(); CustomCard.BuildCard<SeppukuCard>(); instance = this; } } } namespace SushiCards { internal class CardCheck : MonoBehaviour { public static int Amount(Player player, string cardName) { List<CardInfo> currentCards = player.data.currentCards; int num = 0; for (int num2 = currentCards.Count - 1; num2 >= 0; num2--) { if (currentCards[num2].cardName == cardName) { num++; } } return num; } } } namespace SushiCards.Cards { internal class Bandage : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { block.healing = 30f; block.cdMultiplier = 0.9f; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } protected override string GetTitle() { return "Bandage"; } protected override string GetDescription() { return ""; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)0; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[2] { new CardInfoStat { positive = true, stat = "Block Healing", amount = "+30", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Block Cooldown", amount = "-10%", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)7; } public override string GetModName() { return "SC"; } } internal class BLOODLUST : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { statModifiers.lifeSteal = 2.5f; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { gun.percentageDamage += 0.1f; if ((Object)(object)((Component)player).gameObject.GetComponent<BLOODLUSTMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<BLOODLUSTMono>(); } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<BLOODLUSTMono>() != (Object)null) { Object.Destroy((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<BLOODLUSTMono>()); } } protected override string GetTitle() { return "BLOODLUST"; } protected override string GetDescription() { return ""; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)1; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_0058: Expected O, but got Unknown //IL_005a: 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_0071: 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_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[3] { new CardInfoStat { positive = true, stat = "Life steal", amount = "+250%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Percentage Damage", amount = "+10%" }, new CardInfoStat { positive = false, stat = "HP loss/s", amount = "-7.5%", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)4; } public override string GetModName() { return "SC"; } } public class BLOODLUSTMono : MonoBehaviour { private Player player; private readonly float updateDelay = 0.1f; public float startTime = Time.time; private void Start() { player = ((Component)this).GetComponent<Player>(); } public void Update() { //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) if (Time.time >= startTime + updateDelay) { ResetTimer(); ((Damagable)player.data.healthHandler).TakeDamage(Vector2.up * player.data.maxHealth * (0.0075f * (float)CardCheck.Amount(player, "BLOODLUST")), Vector2.zero, (GameObject)null, (Player)null, true, false); } } private void ResetTimer() { startTime = Time.time; } } internal class ChargeroundsBlue : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if (!gun.useCharge) { gun.chargeDamageMultiplier = 1f; gun.chargeEvenSpreadTo = 1f; gun.chargeRecoilTo = 1f; gun.chargeSpeedTo = 1f; gun.chargeSpreadTo = 1f; gun.chargeNumberOfProjectilesTo = 0f; } gun.useCharge = true; gun.chargeDamageMultiplier *= 1.1f; if ((Object)(object)((Component)player).gameObject.GetComponent<ChargeroundsBlueMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<ChargeroundsBlueMono>(); } if ((Object)(object)((Component)player).gameObject.GetComponent<ChargeroundsIndicator>() == (Object)null) { ((Component)player).gameObject.AddComponent<ChargeroundsIndicator>(); } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<ChargeroundsBlueMono>() != (Object)null) { Object.Destroy((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<ChargeroundsBlueMono>()); } } protected override string GetTitle() { return "Charge rounds[Blue]"; } protected override string GetDescription() { return "Enable charge attack!\nWhile charging max:"; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)1; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown //IL_0061: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0078: 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_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Expected O, but got Unknown //IL_008d: 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_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[4] { new CardInfoStat { positive = true, stat = "Max Charge Damage", amount = "+10%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "HP", amount = "+100%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Block Cooldown", amount = "-50%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Additional blocks", amount = "+1", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)2; } public override string GetModName() { return "SC"; } } public class ChargeroundsBlueBuffMono : ReversibleEffect { public override void OnStart() { float currentCharge = base.player.data.weaponHandler.gun.currentCharge; if (currentCharge > 0.1f) { base.characterDataModifier.maxHealth_mult = currentCharge * (float)CardCheck.Amount(base.player, "Charge rounds[Blue]") + 1f; base.blockModifier.cdMultiplier_mult = 1f - currentCharge * 0.5f; } if (currentCharge > 0.8f) { base.blockModifier.additionalBlocks_add = CardCheck.Amount(base.player, "Chargerounds[Blue]"); } } public override void OnOnDisable() { ((ReversibleEffect)this).Destroy(); } } public class ChargeroundsBlueMono : MonoBehaviour { private Player player; private readonly float updateDelay = 0.1f; public float startTime = Time.time; private void Start() { player = ((Component)this).GetComponent<Player>(); } public void Update() { if (Time.time >= startTime + updateDelay) { ResetTimer(); if ((Object)(object)((Component)((Component)this).GetComponent<Player>()).GetComponent<ChargeroundsBlueBuffMono>() != (Object)null) { ((ReversibleEffect)((Component)((Component)this).GetComponent<Player>()).GetComponent<ChargeroundsBlueBuffMono>()).Destroy(); } ((Component)((Component)((Component)this).GetComponent<Player>()).transform).gameObject.AddComponent<ChargeroundsBlueBuffMono>(); } } private void ResetTimer() { startTime = Time.time; } } internal class ChargeroundsGreen : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { gun.ammo = 3; gun.spread = 0.05f; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if (!gun.useCharge) { gun.chargeDamageMultiplier = 1f; gun.chargeEvenSpreadTo = 1f; gun.chargeRecoilTo = 1f; gun.chargeSpeedTo = 1f; gun.chargeSpreadTo = 1f; gun.chargeNumberOfProjectilesTo = 0f; } gun.useCharge = true; gun.chargeNumberOfProjectilesTo += 2f; gun.chargeDamageMultiplier *= 1.1f; if ((Object)(object)((Component)player).gameObject.GetComponent<ChargeroundsIndicator>() == (Object)null) { ((Component)player).gameObject.AddComponent<ChargeroundsIndicator>(); } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } protected override string GetTitle() { return "Charge rounds[Green]"; } protected override string GetDescription() { return "Enable charge attack!"; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)0; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown //IL_0061: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0078: 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_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[3] { new CardInfoStat { positive = true, stat = "Max Charge Bullet", amount = "+2", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Max Charge Damage", amount = "+10%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Ammo", amount = "+3", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)5; } public override string GetModName() { return "SC"; } } public class ChargeroundsIndicator : MonoBehaviour { private Player player; private readonly float updateDelay = 0.1f; public float startTime = Time.time; private void Start() { player = ((Component)this).GetComponent<Player>(); } public void Update() { //IL_005e: Unknown result type (might be due to invalid IL or missing references) if (Time.time >= startTime + updateDelay) { ResetTimer(); float currentCharge = player.data.weaponHandler.gun.currentCharge; if (currentCharge > 0.99f) { ColorEffect val = ((Component)player).gameObject.AddComponent<ColorEffect>(); val.SetColor(Color.yellow); } else { ((Component)((Component)this).GetComponent<Player>()).GetComponent<ColorEffect>().Destroy(); } } } private void ResetTimer() { startTime = Time.time; } } internal class ChargeroundsPink : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { gun.damage = 0.7f; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if (!gun.useCharge) { gun.chargeDamageMultiplier = 1f; gun.chargeEvenSpreadTo = 1f; gun.chargeRecoilTo = 1f; gun.chargeSpeedTo = 1f; gun.chargeSpreadTo = 1f; gun.chargeNumberOfProjectilesTo = 0f; } gun.useCharge = true; gun.dmgMOnBounce *= 1.15f; if ((Object)(object)((Component)player).gameObject.GetComponent<ChargeroundsPinkMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<ChargeroundsPinkMono>(); } if ((Object)(object)((Component)player).gameObject.GetComponent<ChargeroundsIndicator>() == (Object)null) { ((Component)player).gameObject.AddComponent<ChargeroundsIndicator>(); } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<ChargeroundsPinkMono>() != (Object)null) { Object.Destroy((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<ChargeroundsPinkMono>()); } } protected override string GetTitle() { return "Charge rounds[Pink]"; } protected override string GetDescription() { return "Enable charge attack!"; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)1; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown //IL_0061: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0078: 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_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[3] { new CardInfoStat { positive = true, stat = "Max Charge Bounces", amount = "+10", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Damage per bounce", amount = "+15%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "Damage", amount = "-30%", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)8; } public override string GetModName() { return "SC"; } } public class ChargeroundsPinkBuffMono : ReversibleEffect { public override void OnStart() { float currentCharge = base.player.data.weaponHandler.gun.currentCharge; if (currentCharge > 0.1f) { base.gunStatModifier.reflects_add = (int)(currentCharge * 100f) / 10 * CardCheck.Amount(base.player, "Charge rounds[Pink]"); } } public override void OnOnDisable() { ((ReversibleEffect)this).Destroy(); } } public class ChargeroundsPinkMono : MonoBehaviour { private Player player; private readonly float updateDelay = 0.1f; public float startTime = Time.time; private void Start() { player = ((Component)this).GetComponent<Player>(); } public void Update() { if (Time.time >= startTime + updateDelay) { ResetTimer(); if ((Object)(object)((Component)((Component)this).GetComponent<Player>()).GetComponent<ChargeroundsPinkBuffMono>() != (Object)null) { ((ReversibleEffect)((Component)((Component)this).GetComponent<Player>()).GetComponent<ChargeroundsPinkBuffMono>()).Destroy(); } ((Component)((Component)((Component)this).GetComponent<Player>()).transform).gameObject.AddComponent<ChargeroundsPinkBuffMono>(); } } private void ResetTimer() { startTime = Time.time; } } internal class ChargeroundsPurple : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { statModifiers.lifeSteal = 0.75f; base.gun.unblockable = true; cardInfo.allowMultiple = false; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if (!gun.useCharge) { gun.chargeDamageMultiplier = 1f; gun.chargeEvenSpreadTo = 1f; gun.chargeRecoilTo = 1f; gun.chargeSpeedTo = 1f; gun.chargeSpreadTo = 1f; gun.chargeNumberOfProjectilesTo = 0f; } gun.useCharge = true; gun.chargeDamageMultiplier *= 1.5f; if ((Object)(object)((Component)player).gameObject.GetComponent<ChargeroundsPurpleMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<ChargeroundsPurpleMono>(); } if ((Object)(object)((Component)player).gameObject.GetComponent<ChargeroundsIndicator>() == (Object)null) { ((Component)player).gameObject.AddComponent<ChargeroundsIndicator>(); } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<ChargeroundsPurpleMono>() != (Object)null) { Object.Destroy((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<ChargeroundsPurpleMono>()); } } protected override string GetTitle() { return "Charge rounds[Purple]"; } protected override string GetDescription() { return "<color=#FF5E5E>Cannot move</color> while charging\nFull charge penetrates the block."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)2; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown //IL_0061: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0078: 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_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[3] { new CardInfoStat { positive = true, stat = "Max Charge Damage", amount = "+50%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Max Charge Knockback", amount = "+200%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Life steal", amount = "+75%", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)4; } public override string GetModName() { return "SC"; } } public class ChargeroundsPurpleBuffMono : ReversibleEffect { public override void OnStart() { float currentCharge = base.player.data.weaponHandler.gun.currentCharge; if (currentCharge > 0.1f) { base.characterStatModifiersModifier.movementSpeed_mult = 1f - currentCharge; base.characterStatModifiersModifier.jump_mult = 1f - currentCharge; base.gunStatModifier.knockback_mult = 1f + currentCharge * 2f; } } public override void OnOnDisable() { ((ReversibleEffect)this).Destroy(); } } public class ChargeroundsPurpleMono : MonoBehaviour { private Player player; private readonly float updateDelay = 0.1f; public float startTime = Time.time; private void Start() { player = ((Component)this).GetComponent<Player>(); } public void Update() { if (Time.time >= startTime + updateDelay) { ResetTimer(); if ((Object)(object)((Component)((Component)this).GetComponent<Player>()).GetComponent<ChargeroundsPurpleBuffMono>() != (Object)null) { ((ReversibleEffect)((Component)((Component)this).GetComponent<Player>()).GetComponent<ChargeroundsPurpleBuffMono>()).Destroy(); } ((Component)((Component)((Component)this).GetComponent<Player>()).transform).gameObject.AddComponent<ChargeroundsPurpleBuffMono>(); } } private void ResetTimer() { startTime = Time.time; } } internal class ChargeroundsRed : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if (!gun.useCharge) { gun.chargeDamageMultiplier = 1f; gun.chargeEvenSpreadTo = 1f; gun.chargeRecoilTo = 1f; gun.chargeSpeedTo = 1f; gun.chargeSpreadTo = 1f; gun.chargeNumberOfProjectilesTo = 0f; } gun.useCharge = true; gun.chargeDamageMultiplier *= 1.75f; gun.damageAfterDistanceMultiplier += 0.25f; if ((Object)(object)((Component)player).gameObject.GetComponent<ChargeroundsIndicator>() == (Object)null) { ((Component)player).gameObject.AddComponent<ChargeroundsIndicator>(); } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } protected override string GetTitle() { return "Charge rounds[Red]"; } protected override string GetDescription() { return "Enable charge attack!"; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)0; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[2] { new CardInfoStat { positive = true, stat = "Max Charge Damage", amount = "+75%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Damage Growth", amount = "+25%", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)0; } public override string GetModName() { return "SC"; } } internal class ChargeroundsWhite : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if (!gun.useCharge) { gun.chargeDamageMultiplier = 1f; gun.chargeEvenSpreadTo = 1f; gun.chargeRecoilTo = 1f; gun.chargeSpeedTo = 1f; gun.chargeSpreadTo = 1f; gun.chargeNumberOfProjectilesTo = 0f; } gun.useCharge = true; gun.projectielSimulatonSpeed *= 0.75f; gun.chargeDamageMultiplier *= 1.1f; if (gunAmmo.maxAmmo > 2) { gunAmmo.maxAmmo -= 2; } else { gunAmmo.maxAmmo = 1; } if ((Object)(object)((Component)player).gameObject.GetComponent<ChargeroundsWhiteMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<ChargeroundsWhiteMono>(); } if ((Object)(object)((Component)player).gameObject.GetComponent<ChargeroundsIndicator>() == (Object)null) { ((Component)player).gameObject.AddComponent<ChargeroundsIndicator>(); } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<ChargeroundsWhiteMono>() != (Object)null) { Object.Destroy((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<ChargeroundsWhiteMono>()); } } protected override string GetTitle() { return "Charge rounds[White]"; } protected override string GetDescription() { return "Enable charge attack!\nPenetrates through walls when fully charged"; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)1; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown //IL_0061: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[3] { new CardInfoStat { positive = true, stat = "Max Charge Damage", amount = "+10%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "Projectile Speed", amount = "-25%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "Ammo", amount = "-2" } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)3; } public override string GetModName() { return "SC"; } } public class ChargeroundsWhiteBuffMono : ReversibleEffect { public override void OnStart() { float currentCharge = base.player.data.weaponHandler.gun.currentCharge; if (currentCharge > 0.8f) { base.gun.ignoreWalls = true; } else { base.gun.ignoreWalls = false; } } public override void OnOnDisable() { ((ReversibleEffect)this).Destroy(); } } public class ChargeroundsWhiteMono : MonoBehaviour { private Player player; private readonly float updateDelay = 0.1f; public float startTime = Time.time; private void Start() { player = ((Component)this).GetComponent<Player>(); } public void Update() { if (Time.time >= startTime + updateDelay) { ResetTimer(); if ((Object)(object)((Component)((Component)this).GetComponent<Player>()).GetComponent<ChargeroundsWhiteBuffMono>() != (Object)null) { ((ReversibleEffect)((Component)((Component)this).GetComponent<Player>()).GetComponent<ChargeroundsWhiteBuffMono>()).Destroy(); } ((Component)((Component)((Component)this).GetComponent<Player>()).transform).gameObject.AddComponent<ChargeroundsWhiteBuffMono>(); } } private void ResetTimer() { startTime = Time.time; } } internal class ChargeroundsYellow : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if (!gun.useCharge) { gun.chargeDamageMultiplier = 1f; gun.chargeEvenSpreadTo = 1f; gun.chargeRecoilTo = 1f; gun.chargeSpeedTo = 1f; gun.chargeSpreadTo = 1f; gun.chargeNumberOfProjectilesTo = 0f; } gun.useCharge = true; gun.chargeSpeedTo *= 2f; gun.chargeDamageMultiplier *= 1.1f; if ((Object)(object)((Component)player).gameObject.GetComponent<ChargeroundsIndicator>() == (Object)null) { ((Component)player).gameObject.AddComponent<ChargeroundsIndicator>(); } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } protected override string GetTitle() { return "Charge rounds[Yellow]"; } protected override string GetDescription() { return "Enable charge attack!"; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)0; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[2] { new CardInfoStat { positive = true, stat = "Max Charge Ballet Speed", amount = "+100%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Max Charge Damage", amount = "+10%", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)1; } public override string GetModName() { return "SC"; } } public class DrunkenBulletMono : ReversibleEffect { public override void OnStart() { //IL_008f: 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) base.gunStatModifier.damage_mult = Random.Range(0.1f, 2f); base.gunStatModifier.projectileSpeed_mult = Random.Range(0.25f, 1.5f); base.gunStatModifier.projectielSimulatonSpeed_mult = Random.Range(0.25f, 1.5f); base.gunStatModifier.gravity_mult = Random.Range(-1f, 1.5f); base.gunStatModifier.knockback_mult = Random.Range(-2f, 2f); while (Random.Range(1, 5) == 1) { base.gunStatModifier.projectileColor = Color.magenta; base.gunStatModifier.damage_mult = Random.Range(0.1f, 3f); base.gunStatModifier.projectileSpeed_mult = Random.Range(0.1f, 2f); base.gunStatModifier.projectielSimulatonSpeed_mult = Random.Range(0.1f, 2f); base.gunStatModifier.gravity_mult = Random.Range(-2f, 2f); base.gunStatModifier.knockback_mult = Random.Range(-4f, 4f); } } public override void OnOnDisable() { ((ReversibleEffect)this).Destroy(); } } internal class HugeMagazine : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { CharacterStatModifiers statModifiers = base.statModifiers; statModifiers.health *= 1.5f; gunAmmo.maxAmmo += (int)(base.statModifiers.health * 5f); gun.attackSpeedMultiplier *= 1.35f; gun.reloadTime *= 1.35f; } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } protected override string GetTitle() { return "Huge Magazine"; } protected override string GetDescription() { return ""; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)2; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown //IL_0061: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0078: 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_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Expected O, but got Unknown //IL_008d: 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_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[4] { new CardInfoStat { positive = true, stat = "HP", amount = "+50%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Ammo", amount = "+ HP/20", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "ATK Speed", amount = "+35%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "Reload TIme", amount = "+35%", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)2; } public override string GetModName() { return "SC"; } } public class ImmunityBuffMono : ReversibleEffect { public override void OnStart() { base.characterDataModifier.maxHealth_mult = 3f; } public override void OnOnDisable() { ((ReversibleEffect)this).Destroy(); } } internal class Jiangshi : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { statModifiers.secondsToTakeDamageOver = 8f; statModifiers.health = 1.8f; statModifiers.jump = 0.5f; cardInfo.allowMultiple = false; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)player).gameObject.GetComponent<JiangshiMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<JiangshiMono>(); } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<JiangshiMono>() != (Object)null) { Object.Destroy((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<JiangshiMono>()); } } protected override string GetTitle() { return "Jiangshi"; } protected override string GetDescription() { return ""; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)2; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Expected O, but got Unknown //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0058: 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_006a: 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_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Expected O, but got Unknown //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0096: 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_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[4] { new CardInfoStat { positive = true, stat = "Health", amount = "+80%" }, new CardInfoStat { positive = true, stat = "Decay", amount = "+8s" }, new CardInfoStat { positive = false, stat = "Ground Movement Speed", amount = "-95%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { amount = "-50%", positive = false, simepleAmount = (SimpleAmount)0, stat = "Jump height" } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)4; } public override string GetModName() { return "SC"; } } public class JiangshiBuffMono : ReversibleEffect { public override void OnStart() { base.characterStatModifiersModifier.movementSpeed_mult = 0.05f; } public void Update() { if (!base.player.data.isGrounded) { ((ReversibleEffect)this).Destroy(); } } public override void OnOnDisable() { ((ReversibleEffect)this).Destroy(); } } public class JiangshiMono : MonoBehaviour { private float cooldown = 0.1f; private float startTime; private Player player; private Block block; private Gun gun; private void Start() { startTime = Time.time - cooldown; CharacterData componentInParent = ((Component)this).GetComponentInParent<CharacterData>(); player = componentInParent.player; block = componentInParent.block; gun = componentInParent.weaponHandler.gun; Block val = block; } public void Update() { if (Time.time >= startTime + cooldown) { ResetTimer(); if ((Object)(object)((Component)((Component)this).GetComponent<Player>()).GetComponent<JiangshiBuffMono>() != (Object)null) { ((ReversibleEffect)((Component)((Component)this).GetComponent<Player>()).GetComponent<JiangshiBuffMono>()).Destroy(); } ((Component)((Component)((Component)this).GetComponent<Player>()).transform).gameObject.AddComponent<JiangshiBuffMono>(); } } private void ResetTimer() { startTime = Time.time; } } internal class LittleMac : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { statModifiers.jump = 0.7f; gun.damage = 2f; statModifiers.movementSpeed = 1.6f; cardInfo.allowMultiple = false; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)player).gameObject.GetComponent<LittleMacMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<LittleMacMono>(); } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<LittleMacMono>() != (Object)null) { Object.Destroy((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<LittleMacMono>()); } } protected override string GetTitle() { return "Little Mac"; } protected override string GetDescription() { return "Damage <color=#FF5E5E>-80%</color>, Movement speed <color=#FF5E5E>-50%</color>, Bullet speed <color=#FF5E5E>-50%</color> while in the air."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)1; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown //IL_0061: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0078: 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_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[3] { new CardInfoStat { positive = true, stat = "Damage", amount = "+100%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Movement speed", amount = "+60%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "Jump height", amount = "-30%", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)5; } public override string GetModName() { return "SC"; } } public class LittleMacBuffMono : ReversibleEffect { public override void OnStart() { base.characterStatModifiersModifier.movementSpeed_mult = 0.5f; base.gunStatModifier.damage_mult = 0.2f; base.gunStatModifier.projectileSpeed_mult = 0.5f; } public void Update() { if (base.player.data.isGrounded) { ((ReversibleEffect)this).Destroy(); } } public override void OnOnDisable() { ((ReversibleEffect)this).Destroy(); } } public class LittleMacMono : MonoBehaviour { private float cooldown = 0.1f; private float startTime; private Player player; private Block block; private Gun gun; private void Start() { startTime = Time.time - cooldown; CharacterData componentInParent = ((Component)this).GetComponentInParent<CharacterData>(); player = componentInParent.player; block = componentInParent.block; gun = componentInParent.weaponHandler.gun; Block val = block; } public void Update() { if (Time.time >= startTime + cooldown) { ResetTimer(); if ((Object)(object)((Component)((Component)this).GetComponent<Player>()).GetComponent<LittleMacBuffMono>() != (Object)null) { ((ReversibleEffect)((Component)((Component)this).GetComponent<Player>()).GetComponent<LittleMacBuffMono>()).Destroy(); } ((Component)((Component)((Component)this).GetComponent<Player>()).transform).gameObject.AddComponent<LittleMacBuffMono>(); } } private void ResetTimer() { startTime = Time.time; } } internal class Machinegunner : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; gun.reloadTimeAdd = 7f; gun.spread = 0.1f; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)player).gameObject.GetComponent<MachinegunnerMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<MachinegunnerMono>(); } gun.damage *= 0.34f; } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<MachinegunnerMono>() != (Object)null) { Object.Destroy((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<MachinegunnerMono>()); } } protected override string GetTitle() { return "Machinegunner"; } protected override string GetDescription() { return "Reload time status 1 second per gain:\nAmmo <color=#6CB06C>+3</color>/ATK Speed <color=#6CB06C>+75%</color>."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)2; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[2] { new CardInfoStat { positive = false, stat = "Damage", amount = "-66%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "Reload time", amount = "+7s", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)1; } public override string GetModName() { return "SC"; } } public class MachinegunnerBuffMono : ReversibleEffect { public override void OnStart() { float num = (base.gunAmmo.reloadTime + base.gunAmmo.reloadTimeAdd) * base.gunAmmo.reloadTimeMultiplier; base.gunAmmoStatModifier.maxAmmo_add = (int)num * 3; if (num > 2f) { base.gunStatModifier.attackSpeed_mult = 1f / (1f + num * 0.75f); } } public override void OnOnDisable() { ((ReversibleEffect)this).Destroy(); } } public class MachinegunnerMono : MonoBehaviour { private float cooldown = 0.1f; private float startTime; private void Start() { startTime = Time.time - cooldown; CharacterData componentInParent = ((Component)this).GetComponentInParent<CharacterData>(); } public void Update() { if (Time.time >= startTime + cooldown) { ResetTimer(); if ((Object)(object)((Component)((Component)this).GetComponent<Player>()).GetComponent<MachinegunnerBuffMono>() != (Object)null) { ((ReversibleEffect)((Component)((Component)this).GetComponent<Player>()).GetComponent<MachinegunnerBuffMono>()).Destroy(); } ((Component)((Component)((Component)this).GetComponent<Player>()).transform).gameObject.AddComponent<MachinegunnerBuffMono>(); } } private void ResetTimer() { startTime = Time.time; } } internal class Omosa2 : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { gun.damage = 1.3f; statModifiers.health = 1.4f; statModifiers.movementSpeed = 0.8f; statModifiers.gravity = 1.3f; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } protected override string GetTitle() { return "Omosa"; } protected override string GetDescription() { return ""; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)0; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: 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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown //IL_0061: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0078: 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_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Expected O, but got Unknown //IL_008d: 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_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[4] { new CardInfoStat { positive = true, stat = "HP", amount = "+40%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Damage", amount = "+30%", simepleAmount = (SimpleAmount)0 }, new