--天罗水将 兰布罗斯 local m=40009138 local cm=_G["c"..m] function cm.initial_effect(c) --synchro summon c:EnableReviveLimit() aux.AddSynchroProcedure(c,cm.synfilter,aux.NonTuner(cm.synfilter),1) --summon success local e1=Effect.CreateEffect(c) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e1:SetCode(EVENT_SPSUMMON_SUCCESS) e1:SetOperation(cm.sumsuc) c:RegisterEffect(e1) --battle local e2=Effect.CreateEffect(c) e2:SetDescription(aux.Stringid(m,0)) e2:SetCategory(CATEGORY_TODECK+CATEGORY_SPECIAL_SUMMON) e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) e2:SetCode(EVENT_ATTACK_ANNOUNCE) e2:SetRange(LOCATION_MZONE) e2:SetCountLimit(1) e2:SetCondition(cm.btcon) e2:SetTarget(cm.bttg) e2:SetOperation(cm.btop) c:RegisterEffect(e2) end cm.material_type=TYPE_SYNCHRO function cm.btcon(e,tp) return Duel.GetBattledCount(tp)>=7 end function cm.spfilter(c,e,tp) return c:IsAttribute(ATTRIBUTE_WATER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end function cm.bttg(e,tp,eg,ep,ev,re,r,rp,chk) local g=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,LOCATION_MZONE,0,e:GetHandler()) if chk==0 then return #g>0 and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE,0,1,nil,e,tp) and Duel.GetMZoneCount(tp,g,tp)>0 end Duel.SetOperationInfo(0,CATEGORY_TODECK,g,#g,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE) end function cm.btop(e,tp) local c=e:GetHandler() local g=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,LOCATION_MZONE,0,aux.ExceptThisCard(e)) if #g<=0 or Duel.SendtoDeck(g,nil,2,REASON_EFFECT)<=0 then return end local ct=Duel.GetOperatedGroup():FilterCount(Card.IsLocation,nil,LOCATION_DECK+LOCATION_EXTRA) if ct<=0 then return end Duel.SkipPhase(tp,PHASE_BATTLE,RESET_PHASE+PHASE_END,1) Duel.SkipPhase(tp,PHASE_MAIN2,RESET_PHASE+PHASE_END,1) Duel.SkipPhase(tp,PHASE_END,RESET_PHASE+PHASE_END,1) local e1=Effect.CreateEffect(c) e1:SetType(EFFECT_TYPE_FIELD) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e1:SetCode(EFFECT_SKIP_TURN) e1:SetTargetRange(0,1) e1:SetReset(RESET_PHASE+PHASE_END+RESET_OPPO_TURN) Duel.RegisterEffect(e1,tp) Duel.SkipPhase(tp,PHASE_DRAW,RESET_PHASE+PHASE_END,2) Duel.SkipPhase(tp,PHASE_STANDBY,RESET_PHASE+PHASE_END,2) Duel.SkipPhase(tp,PHASE_MAIN1,RESET_PHASE+PHASE_END,2) local e2=Effect.CreateEffect(c) e2:SetType(EFFECT_TYPE_FIELD) e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e2:SetCode(EFFECT_CANNOT_EP) e2:SetTargetRange(1,0) e2:SetReset(RESET_PHASE+PHASE_MAIN1+RESET_SELF_TURN) Duel.RegisterEffect(e2,tp) Duel.BreakEffect() local sg=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE,0,nil,e,tp) local sct=math.min(Duel.GetLocationCount(tp,LOCATION_MZONE),#sg,ct) if sct<=0 then return end if Duel.IsPlayerAffectedByEffect(tp,59822133) then sct=1 end Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) local sg2=sg:Select(tp,1,sct,nil) Duel.SpecialSummon(sg2,0,tp,tp,false,false,POS_FACEUP) end function cm.synfilter(c) return c:IsSynchroType(TYPE_SYNCHRO) and c:IsAttribute(ATTRIBUTE_WATER) end function cm.sumsuc(e,tp,eg,ep,ev,re,r,rp) local c=e:GetHandler() if not c:IsSummonType(SUMMON_TYPE_SYNCHRO) then return end Duel.Hint(HINT_CARD,0,m) Duel.SetChainLimitTillChainEnd(cm.chlimit) if Duel.GetCurrentPhase()>=PHASE_BATTLE_START and Duel.GetCurrentPhase()<=PHASE_BATTLE then local e1=Effect.CreateEffect(c) e1:SetType(EFFECT_TYPE_FIELD) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e1:SetCode(EFFECT_CANNOT_ACTIVATE) e1:SetTargetRange(0,1) e1:SetValue(aux.TRUE) e1:SetReset(RESET_PHASE+PHASE_END) Duel.RegisterEffect(e1,tp) end end function cm.chlimit(e,ep,tp) return tp==ep end