--Golden Horus the Lush Flame Dragon local s,id=GetID() function s.initial_effect(c) --You can only control 1 "Golden Horus the Lush Flame Dragon". c:SetUniqueOnField(1,0,id) aux.AddOrigTimeleapType(c,false) aux.AddTimeleapProc(c,7,s.sumcon,s.tlfilter) c:EnableReviveLimit() --Once per turn, when a Spell Card or effect is activated (Quick Effect): You can discard 1 card; negate the activation, and if you do, banish that Spell, --and if you do that, for the rest of this turn, your opponent cannot activate cards, or effects of cards with the same original name as that banished Spell. local e1=Effect.CreateEffect(c) e1:SetDescription(aux.Stringid(id,0)) e1:SetCategory(CATEGORY_DISABLE) e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetCode(EVENT_CHAINING) e1:SetCountLimit(1) e1:SetRange(LOCATION_MZONE) e1:SetCondition(s.discon) e1:SetCost(s.discost) e1:SetTarget(s.distg) e1:SetOperation(s.disop) c:RegisterEffect(e1) aux.GlobalCheck(s,function() local ge1=Effect.CreateEffect(c) ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) ge1:SetCode(EVENT_BATTLE_DESTROYED) ge1:SetLabel(id) ge1:SetOperation(s.regop) Duel.RegisterEffect(ge1,0) end) end function s.sumcon(e,c) --Debug.Message(Duel.GetFlagEffect(e:GetHandlerPlayer(),id)) return Duel.GetFlagEffect(e:GetHandlerPlayer(),id)>0 end function s.tlfilter(c,e,mg) local tp=c:GetControler() local ef=e:GetHandler():GetFuture() return c:IsLevelBelow(ef-1) and c:IsType(TYPE_EFFECT) end function s.regop(e,tp,eg,ep,ev,re,r,rp) local tc=eg:GetFirst() for tc in aux.Next(eg) do if tc:GetReasonCard():GetLevel()==6 then Duel.RegisterFlagEffect(tc:GetReasonCard():GetControler(),id,RESET_PHASE+PHASE_END,0,1) end end end function s.discon(e,tp,eg,ep,ev,re,r,rp) return re:IsActiveType(TYPE_SPELL) and Duel.IsChainDisablable(ev) and not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) end function s.discost(e,tp,eg,ep,ev,re,r,rp,chk) if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,e:GetHandler()) end Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_COST+REASON_DISCARD) end function s.distg(e,tp,eg,ep,ev,re,r,rp,chk) if chk==0 then return true end Duel.SetOperationInfo(0,CATEGORY_DISABLE,eg,1,0,0) end function s.disop(e,tp,eg,ep,ev,re,r,rp) local ec=re:GetHandler() if Duel.NegateActivation(ev) and ec:IsRelateToEffect(re) then ec:CancelToGrave() Duel.Remove(ec,POS_FACEUP,REASON_EFFECT) local e1=Effect.CreateEffect(e:GetHandler()) e1:SetType(EFFECT_TYPE_FIELD) e1:SetCode(EFFECT_CANNOT_ACTIVATE) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e1:SetTargetRange(0,1) e1:SetLabel(ec:GetOriginalCode()) e1:SetValue(s.aclimit) e1:SetReset(RESET_PHASE+PHASE_END,2) Duel.RegisterEffect(e1,tp) local e2=Effect.CreateEffect(e:GetHandler()) e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT) e2:SetDescription(aux.Stringid(id,1)) e2:SetReset(RESET_PHASE+PHASE_END,2) e2:SetTargetRange(0,1) Duel.RegisterEffect(e2,tp) end end function s.aclimit(e,re,tp) return re:GetHandler():GetOriginalCode()==e:GetLabel() end