name: BF-逆風のガスト
card_text: 自分フィールド上にカードが存在しない場合、このカードは手札から特殊召喚する事ができる。
  このカードがフィールド上に表側表示で存在する限り、相手モンスターが自分フィールド上に存在する「BF」と名のついたモンスターを攻撃する場合、その攻撃モンスターはダメージステップの間攻撃力が300ポイントダウンする。
external_ids: local SETCARD_ID_0 = 0x33 --BF
  
lua: local SETCARD_ID_0 = 0x33 --BF
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--special summon
  	local e1 = Effect.CreateEffect(c)
  	e1:SetType(EFFECT_TYPE_FIELD)
  	e1:SetCode(EFFECT_SPSUMMON_PROC)
  	e1:SetProperty(EFFECT_FLAG_UNCOPYABLE)
  	e1:SetRange(LOCATION_HAND)
  	e1:SetCondition(s.spcon)
  	c:RegisterEffect(e1)
  	--atk down
  	local e2 = Effect.CreateEffect(c)
  	e2:SetType(EFFECT_TYPE_FIELD)
  	e2:SetCode(EFFECT_UPDATE_ATTACK)
  	e2:SetRange(LOCATION_MZONE)
  	e2:SetTargetRange(0, LOCATION_MZONE)
  	e2:SetCondition(s.atkcon)
  	e2:SetTarget(s.atktg)
  	e2:SetValue(-300)
  	c:RegisterEffect(e2)
  end
  function s.spcon(e, c)
  	if c == nil then
  		return true
  	end
  	return Duel.GetLocationCount(c:GetControler(), LOCATION_MZONE) > 0 and Duel.GetFieldGroupCount(c:GetControler(), LOCATION_ONFIELD, 0) == 0
  end
  function s.atkcon(e)
  	local ph = Duel.GetCurrentPhase()
  	local d = Duel.GetAttackTarget()
  	local tp = e:GetHandlerPlayer()
  	return (ph == PHASE_DAMAGE or ph == PHASE_DAMAGE_CAL) and d and d:IsControler(tp) and d:IsSetCard(SETCARD_ID_0)
  end
  function s.atktg(e, c)
  	return c == Duel.GetAttacker()
  end
  
  
source_text: BF-逆風のガスト
  自分フィールド上にカードが存在しない場合、このカードは手札から特殊召喚する事ができる。
  このカードがフィールド上に表側表示で存在する限り、相手モンスターが自分フィールド上に存在する「BF」と名のついたモンスターを攻撃する場合、その攻撃モンスターはダメージステップの間攻撃力が300ポイントダウンする。
target_text: -- BF-逆風のガスト
  local SETCARD_ID_0 = 0x33 --BF
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--special summon
  	local e1 = Effect.CreateEffect(c)
  	e1:SetType(EFFECT_TYPE_FIELD)
  	e1:SetCode(EFFECT_SPSUMMON_PROC)
  	e1:SetProperty(EFFECT_FLAG_UNCOPYABLE)
  	e1:SetRange(LOCATION_HAND)
  	e1:SetCondition(s.spcon)
  	c:RegisterEffect(e1)
  	--atk down
  	local e2 = Effect.CreateEffect(c)
  	e2:SetType(EFFECT_TYPE_FIELD)
  	e2:SetCode(EFFECT_UPDATE_ATTACK)
  	e2:SetRange(LOCATION_MZONE)
  	e2:SetTargetRange(0, LOCATION_MZONE)
  	e2:SetCondition(s.atkcon)
  	e2:SetTarget(s.atktg)
  	e2:SetValue(-300)
  	c:RegisterEffect(e2)
  end
  function s.spcon(e, c)
  	if c == nil then
  		return true
  	end
  	return Duel.GetLocationCount(c:GetControler(), LOCATION_MZONE) > 0 and Duel.GetFieldGroupCount(c:GetControler(), LOCATION_ONFIELD, 0) == 0
  end
  function s.atkcon(e)
  	local ph = Duel.GetCurrentPhase()
  	local d = Duel.GetAttackTarget()
  	local tp = e:GetHandlerPlayer()
  	return (ph == PHASE_DAMAGE or ph == PHASE_DAMAGE_CAL) and d and d:IsControler(tp) and d:IsSetCard(SETCARD_ID_0)
  end
  function s.atktg(e, c)
  	return c == Duel.GetAttacker()
  end
  
  