name: セフィラの輝跡
card_text: 1:自分のPゾーンに「セフィラ」カードが2枚存在し、1と7のPスケールが適用されている場合にこのカードを発動できる。
  自分フィールドに「セフィラ」モンスター以外のモンスターが存在する場合、そのモンスターを全て持ち主のデッキに戻す。
  2:このカードが魔法&罠ゾーンに存在する限り、お互いに手札・エクストラデッキからしかモンスターを特殊召喚できない。
  3:自分のPゾーンにカードが存在する限り、このカードは効果の対象にならず、自分のPゾーンのカードが破壊された場合にこのカードは破壊される。
external_ids: local SETCARD_ID_0 = 0xc4 --セフィラ
  
lua: local SETCARD_ID_0 = 0xc4 --セフィラ
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--Activate
  	local e1 = Effect.CreateEffect(c)
  	e1:SetCategory(CATEGORY_TODECK)
  	e1:SetType(EFFECT_TYPE_ACTIVATE)
  	e1:SetCode(EVENT_FREE_CHAIN)
  	e1:SetCondition(s.condition)
  	e1:SetOperation(s.activate)
  	c:RegisterEffect(e1)
  	--splimit
  	local e2 = Effect.CreateEffect(c)
  	e2:SetType(EFFECT_TYPE_FIELD)
  	e2:SetRange(LOCATION_SZONE)
  	e2:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
  	e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
  	e2:SetTargetRange(1, 1)
  	e2:SetTarget(s.splimit)
  	c:RegisterEffect(e2)
  	--cannot be target
  	local e3 = Effect.CreateEffect(c)
  	e3:SetType(EFFECT_TYPE_SINGLE)
  	e3:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
  	e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
  	e3:SetRange(LOCATION_SZONE)
  	e3:SetCondition(s.tgcon)
  	e3:SetValue(1)
  	c:RegisterEffect(e3)
  	--self destroy
  	local e4 = Effect.CreateEffect(c)
  	e4:SetType(EFFECT_TYPE_CONTINUOUS + EFFECT_TYPE_FIELD)
  	e4:SetRange(LOCATION_SZONE)
  	e4:SetCode(EVENT_DESTROY)
  	e4:SetCondition(s.descon)
  	e4:SetOperation(s.desop)
  	c:RegisterEffect(e4)
  end
  function s.condition(e, tp, eg, ep, ev, re, r, rp)
  	local tc1 = Duel.GetFieldCard(tp, LOCATION_PZONE, 0)
  	local tc2 = Duel.GetFieldCard(tp, LOCATION_PZONE, 1)
  	if not tc1 or not tc2 or not tc1:IsSetCard(SETCARD_ID_0) or not tc2:IsSetCard(SETCARD_ID_0) then
  		return false
  	end
  	local scl1 = tc1:GetLeftScale()
  	local scl2 = tc2:GetRightScale()
  	if scl1 > scl2 then
  		scl1, scl2 = scl2, scl1
  	end
  	return scl1 == 1 and scl2 == 7
  end
  function s.filter(c)
  	return (c:IsFacedown() or not c:IsSetCard(SETCARD_ID_0)) and c:IsAbleToDeck()
  end
  function s.activate(e, tp, eg, ep, ev, re, r, rp)
  	local g = Duel.GetMatchingGroup(s.filter, tp, LOCATION_MZONE, 0, nil)
  	if g:GetCount() > 0 then
  		Duel.SendtoDeck(g, nil, SEQ_DECKSHUFFLE, REASON_EFFECT)
  	end
  end
  function s.splimit(e, c, sump, sumtype, sumpos, targetp)
  	return not c:IsLocation(LOCATION_HAND + LOCATION_EXTRA)
  end
  function s.tgcon(e)
  	local tp = e:GetHandlerPlayer()
  	return Duel.GetFieldCard(tp, LOCATION_PZONE, 0) or Duel.GetFieldCard(tp, LOCATION_PZONE, 1)
  end
  function s.desfilter(c, tp)
  	return c:IsControler(tp) and c:IsLocation(LOCATION_PZONE)
  end
  function s.descon(e, tp, eg, ep, ev, re, r, rp)
  	return eg:IsExists(s.desfilter, 1, nil, tp)
  end
  function s.desop(e, tp, eg, ep, ev, re, r, rp)
  	Duel.Destroy(e:GetHandler(), REASON_EFFECT)
  end
  
  
