name: ミスティック・ソードマン
card_text: このカードを通常召喚する場合、裏側守備表示でしか出せない。
  裏側守備表示のモンスターを攻撃した場合、ダメージ計算を行わず裏側守備表示のままそのモンスターを破壊する。
  この効果で破壊したモンスターを墓地へ送らず、相手のデッキの一番上に置く事ができる。
external_ids: local CARD_ID_0 = 47507260 --ミスティック・ソードマン LV2
  local CARD_ID_1 = 74591968 --ミスティック・ソードマン LV4
  
lua: local CARD_ID_0 = 47507260 --ミスティック・ソードマン LV2
  local CARD_ID_1 = 74591968 --ミスティック・ソードマン LV4
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--destroy
  	local e1 = Effect.CreateEffect(c)
  	e1:SetDescription(aux.Stringid(id, 0))
  	e1:SetCategory(CATEGORY_DESTROY)
  	e1:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_F)
  	e1:SetCode(EVENT_BATTLE_START)
  	e1:SetCondition(s.descon)
  	e1:SetTarget(s.destg)
  	e1:SetOperation(s.desop)
  	c:RegisterEffect(e1)
  	--summon limit
  	local e2 = Effect.CreateEffect(c)
  	e2:SetType(EFFECT_TYPE_SINGLE)
  	e2:SetCode(EFFECT_LIMIT_SUMMON_PROC)
  	e2:SetCondition(s.sumcon)
  	c:RegisterEffect(e2)
  end
  s.lvdn = { CARD_ID_0, CARD_ID_1 }
  function s.descon(e, tp, eg, ep, ev, re, r, rp)
  	local d = Duel.GetAttackTarget()
  	return e:GetHandler() == Duel.GetAttacker() and d and d:IsFacedown() and d:IsDefensePos()
  end
  function s.destg(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return true
  	end
  	Duel.SetOperationInfo(0, CATEGORY_DESTROY, Duel.GetAttackTarget(), 1, 0, 0)
  end
  function s.desop(e, tp, eg, ep, ev, re, r, rp)
  	local d = Duel.GetAttackTarget()
  	if d:IsRelateToBattle() then
  		if d:GetOwner() ~= tp and Duel.SelectYesNo(tp, aux.Stringid(id, 1)) then
  			Duel.Destroy(d, REASON_EFFECT, LOCATION_DECK)
  		else
  			Duel.Destroy(d, REASON_EFFECT)
  		end
  	end
  end
  function s.sumcon(e, c, minc)
  	if not c then
  		return true
  	end
  	return false
  end
  
  
source_text: ミスティック・ソードマン
  このカードを通常召喚する場合、裏側守備表示でしか出せない。
  裏側守備表示のモンスターを攻撃した場合、ダメージ計算を行わず裏側守備表示のままそのモンスターを破壊する。
  この効果で破壊したモンスターを墓地へ送らず、相手のデッキの一番上に置く事ができる。
target_text: -- ミスティック・ソードマン
  local CARD_ID_0 = 47507260 --ミスティック・ソードマン LV2
  local CARD_ID_1 = 74591968 --ミスティック・ソードマン LV4
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--destroy
  	local e1 = Effect.CreateEffect(c)
  	e1:SetDescription(aux.Stringid(id, 0))
  	e1:SetCategory(CATEGORY_DESTROY)
  	e1:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_F)
  	e1:SetCode(EVENT_BATTLE_START)
  	e1:SetCondition(s.descon)
  	e1:SetTarget(s.destg)
  	e1:SetOperation(s.desop)
  	c:RegisterEffect(e1)
  	--summon limit
  	local e2 = Effect.CreateEffect(c)
  	e2:SetType(EFFECT_TYPE_SINGLE)
  	e2:SetCode(EFFECT_LIMIT_SUMMON_PROC)
  	e2:SetCondition(s.sumcon)
  	c:RegisterEffect(e2)
  end
  s.lvdn = { CARD_ID_0, CARD_ID_1 }
  function s.descon(e, tp, eg, ep, ev, re, r, rp)
  	local d = Duel.GetAttackTarget()
  	return e:GetHandler() == Duel.GetAttacker() and d and d:IsFacedown() and d:IsDefensePos()
  end
  function s.destg(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return true
  	end
  	Duel.SetOperationInfo(0, CATEGORY_DESTROY, Duel.GetAttackTarget(), 1, 0, 0)
  end
  function s.desop(e, tp, eg, ep, ev, re, r, rp)
  	local d = Duel.GetAttackTarget()
  	if d:IsRelateToBattle() then
  		if d:GetOwner() ~= tp and Duel.SelectYesNo(tp, aux.Stringid(id, 1)) then
  			Duel.Destroy(d, REASON_EFFECT, LOCATION_DECK)
  		else
  			Duel.Destroy(d, REASON_EFFECT)
  		end
  	end
  end
  function s.sumcon(e, c, minc)
  	if not c then
  		return true
  	end
  	return false
  end
  
  