name: 初買い
card_text: 1:相手のデッキの上からカードを5枚めくり、自分はその中から1枚を選んで100の倍数の数を宣言する(最大3000まで)。
  相手はその数値分のLPを回復できる。
  回復した場合、自分はその数値分のLPを失い、選んだカードを自分の手札に加え、残りのカードを元の順番でデッキの上に戻す。
  回復しなかった場合、めくったカードを元の順番でデッキの上に戻す。
lua: local s, id, o = GetID()
  function s.initial_effect(c)
  	--Activate
  	local e1 = Effect.CreateEffect(c)
  	e1:SetCategory(CATEGORY_RECOVER + CATEGORY_TOHAND + CATEGORY_SEARCH)
  	e1:SetType(EFFECT_TYPE_ACTIVATE)
  	e1:SetCode(EVENT_FREE_CHAIN)
  	e1:SetTarget(s.cftg)
  	e1:SetOperation(s.cfop)
  	c:RegisterEffect(e1)
  end
  function s.cftg(e, tp, eg, ep, ev, re, r, rp, chk)
  	local g = Duel.GetDecktopGroup(1 - tp, 5)
  	if chk == 0 then
  		return g:FilterCount(Card.IsAbleToHand, nil, tp) > 0
  	end
  	Duel.SetTargetPlayer(tp)
  end
  function s.cfop(e, tp, eg, ep, ev, re, r, rp)
  	local p = Duel.GetChainInfo(0, CHAININFO_TARGET_PLAYER)
  	local g = Duel.GetDecktopGroup(1 - p, 5)
  	if g:FilterCount(Card.IsAbleToHand, nil, tp) == 0 then
  		return
  	end
  	Duel.ConfirmDecktop(1 - p, 5)
  	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_ATOHAND)
  	Duel.RevealSelectDeckSequence(true)
  	local tc = g:FilterSelect(tp, Card.IsAbleToHand, 1, 1, nil, tp):GetFirst()
  	Duel.RevealSelectDeckSequence(false)
  	local num = math.floor(3000 / 100)
  	local t = {}
  	for i = 1, num do
  		t[i] = i * 100
  	end
  	local val = Duel.AnnounceNumber(tp, table.unpack(t))
  	if Duel.SelectYesNo(1 - p, aux.Stringid(id, 0)) then
  		if Duel.Recover(1 - p, val, REASON_EFFECT) > 0 then
  			Duel.SetLP(tp, Duel.GetLP(tp) - val)
  			Duel.DisableShuffleCheck(true)
  			Duel.SendtoHand(tc, p, REASON_EFFECT)
  			Duel.ConfirmCards(1 - p, tc)
  			Duel.ShuffleHand(p)
  		end
  	end
  end
  
  
source_text: 初買い
  1:相手のデッキの上からカードを5枚めくり、自分はその中から1枚を選んで100の倍数の数を宣言する(最大3000まで)。
  相手はその数値分のLPを回復できる。
  回復した場合、自分はその数値分のLPを失い、選んだカードを自分の手札に加え、残りのカードを元の順番でデッキの上に戻す。
  回復しなかった場合、めくったカードを元の順番でデッキの上に戻す。
target_text: -- 初買い
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--Activate
  	local e1 = Effect.CreateEffect(c)
  	e1:SetCategory(CATEGORY_RECOVER + CATEGORY_TOHAND + CATEGORY_SEARCH)
  	e1:SetType(EFFECT_TYPE_ACTIVATE)
  	e1:SetCode(EVENT_FREE_CHAIN)
  	e1:SetTarget(s.cftg)
  	e1:SetOperation(s.cfop)
  	c:RegisterEffect(e1)
  end
  function s.cftg(e, tp, eg, ep, ev, re, r, rp, chk)
  	local g = Duel.GetDecktopGroup(1 - tp, 5)
  	if chk == 0 then
  		return g:FilterCount(Card.IsAbleToHand, nil, tp) > 0
  	end
  	Duel.SetTargetPlayer(tp)
  end
  function s.cfop(e, tp, eg, ep, ev, re, r, rp)
  	local p = Duel.GetChainInfo(0, CHAININFO_TARGET_PLAYER)
  	local g = Duel.GetDecktopGroup(1 - p, 5)
  	if g:FilterCount(Card.IsAbleToHand, nil, tp) == 0 then
  		return
  	end
  	Duel.ConfirmDecktop(1 - p, 5)
  	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_ATOHAND)
  	Duel.RevealSelectDeckSequence(true)
  	local tc = g:FilterSelect(tp, Card.IsAbleToHand, 1, 1, nil, tp):GetFirst()
  	Duel.RevealSelectDeckSequence(false)
  	local num = math.floor(3000 / 100)
  	local t = {}
  	for i = 1, num do
  		t[i] = i * 100
  	end
  	local val = Duel.AnnounceNumber(tp, table.unpack(t))
  	if Duel.SelectYesNo(1 - p, aux.Stringid(id, 0)) then
  		if Duel.Recover(1 - p, val, REASON_EFFECT) > 0 then
  			Duel.SetLP(tp, Duel.GetLP(tp) - val)
  			Duel.DisableShuffleCheck(true)
  			Duel.SendtoHand(tc, p, REASON_EFFECT)
  			Duel.ConfirmCards(1 - p, tc)
  			Duel.ShuffleHand(p)
  		end
  	end
  end
  
  