name: 闇よりの罠
card_text: 1:自分LPが3000以下の時、1000LPを払い、「闇よりの罠」以外の自分の墓地の通常罠カード1枚を対象として発動できる。
  このカードの効果は、その墓地の通常罠カード発動時の効果と同じになる。
  その後、その墓地の通常罠カードを除外する。
external_ids: local CARD_ID_0 = 22628574 --フェイク・フェザー
  local CARD_ID_1 = 6351147 --トランザクション・ロールバック
  
lua: local CARD_ID_0 = 22628574 --フェイク・フェザー
  local CARD_ID_1 = 6351147 --トランザクション・ロールバック
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--copy trap
  	local e1 = Effect.CreateEffect(c)
  	e1:SetType(EFFECT_TYPE_ACTIVATE)
  	e1:SetCode(EVENT_FREE_CHAIN)
  	e1:SetHintTiming(0x1e1, 0x1e1)
  	e1:SetCondition(s.condition)
  	e1:SetCost(s.cost)
  	e1:SetTarget(s.target)
  	e1:SetOperation(s.operation)
  	c:RegisterEffect(e1)
  end
  function s.condition(e, tp, eg, ep, ev, re, r, rp)
  	return Duel.GetLP(tp) <= 3000
  end
  function s.cost(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return Duel.CheckLPCost(tp, 1000)
  	end
  	Duel.PayLPCost(tp, 1000)
  end
  function s.filter(c)
  	return c:GetType() == 0x4 and not c:IsCode(id, CARD_ID_0, CARD_ID_1) and c:IsAbleToRemove() and c:CheckActivateEffect(false, true, false) ~= nil
  end
  function s.target(e, tp, eg, ep, ev, re, r, rp, chk, chkc)
  	if chkc then
  		local te = e:GetLabelObject()
  		local tg = te:GetTarget()
  		return tg and tg(e, tp, eg, ep, ev, re, r, rp, 0, chkc)
  	end
  	if chk == 0 then
  		return Duel.IsExistingTarget(s.filter, tp, LOCATION_GRAVE, 0, 1, nil)
  	end
  	e:SetProperty(EFFECT_FLAG_CARD_TARGET)
  	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_TARGET)
  	local g = Duel.SelectTarget(tp, s.filter, tp, LOCATION_GRAVE, 0, 1, 1, nil)
  	local te, ceg, cep, cev, cre, cr, crp = g:GetFirst():CheckActivateEffect(false, true, true)
  	Duel.ClearTargetCard()
  	g:GetFirst():CreateEffectRelation(e)
  	local tg = te:GetTarget()
  	e:SetProperty(te:GetProperty())
  	if tg then
  		tg(e, tp, ceg, cep, cev, cre, cr, crp, 1)
  	end
  	te:SetLabelObject(e:GetLabelObject())
  	e:SetLabelObject(te)
  	Duel.ClearOperationInfo(0)
  end
  function s.operation(e, tp, eg, ep, ev, re, r, rp)
  	local te = e:GetLabelObject()
  	if not te then
  		return
  	end
  	local tc = te:GetHandler()
  	if not (tc:IsRelateToEffect(e) and tc:GetType() == TYPE_TRAP) then
  		return
  	end
  	e:SetLabelObject(te:GetLabelObject())
  	local op = te:GetOperation()
  	if op then
  		op(e, tp, eg, ep, ev, re, r, rp)
  	end
  	if tc:IsRelateToEffect(e) and tc:GetType() == TYPE_TRAP then
  		Duel.BreakEffect()
  		Duel.Remove(tc, POS_FACEUP, REASON_EFFECT)
  	end
  end
  
  
source_text: 闇よりの罠
  1:自分LPが3000以下の時、1000LPを払い、「闇よりの罠」以外の自分の墓地の通常罠カード1枚を対象として発動できる。
  このカードの効果は、その墓地の通常罠カード発動時の効果と同じになる。
  その後、その墓地の通常罠カードを除外する。
target_text: -- 闇よりの罠
  local CARD_ID_0 = 22628574 --フェイク・フェザー
  local CARD_ID_1 = 6351147 --トランザクション・ロールバック
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--copy trap
  	local e1 = Effect.CreateEffect(c)
  	e1:SetType(EFFECT_TYPE_ACTIVATE)
  	e1:SetCode(EVENT_FREE_CHAIN)
  	e1:SetHintTiming(0x1e1, 0x1e1)
  	e1:SetCondition(s.condition)
  	e1:SetCost(s.cost)
  	e1:SetTarget(s.target)
  	e1:SetOperation(s.operation)
  	c:RegisterEffect(e1)
  end
  function s.condition(e, tp, eg, ep, ev, re, r, rp)
  	return Duel.GetLP(tp) <= 3000
  end
  function s.cost(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return Duel.CheckLPCost(tp, 1000)
  	end
  	Duel.PayLPCost(tp, 1000)
  end
  function s.filter(c)
  	return c:GetType() == 0x4 and not c:IsCode(id, CARD_ID_0, CARD_ID_1) and c:IsAbleToRemove() and c:CheckActivateEffect(false, true, false) ~= nil
  end
  function s.target(e, tp, eg, ep, ev, re, r, rp, chk, chkc)
  	if chkc then
  		local te = e:GetLabelObject()
  		local tg = te:GetTarget()
  		return tg and tg(e, tp, eg, ep, ev, re, r, rp, 0, chkc)
  	end
  	if chk == 0 then
  		return Duel.IsExistingTarget(s.filter, tp, LOCATION_GRAVE, 0, 1, nil)
  	end
  	e:SetProperty(EFFECT_FLAG_CARD_TARGET)
  	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_TARGET)
  	local g = Duel.SelectTarget(tp, s.filter, tp, LOCATION_GRAVE, 0, 1, 1, nil)
  	local te, ceg, cep, cev, cre, cr, crp = g:GetFirst():CheckActivateEffect(false, true, true)
  	Duel.ClearTargetCard()
  	g:GetFirst():CreateEffectRelation(e)
  	local tg = te:GetTarget()
  	e:SetProperty(te:GetProperty())
  	if tg then
  		tg(e, tp, ceg, cep, cev, cre, cr, crp, 1)
  	end
  	te:SetLabelObject(e:GetLabelObject())
  	e:SetLabelObject(te)
  	Duel.ClearOperationInfo(0)
  end
  function s.operation(e, tp, eg, ep, ev, re, r, rp)
  	local te = e:GetLabelObject()
  	if not te then
  		return
  	end
  	local tc = te:GetHandler()
  	if not (tc:IsRelateToEffect(e) and tc:GetType() == TYPE_TRAP) then
  		return
  	end
  	e:SetLabelObject(te:GetLabelObject())
  	local op = te:GetOperation()
  	if op then
  		op(e, tp, eg, ep, ev, re, r, rp)
  	end
  	if tc:IsRelateToEffect(e) and tc:GetType() == TYPE_TRAP then
  		Duel.BreakEffect()
  		Duel.Remove(tc, POS_FACEUP, REASON_EFFECT)
  	end
  end
  
  