--动物朋友 蓝鲸 local m=33700740 local cm=_G["c"..m] function cm.initial_effect(c) cm[c]={} local effect_list=cm[c] --zone local e1=Effect.CreateEffect(c) e1:SetDescription(aux.Stringid(m,0)) e1:SetCategory(CATEGORY_TOGRAVE) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP) e1:SetCode(EVENT_SUMMON_SUCCESS) e1:SetTarget(cm.tg) e1:SetOperation(cm.op) c:RegisterEffect(e1) local e2=e1:Clone() e2:SetCode(EVENT_SPSUMMON_SUCCESS) c:RegisterEffect(e2) --indes local e3=Effect.CreateEffect(c) e3:SetType(EFFECT_TYPE_SINGLE) e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e3:SetRange(LOCATION_MZONE) e3:SetCode(EFFECT_INDESTRUCTABLE_BATTLE) e3:SetCondition(cm.indcon) e3:SetValue(1) c:RegisterEffect(e3) --and Anifriends indes local e4=Effect.CreateEffect(c) e4:SetType(EFFECT_TYPE_FIELD) e4:SetCode(EFFECT_INDESTRUCTABLE_BATTLE) e4:SetRange(LOCATION_MZONE) e4:SetTargetRange(LOCATION_MZONE,0) e4:SetCondition(cm.nocodecon) e4:SetTarget(cm.nocodetg) e4:SetValue(1) c:RegisterEffect(e4) local e5=e4:Clone() e5:SetCode(EFFECT_INDESTRUCTABLE_EFFECT) c:RegisterEffect(e5) --Destroy local e6=Effect.CreateEffect(c) e6:SetDescription(aux.Stringid(m,1)) e6:SetCategory(CATEGORY_DESTROY+CATEGORY_DAMAGE) e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) e6:SetCode(EVENT_TO_GRAVE) e6:SetLabel(22) effect_list[22]=e6 e6:SetTarget(cm.destg) e6:SetOperation(cm.desop) c:RegisterEffect(e6) end function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk) if chk==0 then return true end Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,e:GetHandler(),1,tp,nil) end function cm.op(e,tp,eg,ep,ev,re,r,rp) local c=e:GetHandler() if c:IsRelateToEffect(e) and Duel.GetLocationCount(tp,LOCATION_MZONE)>2 then local e1=Effect.CreateEffect(c) e1:SetType(EFFECT_TYPE_FIELD) e1:SetRange(LOCATION_MZONE) e1:SetCode(EFFECT_DISABLE_FIELD) e1:SetReset(RESET_EVENT+RESETS_STANDARD) e1:SetOperation(cm.disop) c:RegisterEffect(e1) else Duel.SendtoGrave(c,REASON_EFFECT) end end function cm.disop(e,tp) local c=Duel.GetLocationCount(tp,LOCATION_MZONE,PLAYER_NONE,0) if c==0 then return end local dis1=Duel.SelectDisableField(tp,3,LOCATION_MZONE,0,0) return dis1 end function cm.indcon(e) local cg=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_GRAVE,0,nil) return cg:GetCount()==0 or cg:GetClassCount(Card.GetCode)==cg:GetCount() end function cm.nocodefilter(c) return not c:IsSetCard(0x442) end function cm.nocodecon(e) return Duel.GetFieldGroupCount(e:GetHandlerPlayer(),LOCATION_GRAVE,0)>=1 and not Duel.IsExistingMatchingCard(cm.nocodefilter,e:GetHandler():GetControler(),LOCATION_GRAVE,0,1,nil) end function cm.nocodetg(e,c) return c:IsSetCard(0x442) and c~=e:GetHandler() end function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk) if chk==0 then return true end local g=Duel.GetFieldGroup(tp,0,LOCATION_ONFIELD) Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0) Duel.SetOperationInfo(0,CATEGORY_DAMAGE,0,0,1-tp,g:GetCount()*500) end function cm.confilter(c) return c:IsSetCard(0x442) and c:IsFaceup() and c:IsType(TYPE_MONSTER) end function cm.desop(e,tp,eg,ep,ev,re,r,rp) local g=Duel.GetMatchingGroup(cm.confilter,tp,LOCATION_GRAVE,0,nil) if g:GetClassCount(Card.GetCode)0 then local ct=Duel.Destroy(g,REASON_EFFECT) if ct>0 then Duel.Damage(1-tp,ct*500,REASON_EFFECT) end end end