--突袭的眠气 local m=33701365 local cm=_G["c"..m] function cm.initial_effect(c) --Activate local e1=Effect.CreateEffect(c) e1:SetCategory(CATEGORY_DRAW) e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e1:SetCode(EVENT_FREE_CHAIN) e1:SetCondition(cm.condition) e1:SetTarget(cm.target) e1:SetOperation(cm.activate) c:RegisterEffect(e1) end function cm.condition(e,tp,eg,ep,ev,re,r,rp) return Duel.GetCurrentChain()>0 end function cm.target(e,tp,eg,ep,ev,re,r,rp,chk) if chk==0 then return Duel.IsPlayerCanDraw(tp,1) end local ng=Group.CreateGroup() local dg=Group.CreateGroup() if Duel.GetCurrentChain()>0 then for i=1,(Duel.GetCurrentChain()-1) do local te=Duel.GetChainInfo(i,CHAININFO_TRIGGERING_EFFECT) if te:IsHasType(EFFECT_TYPE_ACTIVATE) or te:IsActiveType(TYPE_MONSTER) then local tc=te:GetHandler() ng:AddCard(tc) if tc:IsRelateToEffect(te) then dg:AddCard(tc) end end end Duel.SetTargetCard(dg) Duel.SetOperationInfo(0,CATEGORY_NEGATE,ng,ng:GetCount(),0,0) end Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1) end function cm.activate(e,tp,eg,ep,ev,re,r,rp) local c=e:GetHandler() if Duel.GetCurrentChain()>0 then local dg=Group.CreateGroup() for i=1,ev do local te=Duel.GetChainInfo(i,CHAININFO_TRIGGERING_EFFECT) local tc=te:GetHandler() if (te:IsHasType(EFFECT_TYPE_ACTIVATE) or te:IsActiveType(TYPE_MONSTER)) and Duel.NegateActivation(i) and tc:IsRelateToEffect(e) and tc:IsRelateToEffect(te) then dg:AddCard(tc) end end end Duel.BreakEffect() Duel.Draw(tp,1,REASON_EFFECT) if Duel.GetTurnPlayer()~=tp then Duel.SkipPhase(1-tp,PHASE_DRAW,RESET_PHASE+PHASE_END,1) Duel.SkipPhase(1-tp,PHASE_STANDBY,RESET_PHASE+PHASE_END,1) Duel.SkipPhase(1-tp,PHASE_MAIN1,RESET_PHASE+PHASE_END,1) Duel.SkipPhase(1-tp,PHASE_BATTLE,RESET_PHASE+PHASE_END,1,1) Duel.SkipPhase(1-tp,PHASE_MAIN2,RESET_PHASE+PHASE_END,1) Duel.SkipPhase(1-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(1,0) e1:SetReset(RESET_PHASE+PHASE_END+RESET_SELF_TURN) Duel.RegisterEffect(e1,tp) else Duel.SkipPhase(tp,PHASE_DRAW,RESET_PHASE+PHASE_END,1) Duel.SkipPhase(tp,PHASE_STANDBY,RESET_PHASE+PHASE_END,1) Duel.SkipPhase(tp,PHASE_MAIN1,RESET_PHASE+PHASE_END,1) Duel.SkipPhase(tp,PHASE_BATTLE,RESET_PHASE+PHASE_END,1,1) Duel.SkipPhase(tp,PHASE_MAIN2,RESET_PHASE+PHASE_END,1) Duel.SkipPhase(tp,PHASE_END,RESET_PHASE+PHASE_END,1) end local e1=Effect.CreateEffect(c) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetCode(EVENT_PHASE_START+PHASE_DRAW) e1:SetCountLimit(1) e1:SetOperation(cm.op) e1:SetReset(EVENT_PHASE+PHASE_DRAW) Duel.RegisterEffect(e1,tp) end function cm.op(e,tp,eg,ep,ev,re,r,rp) local e3=Effect.CreateEffect(c) e3:SetType(EFFECT_TYPE_FIELD) e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH) e3:SetCode(EFFECT_CANNOT_ACTIVATE) e3:SetTargetRange(1,0) e3:SetValue(cm.aclimit) e3:SetReset(RESET_PHASE+PHASE_END) Duel.RegisterEffect(e3,tp) end function cm.aclimit(e,re,tp) return re:GetHandler():IsLocation(LOCATION_HAND) end