name: Swords
card_text: Target 1 Equip Spell Card in your Graveyard and 1 appropriate monster on the field; equip the Equip Spell Card to that monster. Destroy that Equip Spell Card during the End Phase. If you activate this card, you cannot Special Summon for the rest of this turn. You can only activate 1 "Swords at Dawn" per turn.
lua: local s, id, o = GetID()
  function s.initial_effect(c)
  	--effect
  	local e1 = Effect.CreateEffect(c)
  	e1:SetCategory(CATEGORY_EQUIP)
  	e1:SetType(EFFECT_TYPE_ACTIVATE)
  	e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
  	e1:SetCode(EVENT_FREE_CHAIN)
  	e1:SetCountLimit(1, id + EFFECT_COUNT_CODE_OATH)
  	e1:SetCost(s.cost)
  	e1:SetTarget(s.target)
  	e1:SetOperation(s.operation)
  	c:RegisterEffect(e1)
  end
  function s.cost(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return true
  	end
  	--oath effects
  	local e1 = Effect.CreateEffect(e:GetHandler())
  	e1:SetType(EFFECT_TYPE_FIELD)
  	e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET + EFFECT_FLAG_OATH)
  	e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
  	e1:SetReset(RESET_PHASE + PHASE_END)
  	e1:SetTargetRange(1, 0)
  	Duel.RegisterEffect(e1, tp)
  end
  function s.tcfilter(tc, ec)
  	return tc:IsFaceup() and ec:CheckEquipTarget(tc)
  end
  function s.ecfilter(c)
  	return c:IsType(TYPE_EQUIP) and Duel.IsExistingTarget(s.tcfilter, 0, LOCATION_MZONE, LOCATION_MZONE, 1, nil, c)
  end
  function s.target(e, tp, eg, ep, ev, re, r, rp, chk, chkc)
  	if chkc then
  		return false
  	end
  	if chk == 0 then
  		if not Duel.IsExistingTarget(s.ecfilter, tp, LOCATION_GRAVE, 0, 1, nil) then
  			return false
  		end
  		if e:GetHandler():IsLocation(LOCATION_HAND) then
  			return Duel.GetLocationCount(tp, LOCATION_SZONE) > 1
  		else
  			return Duel.GetLocationCount(tp, LOCATION_SZONE) > 0
  		end
  	end
  	Duel.Hint(HINT_SELECTMSG, tp, aux.Stringid(id, 0))
  	local g = Duel.SelectTarget(tp, s.ecfilter, tp, LOCATION_GRAVE, 0, 1, 1, nil)
  	local ec = g:GetFirst()
  	e:SetLabelObject(ec)
  	Duel.Hint(HINT_SELECTMSG, tp, aux.Stringid(id, 1))
  	Duel.SelectTarget(tp, s.tcfilter, tp, LOCATION_MZONE, LOCATION_MZONE, 1, 1, ec:GetEquipTarget(), ec)
  	Duel.SetOperationInfo(0, CATEGORY_LEAVE_GRAVE, ec, 1, 0, 0)
  end
  function s.operation(e, tp, eg, ep, ev, re, r, rp)
  	local ec = e:GetLabelObject()
  	local g = Duel.GetChainInfo(0, CHAININFO_TARGET_CARDS)
  	local tc = g:GetFirst()
  	if tc == ec then
  		tc = g:GetNext()
  	end
  	if ec:IsFaceup() and ec:IsRelateToEffect(e) and Duel.Equip(tp, ec, tc) then
  		local e1 = Effect.CreateEffect(e:GetHandler())
  		e1:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
  		e1:SetRange(LOCATION_SZONE)
  		e1:SetCode(EVENT_PHASE + PHASE_END)
  		e1:SetCountLimit(1)
  		e1:SetOperation(s.desop)
  		e1:SetReset(RESET_EVENT + RESETS_STANDARD + RESET_PHASE + PHASE_END)
  		ec:RegisterEffect(e1)
  	end
  end
  function s.desop(e, tp, eg, ep, ev, re, r, rp)
  	Duel.Destroy(e:GetHandler(), REASON_EFFECT)
  end
  
  
