name: Torapart
card_text: This card cannot be used as a Synchro Material Monster, except for the Synchro Summon of a Warrior-Type Synchro Monster. If the Synchro Monster that used this card as a Synchro Material Monster attacks, your opponent cannot activate Trap Cards until the end of the Damage Step.
lua: local s, id, o = GetID()
  function s.initial_effect(c)
  	--
  	local e1 = Effect.CreateEffect(c)
  	e1:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_CONTINUOUS)
  	e1:SetCode(EVENT_BE_MATERIAL)
  	e1:SetProperty(EFFECT_FLAG_EVENT_PLAYER)
  	e1:SetCondition(s.con)
  	e1:SetOperation(s.op)
  	c:RegisterEffect(e1)
  	local e2 = Effect.CreateEffect(c)
  	e2:SetType(EFFECT_TYPE_SINGLE)
  	e2:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
  	e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE + EFFECT_FLAG_UNCOPYABLE)
  	e2:SetValue(s.synlimit)
  	c:RegisterEffect(e2)
  end
  function s.con(e, tp, eg, ep, ev, re, r, rp)
  	return r == REASON_SYNCHRO
  end
  function s.op(e, tp, eg, ep, ev, re, r, rp)
  	local c = e:GetHandler()
  	local sync = c:GetReasonCard()
  	local e1 = Effect.CreateEffect(c)
  	e1:SetType(EFFECT_TYPE_FIELD)
  	e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
  	e1:SetCode(EFFECT_CANNOT_ACTIVATE)
  	e1:SetTargetRange(0, 1)
  	e1:SetRange(LOCATION_MZONE)
  	e1:SetValue(s.aclimit)
  	e1:SetCondition(s.actcon)
  	e1:SetReset(RESET_EVENT + RESETS_STANDARD)
  	sync:RegisterEffect(e1, true)
  end
  function s.aclimit(e, re, tp)
  	return re:GetHandler():IsType(TYPE_TRAP) and re:IsHasType(EFFECT_TYPE_ACTIVATE)
  end
  function s.actcon(e)
  	return Duel.GetAttacker() == e:GetHandler()
  end
  function s.synlimit(e, c)
  	if not c then
  		return false
  	end
  	return not c:IsRace(RACE_WARRIOR)
  end
  
  
source_text: Torapart
  This card cannot be used as a Synchro Material Monster, except for the Synchro Summon of a Warrior-Type Synchro Monster. If the Synchro Monster that used this card as a Synchro Material Monster attacks, your opponent cannot activate Trap Cards until the end of the Damage Step.
target_text: -- Torapart
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--
  	local e1 = Effect.CreateEffect(c)
  	e1:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_CONTINUOUS)
  	e1:SetCode(EVENT_BE_MATERIAL)
  	e1:SetProperty(EFFECT_FLAG_EVENT_PLAYER)
  	e1:SetCondition(s.con)
  	e1:SetOperation(s.op)
  	c:RegisterEffect(e1)
  	local e2 = Effect.CreateEffect(c)
  	e2:SetType(EFFECT_TYPE_SINGLE)
  	e2:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
  	e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE + EFFECT_FLAG_UNCOPYABLE)
  	e2:SetValue(s.synlimit)
  	c:RegisterEffect(e2)
  end
  function s.con(e, tp, eg, ep, ev, re, r, rp)
  	return r == REASON_SYNCHRO
  end
  function s.op(e, tp, eg, ep, ev, re, r, rp)
  	local c = e:GetHandler()
  	local sync = c:GetReasonCard()
  	local e1 = Effect.CreateEffect(c)
  	e1:SetType(EFFECT_TYPE_FIELD)
  	e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
  	e1:SetCode(EFFECT_CANNOT_ACTIVATE)
  	e1:SetTargetRange(0, 1)
  	e1:SetRange(LOCATION_MZONE)
  	e1:SetValue(s.aclimit)
  	e1:SetCondition(s.actcon)
  	e1:SetReset(RESET_EVENT + RESETS_STANDARD)
  	sync:RegisterEffect(e1, true)
  end
  function s.aclimit(e, re, tp)
  	return re:GetHandler():IsType(TYPE_TRAP) and re:IsHasType(EFFECT_TYPE_ACTIVATE)
  end
  function s.actcon(e)
  	return Duel.GetAttacker() == e:GetHandler()
  end
  function s.synlimit(e, c)
  	if not c then
  		return false
  	end
  	return not c:IsRace(RACE_WARRIOR)
  end
  
  