name: ストールターン
card_text: 1:自分のデッキの上からカード3枚を裏側表示で除外して以下の効果を発動できる。
  ●モンスターの召喚・反転召喚・特殊召喚を無効にする、モンスターの効果・魔法・罠カードが発動した時に発動できる。
  その発動を無効にし、そのカードを持ち主のデッキに戻す。
  ●魔法・罠カードの発動を無効にする、モンスターの効果・魔法・罠カードが発動した時に発動できる。
  その発動を無効にし、そのカードを持ち主のデッキに戻す。
lua: local s, id, o = GetID()
  function s.initial_effect(c)
  	--Activate
  	local e1 = Effect.CreateEffect(c)
  	e1:SetCategory(CATEGORY_NEGATE + CATEGORY_TODECK)
  	e1:SetType(EFFECT_TYPE_ACTIVATE)
  	e1:SetCode(EVENT_CHAINING)
  	e1:SetCondition(s.condition)
  	e1:SetCost(s.cost)
  	e1:SetTarget(s.target)
  	e1:SetOperation(s.activate)
  	c:RegisterEffect(e1)
  end
  function s.condition(e, tp, eg, ep, ev, re, r, rp)
  	if not (re:IsActiveType(TYPE_MONSTER) or re:IsHasType(TYPE_SPELL + TYPE_TRAP)) then
  		return false
  	end
  	if not Duel.IsChainNegatable(ev) then
  		return false
  	end
  	return re:IsHasCategory(CATEGORY_DISABLE_SUMMON) or re:IsHasCategory(CATEGORY_NEGATE) and Duel.GetChainInfo(ev - 1, CHAININFO_TRIGGERING_EFFECT):IsHasType(EFFECT_TYPE_ACTIVATE)
  end
  function s.cost(e, tp, eg, ep, ev, re, r, rp, chk)
  	local g = Duel.GetDecktopGroup(tp, 3)
  	if chk == 0 then
  		return g:FilterCount(Card.IsAbleToRemoveAsCost, nil, POS_FACEDOWN) == 3
  	end
  	Duel.DisableShuffleCheck()
  	Duel.Remove(g, POS_FACEDOWN, REASON_COST)
  end
  function s.target(e, tp, eg, ep, ev, re, r, rp, chk)
  	local rc = re:GetHandler()
  	if chk == 0 then
  		return aux.ndcon(tp, re)
  	end
  	Duel.SetOperationInfo(0, CATEGORY_NEGATE, eg, 1, 0, 0)
  	if rc:IsRelateToEffect(re) then
  		Duel.SetOperationInfo(0, CATEGORY_TODECK, eg, 1, 0, 0)
  	end
  end
  function s.activate(e, tp, eg, ep, ev, re, r, rp)
  	local rc = re:GetHandler()
  	if Duel.NegateActivation(ev) and rc:IsRelateToEffect(re) then
  		rc:CancelToGrave()
  		Duel.SendtoDeck(rc, nil, SEQ_DECKSHUFFLE, REASON_EFFECT)
  	end
  end
  
  
source_text: ストールターン
  1:自分のデッキの上からカード3枚を裏側表示で除外して以下の効果を発動できる。
  ●モンスターの召喚・反転召喚・特殊召喚を無効にする、モンスターの効果・魔法・罠カードが発動した時に発動できる。
  その発動を無効にし、そのカードを持ち主のデッキに戻す。
  ●魔法・罠カードの発動を無効にする、モンスターの効果・魔法・罠カードが発動した時に発動できる。
  その発動を無効にし、そのカードを持ち主のデッキに戻す。
target_text: -- ストールターン
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--Activate
  	local e1 = Effect.CreateEffect(c)
  	e1:SetCategory(CATEGORY_NEGATE + CATEGORY_TODECK)
  	e1:SetType(EFFECT_TYPE_ACTIVATE)
  	e1:SetCode(EVENT_CHAINING)
  	e1:SetCondition(s.condition)
  	e1:SetCost(s.cost)
  	e1:SetTarget(s.target)
  	e1:SetOperation(s.activate)
  	c:RegisterEffect(e1)
  end
  function s.condition(e, tp, eg, ep, ev, re, r, rp)
  	if not (re:IsActiveType(TYPE_MONSTER) or re:IsHasType(TYPE_SPELL + TYPE_TRAP)) then
  		return false
  	end
  	if not Duel.IsChainNegatable(ev) then
  		return false
  	end
  	return re:IsHasCategory(CATEGORY_DISABLE_SUMMON) or re:IsHasCategory(CATEGORY_NEGATE) and Duel.GetChainInfo(ev - 1, CHAININFO_TRIGGERING_EFFECT):IsHasType(EFFECT_TYPE_ACTIVATE)
  end
  function s.cost(e, tp, eg, ep, ev, re, r, rp, chk)
  	local g = Duel.GetDecktopGroup(tp, 3)
  	if chk == 0 then
  		return g:FilterCount(Card.IsAbleToRemoveAsCost, nil, POS_FACEDOWN) == 3
  	end
  	Duel.DisableShuffleCheck()
  	Duel.Remove(g, POS_FACEDOWN, REASON_COST)
  end
  function s.target(e, tp, eg, ep, ev, re, r, rp, chk)
  	local rc = re:GetHandler()
  	if chk == 0 then
  		return aux.ndcon(tp, re)
  	end
  	Duel.SetOperationInfo(0, CATEGORY_NEGATE, eg, 1, 0, 0)
  	if rc:IsRelateToEffect(re) then
  		Duel.SetOperationInfo(0, CATEGORY_TODECK, eg, 1, 0, 0)
  	end
  end
  function s.activate(e, tp, eg, ep, ev, re, r, rp)
  	local rc = re:GetHandler()
  	if Duel.NegateActivation(ev) and rc:IsRelateToEffect(re) then
  		rc:CancelToGrave()
  		Duel.SendtoDeck(rc, nil, SEQ_DECKSHUFFLE, REASON_EFFECT)
  	end
  end
  
  