Trickstar
(This card is always treated as a "Marincess" card.)
Link Monsters that point to this card cannot be destroyed by battle. You can only use each of the following effects of "Trickstar Aqua Angel" once per Duel. If you control a "Trickstar" or "Marincess" monster: You can Special Summon this card from your hand or GY. If this card is sent to the GY as Link Material: You can look at all cards in your opponent's hand and all Set cards they control.
local SETCARD_ID_0 = 0xfb --Trickstar

local SETCARD_ID_0 = 0xfb --Trickstar
local s, id, o = GetID()
function s.initial_effect(c)
	--
	local e1 = Effect.CreateEffect(c)
	e1:SetDescription(aux.Stringid(id, 0))
	e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
	e1:SetType(EFFECT_TYPE_IGNITION)
	e1:SetRange(LOCATION_HAND + LOCATION_GRAVE)
	e1:SetCountLimit(1, id + EFFECT_COUNT_CODE_DUEL)
	e1:SetCondition(s.spcon)
	e1:SetTarget(s.sptg)
	e1:SetOperation(s.spop)
	c:RegisterEffect(e1)
	--
	local e2 = Effect.CreateEffect(c)
	e2:SetType(EFFECT_TYPE_FIELD)
	e2:SetRange(LOCATION_MZONE)
	e2:SetTargetRange(LOCATION_MZONE, LOCATION_MZONE)
	e2:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
	e2:SetTarget(s.latktg)
	e2:SetValue(1)
	c:RegisterEffect(e2)
	--
	local e3 = Effect.CreateEffect(c)
	e3:SetDescription(aux.Stringid(id, 1))
	e3:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_O)
	e3:SetCode(EVENT_BE_MATERIAL)
	e3:SetCountLimit(1, id + o + EFFECT_COUNT_CODE_DUEL)
	e3:SetCondition(s.cfcon)
	e3:SetTarget(s.cftg)
	e3:SetOperation(s.cfop)
	c:RegisterEffect(e3)
end
function s.cfilter(c)
	return c:IsSetCard(SETCARD_ID_0, 0x12b) and c:IsFaceup()
end
function s.spcon(e, tp, eg, ep, ev, re, r, rp)
	return Duel.IsExistingMatchingCard(s.cfilter, tp, LOCATION_MZONE, 0, 1, nil)
end
function s.sptg(e, tp, eg, ep, ev, re, r, rp, chk)
	local c = e:GetHandler()
	if chk == 0 then
		return Duel.GetLocationCount(tp, LOCATION_MZONE) > 0 and c:IsCanBeSpecialSummoned(e, 0, tp, false, false)
	end
	Duel.SetOperationInfo(0, CATEGORY_SPECIAL_SUMMON, c, 1, 0, 0)
end
function s.spop(e, tp, eg, ep, ev, re, r, rp)
	local c = e:GetHandler()
	if c:IsRelateToEffect(e) then
		Duel.SpecialSummon(c, 0, tp, tp, false, false, POS_FACEUP)
	end
end
function s.latktg(e, c)
	return c:IsType(TYPE_LINK) and c:GetLinkedGroup():IsContains(e:GetHandler())
end
function s.cfcon(e, tp, eg, ep, ev, re, r, rp)
	return r == REASON_LINK and e:GetHandler():IsLocation(LOCATION_GRAVE)
end
function s.cftg(e, tp, eg, ep, ev, re, r, rp, chk)
	if chk == 0 then
		return Duel.IsExistingMatchingCard(aux.NOT(Card.IsPublic), tp, 0, LOCATION_HAND, 1, nil) or Duel.IsExistingMatchingCard(Card.IsFacedown, tp, 0, LOCATION_ONFIELD, 1, nil)
	end
end
function s.cffilter(c)
	return c:IsLocation(LOCATION_HAND) or c:IsFacedown()
end
function s.cfop(e, tp, eg, ep, ev, re, r, rp)
	local g = Duel.GetFieldGroup(tp, 0, LOCATION_ONFIELD + LOCATION_HAND)
	if g:GetCount() > 0 then
		local cg = g:Filter(s.cffilter, nil)
		Duel.ConfirmCards(tp, cg)
		Duel.ShuffleHand(1 - tp)
	end
