using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Bootstrap;
using CPCCore;
using CPCCore.Extensions;
using CPCCore.Utilities;
using CPCCurses.MonoBehaviours;
using CardChoiceSpawnUniqueCardPatch.CustomCategories;
using HarmonyLib;
using Jotunn.Utils;
using Microsoft.CodeAnalysis;
using ModdingUtils.Extensions;
using ModdingUtils.MonoBehaviours;
using ModdingUtils.Utils;
using PSA.Extensions;
using Photon.Pun;
using RarityLib.Utils;
using UnboundLib;
using UnboundLib.Cards;
using UnboundLib.GameModes;
using UnboundLib.Utils;
using UnityEngine;
using UnityEngine.UI;
using WillsWackyManagers.Utils;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETFramework,Version=v4.7.1", FrameworkDisplayName = ".NET Framework 4.7.1")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
internal sealed class RefSafetyRulesAttribute : Attribute
{
public readonly int Version;
public RefSafetyRulesAttribute(int P_0)
{
Version = P_0;
}
}
}
namespace CPCCurses
{
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInPlugin("com.Poppycars.CPCCurses.Id", "ChaosPoppycarsCardsCurses", "1.0.0")]
[BepInProcess("Rounds.exe")]
public class ChaosPoppycarsCardsCurses : BaseUnityPlugin
{
public static class CPCCardCategories
{
public static CardCategory LetterCategory = CustomCardCategories.instance.CardCategory("LetterCategory");
public static CardCategory IgnoreLetterCategory = CustomCardCategories.instance.CardCategory("IgnoreLetterCategory");
}
[CompilerGenerated]
private sealed class <GameStart>d__14 : IEnumerator<object>, IEnumerator, IDisposable
{
private int <>1__state;
private object <>2__current;
public IGameModeHandler gm;
public ChaosPoppycarsCardsCurses <>4__this;
private List<Player>.Enumerator <>s__1;
private Player <player>5__2;
object IEnumerator<object>.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
object IEnumerator.Current
{
[DebuggerHidden]
get
{
return <>2__current;
}
}
[DebuggerHidden]
public <GameStart>d__14(int <>1__state)
{
this.<>1__state = <>1__state;
}
[DebuggerHidden]
void IDisposable.Dispose()
{
<player>5__2 = null;
<>1__state = -2;
}
private bool MoveNext()
{
if (<>1__state != 0)
{
return false;
}
<>1__state = -1;
<>s__1 = PlayerManager.instance.players.GetEnumerator();
try
{
while (<>s__1.MoveNext())
{
<player>5__2 = <>s__1.Current;
CharacterStatModifiersExtension.GetAdditionalData(<player>5__2.data.stats).blacklistedCategories.Add(CPCCardCategories.LetterCategory);
<player>5__2 = null;
}
}
finally
{
((IDisposable)<>s__1).Dispose();
}
return false;
}
bool IEnumerator.MoveNext()
{
//ILSpy generated this explicit interface implementation from .override directive in MoveNext
return this.MoveNext();
}
[DebuggerHidden]
void IEnumerator.Reset()
{
throw new NotSupportedException();
}
}
private const string ModId = "com.Poppycars.CPCCurses.Id";
private const string ModName = "ChaosPoppycarsCardsCurses";
public const string Version = "1.0.0";
public const string ModInitials = "CPCCurses";
internal static List<BaseUnityPlugin> plugins;
public static AssetBundle Bundle;
public static ChaosPoppycarsCardsCurses Instance { get; private set; }
private void Awake()
{
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_002a: Expected O, but got Unknown
Bundle = AssetUtils.LoadAssetBundleFromResources("cpccurses", typeof(ChaosPoppycarsCardsCurses).Assembly);
Harmony val = new Harmony("com.Poppycars.CPCCurses.Id");
val.PatchAll();
GameObject val2 = Bundle.LoadAsset<GameObject>("ModCards");
CardHolder component = val2.GetComponent<CardHolder>();
component.RegisterCards();
}
private void Start()
{
plugins = (List<BaseUnityPlugin>)typeof(Chainloader).GetField("_plugins", BindingFlags.Static | BindingFlags.NonPublic).GetValue(null);
Instance = this;
ChaosPoppycarsCardsCore.RegisterCards(typeof(ChaosPoppycarsCardsCurses).Assembly, Bundle);
Cards.instance.AddCardValidationFunction((Func<Player, CardInfo, bool>)((Player player, CardInfo cardinfo) => player.data.currentCards.Where((CardInfo C) => (Object)(object)((Component)C).GetComponent<LetterComponent>() != (Object)null).All((CardInfo C) => cardinfo.cardName.ToUpper().Contains(((Component)C).GetComponent<LetterComponent>().letter.ToUpper())) || cardinfo.categories.Contains(CPCCardCategories.IgnoreLetterCategory)));
Cards.instance.AddCardValidationFunction((Func<Player, CardInfo, bool>)((Player player, CardInfo cardinfo) => Validation(player, cardinfo)));
GameModeManager.AddHook("GameStart", (Func<IGameModeHandler, IEnumerator>)GameStart);
ExtensionMethods.ExecuteAfterFrames((MonoBehaviour)(object)this, 60, (Action)delegate
{
CardManager.cards.Values.ToList().ForEach(delegate(Card card)
{
AddMod(card);
});
});
}
private bool Validation(Player player, CardInfo cardinfo)
{
LetterComponent component = ((Component)cardinfo).GetComponent<LetterComponent>();
if (component == null)
{
return true;
}
List<string> validLetters = new List<string> { component.letter };
IEnumerable<CardInfo> enumerable = player.data.currentCards.Where((CardInfo c2) => (Object)(object)((Component)c2).GetComponent<LetterComponent>() != (Object)null);
foreach (CardInfo item in enumerable)
{
validLetters.Add(((Component)item).GetComponent<LetterComponent>().letter.ToUpper());
}
return Cards.active.Any((CardInfo card) => !validLetters.Any((string letter) => !card.cardName.ToUpper().Contains(letter)));
}
private void AddMod(Card card)
{
string text = "__Rarity-" + ((object)(Rarity)(ref card.cardInfo.rarity)).ToString();
CardCategory val = CustomCardCategories.instance.CardCategory(text);
CardCategory[] categories = CollectionExtensions.AddToArray<CardCategory>(card.cardInfo.categories, val);
card.cardInfo.categories = categories;
}
[IteratorStateMachine(typeof(<GameStart>d__14))]
private IEnumerator GameStart(IGameModeHandler gm)
{
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new <GameStart>d__14(0)
{
<>4__this = this,
gm = gm
};
}
}
public class LetterComponent : MonoBehaviour
{
public string letter = "";
public string rarity = "Common";
}
}
namespace CPCCurses.MonoBehaviours
{
internal class CameraLocker : MonoBehaviour
{
private Player player;
public void Start()
{
player = ((Component)this).GetComponent<Player>();
}
public void Update()
{
//IL_0051: Unknown result type (might be due to invalid IL or missing references)
//IL_0056: Unknown result type (might be due to invalid IL or missing references)
//IL_005a: Unknown result type (might be due to invalid IL or missing references)
//IL_0073: 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_007c: Unknown result type (might be due to invalid IL or missing references)
//IL_008b: Unknown result type (might be due to invalid IL or missing references)
Camera[] allCameras = Camera.allCameras;
foreach (Camera val in allCameras)
{
if (PhotonNetwork.OfflineMode || player.data.view.IsMine)
{
Transform transform = ((Component)val).gameObject.transform;
Quaternion rotation = ((Component)Camera.main).gameObject.transform.rotation;
float x = ((Quaternion)(ref rotation)).eulerAngles.x;
rotation = ((Component)Camera.main).gameObject.transform.rotation;
transform.eulerAngles = new Vector3(x, ((Quaternion)(ref rotation)).eulerAngles.y, 180f);
}
}
}
}
internal class FlipMovmentEffect : ReversibleEffect
{
private float duration = 0f;
public override void OnOnDestroy()
{
Block block = base.data.block;
block.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
}
private void OnBlock(BlockTriggerType trigger)
{
if (duration <= 0f)
{
((ReversibleEffect)this).ApplyModifiers();
}
duration = 2f;
}
public override void OnStart()
{
base.characterStatModifiersModifier.movementSpeed_mult = -1f;
Block block = base.data.block;
block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
((ReversibleEffect)this).SetLivesToEffect(int.MaxValue);
}
public override void OnUpdate()
{
if (!(duration <= 0f))
{
duration -= TimeHandler.deltaTime;
}
else
{
((ReversibleEffect)this).ClearModifiers(true);
}
}
public override void OnOnDisable()
{
duration = 0f;
((ReversibleEffect)this).ClearModifiers(true);
}
}
internal class LetterArt : MonoBehaviour
{
public void Start()
{
string letter = ((Component)((Component)this).GetComponentInParent<CardInfo>()).GetComponent<LetterComponent>().letter;
((Component)this).GetComponentInChildren<Text>().text = letter.ToUpper() + letter.ToLower();
}
}
}
namespace CPCCurses.Cards
{
internal class BlockConfusion : CustomCard
{
internal static CardInfo Card;
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { CurseManager.instance.curseCategory };
CPCDebug.Log((object)("[CPCCurses][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
FlipMovmentEffect orAddComponent = ExtensionMethods.GetOrAddComponent<FlipMovmentEffect>(((Component)player).gameObject, false);
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
FlipMovmentEffect orAddComponent = ExtensionMethods.GetOrAddComponent<FlipMovmentEffect>(((Component)player).gameObject, false);
Object.Destroy((Object)(object)orAddComponent);
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
protected override string GetTitle()
{
return "Confusion Block";
}
protected override string GetDescription()
{
return "How do I walk again?";
}
protected override GameObject GetCardArt()
{
return ChaosPoppycarsCardsCurses.Bundle.LoadAsset<GameObject>("C_ConfusionBlock");
}
protected override Rarity GetRarity()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
return RarityUtils.GetRarity("Legendary");
}
protected override CardInfoStat[] GetStats()
{
return (CardInfoStat[])(object)new CardInfoStat[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 "Curse";
}
}
internal class BrittleBullets : CustomCard
{
internal static CardInfo Card;
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
gun.dmgMOnBounce = 0.75f;
gun.speedMOnBounce = 0.75f;
cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { CurseManager.instance.curseCategory };
CPCDebug.Log((object)("[CPCCurses][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
protected override string GetTitle()
{
return "Brittle bullets";
}
protected override string GetDescription()
{
return "Your bullets loose damage and speed on bounce";
}
protected override GameObject GetCardArt()
{
return ChaosPoppycarsCardsCurses.Bundle.LoadAsset<GameObject>("C_BrittleBullets");
}
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 = false,
stat = "Damage on bounce",
amount = "-25%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = false,
stat = "Bullet speed on bounce",
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)4;
}
public override string GetModName()
{
return "Curse";
}
}
internal class FearfulCurse : CustomCard
{
internal static CardInfo Card;
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { CurseManager.instance.curseCategory };
CPCDebug.Log((object)("[CPCCurses][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
//IL_005a: Unknown result type (might be due to invalid IL or missing references)
HealthBasedEffect val = ((Component)player).gameObject.AddComponent<HealthBasedEffect>();
((ReversibleEffect)val).characterStatModifiersModifier.movementSpeed_mult = 0.5f;
((ReversibleEffect)val).gunStatModifier.attackSpeed_mult = 1.5f;
((ReversibleEffect)val).gunStatModifier.spread_add = 0.5f;
((ReversibleEffect)val).gunAmmoStatModifier.reloadTimeMultiplier_mult = 1.5f;
val.SetPercThresholdMax(0.5f);
val.SetColor(Color.magenta);
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
protected override string GetTitle()
{
return "Paralyzing Fear";
}
protected override string GetDescription()
{
return "You quickly go into fear when below 50% of your max health";
}
protected override GameObject GetCardArt()
{
return ChaosPoppycarsCardsCurses.Bundle.LoadAsset<GameObject>("C_ParalyzingFear");
}
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()
{
return (CardInfoStat[])(object)new CardInfoStat[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 "Curse";
}
}
internal class FlippedCameraCurse : CustomCard
{
internal static CardInfo Card;
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
cardInfo.allowMultiple = false;
cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { CurseManager.instance.curseCategory };
CPCDebug.Log((object)("[CPCCurses][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
Camera[] allCameras = Camera.allCameras;
foreach (Camera val in allCameras)
{
if (PhotonNetwork.OfflineMode || player.data.view.IsMine)
{
((Component)val).gameObject.transform.Rotate(0f, 0f, 180f);
}
}
ExtensionMethods.GetOrAddComponent<CameraLocker>(((Component)player).gameObject, false);
CharacterStatModifiersExtension.GetAdditionalData(characterStats).cameraLock = true;
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
Camera[] allCameras = Camera.allCameras;
foreach (Camera val in allCameras)
{
if (PhotonNetwork.OfflineMode || player.data.view.IsMine)
{
((Component)val).gameObject.transform.Rotate(0f, 0f, -180f);
}
}
Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<CameraLocker>(((Component)player).gameObject, false));
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
protected override string GetTitle()
{
return "A new prespective";
}
protected override string GetDescription()
{
return "But then I had an idea, I used F5, see using F5 gave me a whole new prespective, and I saw a hopper I couldnt have seen before";
}
protected override GameObject GetCardArt()
{
return ChaosPoppycarsCardsCurses.Bundle.LoadAsset<GameObject>("C_FlippedCamera");
}
protected override Rarity GetRarity()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
return RarityUtils.GetRarity("Mythical");
}
protected override CardInfoStat[] GetStats()
{
return (CardInfoStat[])(object)new CardInfoStat[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 "Curse";
}
}
internal class ACurse : CustomCard
{
internal static CardInfo Card;
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
cardInfo.allowMultiple = false;
cardInfo.categories = (CardCategory[])(object)new CardCategory[3]
{
CurseManager.instance.curseCategory,
ChaosPoppycarsCardsCurses.CPCCardCategories.LetterCategory,
ChaosPoppycarsCardsCurses.CPCCardCategories.IgnoreLetterCategory
};
CPCDebug.Log((object)("[CPCCurses][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
public override bool GetEnabled()
{
return false;
}
protected override string GetTitle()
{
string letter = ((Component)this).GetComponent<LetterComponent>().letter;
return letter.ToUpper() + letter.ToLower();
}
protected override string GetDescription()
{
return ((CustomCard)this).GetTitle();
}
protected override GameObject GetCardArt()
{
return ChaosPoppycarsCardsCurses.Bundle.LoadAsset<GameObject>("C_Letter");
}
protected override Rarity GetRarity()
{
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
//IL_0013: Unknown result type (might be due to invalid IL or missing references)
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
string rarity = ((Component)this).GetComponent<LetterComponent>().rarity;
return RarityUtils.GetRarity(rarity);
}
protected override CardInfoStat[] GetStats()
{
return (CardInfoStat[])(object)new CardInfoStat[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 "Curse";
}
}
internal class CursedOutcomePC : CustomCard
{
public override bool GetEnabled()
{
return false;
}
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
CardInfoExtension.GetAdditionalData(cardInfo).canBeReassigned = false;
cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { CPCCoreCardCategories.PoppysChaosCategory };
CPCDebug.Log((object)("[CPCCore][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
ExtensionMethods.ExecuteAfterFrames((MonoBehaviour)(object)ChaosPoppycarsCardsCurses.Instance, 10, (Action)delegate
{
CurseManager.instance.CursePlayer(player, (Action<CardInfo>)delegate(CardInfo curse)
{
CardBarUtils.instance.ShowImmediate(player, curse, (float?)3f);
});
CurseManager.instance.CursePlayer(player, (Action<CardInfo>)delegate(CardInfo curse)
{
CardBarUtils.instance.ShowImmediate(player, curse, (float?)3f);
});
});
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCCore", ((CustomCard)this).GetTitle(), player.playerID));
}
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 "Cursed";
}
protected override string GetDescription()
{
return "You have been cursed";
}
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
return (CardInfoStat[])(object)new CardInfoStat[1]
{
new CardInfoStat
{
positive = false,
stat = "Curses",
amount = "+2",
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 "CPC";
}
}
internal class JumplessOutcomePC : CustomCard
{
public override bool GetEnabled()
{
return false;
}
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { CPCCoreCardCategories.PoppysChaosCategory };
CPCDebug.Log((object)("[CPCCore][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
characterStats.numberOfJumps = 0;
characterStats.jump = 0f;
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCCore", ((CustomCard)this).GetTitle(), player.playerID));
}
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 "Weak Legs";
}
protected override string GetDescription()
{
return "You cannot jump";
}
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 = "Jumps",
amount = "0",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = false,
stat = "Jump Power",
amount = "0",
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 "CPC";
}
}
internal class LessReviveOutcomePC : CustomCard
{
public override bool GetEnabled()
{
return false;
}
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { CPCCoreCardCategories.PoppysChaosCategory };
statModifiers.health = 0.75f;
statModifiers.respawns = -1;
CPCDebug.Log((object)("[CPCCore][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
characterStats.sizeMultiplier = 1f;
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCCore", ((CustomCard)this).GetTitle(), player.playerID));
}
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 "Less vital";
}
protected override string GetDescription()
{
return "You are overall more fragile";
}
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 = false,
stat = "Revives",
amount = "-1",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = false,
stat = "Health",
amount = "-25%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "Size Multiplier",
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)7;
}
public override string GetModName()
{
return "CPC";
}
}
internal class TangibleBulletsOutcomePC : CustomCard
{
public override bool GetEnabled()
{
return false;
}
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { CPCCoreCardCategories.PoppysChaosCategory };
CPCDebug.Log((object)("[CPCCore][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
gun.ignoreWalls = false;
gun.damageAfterDistanceMultiplier = 0.75f;
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCCore", ((CustomCard)this).GetTitle(), player.playerID));
}
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 "Realistic Bullets";
}
protected override string GetDescription()
{
return "Your bullets cant just ignore walls";
}
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
return (CardInfoStat[])(object)new CardInfoStat[2]
{
new CardInfoStat
{
positive = false,
stat = "Ignore Walls",
amount = "Bullets Dont",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = false,
stat = "Damage After Distance",
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)7;
}
public override string GetModName()
{
return "CPC";
}
}
internal class UnCursedOutcomePC : CustomCard
{
public override bool GetEnabled()
{
return false;
}
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
CardInfoExtension.GetAdditionalData(cardInfo).canBeReassigned = false;
cardInfo.categories = (CardCategory[])(object)new CardCategory[2]
{
CPCCoreCardCategories.PoppysChaosCategory,
CurseManager.instance.curseInteractionCategory
};
gun.damage = 1.15f;
CPCDebug.Log((object)("[CPCCore][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
ExtensionMethods.ExecuteAfterFrames((MonoBehaviour)(object)ChaosPoppycarsCardsCurses.Instance, 10, (Action)delegate
{
CardInfo[] allCursesOnPlayer = CurseManager.instance.GetAllCursesOnPlayer(player);
CardInfo val = allCursesOnPlayer[Random.Range(0, allCursesOnPlayer.Count())];
Cards.instance.RemoveCardFromPlayer(player, val, (SelectionType)1, true);
});
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCCore", ((CustomCard)this).GetTitle(), player.playerID));
}
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 "Purify";
}
protected override string GetDescription()
{
return "You have been purifyed, removing a curse";
}
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 = "Curses",
amount = "-1",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "Damage",
amount = "+15%",
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 "CPC";
}
}
internal class LetterCurse : CustomCard
{
internal static CardInfo Card;
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
CardInfoExtension.GetAdditionalData(cardInfo).canBeReassigned = false;
cardInfo.categories = (CardCategory[])(object)new CardCategory[2]
{
CurseManager.instance.curseCategory,
ChaosPoppycarsCardsCurses.CPCCardCategories.IgnoreLetterCategory
};
CPCDebug.Log((object)("[CPCCurses][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
ExtensionMethods.ExecuteAfterFrames((MonoBehaviour)(object)ChaosPoppycarsCardsCurses.Instance, 5, (Action)delegate
{
CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.RemoveAll((CardCategory category) => (Object)(object)category == (Object)(object)ChaosPoppycarsCardsCurses.CPCCardCategories.LetterCategory);
CurseManager.instance.CursePlayer(player, (Action<CardInfo>)delegate(CardInfo curse)
{
CardBarUtils.instance.ShowImmediate(player, curse, (float?)3f);
CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Add(ChaosPoppycarsCardsCurses.CPCCardCategories.LetterCategory);
}, (Func<CardInfo, Player, bool>)((CardInfo cardInfo, Player player2) => LetterCondition(cardInfo, player2, null, null, null, null, null, null, null)));
});
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
protected override string GetTitle()
{
return "Letter Curse";
}
protected override string GetDescription()
{
return "You seem to have gotten lingusitically challenged";
}
protected override GameObject GetCardArt()
{
return ChaosPoppycarsCardsCurses.Bundle.LoadAsset<GameObject>("C_LetterCurse");
}
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()
{
return (CardInfoStat[])(object)new CardInfoStat[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 "Curse";
}
private bool LetterCondition(CardInfo card, Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
return card.categories.Contains(ChaosPoppycarsCardsCurses.CPCCardCategories.LetterCategory);
}
}
internal class NerfGun : CustomCard
{
internal static CardInfo Card;
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
gun.damage = 0.75f;
gun.dontAllowAutoFire = true;
cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { CurseManager.instance.curseCategory };
CPCDebug.Log((object)("[CPCCurses][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
gun.drag += 1f;
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
protected override string GetTitle()
{
return "Nerf Gun";
}
protected override string GetDescription()
{
return "You lost your real gun and picked up this toy, what could go wrong, (disables auto fire)";
}
protected override GameObject GetCardArt()
{
return ChaosPoppycarsCardsCurses.Bundle.LoadAsset<GameObject>("C_NerfGun");
}
protected override Rarity GetRarity()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
return RarityUtils.GetRarity("Legendary");
}
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 = "-50%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = false,
stat = "Drag",
amount = "+100%",
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 "Curse";
}
}
internal class Obvious : CustomCard
{
internal static CardInfo Card;
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { CurseManager.instance.curseCategory };
CPCDebug.Log((object)("[CPCCurses][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
protected override string GetTitle()
{
return "Obvious";
}
protected override string GetDescription()
{
return "Wall Magnet";
}
protected override GameObject GetCardArt()
{
return null;
}
protected override Rarity GetRarity()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
return RarityUtils.GetRarity("Exotic");
}
protected override CardInfoStat[] GetStats()
{
return (CardInfoStat[])(object)new CardInfoStat[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 "Curse";
}
}
internal class RandomCurse : CustomCard
{
private Random randomNumberGenerator;
private PhotonView photonView;
internal static CardInfo Card;
public void Start()
{
photonView = ((Component)this).GetComponent<PhotonView>();
if (PhotonNetwork.IsMasterClient)
{
randomNumberGenerator = new Random((int)DateTime.Now.Ticks);
photonView.RPC("InitializeRandomNumberGenerator", (RpcTarget)1, new object[1] { (int)DateTime.Now.Ticks });
}
}
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { CurseManager.instance.curseCategory };
CPCDebug.Log((object)("[CPCCurses][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
}
[PunRPC]
public void InitializeRandomNumberGenerator(int seed)
{
randomNumberGenerator = new Random(seed);
}
private void GenerateAndPerformEffect(Gun gun, Player player, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
int num = randomNumberGenerator.Next(1, 11);
switch (num)
{
case 0:
break;
case 1:
Debug.Log((object)"Random Curse case 1");
gun.damage *= 0.25f;
break;
case 2:
Debug.Log((object)"Random Curse case 2");
gunAmmo.reloadTimeMultiplier *= 1.75f;
break;
case 3:
Debug.Log((object)"Random Curse case 3");
data.maxHealth *= 0.25f;
break;
case 4:
Debug.Log((object)"Random Curse case 4");
gun.numberOfProjectiles = 1;
break;
case 5:
gun.reflects = 0;
Debug.Log((object)"Random Curse case 5");
break;
case 6:
{
CharacterStatModifiersAdditionalData additionalData = CharacterStatModifiersExtension.GetAdditionalData(characterStats);
additionalData.damageReduction *= 0.5f;
Debug.Log((object)"Random Curse case 6");
break;
}
case 7:
block.additionalBlocks -= 2;
block.cdMultiplier *= 1.75f;
Debug.Log((object)"Random Curse case 7");
break;
case 8:
gunAmmo.maxAmmo = 1;
Debug.Log((object)"Random Curse case 8");
break;
case 9:
gun.cos += 1f;
Debug.Log((object)"Random Curse case 9");
break;
case 10:
characterStats.health *= 1.5f;
Debug.Log((object)"Random Curse case 10");
break;
default:
Debug.LogError((object)("Unexpected random number value: " + num));
break;
}
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
GenerateAndPerformEffect(gun, player, gunAmmo, data, health, gravity, block, characterStats);
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
protected override string GetTitle()
{
return "Chaotic Curse";
}
protected override string GetDescription()
{
return "Your punishment shall be decided by fate";
}
protected override GameObject GetCardArt()
{
return ChaosPoppycarsCardsCurses.Bundle.LoadAsset<GameObject>("C_RandomCurse");
}
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
return (CardInfoStat[])(object)new CardInfoStat[1]
{
new CardInfoStat
{
positive = false,
stat = "???",
amount = "-",
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 "Curse";
}
}
internal class RotationCurse : CustomCard
{
internal static CardInfo Card;
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
cardInfo.allowMultiple = false;
cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { CurseManager.instance.curseCategory };
CPCDebug.Log((object)("[CPCCurses][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
CharacterStatModifiersExtension.GetAdditionalData(characterStats).rotatedForce = true;
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
protected override string GetTitle()
{
return "Changed Gravity";
}
protected override string GetDescription()
{
return "You messed with the gods, now the gods mess with you";
}
protected override GameObject GetCardArt()
{
return ChaosPoppycarsCardsCurses.Bundle.LoadAsset<GameObject>("C_RotatedGravity");
}
protected override Rarity GetRarity()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
return RarityUtils.GetRarity("Mythical");
}
protected override CardInfoStat[] GetStats()
{
return (CardInfoStat[])(object)new CardInfoStat[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 "Curse";
}
}
internal class SpeedCurse : CustomCard
{
internal static CardInfo Card;
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
statModifiers.movementSpeed = 16f;
cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { CurseManager.instance.curseCategory };
CPCDebug.Log((object)("[CPCCurses][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCCurses", ((CustomCard)this).GetTitle(), player.playerID));
}
protected override string GetTitle()
{
return "Too Fast";
}
protected override string GetDescription()
{
return "Your just a little too fast";
}
protected override GameObject GetCardArt()
{
return ChaosPoppycarsCardsCurses.Bundle.LoadAsset<GameObject>("C_TooFast");
}
protected override Rarity GetRarity()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
return RarityUtils.GetRarity("Legendary");
}
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
return (CardInfoStat[])(object)new CardInfoStat[1]
{
new CardInfoStat
{
positive = false,
stat = "Move Speed",
amount = "+1500%",
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 "Curse";
}
}
}