using UnityEngine;

namespace Wizard.Battle.View.Vfx;

public class NullCardVfxCreator : ICardVfxCreator
{
	private static NullCardVfxCreator m_instance;

	public static NullCardVfxCreator GetInstance()
	{
		if (m_instance == null)
		{
			m_instance = new NullCardVfxCreator();
		}
		return m_instance;
	}

	private NullCardVfxCreator()
	{
	}

	public VfxBase CreateDraw(Vector3 pos, bool isCardRare)
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreatePick()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateDestroy(BattleCardBase.DeathTypeInformation deathTypes, BattlePlayerBase battlePlayerBase)
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateDestroyHand(BattleCardBase.DeathTypeInformation deathTypes, BattlePlayerBase battlePlayerBase)
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateBanish(BattleCardBase.DeathTypeInformation deathTypes, BattlePlayerBase battlePlayerBase)
	{
		return NullVfx.GetInstance();
	}

	public VfxWithLoading CreateBanishHand(BattleCardBase.DeathTypeInformation deathTypes, BattlePlayerBase battlePlayerBase)
	{
		return NullVfxWithLoading.GetInstance();
	}

	public VfxBase CreateGeton(Transform vehicleCardTrans, IBattleCardView vehicleCardView, BattleCardBase.DeathTypeInformation deathTypes, BattlePlayerBase battlePlayerBase)
	{
		return NullVfxWithLoading.GetInstance();
	}

	public VfxWithLoading CreateFusionHand(BattlePlayerBase battlePlayerBase, IBattleCardView fusionCard, bool isFusionMetamorphose)
	{
		return NullVfxWithLoading.GetInstance();
	}

	public VfxBase CreateParameterChange(BattleCardBase.ParameterChangeInformation parameterChangeInfo, bool isDead, bool isEvolve, bool skipWait)
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateBuffStart(BattleCardBase.ParameterChangeInformation parameterChangeInfo, bool useWait = true)
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateBuffStop(BattleCardBase.ParameterChangeInformation parameterChangeInfo, bool useWait = true)
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateDebuffStart(BattleCardBase.ParameterChangeInformation parameterChangeInfo, bool useWait = true)
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateDebuffStop(BattleCardBase.ParameterChangeInformation parameterChangeInfo, bool useWait = true)
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateBuffStartInHand(BattleCardBase.ParameterChangeInformation parameterChangeInfo, bool useWait = true, bool isDebuff = false)
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateGuardStart()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateGuardStop()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateKillerStart()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateKillerStop()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateProtectionStart(ProtectionColorType tyep)
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateProtectionStop()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateNotBeAttackedStart()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateNotBeAttackedStop()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateUntouchableStart()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateUntouchableStop()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateQuick(bool hasAttacksRemaining, bool isCardUnableToAttackClass)
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateSneakStart()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateSneakStop()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateForceCantAttackStart()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateForceCantAttackStop()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateDrainStart()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateDrainStop()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateAttack(IBattleCardView attackCardView, IBattleCardView attackTargetCardView)
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateAttackFloatUp()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateAttackFloatDown(bool isAttacker, bool isDead, int attackableCount)
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateMoving(Vector3 pos)
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateDamage(int damage, int currentHealth, int maxHealth, int baseHealth, bool isReflectedDamage, bool IsSkillDamage)
	{
		return NotEmptyNullVfx.GetInstance();
	}

	public VfxBase CreateHealing(int healAmount, int currentHealth, int maxHealth, int baseHealth)
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateMaskCardInPlay()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateReflectionStart()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateReflectionStop()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateHeavenlyAegisStart()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateHeavenlyAegisStop()
	{
		return NullVfx.GetInstance();
	}

	public VfxBase CreateChangeAffiliation(BattleCardBase card, CardBasePrm.ClanType clan, bool showEffect)
	{
		return NullVfx.GetInstance();
	}
}
