--Abysslym Overdrive --Original Script by: TaxingCorn117 --Fixed by: XGlitchy30 local s,id=GetID() function s.initial_effect(c) --Activate local e1=Effect.CreateEffect(c) e1:Desc(0) e1:SetCategory(CATEGORY_ATKCHANGE) e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetProperty(EFFECT_FLAG_CARD_TARGET) e1:SetCode(EVENT_FREE_CHAIN) e1:HOPT(true) e1:SetCost(s.cost) e1:SetTarget(s.target) e1:SetOperation(s.activate) c:RegisterEffect(e1) --during ep local e2=Effect.CreateEffect(c) e2:Desc(1) e2:SetCategory(CATEGORY_DRAW) e2:SetType(EFFECT_TYPE_FIELD|EFFECT_TYPE_TRIGGER_F) e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e2:SetRange(LOCATION_GB) e2:SetCode(EVENT_PHASE|PHASE_END) e2:SetCountLimit(1) e2:SetCondition(s.drawcon) e2:SetTarget(s.drawtg) e2:SetOperation(s.drawop) c:RegisterEffect(e2) if s.global_check==nil then s.global_check=true s[0]=0 s[1]=0 local ge1=Effect.CreateEffect(c) ge1:SetType(EFFECT_TYPE_FIELD|EFFECT_TYPE_CONTINUOUS) ge1:SetCode(EVENT_SPSUMMON_SUCCESS) ge1:SetOperation(s.checkop) Duel.RegisterEffect(ge1,0) local ge2=Effect.CreateEffect(c) ge2:SetType(EFFECT_TYPE_FIELD|EFFECT_TYPE_CONTINUOUS) ge2:SetCode(EVENT_TURN_END) ge2:SetOperation(s.clearop) Duel.RegisterEffect(ge2,0) end end function s.checkop(e,tp,eg,ep,ev,re,r,rp) local tc=eg:GetFirst() while tc do if tc:IsSetCard(ARCHE_ABYSSLYM) and tc:IsFaceup() and tc:IsSummonType(SUMMON_TYPE_LINK) then local p=tc:GetSummonPlayer() s[p]=s[p]+1 end tc=eg:GetNext() end end function s.clearop(e,tp,eg,ep,ev,re,r,rp) s[0]=0 s[1]=0 end function s.actregcon(e,tp,eg,ep,ev,re,r,rp) local c=e:GetHandler() return eg:IsContains(c) and c:IsFaceupEx() and c:HasFlagEffect(id) and c:IsReason(REASON_RULE) and c:GetReasonCard()==nil end function s.actreg(e,tp,eg,ep,ev,re,r,rp) local c=e:GetHandler() c:RegisterFlagEffect(id+100,RESET_EVENT|RESETS_STANDARD|RESET_PHASE|PHASE_END,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(id,2)) e:Reset() end function s.cfilter(c) return c:IsFaceup() and c:IsMonster() and c:IsSetCard(ARCHE_ABYSSLYM) end function s.cost(e,tp,eg,ep,ev,re,r,rp,chk) if chk==0 then return Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_REMOVED,0,3,nil) end if e:IsHasType(EFFECT_TYPE_ACTIVATE) then local c=e:GetHandler() c:RegisterFlagEffect(id,RESET_CHAIN,EFFECT_FLAG_OATH,1) local e1=Effect.CreateEffect(c) e1:SetType(EFFECT_TYPE_FIELD|EFFECT_TYPE_CONTINUOUS) e1:SetCode(EVENT_TO_GRAVE) e1:SetCondition(s.actregcon) e1:SetOperation(s.actreg) e1:SetReset(RESET_CHAIN) Duel.RegisterEffect(e1,tp) local e2=e1:Clone() e2:SetCode(EVENT_REMOVE) Duel.RegisterEffect(e2,tp) end Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) local g=Duel.SelectMatchingCard(tp,s.cfilter,tp,LOCATION_REMOVED,0,3,3,nil) if #g>0 then Duel.HintSelection(g) Duel.SendtoGrave(g,REASON_COST|REASON_RETURN) end end function s.filter(c) return c:IsFaceup() and c:IsSetCard(ARCHE_ABYSSLYM) and c:IsMonster(TYPE_LINK) end function s.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and s.filter(chkc) end if chk==0 then return Duel.IsExistingTarget(s.filter,tp,LOCATION_MZONE,0,1,nil) end Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP) local g=Duel.SelectTarget(tp,s.filter,tp,LOCATION_MZONE,0,1,1,nil) local tc=g:GetFirst() Duel.SetCustomOperationInfo(0,CATEGORY_ATKCHANGE,g,#g,tc:GetControler(),tc:GetLocation(),1500) end function s.activate(e,tp,eg,ep,ev,re,r,rp) local tc=Duel.GetFirstTarget() if tc:IsRelateToChain() and tc:IsFaceup() then local e1=Effect.CreateEffect(e:GetHandler()) e1:SetType(EFFECT_TYPE_SINGLE) e1:SetCode(EFFECT_UPDATE_ATTACK) e1:SetValue(1500) e1:SetReset(RESET_EVENT|RESETS_STANDARD|RESET_PHASE|PHASE_END) tc:RegisterEffect(e1) end end function s.drawcon(e,tp,eg,ep,ev,re,r,rp) return e:GetHandler():HasFlagEffect(id+100) end function s.drawtg(e,tp,eg,ep,ev,re,r,rp,chk) if chk==0 then return true end Duel.SetTargetPlayer(tp) Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,s[tp]) end function s.drawop(e,tp,eg,ep,ev,re,r,rp) local p=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER) if s[p]<=0 then return end Duel.Draw(p,s[p],REASON_EFFECT) end