end


Trickstar
(This card is always treated as a "Marincess" card.)
Link Monsters that point to this card cannot be destroyed by battle. You can only use each of the following effects of "Trickstar Aqua Angel" once per Duel. If you control a "Trickstar" or "Marincess" monster: You can Special Summon this card from your hand or GY. If this card is sent to the GY as Link Material: You can look at all cards in your opponent's hand and all Set cards they control.
-- Trickstar
local SETCARD_ID_0 = 0xfb --Trickstar
local s, id, o = GetID()
function s.initial_effect(c)
	--
	local e1 = Effect.CreateEffect(c)
	e1:SetDescription(aux.Stringid(id, 0))
	e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
	e1:SetType(EFFECT_TYPE_IGNITION)
	e1:SetRange(LOCATION_HAND + LOCATION_GRAVE)
	e1:SetCountLimit(1, id + EFFECT_COUNT_CODE_DUEL)
	e1:SetCondition(s.spcon)
	e1:SetTarget(s.sptg)
	e1:SetOperation(s.spop)
	c:RegisterEffect(e1)
	--
	local e2 = Effect.CreateEffect(c)
	e2:SetType(EFFECT_TYPE_FIELD)
	e2:SetRange(LOCATION_MZONE)
	e2:SetTargetRange(LOCATION_MZONE, LOCATION_MZONE)
	e2:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
	e2:SetTarget(s.latktg)
	e2:SetValue(1)
	c:RegisterEffect(e2)
	--
	local e3 = Effect.CreateEffect(c)
	e3:SetDescription(aux.Stringid(id, 1))
	e3:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_O)
	e3:SetCode(EVENT_BE_MATERIAL)
	e3:SetCountLimit(1, id + o + EFFECT_COUNT_CODE_DUEL)
	e3:SetCondition(s.cfcon)
	e3:SetTarget(s.cftg)
	e3:SetOperation(s.cfop)
	c:RegisterEffect(e3)
end
function s.cfilter(c)
	return c:IsSetCard(SETCARD_ID_0, 0x12b) and c:IsFaceup()
end
function s.spcon(e, tp, eg, ep, ev, re, r, rp)
	return Duel.IsExistingMatchingCard(s.cfilter, tp, LOCATION_MZONE, 0, 1, nil)
end
function s.sptg(e, tp, eg, ep, ev, re, r, rp, chk)
	local c = e:GetHandler()
	if chk == 0 then
		return Duel.GetLocationCount(tp, LOCATION_MZONE) > 0 and c:IsCanBeSpecialSummoned(e, 0, tp, false, false)
	end
	Duel.SetOperationInfo(0, CATEGORY_SPECIAL_SUMMON, c, 1, 0, 0)
end
function s.spop(e, tp, eg, ep, ev, re, r, rp)
	local c = e:GetHandler()
	if c:IsRelateToEffect(e) then
		Duel.SpecialSummon(c, 0, tp, tp, false, false, POS_FACEUP)
	end
end
function s.latktg(e, c)
	return c:IsType(TYPE_LINK) and c:GetLinkedGroup():IsContains(e:GetHandler())
end
function s.cfcon(e, tp, eg, ep, ev, re, r, rp)
	return r == REASON_LINK and e:GetHandler():IsLocation(LOCATION_GRAVE)
end
function s.cftg(e, tp, eg, ep, ev, re, r, rp, chk)
	if chk == 0 then
		return Duel.IsExistingMatchingCard(aux.NOT(Card.IsPublic), tp, 0, LOCATION_HAND, 1, nil) or Duel.IsExistingMatchingCard(Card.IsFacedown, tp, 0, LOCATION_ONFIELD, 1, nil)
	end
end
function s.cffilter(c)
	return c:IsLocation(LOCATION_HAND) or c:IsFacedown()
end
function s.cfop(e, tp, eg, ep, ev, re, r, rp)
	local g = Duel.GetFieldGroup(tp, 0, LOCATION_ONFIELD + LOCATION_HAND)
	if g:GetCount() > 0 then
		local cg = g:Filter(s.cffilter, nil)
		Duel.ConfirmCards(tp, cg)
		Duel.ShuffleHand(1 - tp)
	end
end

