name: サイバーダーク・インパクト!
card_text: 1:自分の手札・フィールド・墓地から、「サイバー・ダーク・ホーン」「サイバー・ダーク・エッジ」「サイバー・ダーク・キール」を1枚ずつ持ち主のデッキに戻し、「鎧黒竜-サイバー・ダーク・ドラゴン」1体をEXデッキから融合召喚する。
external_ids: local CARD_ID_0 = 40418351 --鎧黒竜-サイバー・ダーク・ドラゴン
  local CARD_ID_1 = 41230939 --サイバー・ダーク・ホーン
  local CARD_ID_2 = 77625948 --サイバー・ダーク・エッジ
  local CARD_ID_3 = 3019642 --サイバー・ダーク・キール
  
lua: local CARD_ID_0 = 40418351 --鎧黒竜-サイバー・ダーク・ドラゴン
  local CARD_ID_1 = 41230939 --サイバー・ダーク・ホーン
  local CARD_ID_2 = 77625948 --サイバー・ダーク・エッジ
  local CARD_ID_3 = 3019642 --サイバー・ダーク・キール
  local s, id, o = GetID()
  function s.initial_effect(c)
  	aux.AddCodeList(c, CARD_ID_1, CARD_ID_2, CARD_ID_3, CARD_ID_0)
  	--Activate
  	local e1 = FusionSpell.CreateSummonEffect(c, {
  		fusfilter = s.fusfilter,
  		matfilter = s.matfilter,
  		pre_select_mat_location = LOCATION_HAND | LOCATION_ONFIELD | LOCATION_GRAVE,
  		mat_operation_code_map = {
  			{ [LOCATION_DECK] = FusionSpell.FUSION_OPERATION_GRAVE },
  			{ [0xff] = FusionSpell.FUSION_OPERATION_SHUFFLE },
  		},
  		extra_target = s.extra_target,
  	})
  	e1:SetCategory(CATEGORY_TODECK + CATEGORY_SPECIAL_SUMMON + CATEGORY_FUSION_SUMMON)
  	c:RegisterEffect(e1)
  end
  
  function s.fusfilter(c)
  	return c:IsCode(CARD_ID_0) --- 鎧黒竜-サイバー・ダーク・ドラゴン
  end
  
  function s.matfilter(c)
  	--- material must be one of this name
  	return c:IsFusionCode(CARD_ID_1, CARD_ID_2, CARD_ID_3)
  end
  
  function s.extra_target(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return true
  	end
  	Duel.SetOperationInfo(0, CATEGORY_TODECK, nil, 1, tp, LOCATION_ONFIELD + LOCATION_GRAVE + LOCATION_HAND)
  end
  
  
source_text: サイバーダーク・インパクト!
  1:自分の手札・フィールド・墓地から、「サイバー・ダーク・ホーン」「サイバー・ダーク・エッジ」「サイバー・ダーク・キール」を1枚ずつ持ち主のデッキに戻し、「鎧黒竜-サイバー・ダーク・ドラゴン」1体をEXデッキから融合召喚する。
target_text: -- サイバーダーク・インパクト!
  local CARD_ID_0 = 40418351 --鎧黒竜-サイバー・ダーク・ドラゴン
  local CARD_ID_1 = 41230939 --サイバー・ダーク・ホーン
  local CARD_ID_2 = 77625948 --サイバー・ダーク・エッジ
  local CARD_ID_3 = 3019642 --サイバー・ダーク・キール
  local s, id, o = GetID()
  function s.initial_effect(c)
  	aux.AddCodeList(c, CARD_ID_1, CARD_ID_2, CARD_ID_3, CARD_ID_0)
  	--Activate
  	local e1 = FusionSpell.CreateSummonEffect(c, {
  		fusfilter = s.fusfilter,
  		matfilter = s.matfilter,
  		pre_select_mat_location = LOCATION_HAND | LOCATION_ONFIELD | LOCATION_GRAVE,
  		mat_operation_code_map = {
  			{ [LOCATION_DECK] = FusionSpell.FUSION_OPERATION_GRAVE },
  			{ [0xff] = FusionSpell.FUSION_OPERATION_SHUFFLE },
  		},
  		extra_target = s.extra_target,
  	})
  	e1:SetCategory(CATEGORY_TODECK + CATEGORY_SPECIAL_SUMMON + CATEGORY_FUSION_SUMMON)
  	c:RegisterEffect(e1)
  end
  
  function s.fusfilter(c)
  	return c:IsCode(CARD_ID_0) --- 鎧黒竜-サイバー・ダーク・ドラゴン
  end
  
  function s.matfilter(c)
  	--- material must be one of this name
  	return c:IsFusionCode(CARD_ID_1, CARD_ID_2, CARD_ID_3)
  end
  
  function s.extra_target(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return true
  	end
  	Duel.SetOperationInfo(0, CATEGORY_TODECK, nil, 1, tp, LOCATION_ONFIELD + LOCATION_GRAVE + LOCATION_HAND)
  end
  
  