name: Ai-SHOW
card_text: 1:EXモンスターゾーンに自分のリンク3以上の「@イグニスター」モンスターが存在する場合、相手モンスターの攻撃宣言時に発動できる。
  攻撃力の合計が、その攻撃モンスターの攻撃力以下になるように、リンクモンスター以外の攻撃力2300のサイバース族モンスターをEXデッキから任意の数だけ選んで特殊召喚する。
  その後、バトルフェイズを終了する。
external_ids: local CARD_ID_0 = 59822133 --青眼の精霊龍
  local CARD_ID_1 = 29724053 --サモン・ゲート
  local SETCARD_ID_0 = 0x135 --@イグニスター
  
lua: local CARD_ID_0 = 59822133 --青眼の精霊龍
  local CARD_ID_1 = 29724053 --サモン・ゲート
  local SETCARD_ID_0 = 0x135 --@イグニスター
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--special summon
  	local e1 = Effect.CreateEffect(c)
  	e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
  	e1:SetType(EFFECT_TYPE_ACTIVATE)
  	e1:SetCode(EVENT_ATTACK_ANNOUNCE)
  	e1:SetCondition(s.condition)
  	e1:SetTarget(s.target)
  	e1:SetOperation(s.operation)
  	c:RegisterEffect(e1)
  end
  function s.cfilter(c)
  	return c:IsFaceup() and c:IsSetCard(SETCARD_ID_0) and c:IsLinkAbove(3) and c:GetSequence() >= 5
  end
  function s.condition(e, tp, eg, ep, ev, re, r, rp)
  	return Duel.IsExistingMatchingCard(s.cfilter, tp, LOCATION_MZONE, 0, 1, nil)
  end
  function s.spfilter(c, e, tp)
  	return c:IsRace(RACE_CYBERSE) and not c:IsType(TYPE_LINK) and c:IsAttack(2300) and c:IsCanBeSpecialSummoned(e, 0, tp, false, false) and Duel.GetLocationCountFromEx(tp, tp, nil, c) > 0
  end
  function s.target(e, tp, eg, ep, ev, re, r, rp, chk)
  	local c = e:GetHandler()
  	local tc = Duel.GetAttacker()
  	if chk == 0 then
  		return tc:IsControler(1 - tp) and tc:IsAttackAbove(2300) and Duel.IsExistingMatchingCard(s.spfilter, tp, LOCATION_EXTRA, 0, 1, nil, e, tp)
  	end
  	Duel.SetTargetCard(tc)
  	Duel.SetOperationInfo(0, CATEGORY_SPECIAL_SUMMON, nil, 1, tp, LOCATION_EXTRA)
  end
  function s.exfilter1(c)
  	return c:IsFacedown() and c:IsType(TYPE_FUSION + TYPE_SYNCHRO + TYPE_XYZ)
  end
  function s.exfilter2(c)
  	return c:IsFaceup() and c:IsType(TYPE_PENDULUM)
  end
  function s.fselect(g, ft1, ft2, ect, ft, atk)
  	return #g <= ft and #g <= ect and g:FilterCount(s.exfilter1, nil) <= ft1 and g:FilterCount(s.exfilter2, nil) <= ft2 and g:GetSum(Card.GetAttack) <= atk
  end
  function s.operation(e, tp, eg, ep, ev, re, r, rp)
  	local tc = Duel.GetFirstTarget()
  	if not tc:IsRelateToEffect(e) or tc:IsFacedown() or not tc:IsAttackAbove(2300) then
  		return
  	end
  	local g = Duel.GetMatchingGroup(s.spfilter, tp, LOCATION_EXTRA, 0, nil, e, tp)
  	if #g == 0 then
  		return
  	end
  	local ft1 = Duel.GetLocationCountFromEx(tp, tp, nil, TYPE_FUSION + TYPE_SYNCHRO + TYPE_XYZ)
  	local ft2 = Duel.GetLocationCountFromEx(tp, tp, nil, TYPE_PENDULUM)
  	local ft = Duel.GetUsableMZoneCount(tp)
  	if Duel.IsPlayerAffectedByEffect(tp, CARD_ID_0) then
  		if ft1 > 0 then
  			ft1 = 1
  		end
  		if ft2 > 0 then
  			ft2 = 1
  		end
  		if ft > 0 then
  			ft = 1
  		end
  	end
  	local ect = (c29724053 and Duel.IsPlayerAffectedByEffect(tp, CARD_ID_1) and c29724053[tp]) or ft
  	if ect == 0 or ft1 == 0 and ft2 == 0 then
  		return
  	end
  	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_SPSUMMON)
  	local sg = g:SelectSubGroup(tp, s.fselect, false, 1, ft, ft1, ft2, ect, ft, tc:GetAttack())
  	if Duel.SpecialSummon(sg, 0, tp, tp, false, false, POS_FACEUP) > 0 then
  		Duel.BreakEffect()
  		Duel.SkipPhase(1 - tp, PHASE_BATTLE, RESET_PHASE + PHASE_BATTLE_STEP, 1)
  	end
  end
  
  
