function c1553075.initial_effect(c) --Activate local e1=Effect.CreateEffect(c) e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetProperty(EFFECT_FLAG_CARD_TARGET) e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetCode(EVENT_FREE_CHAIN) e1:SetCountLimit(1,1553075+EFFECT_COUNT_CODE_OATH) e1:SetTarget(c1553075.target) e1:SetOperation(c1553075.activate) c:RegisterEffect(e1) end function c1553075.filter(c,e,tp) return c:IsSetCard(0xFA0) and c:IsCanBeEffectTarget(e) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end function c1553075.xyzfilter(c,mg) return c:IsXyzSummonable(mg,2,2) and c:IsSetCard(0x190) end function c1553075.mfilter1(c,mg,exg) return mg:IsExists(c1553075.mfilter2,1,c,c,exg) end function c1553075.xyzfilter2(c,mg) return c:IsXyzSummonable(mg,2,2) and c:IsSetCard(0x190) end function c1553075.mfilter2(c,mc,exg) return exg:IsExists(c1553075.xyzfilter2,1,nil,Group.FromCards(c,mc)) end function c1553075.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) if chkc then return false end local mg=Duel.GetMatchingGroup(c1553075.filter,tp,LOCATION_GRAVE,0,nil,e,tp) local exg=Duel.GetMatchingGroup(c1553075.xyzfilter,tp,LOCATION_EXTRA,0,nil,mg) if chk==0 then return Duel.IsPlayerCanSpecialSummonCount(tp,2) and not Duel.IsPlayerAffectedByEffect(tp,59822133) and Duel.GetLocationCount(tp,LOCATION_MZONE)>1 and exg:GetCount()>0 end Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) local sg1=mg:FilterSelect(tp,c1553075.mfilter1,1,1,nil,mg,exg) local tc1=sg1:GetFirst() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) local sg2=mg:FilterSelect(tp,c1553075.mfilter2,1,1,tc1,tc1,exg) sg1:Merge(sg2) Duel.SetTargetCard(sg1) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,sg1,2,0,0) end function c1553075.filter2(c,e,tp) return c:IsRelateToEffect(e) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end function c1553075.activate(e,tp,eg,ep,ev,re,r,rp) if Duel.IsPlayerAffectedByEffect(tp,59822133) then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(c1553075.filter2,nil,e,tp) if g:GetCount()<2 then return end Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP) Duel.BreakEffect() local xyzg=Duel.GetMatchingGroup(c1553075.xyzfilter,tp,LOCATION_EXTRA,0,nil,g) if xyzg:GetCount()>0 then Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) local xyz=xyzg:Select(tp,1,1,nil):GetFirst() Duel.XyzSummon(tp,xyz,g) end end