name: Clear
card_text: If "Clear World" is on the field: You can add 1 monster that mentions "Clear World" from your Deck to your hand. You can only use this effect of "Clear Wall" once per turn. Monsters that mention "Clear World" cannot be destroyed by battle, also you take no battle damage from that battle. While you control a Level 7 or higher monster that mentions "Clear World", your opponent receives all effects of "Clear World", regardless of the monster Attributes they control.
external_ids: local CARD_ID_0 = 33900648 --Clear World
  
lua: local CARD_ID_0 = 33900648 --Clear World
  local s, id, o = GetID()
  function s.initial_effect(c)
  	aux.AddCodeList(c, CARD_ID_0)
  	--activate
  	local e1 = Effect.CreateEffect(c)
  	e1:SetType(EFFECT_TYPE_ACTIVATE)
  	e1:SetCode(EVENT_FREE_CHAIN)
  	c:RegisterEffect(e1)
  	--search
  	local e2 = Effect.CreateEffect(c)
  	e2:SetDescription(aux.Stringid(id, 0))
  	e2:SetCategory(CATEGORY_SEARCH + CATEGORY_TOHAND)
  	e2:SetType(EFFECT_TYPE_IGNITION)
  	e2:SetRange(LOCATION_SZONE)
  	e2:SetCountLimit(1, id)
  	e2:SetCondition(s.thcon)
  	e2:SetTarget(s.thtg)
  	e2:SetOperation(s.thop)
  	c:RegisterEffect(e2)
  	--indestructable
  	local e3 = Effect.CreateEffect(c)
  	e3:SetType(EFFECT_TYPE_FIELD)
  	e3:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
  	e3:SetRange(LOCATION_SZONE)
  	e3:SetTargetRange(LOCATION_MZONE, LOCATION_MZONE)
  	e3:SetTarget(s.indestg)
  	e3:SetValue(1)
  	c:RegisterEffect(e3)
  	--avoid battle damage
  	local e4 = e3:Clone()
  	e4:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
  	e4:SetCode(EFFECT_AVOID_BATTLE_DAMAGE)
  	e4:SetTargetRange(LOCATION_MZONE, 0)
  	c:RegisterEffect(e4)
  	local e5 = e4:Clone()
  	e5:SetCode(EFFECT_NO_BATTLE_DAMAGE)
  	e5:SetTargetRange(0, LOCATION_MZONE)
  	c:RegisterEffect(e5)
  	--affected
  	local e6 = Effect.CreateEffect(c)
  	e6:SetType(EFFECT_TYPE_FIELD)
  	e6:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
  	e6:SetRange(LOCATION_SZONE)
  	e6:SetTargetRange(0, 1)
  	e6:SetCondition(s.ieecon)
  	e6:SetCode(id)
  	c:RegisterEffect(e6)
  end
  function s.thcon(e, tp, eg, ep, ev, re, r, rp)
  	return Duel.IsEnvironment(CARD_ID_0)
  end
  function s.thfilter(c)
  	return aux.IsCodeListed(c, CARD_ID_0) and c:IsType(TYPE_MONSTER) 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.indestg(e, c)
  	return aux.IsCodeListed(c, CARD_ID_0)
  end
  function s.cfilter(c)
  	return c:IsFaceup() and c:IsLevelAbove(7) and aux.IsCodeListed(c, CARD_ID_0)
  end
  function s.ieecon(e)
  	return Duel.IsExistingMatchingCard(s.cfilter, e:GetHandlerPlayer(), LOCATION_MZONE, 0, 1, nil)
  end
  
  
source_text: Clear
  If "Clear World" is on the field: You can add 1 monster that mentions "Clear World" from your Deck to your hand. You can only use this effect of "Clear Wall" once per turn. Monsters that mention "Clear World" cannot be destroyed by battle, also you take no battle damage from that battle. While you control a Level 7 or higher monster that mentions "Clear World", your opponent receives all effects of "Clear World", regardless of the monster Attributes they control.
target_text: -- Clear
  local CARD_ID_0 = 33900648 --Clear World
  local s, id, o = GetID()
  function s.initial_effect(c)
  	aux.AddCodeList(c, CARD_ID_0)
  	--activate
  	local e1 = Effect.CreateEffect(c)
  	e1:SetType(EFFECT_TYPE_ACTIVATE)
  	e1:SetCode(EVENT_FREE_CHAIN)
  	c:RegisterEffect(e1)
  	--search
  	local e2 = Effect.CreateEffect(c)
  	e2:SetDescription(aux.Stringid(id, 0))
  	e2:SetCategory(CATEGORY_SEARCH + CATEGORY_TOHAND)
  	e2:SetType(EFFECT_TYPE_IGNITION)
  	e2:SetRange(LOCATION_SZONE)
  	e2:SetCountLimit(1, id)
  	e2:SetCondition(s.thcon)
  	e2:SetTarget(s.thtg)
  	e2:SetOperation(s.thop)
  	c:RegisterEffect(e2)
  	--indestructable
  	local e3 = Effect.CreateEffect(c)
  	e3:SetType(EFFECT_TYPE_FIELD)
  	e3:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
  	e3:SetRange(LOCATION_SZONE)
  	e3:SetTargetRange(LOCATION_MZONE, LOCATION_MZONE)
  	e3:SetTarget(s.indestg)
  	e3:SetValue(1)
  	c:RegisterEffect(e3)
  	--avoid battle damage
  	local e4 = e3:Clone()
  	e4:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
  	e4:SetCode(EFFECT_AVOID_BATTLE_DAMAGE)
  	e4:SetTargetRange(LOCATION_MZONE, 0)
  	c:RegisterEffect(e4)
  	local e5 = e4:Clone()
  	e5:SetCode(EFFECT_NO_BATTLE_DAMAGE)
  	e5:SetTargetRange(0, LOCATION_MZONE)
  	c:RegisterEffect(e5)
  	--affected
  	local e6 = Effect.CreateEffect(c)
  	e6:SetType(EFFECT_TYPE_FIELD)
  	e6:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
  	e6:SetRange(LOCATION_SZONE)
  	e6:SetTargetRange(0, 1)
  	e6:SetCondition(s.ieecon)
  	e6:SetCode(id)
  	c:RegisterEffect(e6)
  end
  function s.thcon(e, tp, eg, ep, ev, re, r, rp)
  	return Duel.IsEnvironment(CARD_ID_0)
  end
  function s.thfilter(c)
  	return aux.IsCodeListed(c, CARD_ID_0) and c:IsType(TYPE_MONSTER) 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.indestg(e, c)
  	return aux.IsCodeListed(c, CARD_ID_0)
  end
  function s.cfilter(c)
  	return c:IsFaceup() and c:IsLevelAbove(7) and aux.IsCodeListed(c, CARD_ID_0)
  end
  function s.ieecon(e)
  	return Duel.IsExistingMatchingCard(s.cfilter, e:GetHandlerPlayer(), LOCATION_MZONE, 0, 1, nil)
  end
  
  