source_text: Swords
  Target 1 Equip Spell Card in your Graveyard and 1 appropriate monster on the field; equip the Equip Spell Card to that monster. Destroy that Equip Spell Card during the End Phase. If you activate this card, you cannot Special Summon for the rest of this turn. You can only activate 1 "Swords at Dawn" per turn.
target_text: -- Swords
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--effect
  	local e1 = Effect.CreateEffect(c)
  	e1:SetCategory(CATEGORY_EQUIP)
  	e1:SetType(EFFECT_TYPE_ACTIVATE)
  	e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
  	e1:SetCode(EVENT_FREE_CHAIN)
  	e1:SetCountLimit(1, id + EFFECT_COUNT_CODE_OATH)
  	e1:SetCost(s.cost)
  	e1:SetTarget(s.target)
  	e1:SetOperation(s.operation)
  	c:RegisterEffect(e1)
  end
  function s.cost(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return true
  	end
  	--oath effects
  	local e1 = Effect.CreateEffect(e:GetHandler())
  	e1:SetType(EFFECT_TYPE_FIELD)
  	e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET + EFFECT_FLAG_OATH)
  	e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
  	e1:SetReset(RESET_PHASE + PHASE_END)
  	e1:SetTargetRange(1, 0)
  	Duel.RegisterEffect(e1, tp)
  end
  function s.tcfilter(tc, ec)
  	return tc:IsFaceup() and ec:CheckEquipTarget(tc)
  end
  function s.ecfilter(c)
  	return c:IsType(TYPE_EQUIP) and Duel.IsExistingTarget(s.tcfilter, 0, LOCATION_MZONE, LOCATION_MZONE, 1, nil, c)
  end
  function s.target(e, tp, eg, ep, ev, re, r, rp, chk, chkc)
  	if chkc then
  		return false
  	end
  	if chk == 0 then
  		if not Duel.IsExistingTarget(s.ecfilter, tp, LOCATION_GRAVE, 0, 1, nil) then
  			return false
  		end
  		if e:GetHandler():IsLocation(LOCATION_HAND) then
  			return Duel.GetLocationCount(tp, LOCATION_SZONE) > 1
  		else
  			return Duel.GetLocationCount(tp, LOCATION_SZONE) > 0
  		end
  	end
  	Duel.Hint(HINT_SELECTMSG, tp, aux.Stringid(id, 0))
  	local g = Duel.SelectTarget(tp, s.ecfilter, tp, LOCATION_GRAVE, 0, 1, 1, nil)
  	local ec = g:GetFirst()
  	e:SetLabelObject(ec)
  	Duel.Hint(HINT_SELECTMSG, tp, aux.Stringid(id, 1))
  	Duel.SelectTarget(tp, s.tcfilter, tp, LOCATION_MZONE, LOCATION_MZONE, 1, 1, ec:GetEquipTarget(), ec)
  	Duel.SetOperationInfo(0, CATEGORY_LEAVE_GRAVE, ec, 1, 0, 0)
  end
  function s.operation(e, tp, eg, ep, ev, re, r, rp)
  	local ec = e:GetLabelObject()
  	local g = Duel.GetChainInfo(0, CHAININFO_TARGET_CARDS)
  	local tc = g:GetFirst()
  	if tc == ec then
  		tc = g:GetNext()
  	end
  	if ec:IsFaceup() and ec:IsRelateToEffect(e) and Duel.Equip(tp, ec, tc) then
  		local e1 = Effect.CreateEffect(e:GetHandler())
  		e1:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
  		e1:SetRange(LOCATION_SZONE)
  		e1:SetCode(EVENT_PHASE + PHASE_END)
  		e1:SetCountLimit(1)
  		e1:SetOperation(s.desop)
  		e1:SetReset(RESET_EVENT + RESETS_STANDARD + RESET_PHASE + PHASE_END)
  		ec:RegisterEffect(e1)
  	end
  end
  function s.desop(e, tp, eg, ep, ev, re, r, rp)
  	Duel.Destroy(e:GetHandler(), REASON_EFFECT)
  end
  
  