using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Threading.Tasks;
using BepInEx;
using HarmonyLib;
using InControl;
using Jotunn.Utils;
using LMB.Cards;
using LMB.StickyBombExtensions;
using Microsoft.CodeAnalysis;
using Photon.Pun;
using Sirenix.OdinInspector;
using Sonigon;
using SoundImplementation;
using UnboundLib.Cards;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("LMB")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+58163c8dfe40a54d1f218cae173c868a6f276bf1")]
[assembly: AssemblyProduct("LMB")]
[assembly: AssemblyTitle("LMB")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
internal sealed class NullableAttribute : Attribute
{
public readonly byte[] NullableFlags;
public NullableAttribute(byte P_0)
{
NullableFlags = new byte[1] { P_0 };
}
public NullableAttribute(byte[] P_0)
{
NullableFlags = P_0;
}
}
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
internal sealed class NullableContextAttribute : Attribute
{
public readonly byte Flag;
public NullableContextAttribute(byte P_0)
{
Flag = P_0;
}
}
}
namespace LMB
{
internal class Assets
{
public static readonly AssetBundle assetBundle = AssetUtils.LoadAssetBundleFromResources("lmb", typeof(LMB).Assembly);
public static GameObject succGunArt = assetBundle.LoadAsset<GameObject>("C_SuccGun");
public static GameObject jimFlickArt = assetBundle.LoadAsset<GameObject>("C_JimFlick");
public static GameObject stickyBombArt = assetBundle.LoadAsset<GameObject>("C_StickyBomb");
public static GameObject stickyBombBullet = assetBundle.LoadAsset<GameObject>("StickyBombBullet");
public static GameObject stickyBomb = assetBundle.LoadAsset<GameObject>("StickyBomb");
public static SoundEvent stickyBombExplosionSound = assetBundle.LoadAsset<SoundEvent>("StickyBombExplosion");
public static GameObject costcoArt = assetBundle.LoadAsset<GameObject>("C_Costco");
public static GameObject duh2x3Art = assetBundle.LoadAsset<GameObject>("C_Duh2x3");
public static GameObject playTheManArt = assetBundle.LoadAsset<GameObject>("C_PlayTheMan");
}
internal class InputListener : MonoBehaviour
{
public Detonator[] detonators = new Detonator[0];
private Player player;
private CharacterData data;
public LMBActionSet actionSet;
public PlayerAction Detonate;
public bool playTheMan = false;
public bool tackling = false;
private bool hasDamaged = true;
private bool stoppedClick = false;
private bool reloading = false;
private Player closestPlayer;
public GunAmmo gunAmmo;
public Gun gun;
public HealthHandler healthHandler;
public void Start()
{
player = ((Component)this).gameObject.GetComponent<Player>();
gun = ((Component)((Component)this).gameObject.GetComponent<Holding>().holdable).gameObject.GetComponent<Gun>();
data = ((Component)this).gameObject.GetComponent<CharacterData>();
actionSet = new LMBActionSet();
Detonate = actionSet.CreateNewAction("Detonate");
if (((PlayerActionSet)data.playerActions).Device == null)
{
Detonate.AddDefaultBinding((Mouse)3);
}
else
{
Detonate.AddDefaultBinding((InputControlType)5);
}
gunAmmo = ((Component)((Component)this).gameObject.GetComponent<Holding>().holdable).gameObject.GetComponentInChildren<GunAmmo>();
healthHandler = ((Component)this).gameObject.GetComponent<HealthHandler>();
}
public void Update()
{
//IL_0095: Unknown result type (might be due to invalid IL or missing references)
//IL_009b: Invalid comparison between Unknown and I4
//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
//IL_00fd: Invalid comparison between Unknown and I4
//IL_0368: Unknown result type (might be due to invalid IL or missing references)
//IL_036d: Unknown result type (might be due to invalid IL or missing references)
//IL_0381: Unknown result type (might be due to invalid IL or missing references)
//IL_039b: Unknown result type (might be due to invalid IL or missing references)
//IL_020f: Unknown result type (might be due to invalid IL or missing references)
//IL_02e7: Unknown result type (might be due to invalid IL or missing references)
//IL_02f7: Unknown result type (might be due to invalid IL or missing references)
//IL_02fc: Unknown result type (might be due to invalid IL or missing references)
//IL_0301: Unknown result type (might be due to invalid IL or missing references)
//IL_0306: Unknown result type (might be due to invalid IL or missing references)
//IL_0310: Unknown result type (might be due to invalid IL or missing references)
//IL_031a: Unknown result type (might be due to invalid IL or missing references)
//IL_03da: Unknown result type (might be due to invalid IL or missing references)
//IL_03e5: Unknown result type (might be due to invalid IL or missing references)
//IL_03ea: Unknown result type (might be due to invalid IL or missing references)
//IL_03ef: Unknown result type (might be due to invalid IL or missing references)
//IL_03f3: Unknown result type (might be due to invalid IL or missing references)
//IL_0421: Unknown result type (might be due to invalid IL or missing references)
//IL_0426: Unknown result type (might be due to invalid IL or missing references)
//IL_0436: Unknown result type (might be due to invalid IL or missing references)
//IL_043b: Unknown result type (might be due to invalid IL or missing references)
//IL_0248: Unknown result type (might be due to invalid IL or missing references)
//IL_0258: Unknown result type (might be due to invalid IL or missing references)
//IL_025d: Unknown result type (might be due to invalid IL or missing references)
//IL_0262: Unknown result type (might be due to invalid IL or missing references)
//IL_0267: Unknown result type (might be due to invalid IL or missing references)
if (detonators.Count() > 0 && ((OneAxisInputControl)Detonate).IsPressed)
{
for (int i = 0; i < detonators.Count(); i++)
{
if (Object.op_Implicit((Object)(object)detonators[i]))
{
detonators[i].Detonate();
}
}
Array.Clear(detonators, 0, detonators.Length);
}
if (playTheMan && reloading && (int)gunAmmo.reloadAnim.currentState == 1)
{
reloading = false;
stoppedClick = false;
tackling = false;
Task.Delay(new TimeSpan(0, 0, 2)).ContinueWith(delegate
{
setHasDamaged(value: true);
});
}
if (playTheMan && !reloading && (int)gunAmmo.reloadAnim.currentState == 0)
{
reloading = true;
}
if (playTheMan && reloading && !stoppedClick && !((OneAxisInputControl)data.playerActions.Fire).IsPressed)
{
stoppedClick = true;
}
if (playTheMan && reloading && !tackling && stoppedClick && ((OneAxisInputControl)data.playerActions.Fire).IsPressed)
{
tackling = true;
hasDamaged = false;
int[] array = new int[0];
float num = float.MaxValue;
closestPlayer = player;
Player val = player;
for (int j = 0; j < PlayerManager.instance.players.Count(); j++)
{
if (PlayerManager.instance.players[j].teamID == player.teamID)
{
continue;
}
val = PlayerManager.instance.GetClosestPlayerInTeam(((Component)player).transform.position, PlayerManager.instance.players[j].teamID, true);
if ((Object)(object)val != (Object)null)
{
Vector2 val2 = Vector2.op_Implicit(((Component)val).transform.position - ((Component)player).transform.position);
if (((Vector2)(ref val2)).magnitude < num)
{
num = ((Vector2)(ref val2)).magnitude;
closestPlayer = val;
}
}
}
if ((Object)(object)closestPlayer == (Object)(object)player)
{
tackling = false;
hasDamaged = true;
}
else
{
Vector2 val3 = Vector2.op_Implicit(((Component)closestPlayer).transform.position - ((Component)player).transform.position);
healthHandler.CallTakeForce(((Vector2)(ref val3)).normalized * 20000f, (ForceMode2D)1, true, true, 0f);
}
}
if (playTheMan && !hasDamaged)
{
ColliderDistance2D val4 = data.mainCol.Distance(closestPlayer.data.mainCol);
if (((ColliderDistance2D)(ref val4)).distance < ((CircleCollider2D)data.mainCol).radius + ((CircleCollider2D)closestPlayer.data.mainCol).radius + 0.1f)
{
hasDamaged = true;
HealthHandler obj = closestPlayer.data.healthHandler;
Vector3 val5 = ((Component)closestPlayer).transform.position - ((Component)this).transform.position;
((Damagable)obj).CallTakeDamage(Vector2.op_Implicit(((Vector3)(ref val5)).normalized * (gun.damage * 55f / 4f + data.maxHealth / 3f)), Vector2.op_Implicit(((Component)player).transform.position), (GameObject)null, player, true);
}
}
}
private void setHasDamaged(bool value)
{
hasDamaged = value;
}
}
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInPlugin("com.mattz45986.rounds.lmb", "LMB", "1.0.0")]
[BepInProcess("Rounds.exe")]
public class LMB : BaseUnityPlugin
{
private const string ModId = "com.mattz45986.rounds.lmb";
private const string ModName = "LMB";
public const string Version = "1.0.0";
public const string ModInitials = "LMB";
public static LMB? instance { get; private set; }
private void Awake()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Expected O, but got Unknown
Harmony val = new Harmony("com.mattz45986.rounds.lmb");
val.PatchAll();
}
private void Start()
{
CustomCard.BuildCard<SuccGun>();
CustomCard.BuildCard<JimFlick>();
CustomCard.BuildCard<StickyBomb>();
CustomCard.BuildCard<Costco>();
CustomCard.BuildCard<Duh2x3>();
CustomCard.BuildCard<PlayTheMan>();
instance = this;
}
}
internal class LMBActionSet : PlayerActionSet
{
public PlayerAction CreateNewAction(string name)
{
return ((PlayerActionSet)this).CreatePlayerAction(name);
}
}
}
namespace LMB.StickyBombExtensions
{
internal class Detonator : MonoBehaviour
{
public PhotonView? view;
public float damage;
public float scale;
public float knockback;
private StickyExplosion? explosion;
private SpawnedAttack? spawned;
public InputListener? input;
public SoundUnityEventPlayer soundPlayer;
public ParticleSystem[] particleSystems;
public void Start()
{
view = ((Component)this).gameObject.GetComponent<PhotonView>();
explosion = ((Component)this).gameObject.AddComponent<StickyExplosion>();
spawned = ((Component)this).gameObject.GetComponent<SpawnedAttack>();
soundPlayer = ((Component)this).gameObject.GetComponentInChildren<SoundUnityEventPlayer>();
particleSystems = ((Component)this).gameObject.GetComponentsInChildren<ParticleSystem>();
spawned.view = view;
explosion.auto = false;
explosion.damage = damage;
float num = 1f * (1f - scale) + damage / 55f * scale + Mathf.Abs(knockback) / 4f;
float num2 = 1f * (1f - scale) + Mathf.Abs(knockback) * scale;
explosion.range = 3f * num;
explosion.force = 10000f * num2 * Mathf.Sign(knockback);
explosion.ignoreTeam = false;
input = ((Component)spawned.spawner).gameObject.GetComponent<InputListener>();
input.detonators = CollectionExtensions.AddItem<Detonator>((IEnumerable<Detonator>)input.detonators, ((Component)this).gameObject.GetComponent<Detonator>()).ToArray();
}
public void Detonate()
{
((Component)((Component)this).gameObject.transform.GetChild(0)).gameObject.SetActive(true);
explosion.Explode();
((Renderer)((Component)this).gameObject.GetComponent<SpriteRenderer>()).enabled = false;
((Behaviour)((Component)this).gameObject.GetComponent<Collider2D>()).enabled = false;
((MonoBehaviour)this).Invoke("DestroyMe", 2f);
}
private void DestroyMe()
{
if (Object.op_Implicit((Object)(object)view))
{
if (view.IsMine)
{
PhotonNetwork.Destroy(((Component)this).gameObject);
}
}
else
{
Object.Destroy((Object)(object)((Component)this).gameObject);
}
}
}
internal class StickyBombBulletHitEffect : RayHitEffect
{
public Color color = Color.white;
public Player owner;
public GameObject stickyBomb;
public bool hasHitAlready = false;
public float damage;
public float knockback;
public void Start()
{
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
//IL_0028: Unknown result type (might be due to invalid IL or missing references)
owner = ((Component)this).gameObject.GetComponent<SpawnedAttack>().spawner;
color = owner.GetTeamColors().color;
damage = ((Component)((Component)owner).gameObject.GetComponent<Holding>().holdable).GetComponent<Gun>().damage * 55f;
knockback = ((Component)((Component)owner).gameObject.GetComponent<Holding>().holdable).GetComponent<Gun>().knockback;
}
public override HasToReturn DoHitEffect(HitInfo hit)
{
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
//IL_001c: Expected O, but got Unknown
//IL_002a: 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_000f: Unknown result type (might be due to invalid IL or missing references)
//IL_014d: Unknown result type (might be due to invalid IL or missing references)
//IL_0149: Unknown result type (might be due to invalid IL or missing references)
if (hasHitAlready)
{
return (HasToReturn)1;
}
ObjectsToSpawn val = new ObjectsToSpawn();
SpriteRenderer component = stickyBomb.GetComponent<SpriteRenderer>();
component.color = color;
val.effect = stickyBomb;
val.scaleFromDamage = 0.75f;
Detonator component2 = stickyBomb.GetComponent<Detonator>();
component2.damage = damage;
component2.scale = val.scaleFromDamage;
component2.knockback = knockback;
float num = 1f * (1f - val.scaleFromDamage) + damage / 55f * val.scaleFromDamage;
val.normalOffset = stickyBomb.transform.localScale.x * 0.85f * num;
val.spawnAsChild = true;
ProjectileHit component3 = ((Component)this).gameObject.GetComponent<ProjectileHit>();
HealthHandler val2 = null;
if (Object.op_Implicit((Object)(object)hit.transform))
{
val2 = ((Component)hit.transform).GetComponent<HealthHandler>();
}
PlayerSkin val3 = null;
if (Object.op_Implicit((Object)(object)component3.team))
{
val3 = component3.team;
}
ObjectsToSpawn.SpawnObject(hit.transform, hit, val, val2, val3, damage, ((Component)this).gameObject.GetComponent<SpawnedAttack>(), false);
hasHitAlready = true;
return (HasToReturn)1;
}
}
public class StickyExplosion : MonoBehaviour
{
[Header("Sounds")]
public SoundEvent soundDamage;
[Header("Settings")]
public float slow = 0f;
public float silence = 0f;
public bool fastSlow = false;
public float stun = 0f;
public float force = 5000f;
public float objectForceMultiplier = 1f;
public bool forceIgnoreMass = true;
public float damage = 25f;
public Color dmgColor = Color.black;
public float range = 2f;
public float flyingFor = 0f;
public bool auto = true;
public bool ignoreTeam = false;
public bool ignoreWalls = true;
public bool staticRangeMultiplier = false;
[FoldoutGroup("Scaling", 0)]
public bool scaleSlow = false;
[FoldoutGroup("Scaling", 0)]
public bool scaleSilence = false;
[FoldoutGroup("Scaling", 0)]
public bool scaleDmg = false;
[FoldoutGroup("Scaling", 0)]
public bool scaleRadius = false;
[FoldoutGroup("Scaling", 0)]
public bool scaleStun = false;
[FoldoutGroup("Scaling", 0)]
public bool scaleForce = false;
[FoldoutGroup("Immunity", 0)]
public float immunity = 0f;
private SpawnedAttack spawned;
public bool locallySimulated;
public Action<Damagable> DealDamageAction;
public Action<Damagable> DealHealAction;
public Action<Damagable, float> HitTargetAction;
private PhotonView view;
public Action<CharacterData, float> hitPlayerAction;
private void Start()
{
spawned = ((Component)this).GetComponent<SpawnedAttack>();
view = ((Component)this).GetComponent<PhotonView>();
if (auto)
{
Explode();
}
}
private void DoExplosionEffects(Collider2D hitCol, float rangeMultiplier, float distance)
{
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
//IL_0036: 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_0076: Unknown result type (might be due to invalid IL or missing references)
//IL_009b: Unknown result type (might be due to invalid IL or missing references)
//IL_00af: Unknown result type (might be due to invalid IL or missing references)
//IL_00d5: Unknown result type (might be due to invalid IL or missing references)
//IL_05ec: Unknown result type (might be due to invalid IL or missing references)
//IL_05f6: Expected O, but got Unknown
//IL_0604: Unknown result type (might be due to invalid IL or missing references)
//IL_0609: Unknown result type (might be due to invalid IL or missing references)
//IL_0613: Unknown result type (might be due to invalid IL or missing references)
//IL_0618: Unknown result type (might be due to invalid IL or missing references)
//IL_061d: Unknown result type (might be due to invalid IL or missing references)
//IL_0628: Unknown result type (might be due to invalid IL or missing references)
//IL_062d: Unknown result type (might be due to invalid IL or missing references)
//IL_0632: Unknown result type (might be due to invalid IL or missing references)
//IL_0637: Unknown result type (might be due to invalid IL or missing references)
//IL_063b: Unknown result type (might be due to invalid IL or missing references)
//IL_0641: Unknown result type (might be due to invalid IL or missing references)
//IL_064c: Unknown result type (might be due to invalid IL or missing references)
//IL_0652: Unknown result type (might be due to invalid IL or missing references)
//IL_0141: Unknown result type (might be due to invalid IL or missing references)
//IL_0146: Unknown result type (might be due to invalid IL or missing references)
//IL_04c7: Unknown result type (might be due to invalid IL or missing references)
//IL_04cc: Unknown result type (might be due to invalid IL or missing references)
//IL_04d6: Unknown result type (might be due to invalid IL or missing references)
//IL_04db: Unknown result type (might be due to invalid IL or missing references)
//IL_04e0: Unknown result type (might be due to invalid IL or missing references)
//IL_04eb: Unknown result type (might be due to invalid IL or missing references)
//IL_04f0: Unknown result type (might be due to invalid IL or missing references)
//IL_04f5: Unknown result type (might be due to invalid IL or missing references)
//IL_04fa: Unknown result type (might be due to invalid IL or missing references)
//IL_04fe: Unknown result type (might be due to invalid IL or missing references)
//IL_0504: Unknown result type (might be due to invalid IL or missing references)
//IL_050f: Unknown result type (might be due to invalid IL or missing references)
//IL_0515: Unknown result type (might be due to invalid IL or missing references)
//IL_054d: Unknown result type (might be due to invalid IL or missing references)
//IL_0552: Unknown result type (might be due to invalid IL or missing references)
//IL_055c: Unknown result type (might be due to invalid IL or missing references)
//IL_0561: Unknown result type (might be due to invalid IL or missing references)
//IL_0566: Unknown result type (might be due to invalid IL or missing references)
//IL_0571: Unknown result type (might be due to invalid IL or missing references)
//IL_0576: Unknown result type (might be due to invalid IL or missing references)
//IL_057b: Unknown result type (might be due to invalid IL or missing references)
//IL_0580: Unknown result type (might be due to invalid IL or missing references)
//IL_0584: Unknown result type (might be due to invalid IL or missing references)
//IL_058a: Unknown result type (might be due to invalid IL or missing references)
//IL_0595: Unknown result type (might be due to invalid IL or missing references)
//IL_059b: Unknown result type (might be due to invalid IL or missing references)
//IL_036b: Unknown result type (might be due to invalid IL or missing references)
//IL_0376: Expected O, but got Unknown
//IL_03a4: Unknown result type (might be due to invalid IL or missing references)
//IL_03a9: Unknown result type (might be due to invalid IL or missing references)
//IL_03b3: Unknown result type (might be due to invalid IL or missing references)
//IL_03b8: Unknown result type (might be due to invalid IL or missing references)
//IL_03bd: Unknown result type (might be due to invalid IL or missing references)
//IL_03c8: Unknown result type (might be due to invalid IL or missing references)
//IL_03cd: Unknown result type (might be due to invalid IL or missing references)
//IL_03d2: Unknown result type (might be due to invalid IL or missing references)
//IL_03d7: Unknown result type (might be due to invalid IL or missing references)
//IL_03db: Unknown result type (might be due to invalid IL or missing references)
//IL_03e0: Unknown result type (might be due to invalid IL or missing references)
//IL_03e2: Unknown result type (might be due to invalid IL or missing references)
//IL_03e4: Unknown result type (might be due to invalid IL or missing references)
//IL_03f5: Unknown result type (might be due to invalid IL or missing references)
//IL_03fa: Unknown result type (might be due to invalid IL or missing references)
//IL_041b: Unknown result type (might be due to invalid IL or missing references)
//IL_041d: Unknown result type (might be due to invalid IL or missing references)
//IL_0428: Unknown result type (might be due to invalid IL or missing references)
//IL_042d: Unknown result type (might be due to invalid IL or missing references)
float num = (scaleDmg ? ((Component)this).transform.localScale.x : 1f);
float num2 = (scaleForce ? ((Component)this).transform.localScale.x : 1f);
float num3 = (scaleSlow ? ((Component)this).transform.localScale.x : 1f);
float num4 = (scaleSilence ? ((Component)this).transform.localScale.x : 1f);
float num5 = (scaleStun ? ((1f + ((Component)this).transform.localScale.x) * 0.5f) : 1f);
Damagable componentInParent = ((Component)hitCol).gameObject.GetComponentInParent<Damagable>();
CharacterData val = null;
Bounds bounds;
Vector2 val2;
if (Object.op_Implicit((Object)(object)componentInParent))
{
val = ((Component)hitCol).gameObject.GetComponentInParent<CharacterData>();
if ((immunity > 0f && Object.op_Implicit((Object)(object)val) && ((Component)val).GetComponent<PlayerImmunity>().IsImune(immunity, num * damage * rangeMultiplier, ((Object)((Component)this).gameObject).name)) || (!ignoreWalls && Object.op_Implicit((Object)(object)val) && !PlayerManager.instance.CanSeePlayer(Vector2.op_Implicit(((Component)this).transform.position), val.player).canSee))
{
return;
}
if (slow != 0f && Object.op_Implicit((Object)(object)((Component)componentInParent).GetComponent<CharacterStatModifiers>()))
{
if (locallySimulated)
{
if (spawned.IsMine() && !val.block.IsBlocking())
{
val.stats.RPCA_AddSlow(slow * rangeMultiplier * num3, fastSlow);
}
}
else if (spawned.IsMine() && !val.block.IsBlocking())
{
val.view.RPC("RPCA_AddSlow", (RpcTarget)0, new object[2]
{
slow * rangeMultiplier * num3,
fastSlow
});
}
}
if (silence != 0f && Object.op_Implicit((Object)(object)((Component)componentInParent).GetComponent<SilenceHandler>()) && spawned.IsMine() && !val.block.IsBlocking())
{
val.view.RPC("RPCA_AddSilence", (RpcTarget)0, new object[1] { silence * rangeMultiplier * num4 });
}
if (Object.op_Implicit((Object)(object)spawned))
{
_ = spawned.spawner;
}
hitPlayerAction?.Invoke(val, rangeMultiplier);
if (damage < 0f)
{
if (Object.op_Implicit((Object)(object)val))
{
val.healthHandler.Heal(0f - damage);
}
if (DealHealAction != null)
{
DealHealAction(componentInParent);
}
}
else if (damage > 0f)
{
if ((Object)soundDamage != (Object)null && (Object)(object)val != (Object)null)
{
SoundManager.Instance.Play(soundDamage, ((Component)val).transform);
}
bounds = hitCol.bounds;
val2 = Vector2.op_Implicit(((Bounds)(ref bounds)).ClosestPoint(((Component)this).transform.position)) - Vector2.op_Implicit(((Component)this).transform.position);
Vector2 val3 = ((Vector2)(ref val2)).normalized;
if (val3 == Vector2.zero)
{
val3 = Vector2.up;
}
if (spawned.IsMine())
{
componentInParent.CallTakeDamage(num * damage * rangeMultiplier * val3, Vector2.op_Implicit(((Component)this).transform.position), (GameObject)null, spawned.spawner, true);
}
if (DealDamageAction != null)
{
DealDamageAction(componentInParent);
}
}
}
if (Object.op_Implicit((Object)(object)val))
{
if (HitTargetAction != null)
{
HitTargetAction(componentInParent, distance);
}
if (force != 0f)
{
if (locallySimulated)
{
HealthHandler healthHandler = val.healthHandler;
bounds = hitCol.bounds;
val2 = Vector2.op_Implicit(((Bounds)(ref bounds)).ClosestPoint(((Component)this).transform.position)) - Vector2.op_Implicit(((Component)this).transform.position);
healthHandler.TakeForce(((Vector2)(ref val2)).normalized * rangeMultiplier * force * num2, (ForceMode2D)1, forceIgnoreMass, true, 0f);
}
else if (spawned.IsMine())
{
HealthHandler healthHandler2 = val.healthHandler;
bounds = hitCol.bounds;
val2 = Vector2.op_Implicit(((Bounds)(ref bounds)).ClosestPoint(((Component)this).transform.position)) - Vector2.op_Implicit(((Component)this).transform.position);
healthHandler2.CallTakeForce(((Vector2)(ref val2)).normalized * rangeMultiplier * force * num2, (ForceMode2D)1, forceIgnoreMass, true, flyingFor * rangeMultiplier);
}
}
if (stun > 0f)
{
val.stunHandler.AddStun(stun * num5);
}
}
else if (Object.op_Implicit((Object)hitCol.attachedRigidbody))
{
Rigidbody2D attachedRigidbody = hitCol.attachedRigidbody;
bounds = hitCol.bounds;
val2 = Vector2.op_Implicit(((Bounds)(ref bounds)).ClosestPoint(((Component)this).transform.position)) - Vector2.op_Implicit(((Component)this).transform.position);
attachedRigidbody.AddForce(((Vector2)(ref val2)).normalized * rangeMultiplier * force * num2, (ForceMode2D)1);
}
}
public void Explode()
{
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
//IL_0027: Unknown result type (might be due to invalid IL or missing references)
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
//IL_004a: Unknown result type (might be due to invalid IL or missing references)
//IL_006b: Unknown result type (might be due to invalid IL or missing references)
//IL_0082: Unknown result type (might be due to invalid IL or missing references)
//IL_0087: Unknown result type (might be due to invalid IL or missing references)
//IL_008f: Unknown result type (might be due to invalid IL or missing references)
//IL_0094: Unknown result type (might be due to invalid IL or missing references)
//IL_009e: Unknown result type (might be due to invalid IL or missing references)
//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
//IL_00f2: Unknown result type (might be due to invalid IL or missing references)
//IL_01b9: Unknown result type (might be due to invalid IL or missing references)
//IL_01c3: Expected O, but got Unknown
//IL_0135: Unknown result type (might be due to invalid IL or missing references)
//IL_014a: Unknown result type (might be due to invalid IL or missing references)
//IL_0155: Unknown result type (might be due to invalid IL or missing references)
//IL_015a: Unknown result type (might be due to invalid IL or missing references)
//IL_015f: Unknown result type (might be due to invalid IL or missing references)
//IL_0163: Unknown result type (might be due to invalid IL or missing references)
//IL_0168: Unknown result type (might be due to invalid IL or missing references)
//IL_0173: Unknown result type (might be due to invalid IL or missing references)
//IL_017d: Unknown result type (might be due to invalid IL or missing references)
//IL_0184: Unknown result type (might be due to invalid IL or missing references)
//IL_018f: Unknown result type (might be due to invalid IL or missing references)
//IL_0196: Unknown result type (might be due to invalid IL or missing references)
//IL_019b: Unknown result type (might be due to invalid IL or missing references)
//IL_01ed: Unknown result type (might be due to invalid IL or missing references)
float num = (scaleRadius ? ((Component)this).transform.localScale.x : 1f);
Collider2D[] array = Physics2D.OverlapCircleAll(Vector2.op_Implicit(((Component)this).transform.position), range * num);
for (int i = 0; i < array.Length; i++)
{
if (((Component)array[i]).gameObject.layer != 19)
{
Damagable componentInParent = ((Component)array[i]).gameObject.GetComponentInParent<Damagable>();
Vector2 val = Vector2.op_Implicit(((Component)this).transform.position);
Bounds bounds = array[i].bounds;
float num2 = Vector2.Distance(val, Vector2.op_Implicit(((Bounds)(ref bounds)).ClosestPoint(((Component)this).transform.position)));
float num3 = 1f - num2 / (range * num);
if (staticRangeMultiplier)
{
num3 = 1f;
}
num3 = Mathf.Clamp(num3, 0f, 1f);
NetworkPhysicsObject component = ((Component)array[i]).GetComponent<NetworkPhysicsObject>();
if (Object.op_Implicit((Object)(object)component) && component.photonView.IsMine)
{
float num4 = (scaleForce ? ((Component)this).transform.localScale.x : 1f);
Vector3 val2 = ((Component)component).transform.position - ((Component)this).transform.position;
component.BulletPush(Vector2.op_Implicit(((Vector3)(ref val2)).normalized) * objectForceMultiplier * 1f * num3 * force * num4, Vector2.zero, (CharacterData)null);
}
if ((Object.op_Implicit((Object)(object)componentInParent) || Object.op_Implicit((Object)array[i].attachedRigidbody)) && (!ignoreTeam || !Object.op_Implicit((Object)(object)spawned) || !((Object)(object)((Component)spawned.spawner).gameObject == (Object)(object)((Component)((Component)array[i]).transform).gameObject)))
{
DoExplosionEffects(array[i], num3, num2);
}
}
}
}
}
}
namespace LMB.Cards
{
internal class Costco : CustomCard
{
public void Start()
{
CardVisuals componentInChildren = ((Component)this).gameObject.GetComponentInChildren<CardVisuals>();
Action<bool> toggleSelectionAction = toggleSound;
componentInChildren.toggleSelectionAction = toggleSelectionAction;
}
public void toggleSound(bool toggle)
{
if (toggle)
{
((Component)GameObject.Find("C_Costco(Clone)").transform.Find("Trumpet")).gameObject.SetActive(true);
}
else
{
GameObject.Find("Trumpet").SetActive(false);
}
}
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
Debug.Log((object)("[LMB][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}.", "LMB", ((CustomCard)this).GetTitle(), player.playerID));
gravity.gravityForce *= 2f;
data.maxHealth += 150f;
gun.damage += 0.2f;
characterStats.slow += 0.1f;
characterStats.sizeMultiplier *= 1.3f;
}
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}.", "LMB", ((CustomCard)this).GetTitle(), player.playerID));
}
protected override string GetTitle()
{
return "Costco";
}
protected override string GetDescription()
{
return "\"I can't breathe\"\n- David";
}
protected override GameObject GetCardArt()
{
return Assets.costcoArt;
}
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 = "Damage",
amount = "",
simepleAmount = (SimpleAmount)2
},
new CardInfoStat
{
positive = true,
stat = "Health",
amount = "",
simepleAmount = (SimpleAmount)4
},
new CardInfoStat
{
positive = false,
stat = "BMI",
amount = "",
simepleAmount = (SimpleAmount)4
}
};
}
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 "LMB";
}
}
internal class Duh2x3 : CustomCard
{
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
Debug.Log((object)("[LMB][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
gun.bursts = 3;
gun.ammo = 3;
}
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}.", "LMB", ((CustomCard)this).GetTitle(), player.playerID));
gun.damage *= 0.85f;
gun.projectileSpeed *= 1.2f;
gun.spread += 0.05f;
}
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}.", "LMB", ((CustomCard)this).GetTitle(), player.playerID));
}
protected override string GetTitle()
{
return "Duh 2 x 3";
}
protected override string GetDescription()
{
return "MATRIX, but no\nKeanu Reeves";
}
protected override GameObject GetCardArt()
{
return Assets.duh2x3Art;
}
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 = "Burst",
amount = "+1",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "Ammo",
amount = "+3",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = false,
stat = "Damage",
amount = "",
simepleAmount = (SimpleAmount)5
}
};
}
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 "LMB";
}
}
internal class JimFlick : CustomCard
{
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
Debug.Log((object)("[LMB][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
gun.spread = 0.2f;
gun.gravity = 0.1f;
}
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}.", "LMB", ((CustomCard)this).GetTitle(), player.playerID));
gun.projectileSpeed += 2f;
gun.knockback += 1f;
gun.damage *= 2f;
}
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}.", "LMB", ((CustomCard)this).GetTitle(), player.playerID));
}
protected override string GetTitle()
{
return "Jim Flick";
}
protected override string GetDescription()
{
return "Pablo Picasso that man";
}
protected override GameObject GetCardArt()
{
return Assets.jimFlickArt;
}
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_0022: Unknown result type (might be due to invalid IL or missing references)
//IL_0028: Expected O, but got Unknown
//IL_002a: Unknown result type (might be due to invalid IL or missing references)
//IL_002f: Unknown result type (might be due to invalid IL or missing references)
//IL_0036: 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_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_0049: Expected O, but got Unknown
//IL_004b: Unknown result type (might be due to invalid IL or missing references)
//IL_0050: Unknown result type (might be due to invalid IL or missing references)
//IL_0057: Unknown result type (might be due to invalid IL or missing references)
//IL_0062: Unknown result type (might be due to invalid IL or missing references)
//IL_0064: Unknown result type (might be due to invalid IL or missing references)
//IL_006a: Expected O, but got Unknown
//IL_006c: Unknown result type (might be due to invalid IL or missing references)
//IL_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_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[4]
{
new CardInfoStat
{
positive = true,
stat = "Knockback",
simepleAmount = (SimpleAmount)2
},
new CardInfoStat
{
positive = true,
stat = "Bullet Speed",
simepleAmount = (SimpleAmount)3
},
new CardInfoStat
{
positive = true,
stat = "Damage",
simepleAmount = (SimpleAmount)3
},
new CardInfoStat
{
positive = false,
stat = "Spread",
simepleAmount = (SimpleAmount)1
}
};
}
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 "LMB";
}
}
internal class PlayTheMan : CustomCard
{
public void Start()
{
}
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
Debug.Log((object)("[LMB][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
cardInfo.allowMultiple = false;
statModifiers.automaticReload = false;
}
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}.", "LMB", ((CustomCard)this).GetTitle(), player.playerID));
InputListener inputListener = ((Component)player).gameObject.GetComponent<InputListener>();
if (!Object.op_Implicit((Object)(object)inputListener))
{
inputListener = ((Component)player).gameObject.AddComponent<InputListener>();
}
inputListener.playTheMan = true;
}
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}.", "LMB", ((CustomCard)this).GetTitle(), player.playerID));
}
protected override string GetTitle()
{
return "Play The Man";
}
protected override string GetDescription()
{
return "Not the ball.\n\nShoot while reloading\nto slide tackle.";
}
protected override GameObject GetCardArt()
{
return Assets.playTheManArt;
}
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 null;
}
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 "LMB";
}
}
internal class StickyBomb : CustomCard
{
private static int cardNum;
private GameObject? stickyBombBullet;
private StickyBombBulletHitEffect? hitEffect;
public void Start()
{
stickyBombBullet = Assets.stickyBombBullet;
((Object)stickyBombBullet).name = ((Object)stickyBombBullet).name + cardNum;
PhotonNetwork.PrefabPool.RegisterPrefab(((Object)stickyBombBullet).name, stickyBombBullet);
hitEffect = stickyBombBullet.GetComponent<StickyBombBulletHitEffect>();
if (!Object.op_Implicit((Object)(object)hitEffect))
{
hitEffect = stickyBombBullet.AddComponent<StickyBombBulletHitEffect>();
}
hitEffect.stickyBomb = Assets.stickyBomb;
((Object)hitEffect.stickyBomb).name = ((Object)hitEffect.stickyBomb).name + cardNum;
PhotonNetwork.PrefabPool.RegisterPrefab(((Object)hitEffect.stickyBomb).name, hitEffect.stickyBomb);
if (!Object.op_Implicit((Object)(object)hitEffect.stickyBomb.GetComponent<Detonator>()))
{
hitEffect.stickyBomb.AddComponent<Detonator>();
}
}
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
Debug.Log((object)("[LMB][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
cardNum++;
cardInfo.allowMultiple = false;
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
//IL_003a: Unknown result type (might be due to invalid IL or missing references)
//IL_0040: Expected O, but got Unknown
//IL_008c: Unknown result type (might be due to invalid IL or missing references)
//IL_0091: Unknown result type (might be due to invalid IL or missing references)
//IL_0093: Unknown result type (might be due to invalid IL or missing references)
//IL_0094: Unknown result type (might be due to invalid IL or missing references)
//IL_009f: Unknown result type (might be due to invalid IL or missing references)
//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
Debug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "LMB", ((CustomCard)this).GetTitle(), player.playerID));
ProjectileHit component = stickyBombBullet.GetComponent<ProjectileHit>();
component.destroyOnBlock = true;
ProjectilesToSpawn val = new ProjectilesToSpawn();
val.objectToSpawn = stickyBombBullet;
ProjectilesToSpawn[] projectiles = (ProjectilesToSpawn[])(object)new ProjectilesToSpawn[1] { val };
gun.projectiles = projectiles;
if (!Object.op_Implicit((Object)(object)((Component)player).gameObject.GetComponent<InputListener>()))
{
InputListener inputListener = ((Component)player).gameObject.AddComponent<InputListener>();
}
Color color = (gun.projectileColor = player.GetTeamColors().color);
hitEffect.color = color;
hitEffect.owner = player;
gun.projectileSize *= 3f;
gun.damage *= 1.5f;
}
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}.", "LMB", ((CustomCard)this).GetTitle(), player.playerID));
}
protected override string GetTitle()
{
return "Sticky Bomb";
}
protected override string GetDescription()
{
return "What in the butt-fuck\nmonkey shit is that?\n\nPress middle-mouse or left-stick to detonate";
}
protected override GameObject GetCardArt()
{
return Assets.stickyBombArt;
}
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 null;
}
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 "LMB";
}
}
internal class SuccGun : CustomCard
{
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
Debug.Log((object)("[LMB][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}.", "LMB", ((CustomCard)this).GetTitle(), player.playerID));
if (gun.knockback < 0f)
{
gun.knockback *= 2f;
}
else
{
gun.knockback *= -2f;
}
}
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}.", "LMB", ((CustomCard)this).GetTitle(), player.playerID));
}
protected override string GetTitle()
{
return "Succ Gun";
}
protected override string GetDescription()
{
return "Joey needs you closer\nto spread the AIDS";
}
protected override GameObject GetCardArt()
{
return Assets.succGunArt;
}
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 = "Knockback",
amount = "-200%",
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 "LMB";
}
}
}