--虚拟YouTuber 猫宫Hinata local m=33700352 local cm=_G["c"..m] Duel.LoadScript("c37564765.lua") function cm.initial_effect(c) c:EnableReviveLimit() aux.AddFusionProcFun2(c,function(c) return c:IsAttackAbove(2000) end,function(c) return c:IsAttackBelow(2000) end,true) local e2=Effect.CreateEffect(c) e2:SetType(EFFECT_TYPE_FIELD) e2:SetCode(EFFECT_SPSUMMON_PROC) e2:SetProperty(EFFECT_FLAG_UNCOPYABLE) e2:SetRange(LOCATION_EXTRA) e2:SetCondition(cm.spcon) e2:SetOperation(cm.spop) c:RegisterEffect(e2) local e2=Effect.CreateEffect(c) e2:SetDescription(aux.Stringid(m,0)) e2:SetType(EFFECT_TYPE_IGNITION) e2:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e2:SetRange(LOCATION_MZONE) e2:SetCountLimit(1) local function v_filter(c) return (c:IsLocation(LOCATION_HAND) and not c:IsPublic()) or (c:IsOnField() and c:IsFacedown()) end e2:SetTarget(function(e,tp,eg,ep,ev,re,r,rp,chk) if chk==0 then return Duel.IsExistingMatchingCard(v_filter,tp,0,LOCATION_HAND+LOCATION_ONFIELD,1,nil) end end) e2:SetOperation(function(e,tp,eg,ep,ev,re,r,rp) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPPO) local g=Duel.SelectMatchingCard(tp,v_filter,tp,0,LOCATION_HAND+LOCATION_ONFIELD,1,1,nil) if #g>0 then Duel.ConfirmCards(tp,g) end end) c:RegisterEffect(e2) local e2=Effect.CreateEffect(c) e2:SetDescription(aux.Stringid(m,1)) e2:SetType(EFFECT_TYPE_IGNITION) e2:SetRange(LOCATION_MZONE) e2:SetCountLimit(1,m) e2:SetCost(function(e,tp,eg,ep,ev,re,r,rp,chk) if chk==0 then return Duel.CheckLPCost(tp,1000) end Duel.PayLPCost(tp,1000) end) e2:SetTarget(function(e,tp,eg,ep,ev,re,r,rp,chk) if chk==0 then return Duel.IsExistingMatchingCard(v_filter,tp,0,LOCATION_HAND+LOCATION_ONFIELD,1,nil) end Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CODE) cm.announce_filter={TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK,OPCODE_ISTYPE,OPCODE_NOT} local ac=Duel.AnnounceCardFilter(tp,table.unpack(cm.announce_filter)) Duel.SetTargetParam(ac) Duel.SetOperationInfo(0,CATEGORY_ANNOUNCE,nil,0,tp,ANNOUNCE_CARD_FILTER) end) e2:SetOperation(function(e,tp,eg,ep,ev,re,r,rp) local tg=Duel.GetMatchingGroup(v_filter,tp,0,LOCATION_HAND+LOCATION_ONFIELD,nil) Duel.ConfirmCards(tp,tg) local ac=Duel.GetChainInfo(0,CHAININFO_TARGET_PARAM) local g=tg:Filter(Card.IsCode,nil,ac) if g:GetCount()>0 then Duel.Destroy(g,REASON_EFFECT) end Duel.ShuffleHand(1-tp) end) c:RegisterEffect(e2) end function cm.spfilter(c,fc) return c:IsAttack(2000) and c:IsCanBeFusionMaterial(fc) end function cm.spfilter_(c,fc) return c:IsAttack(2000) and c:IsCanBeFusionMaterial(fc) and c:IsFaceup() end function cm.spfilter1(c,tp,g) return g:IsExists(cm.spfilter2,1,c,tp,c) end function cm.spfilter2(c,tp,mc) return Duel.GetLocationCountFromEx(tp,tp,Group.FromCards(c,mc))>0 end function cm.spcon(e,c) if c==nil then return true end local tp=c:GetControler() local g=Duel.GetReleaseGroup(tp):Filter(cm.spfilter,nil,c) local g2=Duel.GetReleaseGroup(1-tp):Filter(cm.spfilter_,nil,c) g:Merge(g2) return g:IsExists(cm.spfilter1,1,nil,tp,g) end function cm.spop(e,tp,eg,ep,ev,re,r,rp,c) local g=Duel.GetReleaseGroup(tp):Filter(cm.spfilter,nil,c) local g2=Duel.GetReleaseGroup(1-tp):Filter(cm.spfilter_,nil,c) g:Merge(g2) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE) local g1=g:FilterSelect(tp,cm.spfilter1,1,1,nil,tp,g) local mc=g1:GetFirst() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE) local g2=g:FilterSelect(tp,cm.spfilter2,1,1,mc,tp,mc) g1:Merge(g2) c:SetMaterial(g1) Duel.Release(g1,REASON_COST+REASON_FUSION+REASON_MATERIAL) end