using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using CardChoiceSpawnUniqueCardPatch.CustomCategories;
using HarmonyLib;
using Jotunn.Utils;
using Microsoft.CodeAnalysis;
using ModdingUtils.Extensions;
using ModdingUtils.MonoBehaviours;
using ModdingUtils.RoundsEffects;
using ModdingUtils.Utils;
using TECards.Cards;
using TECards.MonoBehaviours;
using TECards.RoundsEffects;
using UnboundLib;
using UnboundLib.Cards;
using UnboundLib.GameModes;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(/*Could not decode attribute arguments.*/)]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyVersion("0.0.0.0")]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Embedded]
[AttributeUsage(/*Could not decode attribute arguments.*/)]
internal sealed class RefSafetyRulesAttribute : Attribute
{
public readonly int Version;
public RefSafetyRulesAttribute(int P_0)
{
Version = P_0;
}
}
}
namespace TECards
{
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInPlugin("com.thirdeye.tecards", "TECards", "1.0.0")]
[BepInProcess("Rounds.exe")]
public class TECards : BaseUnityPlugin
{
internal static AssetBundle assets;
public static GameObject MozemDownArt;
public static GameObject PolyphemusArt;
public static GameObject SteroidsArt;
public static GameObject AntiColaArt;
public static GameObject SCP035Art;
public static GameObject SCP207Art;
public static GameObject SCP999Art;
public static GameObject SCP682Art;
public static GameObject GreenCandyArt;
public static GameObject BlueCandyArt;
public static GameObject RedCandyArt;
public static GameObject RainbowCandyArt;
public static GameObject YellowCandyArt;
public static GameObject SCP330Art;
private const string ModId = "com.thirdeye.tecards";
private const string ModName = "TECards";
private const string Version = "1.0.0";
public const string ModInitials = "TE";
public static CardCategory Candy;
private void Awake()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
new Harmony("com.thirdeye.tecards").PatchAll();
}
private void Start()
{
assets = AssetUtils.LoadAssetBundleFromResources("assets", typeof(TECards).Assembly);
MozemDownArt = assets.LoadAsset<GameObject>("C_Mozemdown");
PolyphemusArt = assets.LoadAsset<GameObject>("C_Polyphemus");
SteroidsArt = assets.LoadAsset<GameObject>("C_Steroids");
AntiColaArt = assets.LoadAsset<GameObject>("C_Anti-Cola");
SCP035Art = assets.LoadAsset<GameObject>("C_SCP035");
SCP207Art = assets.LoadAsset<GameObject>("C_SCP207");
SCP999Art = assets.LoadAsset<GameObject>("C_SCP999");
SCP682Art = assets.LoadAsset<GameObject>("C_SCP682");
GreenCandyArt = assets.LoadAsset<GameObject>("C_GreenCandy");
BlueCandyArt = assets.LoadAsset<GameObject>("C_BlueCandy");
RedCandyArt = assets.LoadAsset<GameObject>("C_RedCandy");
RainbowCandyArt = assets.LoadAsset<GameObject>("C_RainbowCandy");
YellowCandyArt = assets.LoadAsset<GameObject>("C_YellowCandy");
SCP330Art = assets.LoadAsset<GameObject>("C_SCP330");
Candy = CustomCardCategories.instance.CardCategory("Candy");
CustomCard.BuildCard<MozemDown>();
CustomCard.BuildCard<Polyphemus>();
CustomCard.BuildCard<SCP1853>();
CustomCard.BuildCard<AntiCola>();
CustomCard.BuildCard<SCP035>();
CustomCard.BuildCard<SCP682>();
CustomCard.BuildCard<SCP999>();
CustomCard.BuildCard<SCP207>();
CustomCard.BuildCard<BlueCandy>();
CustomCard.BuildCard<GreenCandy>();
CustomCard.BuildCard<RedCandy>();
CustomCard.BuildCard<YellowCandy>();
CustomCard.BuildCard<RainbowCandy>();
CustomCard.BuildCard<SCP330>();
GameModeManager.AddHook("GameStart", (Func<IGameModeHandler, IEnumerator>)GameStart);
[IteratorStateMachine(/*Could not decode attribute arguments.*/)]
[CompilerGenerated]
static IEnumerator GameStart(IGameModeHandler gameModeHandler)
{
Enumerator<Player> enumerator = PlayerManager.instance.players.GetEnumerator();
try
{
while (enumerator.MoveNext())
{
Player player = enumerator.Current;
if (!CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Contains(Candy))
{
CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Add(Candy);
}
}
}
finally
{
((IDisposable)enumerator).Dispose();
}
yield break;
}
}
}
}
namespace TECards.RoundsEffects
{
public class SCP035WasDealtDamageEffect : WasDealtDamageEffect
{
public override void WasDealtDamage(Vector2 damage, bool selfDamage)
{
Player lastSourceOfDamage = ((Component)this).gameObject.GetComponent<Player>().data.lastSourceOfDamage;
if (!selfDamage && (Object)(object)lastSourceOfDamage != (Object)null && ((Component)this).gameObject.GetComponent<Player>().data.health <= 0f)
{
if ((Object)(object)((Component)lastSourceOfDamage).gameObject.GetComponent<SCP035Effect>() == (Object)null)
{
SCP035EffectProxy orAddComponent = ExtensionMethods.GetOrAddComponent<SCP035EffectProxy>(((Component)lastSourceOfDamage).gameObject, false);
}
if ((Object)(object)((Component)lastSourceOfDamage).gameObject.GetComponent<SCP035WasDealtDamageEffect>() == (Object)null)
{
SCP035WasDealtDamageEffectProxy orAddComponent2 = ExtensionMethods.GetOrAddComponent<SCP035WasDealtDamageEffectProxy>(((Component)lastSourceOfDamage).gameObject, false);
}
}
}
}
public class SCP035WasDealtDamageEffectProxy : WasDealtDamageEffect
{
public override void WasDealtDamage(Vector2 damage, bool selfDamage)
{
Player lastSourceOfDamage = ((Component)this).gameObject.GetComponent<Player>().data.lastSourceOfDamage;
if (!selfDamage && (Object)(object)lastSourceOfDamage != (Object)null && ((Component)this).gameObject.GetComponent<Player>().data.health <= 0f)
{
if ((Object)(object)((Component)lastSourceOfDamage).gameObject.GetComponent<SCP035Effect>() == (Object)null)
{
SCP035EffectProxy orAddComponent = ExtensionMethods.GetOrAddComponent<SCP035EffectProxy>(((Component)lastSourceOfDamage).gameObject, false);
}
if ((Object)(object)((Component)lastSourceOfDamage).gameObject.GetComponent<SCP035WasDealtDamageEffect>() == (Object)null)
{
SCP035WasDealtDamageEffectProxy orAddComponent2 = ExtensionMethods.GetOrAddComponent<SCP035WasDealtDamageEffectProxy>(((Component)lastSourceOfDamage).gameObject, false);
}
}
}
}
public class SCP999DealtDamageEffect : HitEffect
{
public override void DealtDamage(Vector2 damage, bool selfDamage, Player damagedPlayer = null)
{
if ((Object)(object)damagedPlayer != (Object)null)
{
SCP999Effect component = ((Component)damagedPlayer).gameObject.GetComponent<SCP999Effect>();
if ((Object)(object)component != (Object)null)
{
component.ResetTimer();
}
else
{
component = ExtensionMethods.GetOrAddComponent<SCP999Effect>(((Component)damagedPlayer).gameObject, false);
}
}
}
}
}
namespace TECards.MonoBehaviours
{
public class AntiColaEffect : CounterReversibleEffect
{
private Vector2 prevLoc;
private Vector2 currLoc;
private float regenBonus;
private float elapsedTime = 0f;
private float interval = 1f;
public override void OnApply()
{
}
public override void Reset()
{
}
public override CounterStatus UpdateCounter()
{
//IL_0003: Unknown result type (might be due to invalid IL or missing references)
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_0019: Unknown result type (might be due to invalid IL or missing references)
//IL_001e: Unknown result type (might be due to invalid IL or missing references)
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
//IL_003c: Unknown result type (might be due to invalid IL or missing references)
//IL_0042: Unknown result type (might be due to invalid IL or missing references)
//IL_008d: Unknown result type (might be due to invalid IL or missing references)
//IL_0090: Unknown result type (might be due to invalid IL or missing references)
prevLoc = currLoc;
currLoc = Vector2.op_Implicit(((Component)((ReversibleEffect)this).player).transform.position);
elapsedTime += TimeHandler.deltaTime;
if (IsPlayerMoving(currLoc, prevLoc))
{
regenBonus = 0f;
elapsedTime = 0f;
}
else if (elapsedTime >= interval)
{
regenBonus = 12f;
}
return (CounterStatus)0;
}
public override void UpdateEffects()
{
((ReversibleEffect)this).healthHandlerModifier.regen_add = regenBonus;
}
private bool IsPlayerMoving(Vector2 curr, Vector2 prev)
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
return (double)Vector2.Distance(curr, prev) > 0.01;
}
}
public class GreenCandyEffect : CounterReversibleEffect
{
private float regenAmount;
public override void OnApply()
{
}
public override void Reset()
{
}
public override CounterStatus UpdateCounter()
{
//IL_0037: 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)
if (((ReversibleEffect)this).player.data.block.IsOnCD())
{
regenAmount = 5f;
}
else
{
regenAmount = 0f;
}
return (CounterStatus)0;
}
public override void UpdateEffects()
{
((ReversibleEffect)this).healthHandlerModifier.regen_add = regenAmount;
}
}
public class LaggyBoiEffect : ReversibleEffect
{
private Gun gunToModify;
private int ping;
private int id;
public override void OnAwake()
{
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
//IL_001d: Unknown result type (might be due to invalid IL or missing references)
((ReversibleEffect)this).OnAwake();
Enumerator<int, bool> enumerator = PingMonitor.instance.ConnectedPlayers.Keys.GetEnumerator();
try
{
while (enumerator.MoveNext())
{
int current = enumerator.Current;
Player[] playersByOwnerActorNumber = PingMonitor.instance.GetPlayersByOwnerActorNumber(current);
for (int i = 0; i < playersByOwnerActorNumber.Length; i++)
{
if (((Object)playersByOwnerActorNumber[i]).Equals((object)base.player))
{
Debug.Log((object)String.Concat("player is ", ((Object)playersByOwnerActorNumber[i].data).name));
id = current;
ping = PingMonitor.instance.PlayerPings[current];
}
}
}
}
finally
{
((IDisposable)enumerator).Dispose();
}
Debug.Log((object)String.Format("ping is {0}", (object)ping));
GunStatModifier gunStatModifier = base.gunStatModifier;
gunStatModifier.damage_mult *= 0.5f;
Debug.Log((object)String.Format("damage is {0}", (object)base.gun.damage));
}
public override void OnStart()
{
((ReversibleEffect)this).OnStart();
}
public override void OnUpdate()
{
((ReversibleEffect)this).OnUpdate();
}
}
public class MozemEffect : CounterReversibleEffect
{
private int totalAmmoCount;
private int currentAmmoCount;
private float attackSpdMultiplier;
private float spreadMultiplier;
public override void OnStart()
{
totalAmmoCount = ((Component)((ReversibleEffect)this).gun).GetComponentInChildren<GunAmmo>().maxAmmo;
currentAmmoCount = totalAmmoCount;
}
public override CounterStatus UpdateCounter()
{
//IL_003b: Unknown result type (might be due to invalid IL or missing references)
//IL_0045: Expected I4, but got Unknown
//IL_00ce: 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)
GunAmmo componentInChildren = ((Component)((ReversibleEffect)this).gun).GetComponentInChildren<GunAmmo>();
attackSpdMultiplier = 1f;
spreadMultiplier = 1f;
totalAmmoCount = componentInChildren.maxAmmo;
currentAmmoCount = (int)(Int32)ExtensionMethods.GetFieldValue((object)componentInChildren, "currentAmmo");
if (currentAmmoCount > 0)
{
attackSpdMultiplier = Mathf.Lerp(0.1f, 1f, (float)currentAmmoCount / (float)totalAmmoCount * 0.5f);
spreadMultiplier = Mathf.Lerp(0f, 1f, (float)currentAmmoCount / (float)totalAmmoCount * 0.75f);
if (totalAmmoCount == 1)
{
attackSpdMultiplier = 1f;
spreadMultiplier = 0f;
}
}
return (CounterStatus)0;
}
public override void UpdateEffects()
{
((ReversibleEffect)this).gunStatModifier.attackSpeed_mult = attackSpdMultiplier;
((ReversibleEffect)this).gunStatModifier.spread_mult = spreadMultiplier;
}
public override void OnApply()
{
}
public override void Reset()
{
}
}
public class PolyphemusEffect : CounterReversibleEffect
{
private int totalAmmoCount;
private int currentAmmoCount;
private float sizeIncrease;
public override void OnStart()
{
totalAmmoCount = ((Component)((ReversibleEffect)this).gun).GetComponentInChildren<GunAmmo>().maxAmmo;
currentAmmoCount = totalAmmoCount;
}
public override CounterStatus UpdateCounter()
{
//IL_0030: Unknown result type (might be due to invalid IL or missing references)
//IL_003a: Expected I4, but got Unknown
//IL_0088: 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)
GunAmmo componentInChildren = ((Component)((ReversibleEffect)this).gun).GetComponentInChildren<GunAmmo>();
sizeIncrease = 0f;
totalAmmoCount = componentInChildren.maxAmmo;
currentAmmoCount = (int)(Int32)ExtensionMethods.GetFieldValue((object)componentInChildren, "currentAmmo");
if (currentAmmoCount > 0)
{
sizeIncrease = Mathf.Lerp(10f, 0f, (float)currentAmmoCount / (float)totalAmmoCount);
if (totalAmmoCount == 1)
{
sizeIncrease = 10f;
}
}
return (CounterStatus)0;
}
public override void UpdateEffects()
{
((ReversibleEffect)this).gunStatModifier.projectileSize_add = sizeIncrease;
}
public override void OnApply()
{
}
public override void Reset()
{
}
}
public class RedCandyEffect : CounterReversibleEffect
{
private float duration;
private float regenAmount;
public override void OnStart()
{
((CounterReversibleEffect)this).OnStart();
ResetTimer();
}
public override void OnApply()
{
}
public override void Reset()
{
ResetTimer();
}
public override CounterStatus UpdateCounter()
{
//IL_0041: Unknown result type (might be due to invalid IL or missing references)
//IL_0044: Unknown result type (might be due to invalid IL or missing references)
duration -= TimeHandler.deltaTime;
if (duration > 0f)
{
regenAmount = 10f;
}
else
{
regenAmount = 0f;
}
return (CounterStatus)0;
}
public override void UpdateEffects()
{
((ReversibleEffect)this).health.regeneration = regenAmount;
}
public void ResetTimer()
{
duration = 30f;
}
}
public class SCP035Effect : CounterReversibleEffect
{
private bool applyDamageBuff;
private float elapsedTime;
private float interval = 8f;
public override void OnStart()
{
((CounterReversibleEffect)this).OnStart();
applyDamageBuff = true;
elapsedTime = 0f;
}
public override void Reset()
{
applyDamageBuff = true;
elapsedTime = 0f;
}
public override CounterStatus UpdateCounter()
{
//IL_004d: 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)
elapsedTime += TimeHandler.deltaTime;
if (elapsedTime >= interval)
{
applyDamageBuff = !applyDamageBuff;
elapsedTime %= interval;
}
return (CounterStatus)0;
}
public override void UpdateEffects()
{
//IL_00be: Unknown result type (might be due to invalid IL or missing references)
//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
//IL_005e: Unknown result type (might be due to invalid IL or missing references)
//IL_0063: Unknown result type (might be due to invalid IL or missing references)
if (applyDamageBuff)
{
((ReversibleEffect)this).gunStatModifier.damage_add = 1f;
((ReversibleEffect)this).gunStatModifier.attackSpeed_mult = 1f;
((ReversibleEffect)this).gunAmmoStatModifier.reloadTimeMultiplier_mult = 1f;
((ReversibleEffect)this).characterStatModifiersModifier.movementSpeed_mult = 1f;
((ReversibleEffect)this).characterDataModifier.numberOfJumps_add = 0;
((ReversibleEffect)this).gunStatModifier.projectileColor = Color.red;
}
else
{
((ReversibleEffect)this).gunStatModifier.damage_add = 0f;
((ReversibleEffect)this).gunStatModifier.attackSpeed_mult = 0.4f;
((ReversibleEffect)this).gunAmmoStatModifier.reloadTimeMultiplier_mult = 0.25f;
((ReversibleEffect)this).characterStatModifiersModifier.movementSpeed_mult = 1.75f;
((ReversibleEffect)this).characterDataModifier.numberOfJumps_add = 1;
((ReversibleEffect)this).gunStatModifier.projectileColor = Color.cyan;
}
}
public override void OnApply()
{
}
[IteratorStateMachine(/*Could not decode attribute arguments.*/)]
public static IEnumerator RemoveProxies(IGameModeHandler gameModeHandler)
{
Enumerator<Player> enumerator = PlayerManager.instance.players.GetEnumerator();
try
{
while (enumerator.MoveNext())
{
Player player = enumerator.Current;
SCP035EffectProxy effect1 = ((Component)player).gameObject.GetComponent<SCP035EffectProxy>();
SCP035WasDealtDamageEffectProxy effect2 = ((Component)player).gameObject.GetComponent<SCP035WasDealtDamageEffectProxy>();
if ((Object)(object)effect1 != (Object)null)
{
Object.Destroy((Object)(object)effect1);
}
if ((Object)(object)effect2 != (Object)null)
{
Object.Destroy((Object)(object)effect2);
}
player.data.stats.WasUpdated();
}
}
finally
{
((IDisposable)enumerator).Dispose();
}
yield break;
}
}
public class SCP035EffectProxy : CounterReversibleEffect
{
private bool applyDamageBuff;
private float elapsedTime;
private float interval = 8f;
public override void OnStart()
{
((CounterReversibleEffect)this).OnStart();
applyDamageBuff = true;
elapsedTime = 0f;
}
public override void Reset()
{
applyDamageBuff = true;
elapsedTime = 0f;
}
public override CounterStatus UpdateCounter()
{
//IL_004d: 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)
elapsedTime += TimeHandler.deltaTime;
if (elapsedTime >= interval)
{
applyDamageBuff = !applyDamageBuff;
elapsedTime %= interval;
}
return (CounterStatus)0;
}
public override void UpdateEffects()
{
//IL_00be: Unknown result type (might be due to invalid IL or missing references)
//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
//IL_005e: Unknown result type (might be due to invalid IL or missing references)
//IL_0063: Unknown result type (might be due to invalid IL or missing references)
if (applyDamageBuff)
{
((ReversibleEffect)this).gunStatModifier.damage_add = 1f;
((ReversibleEffect)this).gunStatModifier.attackSpeed_mult = 1f;
((ReversibleEffect)this).gunAmmoStatModifier.reloadTimeMultiplier_mult = 1f;
((ReversibleEffect)this).characterStatModifiersModifier.movementSpeed_mult = 1f;
((ReversibleEffect)this).characterDataModifier.numberOfJumps_add = 0;
((ReversibleEffect)this).gunStatModifier.projectileColor = Color.red;
}
else
{
((ReversibleEffect)this).gunStatModifier.damage_add = 0f;
((ReversibleEffect)this).gunStatModifier.attackSpeed_mult = 0.4f;
((ReversibleEffect)this).gunAmmoStatModifier.reloadTimeMultiplier_mult = 0.25f;
((ReversibleEffect)this).characterStatModifiersModifier.movementSpeed_mult = 1.75f;
((ReversibleEffect)this).characterDataModifier.numberOfJumps_add = 1;
((ReversibleEffect)this).gunStatModifier.projectileColor = Color.cyan;
}
}
public override void OnApply()
{
}
}
public class SCP1853Effect : CounterReversibleEffect
{
private int stacks;
public override void OnStart()
{
((CounterReversibleEffect)this).OnStart();
stacks = 0;
CharacterStatModifiers stats = ((ReversibleEffect)this).player.data.stats;
stats.WasDealtDamageAction = (Action<Vector2, bool>)(object)Delegate.Combine((Delegate)(object)stats.WasDealtDamageAction, (Delegate)(object)new Action<Vector2, bool>(OnDamage));
}
public override void OnApply()
{
}
public override void Reset()
{
stacks = 0;
}
public override CounterStatus UpdateCounter()
{
//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 (CounterStatus)0;
}
public override void UpdateEffects()
{
((ReversibleEffect)this).gunStatModifier.attackSpeed_mult = 1f - (float)stacks * 0.15f;
((ReversibleEffect)this).gunAmmoStatModifier.reloadTimeMultiplier_mult = 1f - (float)stacks * 0.15f;
((ReversibleEffect)this).characterStatModifiersModifier.movementSpeed_mult = 1f + (float)stacks * 0.15f;
}
public override void OnOnDestroy()
{
((ReversibleEffect)this).OnOnDestroy();
CharacterStatModifiers stats = ((ReversibleEffect)this).player.data.stats;
stats.WasDealtDamageAction = (Action<Vector2, bool>)(object)Delegate.Remove((Delegate)(object)stats.WasDealtDamageAction, (Delegate)(object)new Action<Vector2, bool>(OnDamage));
}
private void OnDamage(Vector2 damage, bool selfDamage)
{
if (!selfDamage && stacks < 4)
{
stacks++;
}
}
}
public class SCP207Effect : ReversibleEffect
{
private Vector2 prevLoc;
private Vector2 currLoc;
private float elapsedTime = 0f;
private float interval = 0.1f;
public override void OnStart()
{
((ReversibleEffect)this).OnStart();
elapsedTime = 0f;
((ReversibleEffect)this).SetLivesToEffect(2147483647);
}
public override void OnUpdate()
{
//IL_000a: 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)
//IL_0020: Unknown result type (might be due to invalid IL or missing references)
//IL_0025: Unknown result type (might be due to invalid IL or missing references)
//IL_002a: Unknown result type (might be due to invalid IL or missing references)
//IL_0031: Unknown result type (might be due to invalid IL or missing references)
//IL_0037: Unknown result type (might be due to invalid IL or missing references)
//IL_0074: Unknown result type (might be due to invalid IL or missing references)
//IL_007f: Unknown result type (might be due to invalid IL or missing references)
//IL_0089: 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_009e: Unknown result type (might be due to invalid IL or missing references)
((ReversibleEffect)this).OnUpdate();
prevLoc = currLoc;
currLoc = Vector2.op_Implicit(((Component)base.player).transform.position);
if (IsPlayerMoving(currLoc, prevLoc))
{
elapsedTime += TimeHandler.deltaTime;
if (elapsedTime >= interval)
{
((Damagable)base.health).TakeDamage(Vector2.up * elapsedTime * 10f, Vector2.op_Implicit(((Component)base.player).transform.position), (GameObject)null, (Player)null, false, true);
elapsedTime %= interval;
}
}
}
private bool IsPlayerMoving(Vector2 curr, Vector2 prev)
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
return (double)Vector2.Distance(curr, prev) > 0.01;
}
}
public class SCP682Effect : MonoBehaviour
{
private Player player;
public void Start()
{
player = ((Component)this).gameObject.GetComponentInParent<Player>();
CharacterStatModifiers stats = player.data.stats;
stats.WasDealtDamageAction = (Action<Vector2, bool>)(object)Delegate.Combine((Delegate)(object)stats.WasDealtDamageAction, (Delegate)(object)new Action<Vector2, bool>(OnDamage));
}
public void Destroy()
{
CharacterStatModifiers stats = player.data.stats;
stats.WasDealtDamageAction = (Action<Vector2, bool>)(object)Delegate.Remove((Delegate)(object)stats.WasDealtDamageAction, (Delegate)(object)new Action<Vector2, bool>(OnDamage));
}
private void OnDamage(Vector2 damage, bool selfDamage)
{
if (selfDamage)
{
CharacterData data = player.data;
data.health += ((Vector2)(ref damage)).magnitude;
}
}
}
public class SCP999Effect : TimedReversibleEffect
{
private ReversibleColorEffect colorEffect;
public override void OnStart()
{
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
((ReversibleEffect)this).OnStart();
base.duration = 5f;
((ReversibleEffect)this).characterStatModifiersModifier.movementSpeed_mult = 0.8f;
((ReversibleEffect)this).gunAmmoStatModifier.reloadTimeMultiplier_mult = 0.5f;
colorEffect = ExtensionMethods.GetOrAddComponent<ReversibleColorEffect>(((Component)((ReversibleEffect)this).player).gameObject, false);
((ColorEffect)colorEffect).SetColor(new Color(1f, 0.65f, 0f));
CharacterStatModifiers stats = ((ReversibleEffect)this).player.data.stats;
stats.WasDealtDamageAction = (Action<Vector2, bool>)(object)Delegate.Combine((Delegate)(object)stats.WasDealtDamageAction, (Delegate)(object)new Action<Vector2, bool>(OnDamage));
}
public override void OnUpdate()
{
((TimedReversibleEffect)this).OnUpdate();
((ReversibleEffect)this).ApplyModifiers();
}
public override void OnOnDestroy()
{
((ReversibleEffect)this).OnOnDestroy();
Object.Destroy((Object)(object)colorEffect);
CharacterStatModifiers stats = ((ReversibleEffect)this).player.data.stats;
stats.WasDealtDamageAction = (Action<Vector2, bool>)(object)Delegate.Remove((Delegate)(object)stats.WasDealtDamageAction, (Delegate)(object)new Action<Vector2, bool>(OnDamage));
}
public void ResetTimer()
{
base.duration = 4f;
}
private void OnDamage(Vector2 damage, bool selfDamage)
{
Player lastSourceOfDamage = ((ReversibleEffect)this).player.data.lastSourceOfDamage;
if (!selfDamage && (Object)(object)lastSourceOfDamage != (Object)null)
{
lastSourceOfDamage.data.healthHandler.Heal(((Vector2)(ref damage)).magnitude * 0.5f);
}
}
}
public class YellowCandyEffect : CounterReversibleEffect
{
private float duration;
private float multiplier;
public override void OnStart()
{
((CounterReversibleEffect)this).OnStart();
ResetTimer();
}
public override void OnApply()
{
}
public override void Reset()
{
ResetTimer();
}
public override CounterStatus UpdateCounter()
{
//IL_0041: Unknown result type (might be due to invalid IL or missing references)
//IL_0044: Unknown result type (might be due to invalid IL or missing references)
duration -= TimeHandler.deltaTime;
if (duration > 0f)
{
multiplier = 1.5f;
}
else
{
multiplier = 1f;
}
return (CounterStatus)0;
}
public override void UpdateEffects()
{
((ReversibleEffect)this).characterStatModifiersModifier.movementSpeed_mult = multiplier;
}
public void ResetTimer()
{
duration = 30f;
}
}
}
namespace TECards.Cards
{
internal class AntiCola : CustomCard
{
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
statModifiers.movementSpeed = 0.7f;
statModifiers.regen = 12f;
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
AntiColaEffect antiColaEffect = ((Component)player).gameObject.AddComponent<AntiColaEffect>();
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
Object.Destroy((Object)(object)((Component)player).gameObject.GetComponent<AntiColaEffect>());
}
protected override string GetTitle()
{
return "Anti-Cola";
}
protected override string GetDescription()
{
return "Grants constant health regeneration. Regeneration is increased if you stand still.";
}
protected override GameObject GetCardArt()
{
return TECards.AntiColaArt;
}
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 = true,
stat = "Life Regen",
amount = "+12",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = false,
stat = "Movement Speed",
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)7;
}
public override string GetModName()
{
return "TE";
}
}
internal class BlueCandy : CustomCard
{
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
statModifiers.health = 1.5f;
cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { TECards.Candy };
}
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 "Blue Candy";
}
protected override string GetDescription()
{
return "";
}
protected override GameObject GetCardArt()
{
return TECards.BlueCandyArt;
}
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 = true,
stat = "Health",
amount = "+50%",
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 "TE";
}
}
internal class Card : CustomCard
{
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
gun.cos = 2f;
gun.projectielSimulatonSpeed = 0.7f;
gun.damage = 1.5f;
gun.attackSpeed = 1.2f;
}
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 "CardName";
}
protected override string GetDescription()
{
return "Your bullets become much more lively";
}
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 = "Damage",
amount = "+50%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = false,
stat = "Projectile Speed",
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)7;
}
public override string GetModName()
{
return "TE";
}
}
internal class GreenCandy : CustomCard
{
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
block.cdMultiplier = 1.1f;
statModifiers.health = 1.2f;
cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { TECards.Candy };
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
GreenCandyEffect greenCandyEffect = ((Component)player).gameObject.AddComponent<GreenCandyEffect>();
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
Object.Destroy((Object)(object)((Component)player).gameObject.GetComponent<GreenCandyEffect>());
}
protected override string GetTitle()
{
return "Green Candy";
}
protected override string GetDescription()
{
return "Grants health regeneration while your block is on cooldown.";
}
protected override GameObject GetCardArt()
{
return TECards.GreenCandyArt;
}
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 = "Life Regen",
amount = "+5",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "Health",
amount = "+20%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = false,
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)5;
}
public override string GetModName()
{
return "TE";
}
}
internal class LaggyBoi : CustomCard
{
private float damageToAdd;
private float attackSpeedToAdd;
private int ping;
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)
{
//IL_0011: 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)
Enumerator<int, bool> enumerator = PingMonitor.instance.ConnectedPlayers.Keys.GetEnumerator();
try
{
while (enumerator.MoveNext())
{
int current = enumerator.Current;
Player[] playersByOwnerActorNumber = PingMonitor.instance.GetPlayersByOwnerActorNumber(current);
for (int i = 0; i < playersByOwnerActorNumber.Length; i++)
{
if (((Object)playersByOwnerActorNumber[i]).Equals((object)player))
{
Debug.Log((object)String.Format("playerid is {0}", (object)current));
int num = current;
ping = PingMonitor.instance.PlayerPings[current];
Debug.Log((object)String.Format("ping is {0}", (object)ping));
ping = 88;
}
}
}
}
finally
{
((IDisposable)enumerator).Dispose();
}
attackSpeedToAdd = gun.attackSpeed * (float)ping * 0.01f * 0.333f;
damageToAdd = gun.damage * (float)ping * 0.01f * 0.333f;
Debug.Log((object)String.Format("attackspd{0}, dmg{1}", (object)attackSpeedToAdd, (object)damageToAdd));
gun.attackSpeed -= attackSpeedToAdd;
gun.damage += damageToAdd;
Debug.Log((object)String.Format("damage is {0}", (object)gun.damage));
Debug.Log((object)String.Format("atkspd is {0}", (object)gun.attackSpeed));
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
gun.attackSpeed += attackSpeedToAdd;
gun.damage -= damageToAdd;
}
protected override string GetTitle()
{
return "LaggyBoi";
}
protected override string GetDescription()
{
return "Gain power based on ping";
}
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_0031: 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_0039: Expected O, but got Unknown
//IL_003b: Unknown result type (might be due to invalid IL or missing references)
//IL_0040: Unknown result type (might be due to invalid IL or missing references)
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_0052: Unknown result type (might be due to invalid IL or missing references)
//IL_0063: Unknown result type (might be due to invalid IL or missing references)
//IL_0065: Unknown result type (might be due to invalid IL or missing references)
//IL_006b: Expected O, but got Unknown
return (CardInfoStat[])(object)new CardInfoStat[2]
{
new CardInfoStat
{
positive = true,
stat = "damage",
amount = ((Int32)(ref ping)).ToString(),
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "attackSpeed",
amount = ((Int32)(ref ping)).ToString(),
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 "TE";
}
}
internal class MozemDown : CustomCard
{
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
gun.damage = 0.1f;
gun.reloadTimeAdd = 1f;
gun.ammo = 40;
gun.attackSpeed = 0.85f;
gun.spread = 0.3f;
statModifiers.movementSpeed = 0.8f;
cardInfo.allowMultiple = false;
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
MozemEffect orAddComponent = ExtensionMethods.GetOrAddComponent<MozemEffect>(((Component)player).gameObject, false);
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
Object.Destroy((Object)(object)((Component)player).gameObject.GetComponent<MozemEffect>());
}
protected override string GetTitle()
{
return "Mozem Down";
}
protected override string GetDescription()
{
return "Attack speed and accuracy increase as the amount of ammo remaining decreases.";
}
protected override GameObject GetCardArt()
{
return TECards.MozemDownArt;
}
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
//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
//IL_00be: Unknown result type (might be due to invalid IL or missing references)
//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
//IL_00db: Unknown result type (might be due to invalid IL or missing references)
//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
//IL_00e3: Expected O, but got Unknown
return (CardInfoStat[])(object)new CardInfoStat[5]
{
new CardInfoStat
{
positive = true,
stat = "Ammo",
amount = "+40",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "Attack Speed",
amount = "+15%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = false,
stat = "Damage",
amount = "-90%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = false,
stat = "Reload Time",
amount = "+1.0s",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = false,
stat = "Movement Speed",
amount = "-20%",
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)6;
}
public override string GetModName()
{
return "TE";
}
}
internal class Polyphemus : CustomCard
{
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
cardInfo.allowMultiple = false;
gun.reloadTimeAdd = 0.25f;
gun.damage = 1.5f;
gun.attackSpeed = 1.5f;
gun.projectielSimulatonSpeed = 0.5f;
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
PolyphemusEffect orAddComponent = ExtensionMethods.GetOrAddComponent<PolyphemusEffect>(((Component)player).gameObject, false);
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
Object.Destroy((Object)(object)((Component)player).gameObject.GetComponent<PolyphemusEffect>());
}
protected override string GetTitle()
{
return "Polyphemus";
}
protected override string GetDescription()
{
return "Bullet size increases as the amount of ammo remaining decreases.";
}
protected override GameObject GetCardArt()
{
return TECards.PolyphemusArt;
}
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 = "Damage",
amount = "+50%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = false,
stat = "Reload Time",
amount = "+0.25s",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = false,
stat = "Projectile Speed",
amount = "-50%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = false,
stat = "Attack Speed",
amount = "-50%",
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 "TE";
}
}
internal class RainbowCandy : CustomCard
{
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
statModifiers.health = 1.2f;
statModifiers.movementSpeed = 1.1f;
gun.attackSpeed = 0.9f;
block.cdMultiplier = 0.8f;
cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { TECards.Candy };
}
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 "Rainbow Candy";
}
protected override string GetDescription()
{
return "";
}
protected override GameObject GetCardArt()
{
return TECards.RainbowCandyArt;
}
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 = "Health",
amount = "+20%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "Movement Speed",
amount = "+10%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "Attack Speed",
amount = "+10%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "Block Cooldown",
amount = "-20%",
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 "TE";
}
}
internal class RedCandy : CustomCard
{
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
statModifiers.regen = 3f;
statModifiers.health = 1.3f;
cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { TECards.Candy };
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
RedCandyEffect redCandyEffect = ((Component)player).gameObject.AddComponent<RedCandyEffect>();
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
Object.Destroy((Object)(object)((Component)player).gameObject.GetComponent<RedCandyEffect>());
}
protected override string GetTitle()
{
return "Red Candy";
}
protected override string GetDescription()
{
return "Grants health regeneration for the first 30 seconds of each round.";
}
protected override GameObject GetCardArt()
{
return TECards.RedCandyArt;
}
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 = "Life Regen",
amount = "+10",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "Health",
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)0;
}
public override string GetModName()
{
return "TE";
}
}
internal class SCP035 : 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)
{
SCP035Effect sCP035Effect = ((Component)player).gameObject.AddComponent<SCP035Effect>();
SCP035WasDealtDamageEffect orAddComponent = ExtensionMethods.GetOrAddComponent<SCP035WasDealtDamageEffect>(((Component)player).gameObject, false);
GameModeManager.AddHook("PointEnd", (Func<IGameModeHandler, IEnumerator>)SCP035Effect.RemoveProxies);
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
Object.Destroy((Object)(object)((Component)player).gameObject.GetComponent<SCP035Effect>());
GameModeManager.RemoveHook("PointEnd", (Func<IGameModeHandler, IEnumerator>)SCP035Effect.RemoveProxies);
}
protected override string GetTitle()
{
return "SCP-035";
}
protected override string GetDescription()
{
return "Alternates between two powerful buffs. This card's power is temporarily transferred to players who kill someone in possesion of SCP-035.";
}
protected override GameObject GetCardArt()
{
return TECards.SCP035Art;
}
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()
{
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 "TE";
}
}
internal class SCP096 : 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)
{
}
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 "SCP-096";
}
protected override string GetDescription()
{
return "CardDescription";
}
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 = true,
stat = "Effect",
amount = "No",
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 "TE";
}
}
internal class SCP1853 : CustomCard
{
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
gun.reloadTime = 0.85f;
gun.attackSpeed = 0.85f;
statModifiers.movementSpeed = 1.15f;
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
SCP1853Effect sCP1853Effect = ((Component)player).gameObject.AddComponent<SCP1853Effect>();
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
Object.Destroy((Object)(object)((Component)player).gameObject.GetComponent<SCP1853Effect>());
}
protected override string GetTitle()
{
return "SCP-1853";
}
protected override string GetDescription()
{
return "Taking damage grants additional bonus stats. This effect may stack up to four times.";
}
protected override GameObject GetCardArt()
{
return TECards.SteroidsArt;
}
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 = "Movement Speed",
amount = "+15%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "Attack Speed",
amount = "+15%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "Reload Time",
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)5;
}
public override string GetModName()
{
return "TE";
}
}
internal class SCP207 : CustomCard
{
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
block.cdMultiplier = 0.5f;
statModifiers.movementSpeed = 1.75f;
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
SCP207Effect sCP207Effect = ((Component)player).gameObject.AddComponent<SCP207Effect>();
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
Object.Destroy((Object)(object)((Component)player).gameObject.GetComponent<SCP207Effect>());
}
protected override string GetTitle()
{
return "SCP-207";
}
protected override string GetDescription()
{
return "Drains health while moving.";
}
protected override GameObject GetCardArt()
{
return TECards.SCP207Art;
}
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 = true,
stat = "Movement Speed",
amount = "+75%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "Block Cooldown",
amount = "-50%",
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 "TE";
}
}
internal class SCP330 : CustomCard
{
public static CardCategory[] CandyCategory = (CardCategory[])(object)new CardCategory[1] { CustomCardCategories.instance.CardCategory("Candy") };
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)
{
CardInfo candyCard = GetCandyCard();
Cards.instance.AddCardToPlayer(player, candyCard, false, "", 0f, 0f, true);
CardBarUtils.instance.ShowAtEndOfPhase(player, candyCard);
CardInfo candyCard2 = GetCandyCard();
Cards.instance.AddCardToPlayer(player, candyCard2, false, "", 0f, 0f, true);
CardBarUtils.instance.ShowAtEndOfPhase(player, candyCard2);
}
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 "SCP-330";
}
protected override string GetDescription()
{
return "Get two random candies.";
}
protected override GameObject GetCardArt()
{
return TECards.SCP330Art;
}
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)3;
}
public override string GetModName()
{
return "TE";
}
public static CardInfo GetCandyCard()
{
return (CardInfo)(Random.Range(0, 5) switch
{
0 => Cards.instance.GetCardWithName("Blue Candy"),
1 => Cards.instance.GetCardWithName("Yellow Candy"),
2 => Cards.instance.GetCardWithName("Green Candy"),
3 => Cards.instance.GetCardWithName("Rainbow Candy"),
4 => Cards.instance.GetCardWithName("Red Candy"),
_ => null,
});
}
}
internal class SCP682 : CustomCard
{
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
statModifiers.health = 1.5f;
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
SCP682Effect orAddComponent = ExtensionMethods.GetOrAddComponent<SCP682Effect>(((Component)player).gameObject, false);
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
Object.Destroy((Object)(object)((Component)player).gameObject.GetComponent<SCP682Effect>());
}
protected override string GetTitle()
{
return "SCP-682";
}
protected override string GetDescription()
{
return "Become immune to self-damage.";
}
protected override GameObject GetCardArt()
{
return TECards.SCP682Art;
}
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 = true,
stat = "Health",
amount = "+50%",
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 "TE";
}
}
internal class SCP914 : 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)
{
}
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 "SCP-914";
}
protected override string GetDescription()
{
return "Upgrade a random card you own to a card of a higher rarity. Repeats 3 times.";
}
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
return (CardInfoStat[])(object)new CardInfoStat[1]
{
new CardInfoStat
{
positive = true,
stat = "Effect",
amount = "No",
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 "TE";
}
}
internal class SCP999 : CustomCard
{
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
gun.reloadTime = 0.5f;
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
SCP999DealtDamageEffect orAddComponent = ExtensionMethods.GetOrAddComponent<SCP999DealtDamageEffect>(((Component)player).gameObject, false);
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<SCP999DealtDamageEffect>(((Component)player).gameObject, false));
}
protected override string GetTitle()
{
return "SCP-999";
}
protected override string GetDescription()
{
return "Bullets coat players in SCP-999, slowing them. Players coated in SCP-999 have decreased reload time. Players who damage someone effected by SCP-999 are healed";
}
protected override GameObject GetCardArt()
{
return TECards.SCP999Art;
}
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 = true,
stat = "Reload Time",
amount = "-50%",
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 "TE";
}
}
internal class Template : CustomCard
{
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
Debug.Log((object)String.Concat("[TE][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)
{
Debug.Log((object)String.Format("[{0}][Card] {1} has been added to player {2}.", (object)"TE", (object)((CustomCard)this).GetTitle(), (object)player.playerID));
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
Debug.Log((object)String.Format("[{0}][Card] {1} has been removed from player {2}.", (object)"TE", (object)((CustomCard)this).GetTitle(), (object)player.playerID));
}
protected override string GetTitle()
{
return "CardName";
}
protected override string GetDescription()
{
return "CardDescription";
}
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 = true,
stat = "Effect",
amount = "No",
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 "TE";
}
}
internal class YellowCandy : CustomCard
{
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
gun.attackSpeed = 0.8f;
gun.reloadTime = 0.8f;
cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { TECards.Candy };
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
YellowCandyEffect yellowCandyEffect = ((Component)player).gameObject.AddComponent<YellowCandyEffect>();
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
Object.Destroy((Object)(object)((Component)player).gameObject.GetComponent<YellowCandyEffect>());
}
protected override string GetTitle()
{
return "Yellow Candy";
}
protected override string GetDescription()
{
return "Grants bonus movement speed for the first 30 seconds of each round.";
}
protected override GameObject GetCardArt()
{
return TECards.YellowCandyArt;
}
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 = "Movement Speed",
amount = "+50%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "Attack Speed",
amount = "+20%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "Reload Time",
amount = "-20%",
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 "TE";
}
}
}