name: Dark
card_text: When this card is Normal Summoned: You can add 1 "Uria, Lord of Searing Flames", "Hamon, Lord of Striking Thunder", or "Raviel, Lord of Phantasms", OR 1 card that mentions any of those cards, from your Deck to your hand, except "Dark Beckoning Beast". You can only use this effect of "Dark Beckoning Beast" once per turn. During your Main Phase, you can Normal Summon 1 Fiend monster with 0 ATK/DEF in addition to your Normal Summon/Set. (You can only gain this effect once per turn.)
external_ids: local CARD_ID_0 = 69890967 --Raviel, Lord of Phantasms
  local CARD_ID_1 = 32491822 --Hamon, Lord of Striking Thunder
  local CARD_ID_2 = 6007213 --Uria, Lord of Searing Flames
  
lua: local CARD_ID_0 = 69890967 --Raviel, Lord of Phantasms
  local CARD_ID_1 = 32491822 --Hamon, Lord of Striking Thunder
  local CARD_ID_2 = 6007213 --Uria, Lord of Searing Flames
  local s, id, o = GetID()
  function s.initial_effect(c)
  	aux.AddCodeList(c, CARD_ID_2, CARD_ID_1, CARD_ID_0)
  	--to hand
  	local e1 = Effect.CreateEffect(c)
  	e1:SetDescription(aux.Stringid(id, 0))
  	e1:SetCategory(CATEGORY_SEARCH + CATEGORY_TOHAND)
  	e1:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_O)
  	e1:SetCode(EVENT_SUMMON_SUCCESS)
  	e1:SetCountLimit(1, id)
  	e1:SetTarget(s.thtg)
  	e1:SetOperation(s.thop)
  	c:RegisterEffect(e1)
  	--extra summon
  	local e2 = Effect.CreateEffect(c)
  	e2:SetDescription(aux.Stringid(id, 1))
  	e2:SetType(EFFECT_TYPE_FIELD)
  	e2:SetCode(EFFECT_EXTRA_SUMMON_COUNT)
  	e2:SetRange(LOCATION_MZONE)
  	e2:SetTargetRange(LOCATION_HAND + LOCATION_MZONE, 0)
  	e2:SetTarget(s.exstg)
  	c:RegisterEffect(e2)
  end
  function s.thfilter(c)
  	return (c:IsCode(CARD_ID_2, CARD_ID_1, CARD_ID_0) or ((aux.IsCodeListed(c, CARD_ID_2) or aux.IsCodeListed(c, CARD_ID_1) or aux.IsCodeListed(c, CARD_ID_0)) and not c:IsCode(id)))
  		and c:IsAbleToHand()
  end
  function s.thtg(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return Duel.IsExistingMatchingCard(s.thfilter, tp, LOCATION_DECK, 0, 1, nil)
  	end
  	Duel.SetOperationInfo(0, CATEGORY_TOHAND, nil, 1, tp, LOCATION_DECK)
  end
  function s.thop(e, tp, eg, ep, ev, re, r, rp)
  	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_ATOHAND)
  	local g = Duel.SelectMatchingCard(tp, s.thfilter, tp, LOCATION_DECK, 0, 1, 1, nil)
  	if g:GetCount() > 0 then
  		Duel.SendtoHand(g, nil, REASON_EFFECT)
  		Duel.ConfirmCards(1 - tp, g)
  	end
  end
  function s.exstg(e, c)
  	return c:IsRace(RACE_FIEND) and c:IsAttack(0) and c:IsDefense(0)
  end
  
  
source_text: Dark
  When this card is Normal Summoned: You can add 1 "Uria, Lord of Searing Flames", "Hamon, Lord of Striking Thunder", or "Raviel, Lord of Phantasms", OR 1 card that mentions any of those cards, from your Deck to your hand, except "Dark Beckoning Beast". You can only use this effect of "Dark Beckoning Beast" once per turn. During your Main Phase, you can Normal Summon 1 Fiend monster with 0 ATK/DEF in addition to your Normal Summon/Set. (You can only gain this effect once per turn.)
target_text: -- Dark
  local CARD_ID_0 = 69890967 --Raviel, Lord of Phantasms
  local CARD_ID_1 = 32491822 --Hamon, Lord of Striking Thunder
  local CARD_ID_2 = 6007213 --Uria, Lord of Searing Flames
  local s, id, o = GetID()
  function s.initial_effect(c)
  	aux.AddCodeList(c, CARD_ID_2, CARD_ID_1, CARD_ID_0)
  	--to hand
  	local e1 = Effect.CreateEffect(c)
  	e1:SetDescription(aux.Stringid(id, 0))
  	e1:SetCategory(CATEGORY_SEARCH + CATEGORY_TOHAND)
  	e1:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_O)
  	e1:SetCode(EVENT_SUMMON_SUCCESS)
  	e1:SetCountLimit(1, id)
  	e1:SetTarget(s.thtg)
  	e1:SetOperation(s.thop)
  	c:RegisterEffect(e1)
  	--extra summon
  	local e2 = Effect.CreateEffect(c)
  	e2:SetDescription(aux.Stringid(id, 1))
  	e2:SetType(EFFECT_TYPE_FIELD)
  	e2:SetCode(EFFECT_EXTRA_SUMMON_COUNT)
  	e2:SetRange(LOCATION_MZONE)
  	e2:SetTargetRange(LOCATION_HAND + LOCATION_MZONE, 0)
  	e2:SetTarget(s.exstg)
  	c:RegisterEffect(e2)
  end
  function s.thfilter(c)
  	return (c:IsCode(CARD_ID_2, CARD_ID_1, CARD_ID_0) or ((aux.IsCodeListed(c, CARD_ID_2) or aux.IsCodeListed(c, CARD_ID_1) or aux.IsCodeListed(c, CARD_ID_0)) and not c:IsCode(id)))
  		and c:IsAbleToHand()
  end
  function s.thtg(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return Duel.IsExistingMatchingCard(s.thfilter, tp, LOCATION_DECK, 0, 1, nil)
  	end
  	Duel.SetOperationInfo(0, CATEGORY_TOHAND, nil, 1, tp, LOCATION_DECK)
  end
  function s.thop(e, tp, eg, ep, ev, re, r, rp)
  	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_ATOHAND)
  	local g = Duel.SelectMatchingCard(tp, s.thfilter, tp, LOCATION_DECK, 0, 1, 1, nil)
  	if g:GetCount() > 0 then
  		Duel.SendtoHand(g, nil, REASON_EFFECT)
  		Duel.ConfirmCards(1 - tp, g)
  	end
  end
  function s.exstg(e, c)
  	return c:IsRace(RACE_FIEND) and c:IsAttack(0) and c:IsDefense(0)
  end
  
  