source_text: セフィラの輝跡
  1:自分のPゾーンに「セフィラ」カードが2枚存在し、1と7のPスケールが適用されている場合にこのカードを発動できる。
  自分フィールドに「セフィラ」モンスター以外のモンスターが存在する場合、そのモンスターを全て持ち主のデッキに戻す。
  2:このカードが魔法&罠ゾーンに存在する限り、お互いに手札・エクストラデッキからしかモンスターを特殊召喚できない。
  3:自分のPゾーンにカードが存在する限り、このカードは効果の対象にならず、自分のPゾーンのカードが破壊された場合にこのカードは破壊される。
target_text: -- セフィラの輝跡
  local SETCARD_ID_0 = 0xc4 --セフィラ
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--Activate
  	local e1 = Effect.CreateEffect(c)
  	e1:SetCategory(CATEGORY_TODECK)
  	e1:SetType(EFFECT_TYPE_ACTIVATE)
  	e1:SetCode(EVENT_FREE_CHAIN)
  	e1:SetCondition(s.condition)
  	e1:SetOperation(s.activate)
  	c:RegisterEffect(e1)
  	--splimit
  	local e2 = Effect.CreateEffect(c)
  	e2:SetType(EFFECT_TYPE_FIELD)
  	e2:SetRange(LOCATION_SZONE)
  	e2:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
  	e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
  	e2:SetTargetRange(1, 1)
  	e2:SetTarget(s.splimit)
  	c:RegisterEffect(e2)
  	--cannot be target
  	local e3 = Effect.CreateEffect(c)
  	e3:SetType(EFFECT_TYPE_SINGLE)
  	e3:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
  	e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
  	e3:SetRange(LOCATION_SZONE)
  	e3:SetCondition(s.tgcon)
  	e3:SetValue(1)
  	c:RegisterEffect(e3)
  	--self destroy
  	local e4 = Effect.CreateEffect(c)
  	e4:SetType(EFFECT_TYPE_CONTINUOUS + EFFECT_TYPE_FIELD)
  	e4:SetRange(LOCATION_SZONE)
  	e4:SetCode(EVENT_DESTROY)
  	e4:SetCondition(s.descon)
  	e4:SetOperation(s.desop)
  	c:RegisterEffect(e4)
  end
  function s.condition(e, tp, eg, ep, ev, re, r, rp)
  	local tc1 = Duel.GetFieldCard(tp, LOCATION_PZONE, 0)
  	local tc2 = Duel.GetFieldCard(tp, LOCATION_PZONE, 1)
  	if not tc1 or not tc2 or not tc1:IsSetCard(SETCARD_ID_0) or not tc2:IsSetCard(SETCARD_ID_0) then
  		return false
  	end
  	local scl1 = tc1:GetLeftScale()
  	local scl2 = tc2:GetRightScale()
  	if scl1 > scl2 then
  		scl1, scl2 = scl2, scl1
  	end
  	return scl1 == 1 and scl2 == 7
  end
  function s.filter(c)
  	return (c:IsFacedown() or not c:IsSetCard(SETCARD_ID_0)) and c:IsAbleToDeck()
  end
  function s.activate(e, tp, eg, ep, ev, re, r, rp)
  	local g = Duel.GetMatchingGroup(s.filter, tp, LOCATION_MZONE, 0, nil)
  	if g:GetCount() > 0 then
  		Duel.SendtoDeck(g, nil, SEQ_DECKSHUFFLE, REASON_EFFECT)
  	end
  end
  function s.splimit(e, c, sump, sumtype, sumpos, targetp)
  	return not c:IsLocation(LOCATION_HAND + LOCATION_EXTRA)
  end
  function s.tgcon(e)
  	local tp = e:GetHandlerPlayer()
  	return Duel.GetFieldCard(tp, LOCATION_PZONE, 0) or Duel.GetFieldCard(tp, LOCATION_PZONE, 1)
  end
  function s.desfilter(c, tp)
  	return c:IsControler(tp) and c:IsLocation(LOCATION_PZONE)
  end
  function s.descon(e, tp, eg, ep, ev, re, r, rp)
  	return eg:IsExists(s.desfilter, 1, nil, tp)
  end
  function s.desop(e, tp, eg, ep, ev, re, r, rp)
  	Duel.Destroy(e:GetHandler(), REASON_EFFECT)
  end
  
  