Decompiled source of AnimeCards v4.0.0

AnimeCards.dll

Decompiled 5 hours ago
using System;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Text;
using AnimeCards.Cards;
using BepInEx;
using HarmonyLib;
using UnboundLib.Cards;
using UnityEngine;
using UnityEngine.UI;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: AssemblyVersion("0.0.0.0")]
namespace AnimeCards
{
	public class TimeStopEffect : MonoBehaviour
	{
		private Player player;

		private void Start()
		{
			player = ((Component)this).GetComponent<Player>();
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.block != (Object)null)
			{
				Block block = player.data.block;
				block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			}
		}

		private void OnDestroy()
		{
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.block != (Object)null)
			{
				Block block = player.data.block;
				block.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			}
		}

		private void OnBlock(BlockTriggerType trigger)
		{
			if (!((Object)(object)PlayerManager.instance != (Object)null) || PlayerManager.instance.players == null)
			{
				return;
			}
			for (int i = 0; i < PlayerManager.instance.players.Count; i++)
			{
				Player val = PlayerManager.instance.players[i];
				if ((Object)(object)val != (Object)null && val.playerID != player.playerID && val.teamID != player.teamID && (Object)(object)val.data != (Object)null && !val.data.dead && (Object)(object)val.data.stunHandler != (Object)null)
				{
					val.data.stunHandler.AddStun(1.75f);
				}
			}
		}
	}
	public class InstantTransmissionEffect : MonoBehaviour
	{
		private Player player;

		private void Start()
		{
			player = ((Component)this).GetComponent<Player>();
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.block != (Object)null)
			{
				Block block = player.data.block;
				block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			}
		}

		private void OnDestroy()
		{
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.block != (Object)null)
			{
				Block block = player.data.block;
				block.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			}
		}

		private void OnBlock(BlockTriggerType trigger)
		{
			//IL_0038: Unknown result type (might be due to invalid IL or missing references)
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			//IL_0067: 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_0076: Unknown result type (might be due to invalid IL or missing references)
			if (!((Object)(object)player == (Object)null) && !((Object)(object)player.data == (Object)null))
			{
				Vector3 aimDirection = player.data.aimDirection;
				if (((Vector3)(ref aimDirection)).sqrMagnitude > 0.01f)
				{
					Transform transform = ((Component)player).transform;
					transform.position += ((Vector3)(ref aimDirection)).normalized * 8.5f;
				}
			}
		}
	}
	public class RoomShamblesEffect : MonoBehaviour
	{
		private Player player;

		private void Start()
		{
			player = ((Component)this).GetComponent<Player>();
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.block != (Object)null)
			{
				Block block = player.data.block;
				block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			}
		}

		private void OnDestroy()
		{
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.block != (Object)null)
			{
				Block block = player.data.block;
				block.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			}
		}

		private void OnBlock(BlockTriggerType trigger)
		{
			//IL_0143: Unknown result type (might be due to invalid IL or missing references)
			//IL_0148: Unknown result type (might be due to invalid IL or missing references)
			//IL_015b: Unknown result type (might be due to invalid IL or missing references)
			//IL_016c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)player == (Object)null || (Object)(object)player.data == (Object)null)
			{
				return;
			}
			Player val = null;
			float num = float.MaxValue;
			if ((Object)(object)PlayerManager.instance != (Object)null && PlayerManager.instance.players != null)
			{
				for (int i = 0; i < PlayerManager.instance.players.Count; i++)
				{
					Player val2 = PlayerManager.instance.players[i];
					if ((Object)(object)val2 != (Object)null && val2.playerID != player.playerID && val2.teamID != player.teamID && (Object)(object)val2.data != (Object)null && !val2.data.dead)
					{
						float num2 = Vector3.Distance(((Component)player).transform.position, ((Component)val2).transform.position);
						if (num2 < num)
						{
							num = num2;
							val = val2;
						}
					}
				}
			}
			if ((Object)(object)val != (Object)null)
			{
				Vector3 position = ((Component)player).transform.position;
				((Component)player).transform.position = ((Component)val).transform.position;
				((Component)val).transform.position = position;
			}
		}
	}
	public class LimitlessInfinityEffect : MonoBehaviour
	{
		private Player player;

		private void Start()
		{
			player = ((Component)this).GetComponent<Player>();
		}

		private void Update()
		{
			//IL_004f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)player == (Object)null || (Object)(object)player.data == (Object)null || player.data.dead)
			{
				return;
			}
			Collider2D[] array = Physics2D.OverlapCircleAll(Vector2.op_Implicit(((Component)player).transform.position), 3.5f);
			if (array == null)
			{
				return;
			}
			for (int i = 0; i < array.Length; i++)
			{
				ProjectileHit component = ((Component)array[i]).GetComponent<ProjectileHit>();
				if ((Object)(object)component != (Object)null && (Object)(object)component.ownPlayer != (Object)null && component.ownPlayer.teamID != player.teamID)
				{
					MoveTransform component2 = ((Component)array[i]).GetComponent<MoveTransform>();
					if ((Object)(object)component2 != (Object)null)
					{
						component2.velocity *= 0.65f;
					}
				}
			}
		}
	}
	public class BaryonModeEffect : MonoBehaviour
	{
		private Player player;

		private void Start()
		{
			player = ((Component)this).GetComponent<Player>();
		}

		private void Update()
		{
			if (!((Object)(object)player == (Object)null) && !((Object)(object)player.data == (Object)null) && !player.data.dead)
			{
				float num = player.data.maxHealth * 0.02f * Time.deltaTime;
				if (player.data.health > num + 5f)
				{
					CharacterData data = player.data;
					data.health -= num;
				}
			}
		}
	}
	public class BerserkerArmorEffect : MonoBehaviour
	{
		private Player player;

		private float originalSpeed = 1f;

		private void Start()
		{
			player = ((Component)this).GetComponent<Player>();
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.stats != (Object)null)
			{
				originalSpeed = player.data.stats.movementSpeed;
			}
		}

		private void Update()
		{
			if (!((Object)(object)player == (Object)null) && !((Object)(object)player.data == (Object)null) && !player.data.dead && !((Object)(object)player.data.stats == (Object)null))
			{
				float num = 1f - Mathf.Clamp01(player.data.health / Mathf.Max(1f, player.data.maxHealth));
				player.data.stats.movementSpeed = originalSpeed * (1f + num * 0.8f);
				player.data.stats.lifeSteal = 0.1f + num * 0.4f;
			}
		}
	}
	public class VampireRegenEffect : MonoBehaviour
	{
		private Player player;

		private void Start()
		{
			player = ((Component)this).GetComponent<Player>();
		}

		private void Update()
		{
			if (!((Object)(object)player == (Object)null) && !((Object)(object)player.data == (Object)null) && !player.data.dead && player.data.health < player.data.maxHealth)
			{
				player.data.health = Mathf.Min(player.data.maxHealth, player.data.health + 5f * Time.deltaTime);
			}
		}
	}
	public class BleedEffect : MonoBehaviour
	{
		private float duration = 3f;

		private float damagePerSec = 6f;

		private HealthHandler health;

		public void Setup(float dur, float dps)
		{
			duration = dur;
			damagePerSec = dps;
			health = ((Component)this).GetComponent<HealthHandler>();
		}

		private void Update()
		{
			//IL_003f: 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_004f: 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)
			if (!((Object)(object)health == (Object)null))
			{
				duration -= Time.deltaTime;
				health.TakeDamageOverTime(new Vector2(damagePerSec * Time.deltaTime, 0f), Vector2.op_Implicit(((Component)this).transform.position), 0.5f, 0.1f, Color.red, (GameObject)null, (Player)null, false);
				if (duration <= 0f)
				{
					Object.Destroy((Object)(object)this);
				}
			}
		}
	}
	public class BlackFlashEffect : MonoBehaviour
	{
		private Gun gun;

		private void Start()
		{
			Player component = ((Component)this).GetComponent<Player>();
			if ((Object)(object)component != (Object)null && (Object)(object)component.data != (Object)null && (Object)(object)component.data.weaponHandler != (Object)null)
			{
				gun = component.data.weaponHandler.gun;
				if ((Object)(object)gun != (Object)null)
				{
					Gun obj = gun;
					obj.ShootPojectileAction = (Action<GameObject>)Delegate.Combine(obj.ShootPojectileAction, new Action<GameObject>(OnShoot));
				}
			}
		}

		private void OnDestroy()
		{
			if ((Object)(object)gun != (Object)null)
			{
				Gun obj = gun;
				obj.ShootPojectileAction = (Action<GameObject>)Delegate.Remove(obj.ShootPojectileAction, new Action<GameObject>(OnShoot));
			}
		}

		private void OnShoot(GameObject projectile)
		{
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			//IL_004f: Unknown result type (might be due to invalid IL or missing references)
			if (Random.value < 0.25f)
			{
				ProjectileHit component = projectile.GetComponent<ProjectileHit>();
				if ((Object)(object)component != (Object)null)
				{
					component.damage *= 2.5f;
				}
				Transform transform = projectile.transform;
				transform.localScale *= 1.4f;
			}
		}
	}
	public class ExplosionStunEffect : MonoBehaviour
	{
		private Gun gun;

		private Player player;

		private void Start()
		{
			player = ((Component)this).GetComponent<Player>();
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.weaponHandler != (Object)null)
			{
				gun = player.data.weaponHandler.gun;
				if ((Object)(object)gun != (Object)null)
				{
					Gun obj = gun;
					obj.ShootPojectileAction = (Action<GameObject>)Delegate.Combine(obj.ShootPojectileAction, new Action<GameObject>(OnShoot));
				}
			}
		}

		private void OnDestroy()
		{
			if ((Object)(object)gun != (Object)null)
			{
				Gun obj = gun;
				obj.ShootPojectileAction = (Action<GameObject>)Delegate.Remove(obj.ShootPojectileAction, new Action<GameObject>(OnShoot));
			}
		}

		private void OnShoot(GameObject projectile)
		{
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.stunHandler != (Object)null)
			{
				player.data.stunHandler.AddStun(1.2f);
			}
		}
	}
	public class ReturnByDeathEffect : MonoBehaviour
	{
		private Player player;

		private bool hasRevived = false;

		private void Start()
		{
			player = ((Component)this).GetComponent<Player>();
		}

		private void Update()
		{
			//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: 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_00b4: Unknown result type (might be due to invalid IL or missing references)
			if (!((Object)(object)player == (Object)null) && !((Object)(object)player.data == (Object)null) && player.data.health <= 0f && !hasRevived)
			{
				hasRevived = true;
				player.data.health = player.data.maxHealth * 0.75f;
				player.data.dead = false;
				Transform transform = ((Component)player).transform;
				transform.position += Vector3.up * 4f;
			}
		}
	}
	public class ConquerorsHakiEffect : MonoBehaviour
	{
		private Player player;

		private void Start()
		{
			player = ((Component)this).GetComponent<Player>();
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.block != (Object)null)
			{
				Block block = player.data.block;
				block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			}
		}

		private void OnDestroy()
		{
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.block != (Object)null)
			{
				Block block = player.data.block;
				block.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			}
		}

		private void OnBlock(BlockTriggerType trigger)
		{
			//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00df: 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_015d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0162: Unknown result type (might be due to invalid IL or missing references)
			//IL_0167: Unknown result type (might be due to invalid IL or missing references)
			//IL_016b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0170: Unknown result type (might be due to invalid IL or missing references)
			//IL_0175: Unknown result type (might be due to invalid IL or missing references)
			//IL_0181: Unknown result type (might be due to invalid IL or missing references)
			//IL_0187: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)player == (Object)null || (Object)(object)player.data == (Object)null || !((Object)(object)PlayerManager.instance != (Object)null) || PlayerManager.instance.players == null)
			{
				return;
			}
			for (int i = 0; i < PlayerManager.instance.players.Count; i++)
			{
				Player val = PlayerManager.instance.players[i];
				if (!((Object)(object)val != (Object)null) || val.playerID == player.playerID || val.teamID == player.teamID || !((Object)(object)val.data != (Object)null) || val.data.dead)
				{
					continue;
				}
				float num = Vector3.Distance(((Component)player).transform.position, ((Component)val).transform.position);
				if (num <= 6.5f)
				{
					if ((Object)(object)val.data.stunHandler != (Object)null)
					{
						val.data.stunHandler.AddStun(0.8f);
					}
					if ((Object)(object)val.data.healthHandler != (Object)null)
					{
						Vector3 val2 = ((Component)val).transform.position - ((Component)player).transform.position;
						Vector2 val3 = Vector2.op_Implicit(((Vector3)(ref val2)).normalized);
						val.data.healthHandler.TakeForce(val3 * 20f, (ForceMode2D)1, false, false, 0f);
					}
				}
			}
		}
	}
	public class DeathNoteEffect : MonoBehaviour
	{
		private Gun gun;

		private Player player;

		private void Start()
		{
			player = ((Component)this).GetComponent<Player>();
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.weaponHandler != (Object)null)
			{
				gun = player.data.weaponHandler.gun;
				if ((Object)(object)gun != (Object)null)
				{
					Gun obj = gun;
					obj.ShootPojectileAction = (Action<GameObject>)Delegate.Combine(obj.ShootPojectileAction, new Action<GameObject>(OnShoot));
				}
			}
		}

		private void OnDestroy()
		{
			if ((Object)(object)gun != (Object)null)
			{
				Gun obj = gun;
				obj.ShootPojectileAction = (Action<GameObject>)Delegate.Remove(obj.ShootPojectileAction, new Action<GameObject>(OnShoot));
			}
		}

		private void OnShoot(GameObject projectile)
		{
		}
	}
	public class AlmightyPushEffect : MonoBehaviour
	{
		private Player player;

		private void Start()
		{
			player = ((Component)this).GetComponent<Player>();
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.block != (Object)null)
			{
				Block block = player.data.block;
				block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			}
		}

		private void OnDestroy()
		{
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.block != (Object)null)
			{
				Block block = player.data.block;
				block.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			}
		}

		private void OnBlock(BlockTriggerType trigger)
		{
			//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0104: Unknown result type (might be due to invalid IL or missing references)
			//IL_0109: Unknown result type (might be due to invalid IL or missing references)
			//IL_0121: Unknown result type (might be due to invalid IL or missing references)
			//IL_0126: Unknown result type (might be due to invalid IL or missing references)
			//IL_014c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0152: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)player == (Object)null || (Object)(object)PlayerManager.instance == (Object)null)
			{
				return;
			}
			for (int i = 0; i < PlayerManager.instance.players.Count; i++)
			{
				Player val = PlayerManager.instance.players[i];
				if (!((Object)(object)val != (Object)null) || val.playerID == player.playerID || val.teamID == player.teamID || !((Object)(object)val.data != (Object)null) || val.data.dead)
				{
					continue;
				}
				float num = Vector2.Distance(Vector2.op_Implicit(((Component)val).transform.position), Vector2.op_Implicit(((Component)player).transform.position));
				if (num < 14f)
				{
					Vector3 val2 = ((Component)val).transform.position - ((Component)player).transform.position;
					Vector2 val3 = Vector2.op_Implicit(((Vector3)(ref val2)).normalized);
					if (((Vector2)(ref val3)).sqrMagnitude < 0.01f)
					{
						val3 = Vector2.up;
					}
					if ((Object)(object)val.data.healthHandler != (Object)null)
					{
						val.data.healthHandler.TakeForce(val3 * 35f, (ForceMode2D)1, false, false, 0f);
					}
					if ((Object)(object)val.data.stunHandler != (Object)null)
					{
						val.data.stunHandler.AddStun(1f);
					}
				}
			}
		}
	}
	public class BoogieWoogieEffect : MonoBehaviour
	{
		private Player player;

		private void Start()
		{
			player = ((Component)this).GetComponent<Player>();
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.block != (Object)null)
			{
				Block block = player.data.block;
				block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			}
		}

		private void OnDestroy()
		{
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.block != (Object)null)
			{
				Block block = player.data.block;
				block.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			}
		}

		private void OnBlock(BlockTriggerType trigger)
		{
			//IL_011e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0123: Unknown result type (might be due to invalid IL or missing references)
			//IL_0136: Unknown result type (might be due to invalid IL or missing references)
			//IL_0147: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)player == (Object)null || (Object)(object)PlayerManager.instance == (Object)null)
			{
				return;
			}
			Player val = null;
			float num = float.MaxValue;
			for (int i = 0; i < PlayerManager.instance.players.Count; i++)
			{
				Player val2 = PlayerManager.instance.players[i];
				if ((Object)(object)val2 != (Object)null && val2.playerID != player.playerID && val2.teamID != player.teamID && (Object)(object)val2.data != (Object)null && !val2.data.dead)
				{
					float num2 = Vector2.Distance(Vector2.op_Implicit(((Component)val2).transform.position), Vector2.op_Implicit(((Component)player).transform.position));
					if (num2 < num)
					{
						num = num2;
						val = val2;
					}
				}
			}
			if ((Object)(object)val != (Object)null)
			{
				Vector3 position = ((Component)player).transform.position;
				((Component)player).transform.position = ((Component)val).transform.position;
				((Component)val).transform.position = position;
			}
		}
	}
	public class TimeErasureEffect : MonoBehaviour
	{
		private Player player;

		private void Start()
		{
			player = ((Component)this).GetComponent<Player>();
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.block != (Object)null)
			{
				Block block = player.data.block;
				block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			}
		}

		private void OnDestroy()
		{
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.block != (Object)null)
			{
				Block block = player.data.block;
				block.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			}
		}

		private void OnBlock(BlockTriggerType trigger)
		{
			//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_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: Unknown result type (might be due to invalid IL or missing references)
			//IL_0079: Unknown result type (might be due to invalid IL or missing references)
			if (!((Object)(object)player == (Object)null) && !((Object)(object)player.data == (Object)null))
			{
				Vector3 aimDirection = player.data.aimDirection;
				if (((Vector3)(ref aimDirection)).sqrMagnitude > 0.01f)
				{
					Transform transform = ((Component)player).transform;
					transform.position += ((Vector3)(ref aimDirection)).normalized * 7f;
				}
				if ((Object)(object)player.data.stats != (Object)null)
				{
					CharacterStatModifiers stats = player.data.stats;
					stats.movementSpeed *= 1.4f;
				}
			}
		}
	}
	public class KingEngineEffect : MonoBehaviour
	{
		private Player player;

		private float checkTimer = 0f;

		private void Start()
		{
			player = ((Component)this).GetComponent<Player>();
		}

		private void Update()
		{
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e6: Unknown result type (might be due to invalid IL or missing references)
			checkTimer += Time.deltaTime;
			if (!(checkTimer >= 0.5f))
			{
				return;
			}
			checkTimer = 0f;
			if ((Object)(object)player == (Object)null || (Object)(object)PlayerManager.instance == (Object)null)
			{
				return;
			}
			for (int i = 0; i < PlayerManager.instance.players.Count; i++)
			{
				Player val = PlayerManager.instance.players[i];
				if ((Object)(object)val != (Object)null && val.playerID != player.playerID && val.teamID != player.teamID && (Object)(object)val.data != (Object)null && !val.data.dead && Vector2.Distance(Vector2.op_Implicit(((Component)val).transform.position), Vector2.op_Implicit(((Component)player).transform.position)) < 10f && (Object)(object)val.data.stunHandler != (Object)null)
				{
					val.data.stunHandler.AddStun(0.3f);
				}
			}
		}
	}
	public class FlyingRaijinEffect : MonoBehaviour
	{
		private Player player;

		private Vector3 markPosition;

		private bool hasMark = false;

		private void Start()
		{
			player = ((Component)this).GetComponent<Player>();
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null)
			{
				if ((Object)(object)player.data.block != (Object)null)
				{
					Block block = player.data.block;
					block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
				}
				if ((Object)(object)player.data.weaponHandler != (Object)null && (Object)(object)player.data.weaponHandler.gun != (Object)null)
				{
					Gun gun = player.data.weaponHandler.gun;
					gun.ShootPojectileAction = (Action<GameObject>)Delegate.Combine(gun.ShootPojectileAction, new Action<GameObject>(OnShoot));
				}
			}
		}

		private void OnDestroy()
		{
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null)
			{
				if ((Object)(object)player.data.block != (Object)null)
				{
					Block block = player.data.block;
					block.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
				}
				if ((Object)(object)player.data.weaponHandler != (Object)null && (Object)(object)player.data.weaponHandler.gun != (Object)null)
				{
					Gun gun = player.data.weaponHandler.gun;
					gun.ShootPojectileAction = (Action<GameObject>)Delegate.Remove(gun.ShootPojectileAction, new Action<GameObject>(OnShoot));
				}
			}
		}

		private void OnShoot(GameObject projectile)
		{
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)projectile != (Object)null)
			{
				markPosition = projectile.transform.position;
				hasMark = true;
			}
		}

		private void OnBlock(BlockTriggerType trigger)
		{
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			if (hasMark && (Object)(object)player != (Object)null)
			{
				((Component)player).transform.position = markPosition;
				hasMark = false;
			}
		}
	}
	public class RulersAuthorityEffect : MonoBehaviour
	{
		private Player player;

		private void Start()
		{
			player = ((Component)this).GetComponent<Player>();
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.block != (Object)null)
			{
				Block block = player.data.block;
				block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			}
		}

		private void OnDestroy()
		{
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.block != (Object)null)
			{
				Block block = player.data.block;
				block.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			}
		}

		private void OnBlock(BlockTriggerType trigger)
		{
			//IL_009d: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fd: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)player == (Object)null || (Object)(object)PlayerManager.instance == (Object)null)
			{
				return;
			}
			for (int i = 0; i < PlayerManager.instance.players.Count; i++)
			{
				Player val = PlayerManager.instance.players[i];
				if ((Object)(object)val != (Object)null && val.playerID != player.playerID && val.teamID != player.teamID && (Object)(object)val.data != (Object)null && !val.data.dead && Vector2.Distance(Vector2.op_Implicit(((Component)val).transform.position), Vector2.op_Implicit(((Component)player).transform.position)) < 12f)
				{
					if ((Object)(object)val.data.healthHandler != (Object)null)
					{
						val.data.healthHandler.TakeForce(Vector2.up * 28f, (ForceMode2D)1, false, false, 0f);
					}
					if ((Object)(object)val.data.stunHandler != (Object)null)
					{
						val.data.stunHandler.AddStun(0.75f);
					}
				}
			}
		}
	}
	public class IAmAtomicEffect : MonoBehaviour
	{
		private Player player;

		private void Start()
		{
			player = ((Component)this).GetComponent<Player>();
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.block != (Object)null)
			{
				Block block = player.data.block;
				block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			}
		}

		private void OnDestroy()
		{
			if ((Object)(object)player != (Object)null && (Object)(object)player.data != (Object)null && (Object)(object)player.data.block != (Object)null)
			{
				Block block = player.data.block;
				block.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			}
		}

		private void OnBlock(BlockTriggerType trigger)
		{
			//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0104: Unknown result type (might be due to invalid IL or missing references)
			//IL_0109: Unknown result type (might be due to invalid IL or missing references)
			//IL_0121: Unknown result type (might be due to invalid IL or missing references)
			//IL_0126: Unknown result type (might be due to invalid IL or missing references)
			//IL_0157: Unknown result type (might be due to invalid IL or missing references)
			//IL_0162: Unknown result type (might be due to invalid IL or missing references)
			//IL_0167: Unknown result type (might be due to invalid IL or missing references)
			//IL_016c: Unknown result type (might be due to invalid IL or missing references)
			//IL_018b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0191: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)player == (Object)null || (Object)(object)PlayerManager.instance == (Object)null)
			{
				return;
			}
			for (int i = 0; i < PlayerManager.instance.players.Count; i++)
			{
				Player val = PlayerManager.instance.players[i];
				if (!((Object)(object)val != (Object)null) || val.playerID == player.playerID || val.teamID == player.teamID || !((Object)(object)val.data != (Object)null) || val.data.dead)
				{
					continue;
				}
				float num = Vector2.Distance(Vector2.op_Implicit(((Component)val).transform.position), Vector2.op_Implicit(((Component)player).transform.position));
				if (num < 18f)
				{
					Vector3 val2 = ((Component)val).transform.position - ((Component)player).transform.position;
					Vector2 val3 = Vector2.op_Implicit(((Vector3)(ref val2)).normalized);
					if (((Vector2)(ref val3)).sqrMagnitude < 0.01f)
					{
						val3 = Vector2.up;
					}
					if ((Object)(object)val.data.healthHandler != (Object)null)
					{
						((Damagable)val.data.healthHandler).TakeDamage(new Vector2(60f, 0f), Vector2.op_Implicit(((Component)val).transform.position), Color.magenta, (GameObject)null, player, true, false);
						val.data.healthHandler.TakeForce(val3 * 40f, (ForceMode2D)1, false, false, 0f);
					}
					if ((Object)(object)val.data.stunHandler != (Object)null)
					{
						val.data.stunHandler.AddStun(1.5f);
					}
				}
			}
		}
	}
	public static class AnimeArtManager
	{
		private static Dictionary<string, GameObject> artPrefabs = new Dictionary<string, GameObject>(StringComparer.OrdinalIgnoreCase);

		private static Dictionary<string, Sprite> artSprites = new Dictionary<string, Sprite>(StringComparer.OrdinalIgnoreCase);

		private static Dictionary<string, Texture2D> artTextures = new Dictionary<string, Texture2D>(StringComparer.OrdinalIgnoreCase);

		private static Dictionary<string, string> normalizedToClass = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);

		private static string artDirectory = "";

		public static void Initialize(string pluginPath)
		{
			if (string.IsNullOrEmpty(pluginPath))
			{
				artDirectory = Path.Combine(Path.GetDirectoryName(typeof(AnimeArtManager).Assembly.Location), "Art");
			}
			else
			{
				artDirectory = Path.Combine(pluginPath, "Art");
			}
			if (!Directory.Exists(artDirectory))
			{
				string path = Path.Combine(Path.GetDirectoryName(typeof(AnimeArtManager).Assembly.Location), "Art");
				if (Directory.Exists(path))
				{
					artDirectory = path;
				}
			}
			Debug.Log((object)("[AnimeCards] Initialized Art Manager at: " + artDirectory));
			try
			{
				if (!Directory.Exists(artDirectory))
				{
					return;
				}
				string[] files = Directory.GetFiles(artDirectory, "*.png");
				string[] array = files;
				foreach (string path2 in array)
				{
					string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(path2);
					string key = NormalizeName(fileNameWithoutExtension);
					if (!normalizedToClass.ContainsKey(key))
					{
						normalizedToClass[key] = fileNameWithoutExtension;
					}
				}
				Debug.Log((object)("[AnimeCards] Indexed " + files.Length + " card art files."));
			}
			catch (Exception ex)
			{
				Debug.LogWarning((object)("[AnimeCards] Error indexing art directory: " + ex.Message));
			}
		}

		public static string NormalizeName(string str)
		{
			if (string.IsNullOrEmpty(str))
			{
				return "";
			}
			StringBuilder stringBuilder = new StringBuilder(str.Length);
			foreach (char c in str)
			{
				if (char.IsLetterOrDigit(c))
				{
					stringBuilder.Append(char.ToLowerInvariant(c));
				}
			}
			return stringBuilder.ToString();
		}

		public static void RegisterCard(string cardTitle, string className)
		{
			if (!string.IsNullOrEmpty(className))
			{
				string key = NormalizeName(className);
				normalizedToClass[key] = className;
			}
			if (!string.IsNullOrEmpty(cardTitle))
			{
				string key2 = NormalizeName(cardTitle);
				normalizedToClass[key2] = className;
			}
		}

		public static string IdentifyCard(CardInfo info)
		{
			if ((Object)(object)info == (Object)null)
			{
				return null;
			}
			AnimeCardBase component = ((Component)info).GetComponent<AnimeCardBase>();
			if ((Object)(object)component != (Object)null)
			{
				return ((object)component).GetType().Name;
			}
			if ((Object)(object)info.sourceCard != (Object)null)
			{
				AnimeCardBase component2 = ((Component)info.sourceCard).GetComponent<AnimeCardBase>();
				if ((Object)(object)component2 != (Object)null)
				{
					return ((object)component2).GetType().Name;
				}
			}
			if (!string.IsNullOrEmpty(info.cardName))
			{
				string text = IdentifyCardByName(info.cardName);
				if (!string.IsNullOrEmpty(text))
				{
					return text;
				}
			}
			if (!string.IsNullOrEmpty(((Object)info).name))
			{
				string name = ((Object)info).name.Replace("__ANIME__", "").Replace("(Clone)", "").Trim();
				string text = IdentifyCardByName(name);
				if (!string.IsNullOrEmpty(text))
				{
					return text;
				}
			}
			return null;
		}

		public static string IdentifyCardByName(string name)
		{
			if (string.IsNullOrEmpty(name))
			{
				return null;
			}
			string key = NormalizeName(name);
			if (normalizedToClass.TryGetValue(key, out var value))
			{
				return value;
			}
			string path = Path.Combine(artDirectory, name + ".png");
			if (File.Exists(path))
			{
				normalizedToClass[key] = name;
				return name;
			}
			return null;
		}

		public static GameObject GetCardArt(string cardName)
		{
			if (string.IsNullOrEmpty(cardName))
			{
				return null;
			}
			string text = ResolveCardName(cardName);
			if (artPrefabs.TryGetValue(text, out var value))
			{
				return value;
			}
			GameObject val = CreateArtPrefab(text);
			if ((Object)(object)val != (Object)null)
			{
				artPrefabs[text] = val;
			}
			return val;
		}

		public static Sprite GetCardSprite(string cardName)
		{
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Unknown result type (might be due to invalid IL or missing references)
			if (string.IsNullOrEmpty(cardName))
			{
				return null;
			}
			string text = ResolveCardName(cardName);
			if (artSprites.TryGetValue(text, out var value))
			{
				return value;
			}
			Texture2D val = LoadCardTexture(text);
			if ((Object)(object)val != (Object)null)
			{
				Sprite val2 = Sprite.Create(val, new Rect(0f, 0f, (float)((Texture)val).width, (float)((Texture)val).height), new Vector2(0.5f, 0.5f), 100f);
				((Object)val2).name = "Sprite_" + text;
				artSprites[text] = val2;
				return val2;
			}
			return null;
		}

		public static Texture2D LoadCardTexture(string cardName)
		{
			//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bc: Expected O, but got Unknown
			if (string.IsNullOrEmpty(cardName))
			{
				return null;
			}
			string text = ResolveCardName(cardName);
			if (artTextures.TryGetValue(text, out var value))
			{
				return value;
			}
			try
			{
				string text2 = Path.Combine(artDirectory, text + ".png");
				if (!File.Exists(text2))
				{
					string path = Path.Combine(Path.GetDirectoryName(typeof(AnimeArtManager).Assembly.Location), "Art");
					text2 = Path.Combine(path, text + ".png");
				}
				if (File.Exists(text2))
				{
					byte[] array = File.ReadAllBytes(text2);
					Texture2D val = new Texture2D(2, 2, (TextureFormat)4, false);
					if (ImageConversion.LoadImage(val, array))
					{
						((Texture)val).filterMode = (FilterMode)1;
						((Texture)val).wrapMode = (TextureWrapMode)1;
						((Object)val).name = "Tex_" + text;
						artTextures[text] = val;
						return val;
					}
				}
				else
				{
					Debug.LogWarning((object)("[AnimeCards] Art file not found: " + text2));
				}
			}
			catch (Exception ex)
			{
				Debug.LogWarning((object)("[AnimeCards] Could not load image for " + text + ": " + ex.Message));
			}
			return null;
		}

		private static string ResolveCardName(string cardName)
		{
			string key = NormalizeName(cardName);
			if (normalizedToClass.TryGetValue(key, out var value))
			{
				return value;
			}
			return cardName;
		}

		private static GameObject CreateArtPrefab(string cardName)
		{
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Expected O, but got Unknown
			//IL_0085: 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_00b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00df: Unknown result type (might be due to invalid IL or missing references)
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0115: Unknown result type (might be due to invalid IL or missing references)
			//IL_013f: Unknown result type (might be due to invalid IL or missing references)
			Texture2D val = LoadCardTexture(cardName);
			if ((Object)(object)val == (Object)null)
			{
				return null;
			}
			Sprite cardSprite = GetCardSprite(cardName);
			GameObject val2 = new GameObject("Art_" + cardName, new Type[3]
			{
				typeof(RectTransform),
				typeof(CanvasRenderer),
				typeof(RawImage)
			});
			Object.DontDestroyOnLoad((Object)(object)val2);
			RectTransform component = val2.GetComponent<RectTransform>();
			component.anchorMin = new Vector2(0.5f, 0.5f);
			component.anchorMax = new Vector2(0.5f, 0.5f);
			component.pivot = new Vector2(0.5f, 0.5f);
			component.sizeDelta = new Vector2(260f, 260f);
			component.anchoredPosition = Vector2.zero;
			((Transform)component).localPosition = Vector3.zero;
			((Transform)component).localScale = Vector3.one;
			((Transform)component).localRotation = Quaternion.identity;
			RawImage component2 = val2.GetComponent<RawImage>();
			component2.texture = (Texture)(object)val;
			((Graphic)component2).color = Color.white;
			((Graphic)component2).raycastTarget = false;
			component2.uvRect = new Rect(0f, 0f, 1f, 1f);
			CardArtAdjuster cardArtAdjuster = val2.AddComponent<CardArtAdjuster>();
			cardArtAdjuster.texture = val;
			cardArtAdjuster.sprite = cardSprite;
			val2.SetActive(true);
			return val2;
		}
	}
	public class CardArtAdjuster : MonoBehaviour
	{
		public Texture2D texture;

		public Sprite sprite;

		private void Awake()
		{
			Adjust();
		}

		private void Start()
		{
			Adjust();
		}

		private void OnEnable()
		{
			Adjust();
		}

		public void Adjust()
		{
			//IL_0014: 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_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0193: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Unknown result type (might be due to invalid IL or missing references)
			//IL_0101: Unknown result type (might be due to invalid IL or missing references)
			//IL_0117: Unknown result type (might be due to invalid IL or missing references)
			//IL_012d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0143: Unknown result type (might be due to invalid IL or missing references)
			//IL_014f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cf: 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_00e7: Unknown result type (might be due to invalid IL or missing references)
			((Component)this).gameObject.SetActive(true);
			((Component)this).transform.localPosition = Vector3.zero;
			((Component)this).transform.localScale = Vector3.one;
			((Component)this).transform.localRotation = Quaternion.identity;
			RectTransform component = ((Component)this).GetComponent<RectTransform>();
			if ((Object)(object)component != (Object)null)
			{
				Transform parent = ((Component)this).transform.parent;
				RectTransform val = (RectTransform)(object)((parent is RectTransform) ? parent : null);
				if ((Object)(object)val != (Object)null)
				{
					Rect rect = val.rect;
					if (((Rect)(ref rect)).width > 30f)
					{
						rect = val.rect;
						if (((Rect)(ref rect)).height > 30f)
						{
							component.anchorMin = Vector2.zero;
							component.anchorMax = Vector2.one;
							component.pivot = new Vector2(0.5f, 0.5f);
							component.offsetMin = Vector2.zero;
							component.offsetMax = Vector2.zero;
							goto IL_015c;
						}
					}
				}
				component.anchorMin = new Vector2(0.5f, 0.5f);
				component.anchorMax = new Vector2(0.5f, 0.5f);
				component.pivot = new Vector2(0.5f, 0.5f);
				component.sizeDelta = new Vector2(260f, 260f);
				component.anchoredPosition = Vector2.zero;
			}
			goto IL_015c;
			IL_015c:
			RawImage component2 = ((Component)this).GetComponent<RawImage>();
			if ((Object)(object)component2 != (Object)null)
			{
				if ((Object)(object)texture != (Object)null)
				{
					component2.texture = (Texture)(object)texture;
				}
				((Graphic)component2).color = Color.white;
				((Behaviour)component2).enabled = true;
			}
		}
	}
	[HarmonyPatch(typeof(CardInfoDisplayer), "DrawCard")]
	public class CardInfoDisplayer_DrawCard_Patch
	{
		public static void Postfix(CardInfoDisplayer __instance, Sprite image)
		{
			//IL_005d: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)__instance != (Object)null && (Object)(object)__instance.icon != (Object)null && (Object)(object)image != (Object)null)
			{
				((Component)__instance.icon).gameObject.SetActive(true);
				((Behaviour)__instance.icon).enabled = true;
				__instance.icon.sprite = image;
				((Graphic)__instance.icon).color = Color.white;
				__instance.icon.preserveAspect = true;
			}
		}
	}
	[HarmonyPatch(typeof(CardInfo), "Awake")]
	public class CardInfo_Awake_Patch
	{
		public static void Postfix(CardInfo __instance)
		{
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)__instance == (Object)null)
			{
				return;
			}
			try
			{
				string text = AnimeArtManager.IdentifyCard(__instance);
				if (string.IsNullOrEmpty(text))
				{
					return;
				}
				Sprite cardSprite = AnimeArtManager.GetCardSprite(text);
				if ((Object)(object)cardSprite != (Object)null)
				{
					__instance.sprite = cardSprite;
					__instance.cardArt = null;
					CardInfoDisplayer val = null;
					if ((Object)(object)__instance.cardBase != (Object)null)
					{
						val = __instance.cardBase.GetComponent<CardInfoDisplayer>();
					}
					if ((Object)(object)val == (Object)null)
					{
						val = ((Component)__instance).GetComponentInChildren<CardInfoDisplayer>(true);
					}
					if ((Object)(object)val != (Object)null && (Object)(object)val.icon != (Object)null)
					{
						((Component)val.icon).gameObject.SetActive(true);
						((Behaviour)val.icon).enabled = true;
						val.icon.sprite = cardSprite;
						((Graphic)val.icon).color = Color.white;
						val.icon.preserveAspect = true;
					}
				}
			}
			catch (Exception ex)
			{
				Debug.LogWarning((object)("[AnimeCards] CardInfo.Awake Postfix exception: " + ex.Message));
			}
		}
	}
	public static class AnimeBulletCatalog
	{
		public static readonly Dictionary<string, AnimeAbilityVisualConfig> Configs;

		static AnimeBulletCatalog()
		{
			Configs = new Dictionary<string, AnimeAbilityVisualConfig>(500);
			Configs["EdwardTransmutation"] = new AnimeAbilityVisualConfig(BulletArchetype.MagicSigil, BulletAnimMode.Spin, "#ffcc44", 1.4f, 180f, 1.7f, 0.45f);
			Configs["RoyMustangFlame"] = new AnimeAbilityVisualConfig(BulletArchetype.FlameBurst, BulletAnimMode.FlameJitter, "#ff5533", 1.35f, 0f, 1.9f, 0.5f);
			Configs["AlphonseIronBody"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#7799cc", 1.3f, 0f, 1.7f, 0.45f);
			Configs["GutsDragonslayer"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#ee3333", 1.25f, 0f, 1.3f, 0.45f);
			Configs["GutsBerserkerArmor"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#bb1111", 1.4f, 0f, 1.6f, 0.45f);
			Configs["ErenAttackTitan"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ee5533", 1.4f, 0f, 1.6f, 0.45f);
			Configs["ErenFoundingTitan"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#dd2222", 1.4f, 0f, 1.6f, 0.45f);
			Configs["ErenHardening"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#6699bb", 1.4f, 0f, 1.6f, 0.45f);
			Configs["LeviBeybladeSlash"] = new AnimeAbilityVisualConfig(BulletArchetype.ChakraVortex, BulletAnimMode.Spin, "#55aadd", 1.35f, 720f, 1.8f, 0.45f);
			Configs["LeviBeastSlayer"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#3388cc", 1.4f, 0f, 1.6f, 0.45f);
			Configs["MikasaThunderSpear"] = new AnimeAbilityVisualConfig(BulletArchetype.LightningSpear, BulletAnimMode.Directional, "#ee7733", 1.3f, 0f, 1.4f, 0.35f);
			Configs["ArminColossalBlast"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ffaa22", 1.4f, 0f, 1.6f, 0.45f);
			Configs["ReinerArmoredCharge"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#dd9933", 1.4f, 0f, 1.6f, 0.45f);
			Configs["AstaAntiMagicSword"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#aa44ee", 1.25f, 0f, 1.3f, 0.45f);
			Configs["AstaBlackDivider"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#cc33ee", 1.3f, 0f, 1.7f, 0.45f);
			Configs["AstaDemonForm"] = new AnimeAbilityVisualConfig(BulletArchetype.BloodScythe, BulletAnimMode.Directional, "#ff33ff", 1.4f, 0f, 1.6f, 0.45f);
			Configs["YunoSpiritOfZephyr"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#55ff99", 1.3f, 0f, 1.7f, 0.45f);
			Configs["YunoSpiritStorm"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#44ee88", 1.3f, 0f, 1.7f, 0.45f);
			Configs["YamiDimensionSlash"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#bb33ee", 1.5f, 0f, 1.8f, 0.45f);
			Configs["YamiBlackHole"] = new AnimeAbilityVisualConfig(BulletArchetype.CosmicVoid, BulletAnimMode.Pulse, "#8822cc", 1.5f, 0f, 2f, 0.6f);
			Configs["NoelleValkyrieArmor"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#55bbee", 1.3f, 0f, 1.7f, 0.45f);
			Configs["IchigoGetsugaTenshou"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#55bbff", 1.5f, 0f, 1.8f, 0.45f);
			Configs["IchigoBankai"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ff4444", 1.4f, 0f, 1.6f, 0.45f);
			Configs["IchigoHollowMask"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ee2233", 1.4f, 0f, 1.6f, 0.45f);
			Configs["IchigoMugetsu"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#aa44ee", 1.5f, 0f, 1.8f, 0.45f);
			Configs["AizenKyokaSuigetsu"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#6699ee", 1.4f, 0f, 1.6f, 0.45f);
			Configs["AizenHogyoku"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#cc55ee", 1.4f, 0f, 1.6f, 0.45f);
			Configs["KenpachiSpiritualPressure"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ee5522", 1.4f, 0f, 1.6f, 0.45f);
			Configs["ByakuyaSenbonzakura"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ff66cc", 1.4f, 0f, 1.6f, 0.45f);
			Configs["YamamotoZankaNoTachi"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ff5511", 1.4f, 0f, 1.6f, 0.45f);
			Configs["UraharaBenihime"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ee3344", 1.4f, 0f, 1.6f, 0.45f);
			Configs["DenjiChainsawRev"] = new AnimeAbilityVisualConfig(BulletArchetype.BloodScythe, BulletAnimMode.Directional, "#ff5522", 1.4f, 0f, 1.6f, 0.45f);
			Configs["DenjiBloodRevive"] = new AnimeAbilityVisualConfig(BulletArchetype.BloodScythe, BulletAnimMode.Directional, "#ee3322", 1.4f, 0f, 1.6f, 0.45f);
			Configs["MakimaBang"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff5577", 1.3f, 0f, 1.7f, 0.45f);
			Configs["MakimaControlContract"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#dd3366", 1.3f, 0f, 1.7f, 0.45f);
			Configs["AkiFoxDevilKon"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffaa22", 1.3f, 0f, 1.7f, 0.45f);
			Configs["AkiCurseSword"] = new AnimeAbilityVisualConfig(BulletArchetype.CosmicVoid, BulletAnimMode.Pulse, "#aa3333", 1.5f, 0f, 2f, 0.6f);
			Configs["PowerBloodWeapons"] = new AnimeAbilityVisualConfig(BulletArchetype.BloodScythe, BulletAnimMode.Directional, "#ff4466", 1.4f, 0f, 1.6f, 0.45f);
			Configs["KishibeVeteranInstincts"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#77aacc", 1.3f, 0f, 1.7f, 0.45f);
			Configs["TanjiroHinokami"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ff4422", 1.4f, 0f, 1.6f, 0.45f);
			Configs["TanjiroWaterBreathing"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#44aaff", 1.4f, 0f, 1.6f, 0.45f);
			Configs["ZenitsuThunderclap"] = new AnimeAbilityVisualConfig(BulletArchetype.LightningSpear, BulletAnimMode.Directional, "#ffdd33", 1.3f, 0f, 1.4f, 0.35f);
			Configs["InosukeBeastBreathing"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#55bbdd", 1.4f, 0f, 1.6f, 0.45f);
			Configs["RengokuNinthForm"] = new AnimeAbilityVisualConfig(BulletArchetype.FlameBurst, BulletAnimMode.FlameJitter, "#ff5522", 1.35f, 0f, 1.9f, 0.5f);
			Configs["GiyuDeadCalm"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#3388dd", 1.4f, 0f, 1.6f, 0.45f);
			Configs["AkazaDestructiveDeath"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#55ddff", 1.4f, 0f, 1.6f, 0.45f);
			Configs["MuzanDemonBlood"] = new AnimeAbilityVisualConfig(BulletArchetype.BloodScythe, BulletAnimMode.Directional, "#cc1133", 1.4f, 0f, 1.6f, 0.45f);
			Configs["GokuKamehameha"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#44aaff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["GokuKaioken"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ee2233", 1.3f, 0f, 1.7f, 0.45f);
			Configs["GokuUltraInstinct"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffffff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["GokuSpiritBomb"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#55ccff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["GokuInstantTransmission"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffdd44", 1.3f, 0f, 1.7f, 0.45f);
			Configs["VegetaFinalFlash"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffee44", 1.3f, 0f, 1.7f, 0.45f);
			Configs["VegetaBigBangAttack"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#66bbff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["VegetaSaiyanPride"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ee4444", 1.3f, 0f, 1.7f, 0.45f);
			Configs["TrunksShiningSword"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#66aacc", 1.25f, 0f, 1.3f, 0.45f);
			Configs["PiccoloSpecialBeamCannon"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#aa44ee", 1.3f, 0f, 1.7f, 0.45f);
			Configs["GilgameshGateOfBabylon"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#ffdd44", 1.25f, 0f, 1.3f, 0.45f);
			Configs["GilgameshEnumaElish"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff4433", 1.3f, 0f, 1.7f, 0.45f);
			Configs["ArtoriaExcalibur"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#ffee55", 1.25f, 0f, 1.3f, 0.45f);
			Configs["ArtoriaAvalon"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#55bbff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["EmiyaUnlimitedBladeWorks"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#ff6633", 1.25f, 0f, 1.3f, 0.45f);
			Configs["EmiyaCaladbolg"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#ffaa22", 1.25f, 0f, 1.3f, 0.45f);
			Configs["CuChulainnGaeBolg"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#ee3344", 1.25f, 0f, 1.3f, 0.45f);
			Configs["HeraclesGodHand"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#cc2222", 1.3f, 0f, 1.7f, 0.45f);
			Configs["GonJajankenRock"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffaa22", 1.3f, 0f, 1.7f, 0.45f);
			Configs["GonAdultTransformation"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#222222", 1.3f, 0f, 1.7f, 0.45f);
			Configs["KilluaGodspeed"] = new AnimeAbilityVisualConfig(BulletArchetype.LightningSpear, BulletAnimMode.Directional, "#55ddff", 1.3f, 0f, 1.4f, 0.35f);
			Configs["KilluaThunderbolt"] = new AnimeAbilityVisualConfig(BulletArchetype.LightningSpear, BulletAnimMode.Directional, "#ffee44", 1.3f, 0f, 1.4f, 0.35f);
			Configs["KurapikaEmperorTime"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ee2233", 1.3f, 0f, 1.7f, 0.45f);
			Configs["KurapikaJudgmentChain"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffcc33", 1.3f, 0f, 1.7f, 0.45f);
			Configs["HisokaBungeeGum"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff55bb", 1.3f, 0f, 1.7f, 0.45f);
			Configs["NeteroGuanyin"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffdd44", 1.3f, 0f, 1.7f, 0.45f);
			Configs["MeguminExplosion"] = new AnimeAbilityVisualConfig(BulletArchetype.MagicSigil, BulletAnimMode.Spin, "#ff4422", 1.4f, 180f, 1.7f, 0.45f);
			Configs["KazumaSteal"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#55cc77", 1.3f, 0f, 1.7f, 0.45f);
			Configs["KazumaSnipe"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#66bb55", 1.3f, 0f, 1.7f, 0.45f);
			Configs["AquaGodBlow"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#44aaff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["SubaruReturnByDeath"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#aa44cc", 1.3f, 0f, 1.7f, 0.45f);
			Configs["RemOniDemon"] = new AnimeAbilityVisualConfig(BulletArchetype.BloodScythe, BulletAnimMode.Directional, "#55aaee", 1.4f, 0f, 1.6f, 0.45f);
			Configs["EmiliaIceBrand"] = new AnimeAbilityVisualConfig(BulletArchetype.IceCrystal, BulletAnimMode.Directional, "#66bbff", 1.25f, 0f, 1.4f, 0.45f);
			Configs["JuliusRainbowSpirits"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#eedd44", 1.25f, 0f, 1.3f, 0.45f);
			Configs["DioTheWorld"] = new AnimeAbilityVisualConfig(BulletArchetype.CosmicVoid, BulletAnimMode.Pulse, "#ffdd33", 1.5f, 0f, 2f, 0.6f);
			Configs["DioMudaMuda"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffaa11", 1.3f, 0f, 1.7f, 0.45f);
			Configs["DioVampire"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#cc2233", 1.3f, 0f, 1.7f, 0.45f);
			Configs["JotaroStarPlatinum"] = new AnimeAbilityVisualConfig(BulletArchetype.StarBurst, BulletAnimMode.Spin, "#aa44ee", 1.3f, 360f, 1.5f, 0.45f);
			Configs["JotaroTimeStopCounter"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#5599ff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["GiornoGoldenExperience"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffee33", 1.3f, 0f, 1.7f, 0.45f);
			Configs["JosukeCrazyDiamond"] = new AnimeAbilityVisualConfig(BulletArchetype.IceCrystal, BulletAnimMode.Directional, "#55bbff", 1.25f, 0f, 1.4f, 0.45f);
			Configs["KiraKillerQueen"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff66aa", 1.3f, 0f, 1.7f, 0.45f);
			Configs["KiraBitesTheDust"] = new AnimeAbilityVisualConfig(BulletArchetype.BloodScythe, BulletAnimMode.Directional, "#ee4488", 1.4f, 0f, 1.6f, 0.45f);
			Configs["BrunoStickyFingers"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#5588dd", 1.3f, 0f, 1.7f, 0.45f);
			Configs["GojoLimitless"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#66ccff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["GojoHollowPurple"] = new AnimeAbilityVisualConfig(BulletArchetype.CosmicVoid, BulletAnimMode.Pulse, "#bb33ff", 1.5f, 0f, 2f, 0.6f);
			Configs["GojoInfiniteVoid"] = new AnimeAbilityVisualConfig(BulletArchetype.CosmicVoid, BulletAnimMode.Pulse, "#5588ff", 1.5f, 0f, 2f, 0.6f);
			Configs["GojoSixEyes"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#33bbff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["SukunaMalevolentShrine"] = new AnimeAbilityVisualConfig(BulletArchetype.MagicSigil, BulletAnimMode.Spin, "#ee2233", 1.4f, 180f, 1.7f, 0.45f);
			Configs["SukunaCleave"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#cc1122", 1.5f, 0f, 1.8f, 0.45f);
			Configs["SukunaWorldSlash"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ff3344", 1.5f, 0f, 1.8f, 0.45f);
			Configs["SukunaFlameArrow"] = new AnimeAbilityVisualConfig(BulletArchetype.FlameBurst, BulletAnimMode.FlameJitter, "#ff6622", 1.35f, 0f, 1.9f, 0.5f);
			Configs["YujiBlackFlash"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff2244", 1.3f, 0f, 1.7f, 0.45f);
			Configs["TojiHeavenlyRestriction"] = new AnimeAbilityVisualConfig(BulletArchetype.StarBurst, BulletAnimMode.Spin, "#5599cc", 1.3f, 360f, 1.5f, 0.45f);
			Configs["SimonGigaDrillBreak"] = new AnimeAbilityVisualConfig(BulletArchetype.ChakraVortex, BulletAnimMode.Spin, "#ff7722", 1.35f, 720f, 1.8f, 0.45f);
			Configs["KaminaSpiralPower"] = new AnimeAbilityVisualConfig(BulletArchetype.ChakraVortex, BulletAnimMode.Spin, "#ffaa22", 1.35f, 720f, 1.8f, 0.45f);
			Configs["RyukoScissorBlade"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#ee2244", 1.25f, 0f, 1.3f, 0.45f);
			Configs["ShinjiATField"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff9922", 1.3f, 0f, 1.7f, 0.45f);
			Configs["ShinjiBerserkEva"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#aa33cc", 1.3f, 0f, 1.7f, 0.45f);
			Configs["DekuDetroitSmash"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#44ee77", 1.3f, 0f, 1.7f, 0.45f);
			Configs["DekuFullCowl100"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#33ddff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["DekuBlackwhip"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#22cc88", 1.3f, 0f, 1.7f, 0.45f);
			Configs["BakugoHowitzer"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff7722", 1.3f, 0f, 1.7f, 0.45f);
			Configs["BakugoAPShot"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff9933", 1.3f, 0f, 1.7f, 0.45f);
			Configs["TodorokiFlashfreeze"] = new AnimeAbilityVisualConfig(BulletArchetype.FlameBurst, BulletAnimMode.FlameJitter, "#ff4444", 1.35f, 0f, 1.9f, 0.5f);
			Configs["AllMightUnitedStates"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffcc22", 1.3f, 0f, 1.7f, 0.45f);
			Configs["AllForOneQuirkSteal"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#aa2255", 1.3f, 0f, 1.7f, 0.45f);
			Configs["NarutoRasengan"] = new AnimeAbilityVisualConfig(BulletArchetype.ChakraVortex, BulletAnimMode.Spin, "#44bbff", 1.35f, 720f, 1.8f, 0.45f);
			Configs["NarutoShadowClones"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffaa33", 1.3f, 0f, 1.7f, 0.45f);
			Configs["NarutoSageMode"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff8822", 1.3f, 0f, 1.7f, 0.45f);
			Configs["NarutoBaryonMode"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ee2233", 1.3f, 0f, 1.7f, 0.45f);
			Configs["SasukeChidori"] = new AnimeAbilityVisualConfig(BulletArchetype.LightningSpear, BulletAnimMode.Directional, "#55ccff", 1.3f, 0f, 1.4f, 0.35f);
			Configs["SasukeAmaterasu"] = new AnimeAbilityVisualConfig(BulletArchetype.FlameBurst, BulletAnimMode.FlameJitter, "#222222", 1.35f, 0f, 1.9f, 0.5f);
			Configs["SasukeSusanoo"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#aa44ee", 1.3f, 0f, 1.7f, 0.45f);
			Configs["KakashiKamui"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#5599dd", 1.3f, 0f, 1.7f, 0.45f);
			Configs["ItachiTsukuyomi"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#cc2233", 1.3f, 0f, 1.7f, 0.45f);
			Configs["MadaraTengaiShinsei"] = new AnimeAbilityVisualConfig(BulletArchetype.StarBurst, BulletAnimMode.Spin, "#dd3322", 1.3f, 360f, 1.5f, 0.45f);
			Configs["LuffyGearSecond"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff4455", 1.3f, 0f, 1.7f, 0.45f);
			Configs["LuffyGearFourth"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ee3344", 1.3f, 0f, 1.7f, 0.45f);
			Configs["LuffyGearFifth"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffffff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["LuffyConquerorsHaki"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#cc2233", 1.3f, 0f, 1.7f, 0.45f);
			Configs["ZoroThreeSwordStyle"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#44cc66", 1.25f, 0f, 1.3f, 0.45f);
			Configs["ZoroAshura"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#33aa55", 1.25f, 0f, 1.3f, 0.45f);
			Configs["SanjiDiableJambe"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff6622", 1.3f, 0f, 1.7f, 0.45f);
			Configs["WhitebeardGuraGura"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#55aadd", 1.3f, 0f, 1.7f, 0.45f);
			Configs["TrafalgarLawRoom"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#66ccff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["PortgasDAceFireFist"] = new AnimeAbilityVisualConfig(BulletArchetype.FlameBurst, BulletAnimMode.FlameJitter, "#ff5511", 1.35f, 0f, 1.9f, 0.5f);
			Configs["SaitamaSeriousPunch"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffdd33", 1.3f, 0f, 1.7f, 0.45f);
			Configs["SaitamaConsecutivePunches"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ffcc22", 1.5f, 0f, 1.8f, 0.45f);
			Configs["SaitamaSidewaysJumps"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffee44", 1.3f, 0f, 1.7f, 0.45f);
			Configs["GenosIncineration"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff6611", 1.3f, 0f, 1.7f, 0.45f);
			Configs["GenosCoreOverdrive"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ee4400", 1.3f, 0f, 1.7f, 0.45f);
			Configs["TatsumakiPsychicMeteor"] = new AnimeAbilityVisualConfig(BulletArchetype.StarBurst, BulletAnimMode.Spin, "#55ff88", 1.3f, 360f, 1.5f, 0.45f);
			Configs["TatsumakiPsychicBarrier"] = new AnimeAbilityVisualConfig(BulletArchetype.MagicSigil, BulletAnimMode.Spin, "#44ee77", 1.4f, 180f, 1.7f, 0.45f);
			Configs["GarouCosmicFear"] = new AnimeAbilityVisualConfig(BulletArchetype.CosmicVoid, BulletAnimMode.Pulse, "#aa55ff", 1.5f, 0f, 2f, 0.6f);
			Configs["MobOneHundredPercent"] = new AnimeAbilityVisualConfig(BulletArchetype.MagicSigil, BulletAnimMode.Spin, "#ee55cc", 1.4f, 180f, 1.7f, 0.45f);
			Configs["MobQuestionMark"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#7733cc", 1.3f, 0f, 1.7f, 0.45f);
			Configs["ReigenSaltSplash"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ddbb44", 1.3f, 0f, 1.7f, 0.45f);
			Configs["LightDeathNote"] = new AnimeAbilityVisualConfig(BulletArchetype.CosmicVoid, BulletAnimMode.Pulse, "#cc2222", 1.5f, 0f, 2f, 0.6f);
			Configs["RyukShinigamiEyes"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#aa2233", 1.5f, 0f, 1.8f, 0.45f);
			Configs["LelouchGeass"] = new AnimeAbilityVisualConfig(BulletArchetype.MagicSigil, BulletAnimMode.Spin, "#ee2266", 1.4f, 180f, 1.7f, 0.45f);
			Configs["SuzakuLiveGeass"] = new AnimeAbilityVisualConfig(BulletArchetype.MagicSigil, BulletAnimMode.Spin, "#ffcc33", 1.4f, 180f, 1.7f, 0.45f);
			Configs["CCCodeImmortal"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#55dd88", 1.3f, 0f, 1.7f, 0.45f);
			Configs["BrolyWrathfulSaiyan"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#88ff44", 1.3f, 0f, 1.7f, 0.45f);
			Configs["GohanBeastAwakening"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff4444", 1.3f, 0f, 1.7f, 0.45f);
			Configs["FriezaGoldenEmperor"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffee44", 1.3f, 0f, 1.7f, 0.45f);
			Configs["FriezaBlackDestroyer"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#aa44ff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["CellSolarKamehameha"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#66ff66", 1.3f, 0f, 1.7f, 0.45f);
			Configs["CellNamekianRegen"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#77ee77", 1.3f, 0f, 1.7f, 0.45f);
			Configs["MajinBuuTransfigure"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff99cc", 1.3f, 0f, 1.7f, 0.45f);
			Configs["VegitoSpiritExcalibur"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#88ccff", 1.25f, 0f, 1.3f, 0.45f);
			Configs["GogetaSoulCleanser"] = new AnimeAbilityVisualConfig(BulletArchetype.StarBurst, BulletAnimMode.Spin, "#ffffff", 1.3f, 360f, 1.5f, 0.45f);
			Configs["OrangePiccoloPride"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffa500", 1.3f, 0f, 1.7f, 0.45f);
			Configs["BeerusHakaiSphere"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#cc44ff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["WhisAngelicInstinct"] = new AnimeAbilityVisualConfig(BulletArchetype.StarBurst, BulletAnimMode.Spin, "#88eeff", 1.3f, 360f, 1.5f, 0.45f);
			Configs["HitTimeSkipStrike"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#aa66ff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["TrunksHopeSword"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#66ccff", 1.25f, 0f, 1.3f, 0.45f);
			Configs["PainShinraTensei"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#cc66ff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["PainChibakuTensei"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#bb77ee", 1.3f, 0f, 1.7f, 0.45f);
			Configs["MinatoHiraishin"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffee55", 1.3f, 0f, 1.7f, 0.45f);
			Configs["ObitoKamuiPhase"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#bb55dd", 1.3f, 0f, 1.7f, 0.45f);
			Configs["MadaraSusanooSlash"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#55aaff", 1.5f, 0f, 1.8f, 0.45f);
			Configs["HashiramaThousandHands"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#55ee55", 1.3f, 0f, 1.7f, 0.45f);
			Configs["TobiramaWaterVortex"] = new AnimeAbilityVisualConfig(BulletArchetype.ChakraVortex, BulletAnimMode.Spin, "#44ccee", 1.35f, 720f, 1.8f, 0.45f);
			Configs["TsunadeMitoticHeal"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#66ff99", 1.3f, 0f, 1.7f, 0.45f);
			Configs["JiraiyaSageGiantBall"] = new AnimeAbilityVisualConfig(BulletArchetype.ChakraVortex, BulletAnimMode.Spin, "#ffbb33", 1.35f, 720f, 1.8f, 0.45f);
			Configs["GaaraImperialSand"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffcc66", 1.3f, 0f, 1.7f, 0.45f);
			Configs["RockLeeFifthGate"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#77ff77", 1.3f, 0f, 1.7f, 0.45f);
			Configs["MightGuyNightGuy"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff4422", 1.3f, 0f, 1.7f, 0.45f);
			Configs["NejiEightTrigrams"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#77ccff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["ShikamaruShadowStrangle"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#9966cc", 1.3f, 0f, 1.7f, 0.45f);
			Configs["ShanksKamusari"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff3344", 1.3f, 0f, 1.7f, 0.45f);
			Configs["KaidoBoroBreath"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#44ccff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["KaidoDragonScales"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#55aaee", 1.3f, 0f, 1.7f, 0.45f);
			Configs["BigMomHeavenlyFire"] = new AnimeAbilityVisualConfig(BulletArchetype.FlameBurst, BulletAnimMode.FlameJitter, "#ffaa22", 1.35f, 0f, 1.9f, 0.5f);
			Configs["BlackbeardBlackHole"] = new AnimeAbilityVisualConfig(BulletArchetype.ChakraVortex, BulletAnimMode.Spin, "#8844cc", 1.35f, 720f, 1.8f, 0.45f);
			Configs["DoflamingoBirdcage"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ee66aa", 1.3f, 0f, 1.7f, 0.45f);
			Configs["KatakuriMochiSpear"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#aa66ee", 1.25f, 0f, 1.3f, 0.45f);
			Configs["ZoroKingOfHell"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#55ff88", 1.3f, 0f, 1.7f, 0.45f);
			Configs["SanjiIfritJambe"] = new AnimeAbilityVisualConfig(BulletArchetype.FlameBurst, BulletAnimMode.FlameJitter, "#44bbee", 1.35f, 0f, 1.9f, 0.5f);
			Configs["UsoppPopGreenArsenal"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#77dd44", 1.3f, 0f, 1.7f, 0.45f);
			Configs["FrankyRadicalLaser"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#55eeff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["BrookSoulBlizzard"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#77ddff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["ChopperMonsterRumble"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#bbdd55", 1.3f, 0f, 1.7f, 0.45f);
			Configs["MarcoBluePhoenix"] = new AnimeAbilityVisualConfig(BulletArchetype.FlameBurst, BulletAnimMode.FlameJitter, "#66eeff", 1.35f, 0f, 1.9f, 0.5f);
			Configs["YhwachTheAlmighty"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#bb44ee", 1.4f, 0f, 1.6f, 0.45f);
			Configs["UlquiorraLanzaSpear"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#66ff88", 1.25f, 0f, 1.3f, 0.45f);
			Configs["GrimmjowDesgarronClaws"] = new AnimeAbilityVisualConfig(BulletArchetype.BloodScythe, BulletAnimMode.Directional, "#55eeff", 1.4f, 0f, 1.6f, 0.45f);
			Configs["ToshiroFlashFreeze"] = new AnimeAbilityVisualConfig(BulletArchetype.IceCrystal, BulletAnimMode.Directional, "#88eeff", 1.25f, 0f, 1.4f, 0.45f);
			Configs["GinSoundSpeedSpear"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#ffffff", 1.25f, 0f, 1.3f, 0.45f);
			Configs["ShunsuiShadowKaten"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#cc55ee", 1.4f, 0f, 1.6f, 0.45f);
			Configs["RukiaHakkaWhiteMist"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ffffff", 1.4f, 0f, 1.6f, 0.45f);
			Configs["RenjiBoneSerpent"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ff5544", 1.4f, 0f, 1.6f, 0.45f);
			Configs["ShinjiInversionAroma"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ee55ee", 1.4f, 0f, 1.6f, 0.45f);
			Configs["YoruichiGoddessShunko"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ffdd33", 1.4f, 0f, 1.6f, 0.45f);
			Configs["KisukeRestructureBankai"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ff5577", 1.4f, 0f, 1.6f, 0.45f);
			Configs["MayuriGoldenPoison"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#cc44ee", 1.4f, 0f, 1.6f, 0.45f);
			Configs["ZarakiMeteoricCleaver"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ff4433", 1.5f, 0f, 1.8f, 0.45f);
			Configs["ByakuyaSenkeiCourt"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ff66cc", 1.4f, 0f, 1.6f, 0.45f);
			Configs["YutaRikaTrueBeam"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#44ccff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["YutaAuthenticMutualLove"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#99ccff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["MegumiMahoragaWheel"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#aa44ee", 1.3f, 0f, 1.7f, 0.45f);
			Configs["MegumiChimeraShadow"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#7744aa", 1.3f, 0f, 1.7f, 0.45f);
			Configs["NobaraHairpinNails"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#ff5566", 1.25f, 0f, 1.3f, 0.45f);
			Configs["MakiSoulSplitterKatana"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#ff4455", 1.25f, 0f, 1.3f, 0.45f);
			Configs["HakariJackpotFever"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffdd44", 1.3f, 0f, 1.7f, 0.45f);
			Configs["KashimoMythicalAmber"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#55eeff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["ChosoPiercingBloodLaser"] = new AnimeAbilityVisualConfig(BulletArchetype.BloodScythe, BulletAnimMode.Directional, "#ff3333", 1.4f, 0f, 1.6f, 0.45f);
			Configs["AoiTodoBoogieSwap"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#77aaff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["NanamiSevenThreeStrike"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffbb33", 1.3f, 0f, 1.7f, 0.45f);
			Configs["GetoMaximumUzumakiBeam"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#cc44ff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["MahitoIdlePerfection"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#55eeff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["JogoIronMountainVolcano"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff6622", 1.3f, 0f, 1.7f, 0.45f);
			Configs["DiavoloKingCrimsonErase"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff3366", 1.3f, 0f, 1.7f, 0.45f);
			Configs["PucciMadeInHeavenSpeed"] = new AnimeAbilityVisualConfig(BulletArchetype.StarBurst, BulletAnimMode.Spin, "#ffffff", 1.3f, 360f, 1.5f, 0.45f);
			Configs["PucciCMoonInversion"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#55ff99", 1.3f, 0f, 1.7f, 0.45f);
			Configs["ValentineD4CParallel"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff66cc", 1.3f, 0f, 1.7f, 0.45f);
			Configs["JohnnyTuskActFour"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff55aa", 1.3f, 0f, 1.7f, 0.45f);
			Configs["JosukeSoftAndWetPlunder"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#55eeff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["KarsUltimateFormWings"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#dd44ff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["JosephHermitOverdrive"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#bb44ee", 1.3f, 0f, 1.7f, 0.45f);
			Configs["JonathanSunlightYellowDrive"] = new AnimeAbilityVisualConfig(BulletArchetype.FlameBurst, BulletAnimMode.FlameJitter, "#ffcc22", 1.35f, 0f, 1.9f, 0.5f);
			Configs["WeatherReportStormSnail"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#77ddff", 1.25f, 0f, 1.3f, 0.45f);
			Configs["RisottoMetallicaRazors"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#aabbcc", 1.3f, 0f, 1.7f, 0.45f);
			Configs["RohanHeavensDoorCommand"] = new AnimeAbilityVisualConfig(BulletArchetype.StarBurst, BulletAnimMode.Spin, "#77ee99", 1.3f, 360f, 1.5f, 0.45f);
			Configs["OkuyasuTheHandErase"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#5588ff", 1.5f, 0f, 1.8f, 0.45f);
			Configs["PolnareffArmorOffSpeed"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#cceeff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["MeruemAuraSynthesisKing"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#55ff88", 1.3f, 0f, 1.7f, 0.45f);
			Configs["MeruemPhotonRays"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffee44", 1.3f, 0f, 1.7f, 0.45f);
			Configs["PitouTerpsichoraPuppet"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#55eeff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["PitouDoctorBlytheSurgeon"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#77bbff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["YoupiRageCentaur"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff4422", 1.3f, 0f, 1.7f, 0.45f);
			Configs["ChrolloBanditsSecretBook"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#aa55ee", 1.3f, 0f, 1.7f, 0.45f);
			Configs["FeitanPainPackerSun"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff7722", 1.3f, 0f, 1.7f, 0.45f);
			Configs["IllumiHypnoticNeedles"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#9955cc", 1.3f, 0f, 1.7f, 0.45f);
			Configs["SilvaZoldyckEnergyBombs"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#44ccff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["ZenoDragonDiveRain"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffcc33", 1.3f, 0f, 1.7f, 0.45f);
			Configs["ZekeBeastPitchArtillery"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ee7722", 1.4f, 0f, 1.6f, 0.45f);
			Configs["PieckCartTitanTurretGun"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#77aacc", 1.4f, 0f, 1.6f, 0.45f);
			Configs["PorcoJawTitanShred"] = new AnimeAbilityVisualConfig(BulletArchetype.BloodScythe, BulletAnimMode.Directional, "#ee5544", 1.4f, 0f, 1.6f, 0.45f);
			Configs["WarhammerCrystalSpikesForest"] = new AnimeAbilityVisualConfig(BulletArchetype.IceCrystal, BulletAnimMode.Directional, "#ffffff", 1.25f, 0f, 1.4f, 0.45f);
			Configs["ErwinSoldiersRageCharge"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ffcc33", 1.4f, 0f, 1.6f, 0.45f);
			Configs["HangeThunderVolleyBarrage"] = new AnimeAbilityVisualConfig(BulletArchetype.LightningSpear, BulletAnimMode.Directional, "#ffaa22", 1.3f, 0f, 1.4f, 0.35f);
			Configs["FlochDevilsRetribution"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ee4444", 1.4f, 0f, 1.6f, 0.45f);
			Configs["AnnieHardenedCrystalCocoon"] = new AnimeAbilityVisualConfig(BulletArchetype.IceCrystal, BulletAnimMode.Directional, "#77eeff", 1.25f, 0f, 1.4f, 0.45f);
			Configs["BertholdtColossalSteamShock"] = new AnimeAbilityVisualConfig(BulletArchetype.LightningSpear, BulletAnimMode.Directional, "#ff7733", 1.3f, 0f, 1.4f, 0.35f);
			Configs["JeanODMGrappleStrike"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#66bbee", 1.4f, 0f, 1.6f, 0.45f);
			Configs["KokushiboMoonBreathingSlashes"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#aa44ee", 1.5f, 0f, 1.8f, 0.45f);
			Configs["DomaIceLotusFreezingMist"] = new AnimeAbilityVisualConfig(BulletArchetype.IceCrystal, BulletAnimMode.Directional, "#66eeff", 1.25f, 0f, 1.4f, 0.45f);
			Configs["GyutaroBloodSicklesBoomerang"] = new AnimeAbilityVisualConfig(BulletArchetype.BloodScythe, BulletAnimMode.Directional, "#ee3333", 1.4f, 0f, 1.6f, 0.45f);
			Configs["DakiRazorSilkObi"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ee55bb", 1.5f, 0f, 1.8f, 0.45f);
			Configs["ZohakutenThunderDragonsDrum"] = new AnimeAbilityVisualConfig(BulletArchetype.LightningSpear, BulletAnimMode.Directional, "#ffbb22", 1.3f, 0f, 1.4f, 0.35f);
			Configs["YoriichiFourteenthSunForm"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ff5511", 1.4f, 0f, 1.6f, 0.45f);
			Configs["ShinobuWisteriaSting"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#bb55ee", 1.4f, 0f, 1.6f, 0.45f);
			Configs["SanemiDustWhirlwindGale"] = new AnimeAbilityVisualConfig(BulletArchetype.ChakraVortex, BulletAnimMode.Spin, "#66ff99", 1.35f, 720f, 1.8f, 0.45f);
			Configs["GyomeiStoneFlailAxe"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#eeaa44", 1.4f, 0f, 1.6f, 0.45f);
			Configs["MuichiroHazeMistSlash"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#66eeff", 1.5f, 0f, 1.8f, 0.45f);
			Configs["ShigarakiDecayWaveAwaken"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#aa44cc", 1.5f, 0f, 1.8f, 0.45f);
			Configs["ShigarakiApexAllForOne"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#cc33ee", 1.3f, 0f, 1.7f, 0.45f);
			Configs["DabiBlueProminenceBurn"] = new AnimeAbilityVisualConfig(BulletArchetype.FlameBurst, BulletAnimMode.FlameJitter, "#44bbee", 1.35f, 0f, 1.9f, 0.5f);
			Configs["TwiceSadManParadeSwarm"] = new AnimeAbilityVisualConfig(BulletArchetype.IceCrystal, BulletAnimMode.Directional, "#99aabb", 1.25f, 0f, 1.4f, 0.45f);
			Configs["EndeavorHellflameJet"] = new AnimeAbilityVisualConfig(BulletArchetype.FlameBurst, BulletAnimMode.FlameJitter, "#ff5511", 1.35f, 0f, 1.9f, 0.5f);
			Configs["HawksFierceWingsFlurry"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#ff4455", 1.25f, 0f, 1.3f, 0.45f);
			Configs["MirioLemillionPermeationPhase"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffdd44", 1.3f, 0f, 1.7f, 0.45f);
			Configs["TamakiSuneaterChimeraBeast"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#55aaee", 1.3f, 0f, 1.7f, 0.45f);
			Configs["TokoyamiDarkShadowAbyssForm"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#8844bb", 1.3f, 0f, 1.7f, 0.45f);
			Configs["OverhaulMolecularCleaveFlesh"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ee3388", 1.5f, 0f, 1.8f, 0.45f);
			Configs["BlastDimensionalGate"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#aa66ff", 1.3f, 0f, 1.7f, 0.45f);
			Configs["CosmicGarouAllFiction"] = new AnimeAbilityVisualConfig(BulletArchetype.CosmicVoid, BulletAnimMode.Pulse, "#9955ff", 1.5f, 0f, 2f, 0.6f);
			Configs["GarouMonsterCalamity"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff4422", 1.3f, 0f, 1.7f, 0.45f);
			Configs["AtomicSamuraiSlashAtomic"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ffcc33", 1.5f, 0f, 1.8f, 0.45f);
			Configs["FlashyFlashFlowingShadow"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffff55", 1.3f, 0f, 1.7f, 0.45f);
			Configs["SilverFangWaterStreamRock"] = new AnimeAbilityVisualConfig(BulletArchetype.BloodScythe, BulletAnimMode.Directional, "#55aaee", 1.4f, 0f, 1.6f, 0.45f);
			Configs["TatsumakiTornadoTwister"] = new AnimeAbilityVisualConfig(BulletArchetype.ChakraVortex, BulletAnimMode.Spin, "#55ff88", 1.35f, 720f, 1.8f, 0.45f);
			Configs["MetalBatFightingSpirit"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ee4444", 1.3f, 0f, 1.7f, 0.45f);
			Configs["KingEngineIntimidation"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#aa55cc", 1.3f, 0f, 1.7f, 0.45f);
			Configs["ZombiemanUndyingResolve"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#66dd88", 1.3f, 0f, 1.7f, 0.45f);
			Configs["HeroOfHellPochita"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff8833", 1.3f, 0f, 1.7f, 0.45f);
			Configs["GunDevilTwentyPercent"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff5544", 1.3f, 0f, 1.7f, 0.45f);
			Configs["DarknessDevilCosmicFear"] = new AnimeAbilityVisualConfig(BulletArchetype.CosmicVoid, BulletAnimMode.Pulse, "#7733aa", 1.5f, 0f, 2f, 0.6f);
			Configs["ControlDevilBang"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff5577", 1.3f, 0f, 1.7f, 0.45f);
			Configs["WarDevilYoruWeapon"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff4488", 1.3f, 0f, 1.7f, 0.45f);
			Configs["BloodDevilPowerPrimal"] = new AnimeAbilityVisualConfig(BulletArchetype.BloodScythe, BulletAnimMode.Directional, "#ff4466", 1.4f, 0f, 1.6f, 0.45f);
			Configs["AkiKonFoxShrine"] = new AnimeAbilityVisualConfig(BulletArchetype.MagicSigil, BulletAnimMode.Spin, "#ffaa22", 1.4f, 180f, 1.7f, 0.45f);
			Configs["KishibeRuthlessVeteran"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#77aacc", 1.3f, 0f, 1.7f, 0.45f);
			Configs["AngelDevilLifespanHalo"] = new AnimeAbilityVisualConfig(BulletArchetype.StarBurst, BulletAnimMode.Spin, "#ffff77", 1.3f, 360f, 1.5f, 0.45f);
			Configs["KobeniCarLuckyStumble"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#66dd99", 1.3f, 0f, 1.7f, 0.45f);
			Configs["AstaDevilUnionForm"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#aa44ee", 1.3f, 0f, 1.7f, 0.45f);
			Configs["YunoStarMagicConjunction"] = new AnimeAbilityVisualConfig(BulletArchetype.StarBurst, BulletAnimMode.Spin, "#55ff99", 1.3f, 360f, 1.5f, 0.45f);
			Configs["YamiDarkCloakedDimensionSlash"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#bb33ee", 1.5f, 0f, 1.8f, 0.45f);
			Configs["NoelleValkyrieDressWater"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#55bbee", 1.3f, 0f, 1.7f, 0.45f);
			Configs["JuliusChronoStasisTime"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#44bbee", 1.3f, 0f, 1.7f, 0.45f);
			Configs["MereoleonaHellfireIncarnate"] = new AnimeAbilityVisualConfig(BulletArchetype.FlameBurst, BulletAnimMode.FlameJitter, "#ff6633", 1.35f, 0f, 1.9f, 0.5f);
			Configs["FuegoleonSalamanderClaw"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff7733", 1.3f, 0f, 1.7f, 0.45f);
			Configs["LumiereFirstWizardKing"] = new AnimeAbilityVisualConfig(BulletArchetype.MagicSigil, BulletAnimMode.Spin, "#ffff55", 1.4f, 180f, 1.7f, 0.45f);
			Configs["LichtSwordMagicCreation"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#ffdd44", 1.25f, 0f, 1.3f, 0.45f);
			Configs["DanteGravitySingularity"] = new AnimeAbilityVisualConfig(BulletArchetype.CosmicVoid, BulletAnimMode.Pulse, "#aa44ee", 1.5f, 0f, 2f, 0.6f);
			Configs["GilgameshGateOfBabylonRain"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#ffdd44", 1.25f, 0f, 1.3f, 0.45f);
			Configs["GilgameshEnumaElishVoid"] = new AnimeAbilityVisualConfig(BulletArchetype.CosmicVoid, BulletAnimMode.Pulse, "#ff5533", 1.5f, 0f, 2f, 0.6f);
			Configs["SaberExcaliburSwordOfLight"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#ffff44", 1.25f, 0f, 1.3f, 0.45f);
			Configs["ArcherUnlimitedBladeWorksChant"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#ff7733", 1.25f, 0f, 1.3f, 0.45f);
			Configs["CuChulainnGaeBolgPiercing"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#ff4455", 1.25f, 0f, 1.3f, 0.45f);
			Configs["KarnaVasaviShaktiSun"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffcc33", 1.3f, 0f, 1.7f, 0.45f);
			Configs["AlexanderIonioiHetairoiArmy"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff8833", 1.3f, 0f, 1.7f, 0.45f);
			Configs["BerserkerGodHandTwelve"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ee4433", 1.3f, 0f, 1.7f, 0.45f);
			Configs["MedusaBellerophonPegasus"] = new AnimeAbilityVisualConfig(BulletArchetype.StarBurst, BulletAnimMode.Spin, "#aa44ee", 1.3f, 360f, 1.5f, 0.45f);
			Configs["MorganRhongomyniadSpear"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#5599ee", 1.25f, 0f, 1.3f, 0.45f);
			Configs["EdwardAlchemicTransmutation"] = new AnimeAbilityVisualConfig(BulletArchetype.MagicSigil, BulletAnimMode.Spin, "#ffcc44", 1.4f, 180f, 1.7f, 0.45f);
			Configs["AlphonseSoulBondedArmor"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#7799cc", 1.3f, 0f, 1.7f, 0.45f);
			Configs["RoyMustangFlameAlchemySnap"] = new AnimeAbilityVisualConfig(BulletArchetype.LightningSpear, BulletAnimMode.Directional, "#ff5533", 1.3f, 0f, 1.4f, 0.35f);
			Configs["AlexLouisArmstrongMuscles"] = new AnimeAbilityVisualConfig(BulletArchetype.MagicSigil, BulletAnimMode.Spin, "#ff66aa", 1.4f, 180f, 1.7f, 0.45f);
			Configs["KingBradleyUltimateEyeSword"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#ee3344", 1.25f, 0f, 1.3f, 0.45f);
			Configs["GreedUltimateShieldCarbon"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#6699bb", 1.3f, 0f, 1.7f, 0.45f);
			Configs["ScarDestructionDeconstruct"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff4455", 1.3f, 0f, 1.7f, 0.45f);
			Configs["FatherPhilosopherStoneGod"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffdd33", 1.3f, 0f, 1.7f, 0.45f);
			Configs["SimonSuperTengenToppa"] = new AnimeAbilityVisualConfig(BulletArchetype.ChakraVortex, BulletAnimMode.Spin, "#ff8822", 1.35f, 720f, 1.8f, 0.45f);
			Configs["KaminaSpiralSoulUnbreakable"] = new AnimeAbilityVisualConfig(BulletArchetype.ChakraVortex, BulletAnimMode.Spin, "#ffaa22", 1.35f, 720f, 1.8f, 0.45f);
			Configs["RyukoKisaragiScissorBlade"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#ff4466", 1.25f, 0f, 1.3f, 0.45f);
			Configs["SatsukiJunketsuDomination"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#5599ee", 1.3f, 0f, 1.7f, 0.45f);
			Configs["DavidMartinezSandevistanOverdrive"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#66ff88", 1.3f, 0f, 1.7f, 0.45f);
			Configs["LucyDeepDiveNetrunning"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#bb55ee", 1.3f, 0f, 1.7f, 0.45f);
			Configs["RebeccaShotgunCarnage"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff4488", 1.3f, 0f, 1.7f, 0.45f);
			Configs["LelouchAbsoluteGeassCommand"] = new AnimeAbilityVisualConfig(BulletArchetype.MagicSigil, BulletAnimMode.Spin, "#ee2266", 1.4f, 180f, 1.7f, 0.45f);
			Configs["SuzakuLancelotSpinSpinkick"] = new AnimeAbilityVisualConfig(BulletArchetype.ChakraVortex, BulletAnimMode.Spin, "#ffcc33", 1.35f, 720f, 1.8f, 0.45f);
			Configs["ShinjiIkariBerserkUnit01"] = new AnimeAbilityVisualConfig(BulletArchetype.StarBurst, BulletAnimMode.Spin, "#aa44ee", 1.3f, 360f, 1.5f, 0.45f);
			Configs["AsukaATFieldShatter"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ff4433", 1.3f, 0f, 1.7f, 0.45f);
			Configs["ReiAyanamiSacrificeLance"] = new AnimeAbilityVisualConfig(BulletArchetype.NobleSword, BulletAnimMode.Directional, "#55bbee", 1.25f, 0f, 1.3f, 0.45f);
			Configs["GalioPromepolisBurn"] = new AnimeAbilityVisualConfig(BulletArchetype.FlameBurst, BulletAnimMode.FlameJitter, "#ff7733", 1.35f, 0f, 1.9f, 0.5f);
			Configs["KallenGurenSeitenEight"] = new AnimeAbilityVisualConfig(BulletArchetype.CrescentSlash, BulletAnimMode.Directional, "#ff3344", 1.5f, 0f, 1.8f, 0.45f);
			Configs["SungJinwooShadowMonarch"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#8833cc", 1.3f, 0f, 1.7f, 0.45f);
			Configs["SungJinwooAriseCommand"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#4488ee", 1.3f, 0f, 1.7f, 0.45f);
			Configs["SungJinwooRulersHand"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#4fa3f7", 1.3f, 0f, 1.7f, 0.45f);
			Configs["IgrisBloodRedCommander"] = new AnimeAbilityVisualConfig(BulletArchetype.BloodScythe, BulletAnimMode.Directional, "#ee3355", 1.4f, 0f, 1.6f, 0.45f);
			Configs["BeruShadowAntKing"] = new AnimeAbilityVisualConfig(BulletArchetype.BloodScythe, BulletAnimMode.Directional, "#aa44ee", 1.4f, 0f, 1.6f, 0.45f);
			Configs["AinzOoalGownFallenDown"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#ffee44", 1.3f, 0f, 1.7f, 0.45f);
			Configs["AinzOoalGownGraspHeart"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#9933cc", 1.3f, 0f, 1.7f, 0.45f);
			Configs["AlbedoPureWhiteShield"] = new AnimeAbilityVisualConfig(BulletArchetype.BeamOrb, BulletAnimMode.Pulse, "#6699cc", 1.3f, 0f, 1.7f, 0.45f);
			Configs["RimuruGluttonyPredator"] = new AnimeAbilityVisualConfig(BulletArchetype.BloodScythe, BulletAnimMode.D