name: ライフ・ストリーム・ドラゴン
card_text: チューナー+「パワー・ツール・ドラゴン」
  1:このカードがS召喚に成功した時に発動できる。
  自分のLPを4000にする。
  2:このカードがモンスターゾーンに存在する限り、自分が受ける効果ダメージは0になる。
  3:このカードが破壊される場合、代わりに自分の墓地の装備魔法カード1枚を除外できる。
external_ids: local CARD_ID_0 = 2403771 --パワー・ツール・ドラゴン
  
lua: local CARD_ID_0 = 2403771 --パワー・ツール・ドラゴン
  local s, id, o = GetID()
  function s.initial_effect(c)
  	aux.AddMaterialCodeList(c, CARD_ID_0)
  	--synchro summon
  	aux.AddSynchroProcedure(c, nil, aux.FilterBoolFunction(Card.IsCode, CARD_ID_0), 1, 1)
  	c:EnableReviveLimit()
  	--change lp
  	local e1 = Effect.CreateEffect(c)
  	e1:SetDescription(aux.Stringid(id, 0))
  	e1:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_O)
  	e1:SetCode(EVENT_SPSUMMON_SUCCESS)
  	e1:SetCondition(s.lpcon)
  	e1:SetOperation(s.lpop)
  	c:RegisterEffect(e1)
  	--damage reduce
  	local e2 = Effect.CreateEffect(c)
  	e2:SetType(EFFECT_TYPE_FIELD)
  	e2:SetCode(EFFECT_CHANGE_DAMAGE)
  	e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
  	e2:SetRange(LOCATION_MZONE)
  	e2:SetTargetRange(1, 0)
  	e2:SetValue(s.damval)
  	c:RegisterEffect(e2)
  	local e3 = e2:Clone()
  	e3:SetCode(EFFECT_NO_EFFECT_DAMAGE)
  	c:RegisterEffect(e3)
  	--Destroy replace
  	local e4 = Effect.CreateEffect(c)
  	e4:SetType(EFFECT_TYPE_CONTINUOUS + EFFECT_TYPE_SINGLE)
  	e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
  	e4:SetRange(LOCATION_MZONE)
  	e4:SetCode(EFFECT_DESTROY_REPLACE)
  	e4:SetTarget(s.desreptg)
  	c:RegisterEffect(e4)
  	--double tuner check
  	local e5 = Effect.CreateEffect(c)
  	e5:SetType(EFFECT_TYPE_SINGLE)
  	e5:SetCode(EFFECT_MATERIAL_CHECK)
  	e5:SetValue(s.valcheck)
  	c:RegisterEffect(e5)
  end
  s.material_type = TYPE_SYNCHRO
  function s.lpcon(e, tp, eg, ep, ev, re, r, rp)
  	return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO)
  end
  function s.lpop(e, tp, eg, ep, ev, re, r, rp)
  	Duel.SetLP(tp, 4000)
  end
  function s.damval(e, re, val, r, rp, rc)
  	if bit.band(r, REASON_EFFECT) ~= 0 then
  		return 0
  	end
  	return val
  end
  function s.repfilter(c)
  	return c:IsType(TYPE_EQUIP) and c:IsAbleToRemoveAsCost()
  end
  function s.desreptg(e, tp, eg, ep, ev, re, r, rp, chk)
  	local c = e:GetHandler()
  	if chk == 0 then
  		return c:IsReason(REASON_EFFECT + REASON_BATTLE) and not c:IsReason(REASON_REPLACE) and Duel.IsExistingMatchingCard(s.repfilter, tp, LOCATION_GRAVE, 0, 1, nil)
  	end
  	if Duel.SelectEffectYesNo(tp, c, 96) then
  		Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_REMOVE)
  		local g = Duel.SelectMatchingCard(tp, s.repfilter, tp, LOCATION_GRAVE, 0, 1, 1, nil)
  		Duel.Remove(g, POS_FACEUP, REASON_COST)
  		return true
  	else
  		return false
  	end
  end
  function s.valcheck(e, c)
  	local g = c:GetMaterial()
  	if g:IsExists(Card.IsType, 2, nil, TYPE_TUNER) then
  		local e1 = Effect.CreateEffect(c)
  		e1:SetType(EFFECT_TYPE_SINGLE)
  		e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE + EFFECT_FLAG_UNCOPYABLE)
  		e1:SetCode(21142671)
  		e1:SetReset(RESET_EVENT + RESETS_STANDARD - RESET_TOFIELD + RESET_PHASE + PHASE_END)
  		c:RegisterEffect(e1)
  	end
  end
  
  