source_text: Ai-SHOW
  1:EXモンスターゾーンに自分のリンク3以上の「@イグニスター」モンスターが存在する場合、相手モンスターの攻撃宣言時に発動できる。
  攻撃力の合計が、その攻撃モンスターの攻撃力以下になるように、リンクモンスター以外の攻撃力2300のサイバース族モンスターをEXデッキから任意の数だけ選んで特殊召喚する。
  その後、バトルフェイズを終了する。
target_text: -- Ai-SHOW
  local CARD_ID_0 = 59822133 --青眼の精霊龍
  local CARD_ID_1 = 29724053 --サモン・ゲート
  local SETCARD_ID_0 = 0x135 --@イグニスター
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--special summon
  	local e1 = Effect.CreateEffect(c)
  	e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
  	e1:SetType(EFFECT_TYPE_ACTIVATE)
  	e1:SetCode(EVENT_ATTACK_ANNOUNCE)
  	e1:SetCondition(s.condition)
  	e1:SetTarget(s.target)
  	e1:SetOperation(s.operation)
  	c:RegisterEffect(e1)
  end
  function s.cfilter(c)
  	return c:IsFaceup() and c:IsSetCard(SETCARD_ID_0) and c:IsLinkAbove(3) and c:GetSequence() >= 5
  end
  function s.condition(e, tp, eg, ep, ev, re, r, rp)
  	return Duel.IsExistingMatchingCard(s.cfilter, tp, LOCATION_MZONE, 0, 1, nil)
  end
  function s.spfilter(c, e, tp)
  	return c:IsRace(RACE_CYBERSE) and not c:IsType(TYPE_LINK) and c:IsAttack(2300) and c:IsCanBeSpecialSummoned(e, 0, tp, false, false) and Duel.GetLocationCountFromEx(tp, tp, nil, c) > 0
  end
  function s.target(e, tp, eg, ep, ev, re, r, rp, chk)
  	local c = e:GetHandler()
  	local tc = Duel.GetAttacker()
  	if chk == 0 then
  		return tc:IsControler(1 - tp) and tc:IsAttackAbove(2300) and Duel.IsExistingMatchingCard(s.spfilter, tp, LOCATION_EXTRA, 0, 1, nil, e, tp)
  	end
  	Duel.SetTargetCard(tc)
  	Duel.SetOperationInfo(0, CATEGORY_SPECIAL_SUMMON, nil, 1, tp, LOCATION_EXTRA)
  end
  function s.exfilter1(c)
  	return c:IsFacedown() and c:IsType(TYPE_FUSION + TYPE_SYNCHRO + TYPE_XYZ)
  end
  function s.exfilter2(c)
  	return c:IsFaceup() and c:IsType(TYPE_PENDULUM)
  end
  function s.fselect(g, ft1, ft2, ect, ft, atk)
  	return #g <= ft and #g <= ect and g:FilterCount(s.exfilter1, nil) <= ft1 and g:FilterCount(s.exfilter2, nil) <= ft2 and g:GetSum(Card.GetAttack) <= atk
  end
  function s.operation(e, tp, eg, ep, ev, re, r, rp)
  	local tc = Duel.GetFirstTarget()
  	if not tc:IsRelateToEffect(e) or tc:IsFacedown() or not tc:IsAttackAbove(2300) then
  		return
  	end
  	local g = Duel.GetMatchingGroup(s.spfilter, tp, LOCATION_EXTRA, 0, nil, e, tp)
  	if #g == 0 then
  		return
  	end
  	local ft1 = Duel.GetLocationCountFromEx(tp, tp, nil, TYPE_FUSION + TYPE_SYNCHRO + TYPE_XYZ)
  	local ft2 = Duel.GetLocationCountFromEx(tp, tp, nil, TYPE_PENDULUM)
  	local ft = Duel.GetUsableMZoneCount(tp)
  	if Duel.IsPlayerAffectedByEffect(tp, CARD_ID_0) then
  		if ft1 > 0 then
  			ft1 = 1
  		end
  		if ft2 > 0 then
  			ft2 = 1
  		end
  		if ft > 0 then
  			ft = 1
  		end
  	end
  	local ect = (c29724053 and Duel.IsPlayerAffectedByEffect(tp, CARD_ID_1) and c29724053[tp]) or ft
  	if ect == 0 or ft1 == 0 and ft2 == 0 then
  		return
  	end
  	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_SPSUMMON)
  	local sg = g:SelectSubGroup(tp, s.fselect, false, 1, ft, ft1, ft2, ect, ft, tc:GetAttack())
  	if Duel.SpecialSummon(sg, 0, tp, tp, false, false, POS_FACEUP) > 0 then
  		Duel.BreakEffect()
  		Duel.SkipPhase(1 - tp, PHASE_BATTLE, RESET_PHASE + PHASE_BATTLE_STEP, 1)
  	end
  end
  
  