name: Scareclaw
card_text: During the Main Phase (Quick Effect): You can Special Summon this card from your hand, and if you do, banish 1 "Kashtira" or "Scareclaw" card from your hand or GY. You can only use this effect of "Scareclaw Kashtira" once per turn. This card can attack while in face-up Defense Position. If it does, apply its DEF for damage calculation. If your "Kashtira" or "Scareclaw" monster battles an opponent's monster, that opponent's monster's effects are negated until the end of this turn.
external_ids: local SETCARD_ID_0 = 0x189 --Kashtira
  
lua: local SETCARD_ID_0 = 0x189 --Kashtira
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--spsummon
  	local e1 = Effect.CreateEffect(c)
  	e1:SetCategory(CATEGORY_SPECIAL_SUMMON + CATEGORY_REMOVE)
  	e1:SetType(EFFECT_TYPE_QUICK_O)
  	e1:SetCode(EVENT_FREE_CHAIN)
  	e1:SetRange(LOCATION_HAND)
  	e1:SetHintTiming(0, TIMINGS_CHECK_MONSTER + TIMING_MAIN_END)
  	e1:SetCountLimit(1, id)
  	e1:SetCondition(s.spcon)
  	e1:SetTarget(s.sptg)
  	e1:SetOperation(s.spop)
  	c:RegisterEffect(e1)
  	--defense attack
  	local e2 = Effect.CreateEffect(c)
  	e2:SetType(EFFECT_TYPE_SINGLE)
  	e2:SetCode(EFFECT_DEFENSE_ATTACK)
  	e2:SetValue(1)
  	c:RegisterEffect(e2)
  	--bp disable
  	local e3 = Effect.CreateEffect(c)
  	e3:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
  	e3:SetCode(EVENT_BE_BATTLE_TARGET)
  	e3:SetRange(LOCATION_MZONE)
  	e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
  	e3:SetOperation(s.disop)
  	c:RegisterEffect(e3)
  	local e5 = Effect.CreateEffect(c)
  	e5:SetType(EFFECT_TYPE_FIELD)
  	e5:SetCode(EFFECT_DISABLE)
  	e5:SetRange(LOCATION_MZONE)
  	e5:SetTargetRange(0, LOCATION_MZONE)
  	e5:SetTarget(s.distg)
  	c:RegisterEffect(e5)
  	local e6 = e5:Clone()
  	e6:SetCode(EFFECT_DISABLE_EFFECT)
  	e6:SetValue(RESET_TURN_SET)
  	c:RegisterEffect(e6)
  end
  function s.spcon(e, tp, eg, ep, ev, re, r, rp)
  	local ph = Duel.GetCurrentPhase()
  	return ph == PHASE_MAIN1 or ph == PHASE_MAIN2
  end
  function s.rmfilter(c)
  	return c:IsSetCard(SETCARD_ID_0, 0x17a) and c:IsAbleToRemove()
  end
  function s.sptg(e, tp, eg, ep, ev, re, r, rp, chk)
  	local c = e:GetHandler()
  	if chk == 0 then
  		return Duel.GetLocationCount(tp, LOCATION_MZONE) > 0
  			and c:IsCanBeSpecialSummoned(e, 0, tp, false, false)
  			and Duel.IsExistingMatchingCard(s.rmfilter, tp, LOCATION_HAND + LOCATION_GRAVE, 0, 1, c)
  	end
  	Duel.SetOperationInfo(0, CATEGORY_SPECIAL_SUMMON, c, 1, 0, 0)
  	Duel.SetOperationInfo(0, CATEGORY_REMOVE, nil, 1, tp, LOCATION_HAND + LOCATION_GRAVE)
  end
  function s.spop(e, tp, eg, ep, ev, re, r, rp)
  	local c = e:GetHandler()
  	if c:IsRelateToEffect(e) and Duel.SpecialSummon(c, 0, tp, tp, false, false, POS_FACEUP) > 0 then
  		Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_REMOVE)
  		local g = Duel.SelectMatchingCard(tp, aux.NecroValleyFilter(s.rmfilter), tp, LOCATION_HAND + LOCATION_GRAVE, 0, 1, 1, nil)
  		if #g > 0 then
  			Duel.Remove(g, POS_FACEUP, REASON_EFFECT)
  		end
  	end
  end
  function s.disop(e, tp, eg, ep, ev, re, r, rp)
  	Duel.AdjustInstantly(e:GetHandler())
  end
  function s.disfilter(c, tp)
  	return c:IsFaceup() and c:IsSetCard(SETCARD_ID_0, 0x17a) and c:IsControler(tp)
  end
  function s.distg(e, c)
  	local fid = e:GetHandler():GetFieldID()
  	for _, flag in ipairs({ c:GetFlagEffectLabel(id) }) do
  		if flag == fid then
  			return true
  		end
  	end
  	local bc = c:GetBattleTarget()
  	if c:IsRelateToBattle() and bc and s.disfilter(bc, e:GetHandlerPlayer()) then
  		c:RegisterFlagEffect(id, RESET_EVENT + RESETS_STANDARD + RESET_PHASE + PHASE_END, 0, 1, fid)
  		return true
  	end
  	return false
  end
  
  