source_text: ライフ・ストリーム・ドラゴン
  チューナー+「パワー・ツール・ドラゴン」
  1:このカードがS召喚に成功した時に発動できる。
  自分のLPを4000にする。
  2:このカードがモンスターゾーンに存在する限り、自分が受ける効果ダメージは0になる。
  3:このカードが破壊される場合、代わりに自分の墓地の装備魔法カード1枚を除外できる。
target_text: -- ライフ・ストリーム・ドラゴン
  local CARD_ID_0 = 2403771 --パワー・ツール・ドラゴン
  local s, id, o = GetID()
  function s.initial_effect(c)
  	aux.AddMaterialCodeList(c, CARD_ID_0)
  	--synchro summon
  	aux.AddSynchroProcedure(c, nil, aux.FilterBoolFunction(Card.IsCode, CARD_ID_0), 1, 1)
  	c:EnableReviveLimit()
  	--change lp
  	local e1 = Effect.CreateEffect(c)
  	e1:SetDescription(aux.Stringid(id, 0))
  	e1:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_O)
  	e1:SetCode(EVENT_SPSUMMON_SUCCESS)
  	e1:SetCondition(s.lpcon)
  	e1:SetOperation(s.lpop)
  	c:RegisterEffect(e1)
  	--damage reduce
  	local e2 = Effect.CreateEffect(c)
  	e2:SetType(EFFECT_TYPE_FIELD)
  	e2:SetCode(EFFECT_CHANGE_DAMAGE)
  	e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
  	e2:SetRange(LOCATION_MZONE)
  	e2:SetTargetRange(1, 0)
  	e2:SetValue(s.damval)
  	c:RegisterEffect(e2)
  	local e3 = e2:Clone()
  	e3:SetCode(EFFECT_NO_EFFECT_DAMAGE)
  	c:RegisterEffect(e3)
  	--Destroy replace
  	local e4 = Effect.CreateEffect(c)
  	e4:SetType(EFFECT_TYPE_CONTINUOUS + EFFECT_TYPE_SINGLE)
  	e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
  	e4:SetRange(LOCATION_MZONE)
  	e4:SetCode(EFFECT_DESTROY_REPLACE)
  	e4:SetTarget(s.desreptg)
  	c:RegisterEffect(e4)
  	--double tuner check
  	local e5 = Effect.CreateEffect(c)
  	e5:SetType(EFFECT_TYPE_SINGLE)
  	e5:SetCode(EFFECT_MATERIAL_CHECK)
  	e5:SetValue(s.valcheck)
  	c:RegisterEffect(e5)
  end
  s.material_type = TYPE_SYNCHRO
  function s.lpcon(e, tp, eg, ep, ev, re, r, rp)
  	return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO)
  end
  function s.lpop(e, tp, eg, ep, ev, re, r, rp)
  	Duel.SetLP(tp, 4000)
  end
  function s.damval(e, re, val, r, rp, rc)
  	if bit.band(r, REASON_EFFECT) ~= 0 then
  		return 0
  	end
  	return val
  end
  function s.repfilter(c)
  	return c:IsType(TYPE_EQUIP) and c:IsAbleToRemoveAsCost()
  end
  function s.desreptg(e, tp, eg, ep, ev, re, r, rp, chk)
  	local c = e:GetHandler()
  	if chk == 0 then
  		return c:IsReason(REASON_EFFECT + REASON_BATTLE) and not c:IsReason(REASON_REPLACE) and Duel.IsExistingMatchingCard(s.repfilter, tp, LOCATION_GRAVE, 0, 1, nil)
  	end
  	if Duel.SelectEffectYesNo(tp, c, 96) then
  		Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_REMOVE)
  		local g = Duel.SelectMatchingCard(tp, s.repfilter, tp, LOCATION_GRAVE, 0, 1, 1, nil)
  		Duel.Remove(g, POS_FACEUP, REASON_COST)
  		return true
  	else
  		return false
  	end
  end
  function s.valcheck(e, c)
  	local g = c:GetMaterial()
  	if g:IsExists(Card.IsType, 2, nil, TYPE_TUNER) then
  		local e1 = Effect.CreateEffect(c)
  		e1:SetType(EFFECT_TYPE_SINGLE)
  		e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE + EFFECT_FLAG_UNCOPYABLE)
  		e1:SetCode(21142671)
  		e1:SetReset(RESET_EVENT + RESETS_STANDARD - RESET_TOFIELD + RESET_PHASE + PHASE_END)
  		c:RegisterEffect(e1)
  	end
  end
  
  