using UnityEngine;
using Wizard.Battle.View.Vfx;

public class Skill_change_union_burst_count : SkillBase
{
	private const string EFFECT_FILE_NAME = "stt_act_costdown_1";

	private const string SE_FILE_NAME = "se_stt_act_costdown_1";

	public const int DEFAULT_UNION_BURST_COUNT = 10;

	public Skill_change_union_burst_count(SkillParameter skillPrm, string option)
		: base(skillPrm, option)
	{
	}

	public override VfxWithLoading Start(CallParameter parameter)
	{
		int num = base.OptionValue.GetInt(SkillFilterCreator.ContentKeyword.gain_union_burst_count, -1);
		VfxWithLoadingSequential vfxWithLoadingSequential = VfxWithLoadingSequential.Create();
		foreach (BattleCardBase targetCard in parameter.targetCards)
		{
			targetCard.SkillApplyInformation.GiveUnionBurstCount(new UnionBurstCountAddModifier(-num));
			if (targetCard.HasUnionBurst && (targetCard.IsPlayer || GameMgr.GetIns().IsAdminWatch))
			{
				GameObject effectGameObject = null;
				vfxWithLoadingSequential.RegisterToLoadingVfx(new WaitLoadEffectAndSetSeVfx("stt_act_costdown_1", "se_stt_act_costdown_1", delegate(GameObject e)
				{
					effectGameObject = e;
				}));
				vfxWithLoadingSequential.RegisterToMainVfx(new PlayEffectAndSeVfx(() => effectGameObject, targetCard.BattleCardView.Transform, isFollow: false, isFollowPosition: false, isFollowAll: true));
			}
		}
		return vfxWithLoadingSequential;
	}

	public int GetGainUnionBurstCount()
	{
		return base.OptionValue.GetInt(SkillFilterCreator.ContentKeyword.gain_union_burst_count, 0);
	}
}