source_text: Scareclaw
  During the Main Phase (Quick Effect): You can Special Summon this card from your hand, and if you do, banish 1 "Kashtira" or "Scareclaw" card from your hand or GY. You can only use this effect of "Scareclaw Kashtira" once per turn. This card can attack while in face-up Defense Position. If it does, apply its DEF for damage calculation. If your "Kashtira" or "Scareclaw" monster battles an opponent's monster, that opponent's monster's effects are negated until the end of this turn.
target_text: -- Scareclaw
  local SETCARD_ID_0 = 0x189 --Kashtira
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--spsummon
  	local e1 = Effect.CreateEffect(c)
  	e1:SetCategory(CATEGORY_SPECIAL_SUMMON + CATEGORY_REMOVE)
  	e1:SetType(EFFECT_TYPE_QUICK_O)
  	e1:SetCode(EVENT_FREE_CHAIN)
  	e1:SetRange(LOCATION_HAND)
  	e1:SetHintTiming(0, TIMINGS_CHECK_MONSTER + TIMING_MAIN_END)
  	e1:SetCountLimit(1, id)
  	e1:SetCondition(s.spcon)
  	e1:SetTarget(s.sptg)
  	e1:SetOperation(s.spop)
  	c:RegisterEffect(e1)
  	--defense attack
  	local e2 = Effect.CreateEffect(c)
  	e2:SetType(EFFECT_TYPE_SINGLE)
  	e2:SetCode(EFFECT_DEFENSE_ATTACK)
  	e2:SetValue(1)
  	c:RegisterEffect(e2)
  	--bp disable
  	local e3 = Effect.CreateEffect(c)
  	e3:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
  	e3:SetCode(EVENT_BE_BATTLE_TARGET)
  	e3:SetRange(LOCATION_MZONE)
  	e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
  	e3:SetOperation(s.disop)
  	c:RegisterEffect(e3)
  	local e5 = Effect.CreateEffect(c)
  	e5:SetType(EFFECT_TYPE_FIELD)
  	e5:SetCode(EFFECT_DISABLE)
  	e5:SetRange(LOCATION_MZONE)
  	e5:SetTargetRange(0, LOCATION_MZONE)
  	e5:SetTarget(s.distg)
  	c:RegisterEffect(e5)
  	local e6 = e5:Clone()
  	e6:SetCode(EFFECT_DISABLE_EFFECT)
  	e6:SetValue(RESET_TURN_SET)
  	c:RegisterEffect(e6)
  end
  function s.spcon(e, tp, eg, ep, ev, re, r, rp)
  	local ph = Duel.GetCurrentPhase()
  	return ph == PHASE_MAIN1 or ph == PHASE_MAIN2
  end
  function s.rmfilter(c)
  	return c:IsSetCard(SETCARD_ID_0, 0x17a) and c:IsAbleToRemove()
  end
  function s.sptg(e, tp, eg, ep, ev, re, r, rp, chk)
  	local c = e:GetHandler()
  	if chk == 0 then
  		return Duel.GetLocationCount(tp, LOCATION_MZONE) > 0
  			and c:IsCanBeSpecialSummoned(e, 0, tp, false, false)
  			and Duel.IsExistingMatchingCard(s.rmfilter, tp, LOCATION_HAND + LOCATION_GRAVE, 0, 1, c)
  	end
  	Duel.SetOperationInfo(0, CATEGORY_SPECIAL_SUMMON, c, 1, 0, 0)
  	Duel.SetOperationInfo(0, CATEGORY_REMOVE, nil, 1, tp, LOCATION_HAND + LOCATION_GRAVE)
  end
  function s.spop(e, tp, eg, ep, ev, re, r, rp)
  	local c = e:GetHandler()
  	if c:IsRelateToEffect(e) and Duel.SpecialSummon(c, 0, tp, tp, false, false, POS_FACEUP) > 0 then
  		Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_REMOVE)
  		local g = Duel.SelectMatchingCard(tp, aux.NecroValleyFilter(s.rmfilter), tp, LOCATION_HAND + LOCATION_GRAVE, 0, 1, 1, nil)
  		if #g > 0 then
  			Duel.Remove(g, POS_FACEUP, REASON_EFFECT)
  		end
  	end
  end
  function s.disop(e, tp, eg, ep, ev, re, r, rp)
  	Duel.AdjustInstantly(e:GetHandler())
  end
  function s.disfilter(c, tp)
  	return c:IsFaceup() and c:IsSetCard(SETCARD_ID_0, 0x17a) and c:IsControler(tp)
  end
  function s.distg(e, c)
  	local fid = e:GetHandler():GetFieldID()
  	for _, flag in ipairs({ c:GetFlagEffectLabel(id) }) do
  		if flag == fid then
  			return true
  		end
  	end
  	local bc = c:GetBattleTarget()
  	if c:IsRelateToBattle() and bc and s.disfilter(bc, e:GetHandlerPlayer()) then
  		c:RegisterFlagEffect(id, RESET_EVENT + RESETS_STANDARD + RESET_PHASE + PHASE_END, 0, 1, fid)
  		return true
  	end
  	return false
  end
  
  