Decompiled source of AnimeCards v4.0.0
AnimeCards.dll
Decompiled 11 hours ago
The result has been truncated due to the large size, download it to view full contents!
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