From 057291943fd3d9001c2ee883b2769c1bf6758c3c Mon Sep 17 00:00:00 2001 From: Naim Date: Sun, 21 Jun 2026 11:30:26 -0300 Subject: [PATCH 1/5] "Elder Entity Norden" errata/pre-errata --- official/c17412721.lua | 22 +++++++------- official/c17412731.lua | 67 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 10 deletions(-) create mode 100644 official/c17412731.lua diff --git a/official/c17412721.lua b/official/c17412721.lua index fbc94a4b0b..3c465bdc0d 100644 --- a/official/c17412721.lua +++ b/official/c17412721.lua @@ -2,20 +2,22 @@ --Elder Entity Norden local s,id=GetID() function s.initial_effect(c) - --fusion material c:EnableReviveLimit() - Fusion.AddProcMixN(c,true,true,aux.FilterBoolFunctionEx(Card.IsType,TYPE_XYZ+TYPE_SYNCHRO),2) - --spsummon + --Fusion materials: 1 Synchro or Xyz Monster + 1 Synchro or Xyz Monster + Fusion.AddProcMixN(c,true,true,aux.FilterBoolFunctionEx(Card.IsType,TYPE_XYZ|TYPE_SYNCHRO),2) + --When this card is Special Summoned from the Extra Deck: You can target 1 Level 4 or lower monster in your Graveyard; Special Summon it, but its effects are negated local e1=Effect.CreateEffect(c) - e1:SetDescription(aux.Stringid(id,1)) + e1:SetDescription(aux.Stringid(id,0)) e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e1:SetCode(EVENT_SPSUMMON_SUCCESS) + e1:SetCountLimit(1,{id,0}) + e1:SetCondition(function(e) return e:GetHandler():IsSummonLocation(LOCATION_EXTRA) end) e1:SetTarget(s.sptg) e1:SetOperation(s.spop) c:RegisterEffect(e1) - --leave field + --Banish that monster when this card leaves the field local e2=Effect.CreateEffect(c) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e2:SetCode(EVENT_LEAVE_FIELD) @@ -24,16 +26,16 @@ function s.initial_effect(c) e1:SetLabelObject(e2) end s.miracle_synchro_fusion=true -function s.filter(c,e,tp) +function s.spfilter(c,e,tp) return c:IsLevelBelow(4) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) - if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and s.filter(chkc,e,tp) end + if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and s.spfilter(chkc,e,tp) end if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 - and Duel.IsExistingTarget(s.filter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end + and Duel.IsExistingTarget(s.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) - local g=Duel.SelectTarget(tp,s.filter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp) - Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0) + local g=Duel.SelectTarget(tp,s.spfilter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp) + Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,tp,0) end function s.spop(e,tp,eg,ep,ev,re,r,rp) local c=e:GetHandler() diff --git a/official/c17412731.lua b/official/c17412731.lua new file mode 100644 index 0000000000..f597247ddd --- /dev/null +++ b/official/c17412731.lua @@ -0,0 +1,67 @@ +--旧神ノーデン +--Elder Entity Norden (pre-errata) +local s,id=GetID() +function s.initial_effect(c) + c:EnableReviveLimit() + --Fusion materials: 1 Synchro or Xyz Monster + 1 Synchro or Xyz Monster + Fusion.AddProcMixN(c,true,true,aux.FilterBoolFunctionEx(Card.IsType,TYPE_XYZ|TYPE_SYNCHRO),2) + --When this card is Special Summoned: You can target 1 Level 4 or lower monster in your GY; Special Summon it, but its effects are negated + local e1=Effect.CreateEffect(c) + e1:SetDescription(aux.Stringid(id,0)) + e1:SetCategory(CATEGORY_SPECIAL_SUMMON) + e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP) + e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) + e1:SetCode(EVENT_SPSUMMON_SUCCESS) + e1:SetTarget(s.sptg) + e1:SetOperation(s.spop) + c:RegisterEffect(e1) + --Banish that monster when this card leaves the field + local e2=Effect.CreateEffect(c) + e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) + e2:SetCode(EVENT_LEAVE_FIELD) + e2:SetOperation(s.leave) + c:RegisterEffect(e2) + e1:SetLabelObject(e2) +end +s.miracle_synchro_fusion=true +function s.spfilter(c,e,tp) + return c:IsLevelBelow(4) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) +end +function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) + if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and s.spfilter(chkc,e,tp) end + if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 + and Duel.IsExistingTarget(s.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end + Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) + local g=Duel.SelectTarget(tp,s.spfilter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp) + Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,tp,0) +end +function s.spop(e,tp,eg,ep,ev,re,r,rp) + local c=e:GetHandler() + local tc=Duel.GetFirstTarget() + if tc:IsRelateToEffect(e) and Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP) then + local e1=Effect.CreateEffect(c) + e1:SetType(EFFECT_TYPE_SINGLE) + e1:SetCode(EFFECT_DISABLE) + e1:SetReset(RESET_EVENT|RESETS_STANDARD) + tc:RegisterEffect(e1,true) + local e2=Effect.CreateEffect(c) + e2:SetType(EFFECT_TYPE_SINGLE) + e2:SetCode(EFFECT_DISABLE_EFFECT) + e2:SetReset(RESET_EVENT|RESETS_STANDARD) + tc:RegisterEffect(e2,true) + Duel.SpecialSummonComplete() + if c:IsRelateToEffect(e) then + c:SetCardTarget(tc) + e:GetLabelObject():SetLabelObject(tc) + c:CreateRelation(tc,RESET_EVENT|RESET_OVERLAY|RESET_TOFIELD|RESET_TURN_SET) + tc:CreateRelation(c,RESET_EVENT|RESETS_STANDARD|RESET_OVERLAY) + end + end +end +function s.leave(e,tp,eg,ep,ev,re,r,rp) + local c=e:GetHandler() + local tc=e:GetLabelObject() + if tc and c:IsRelateToCard(tc) and tc:IsRelateToCard(c) then + Duel.Remove(tc,POS_FACEUP,REASON_EFFECT) + end +end \ No newline at end of file From c4f282adccb4a673fbc3db9f154d2f2155a98e74 Mon Sep 17 00:00:00 2001 From: Naim Date: Sun, 21 Jun 2026 11:42:59 -0300 Subject: [PATCH 2/5] "Mind Master" errata/pre-errata --- official/c96782886.lua | 31 ++++++++++++++----------------- official/c96782896.lua | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 17 deletions(-) create mode 100644 official/c96782896.lua diff --git a/official/c96782886.lua b/official/c96782886.lua index 9925550292..86e280c554 100644 --- a/official/c96782886.lua +++ b/official/c96782886.lua @@ -2,40 +2,37 @@ --Mind Master local s,id=GetID() function s.initial_effect(c) - --special summon + --You can pay 800 Life Points and Tribute 1 Psychic-Type monster; Special Summon 1 Level 4 or lower Psychic-Type monster from your Deck in Attack Position local e1=Effect.CreateEffect(c) e1:SetDescription(aux.Stringid(id,0)) e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetType(EFFECT_TYPE_IGNITION) e1:SetRange(LOCATION_MZONE) + e1:SetCountLimit(1,{id,0}) e1:SetCost(s.cost) - e1:SetTarget(s.target) - e1:SetOperation(s.operation) + e1:SetTarget(s.sptg) + e1:SetOperation(s.spop) c:RegisterEffect(e1) end -s.listed_names={id} -function s.costfilter(c,ft,tp) - return c:IsRace(RACE_PSYCHIC) and not c:IsCode(id) - and (ft>0 or (c:IsControler(tp) and c:GetSequence()<5)) and (c:IsControler(tp) or c:IsFaceup()) -end function s.cost(e,tp,eg,ep,ev,re,r,rp,chk) - local ft=Duel.GetLocationCount(tp,LOCATION_MZONE) if chk==0 then return Duel.CheckLPCost(tp,800) - and ft>-1 and Duel.CheckReleaseGroupCost(tp,s.costfilter,1,false,nil,nil,ft,tp) end + and Duel.CheckReleaseGroupCost(tp,Card.IsRace,1,false,aux.ReleaseCheckMMZ,nil,RACE_PSYCHIC) end Duel.PayLPCost(tp,800) - local sg=Duel.SelectReleaseGroupCost(tp,s.costfilter,1,1,false,nil,nil,ft,tp) + local sg=Duel.SelectReleaseGroupCost(tp,Card.IsRace,1,1,false,aux.ReleaseCheckMMZ,nil,RACE_PSYCHIC) Duel.Release(sg,REASON_COST) end -function s.filter(c,e,tp) +function s.spfilter(c,e,tp) return c:IsRace(RACE_PSYCHIC) and c:IsLevelBelow(4) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end -function s.target(e,tp,eg,ep,ev,re,r,rp,chk) - if chk==0 then return Duel.IsExistingMatchingCard(s.filter,tp,LOCATION_DECK,0,1,nil,e,tp) end +function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then return Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) end Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK) end -function s.operation(e,tp,eg,ep,ev,re,r,rp) +function s.spop(e,tp,eg,ep,ev,re,r,rp) if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) - local g=Duel.SelectMatchingCard(tp,s.filter,tp,LOCATION_DECK,0,1,1,nil,e,tp) - if #g>0 then Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP_ATTACK) end + local g=Duel.SelectMatchingCard(tp,s.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp) + if #g>0 then + Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP_ATTACK) + end end \ No newline at end of file diff --git a/official/c96782896.lua b/official/c96782896.lua new file mode 100644 index 0000000000..41d365b91c --- /dev/null +++ b/official/c96782896.lua @@ -0,0 +1,41 @@ +--メンタルマスター +--Mind Master (pre-errata) +local s,id=GetID() +function s.initial_effect(c) + --You can pay 800 Life Points and Tribute 1 Psychic-Type monster, except "Mind Master"; Special Summon 1 Level 4 or lower Psychic-Type monster from your Deck in Attack Position + local e1=Effect.CreateEffect(c) + e1:SetDescription(aux.Stringid(id,0)) + e1:SetCategory(CATEGORY_SPECIAL_SUMMON) + e1:SetType(EFFECT_TYPE_IGNITION) + e1:SetRange(LOCATION_MZONE) + e1:SetCost(s.cost) + e1:SetTarget(s.sptg) + e1:SetOperation(s.spop) + c:RegisterEffect(e1) +end +s.listed_names={id} +function s.costfilter(c) + return c:IsRace(RACE_PSYCHIC) and not c:IsCode(id) +end +function s.cost(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then return Duel.CheckLPCost(tp,800) + and Duel.CheckReleaseGroupCost(tp,s.costfilter,1,false,aux.ReleaseCheckMMZ,nil) end + Duel.PayLPCost(tp,800) + local sg=Duel.SelectReleaseGroupCost(tp,s.costfilter,1,1,false,aux.ReleaseCheckMMZ,nil) + Duel.Release(sg,REASON_COST) +end +function s.spfilter(c,e,tp) + return c:IsRace(RACE_PSYCHIC) and c:IsLevelBelow(4) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) +end +function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then return Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) end + Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK) +end +function s.spop(e,tp,eg,ep,ev,re,r,rp) + if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end + Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) + local g=Duel.SelectMatchingCard(tp,s.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp) + if #g>0 then + Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP_ATTACK) + end +end \ No newline at end of file From 3fed4a49fef66c40ef8b052507c3f26b128a18e0 Mon Sep 17 00:00:00 2001 From: pyrQ <30827955+pyrQ@users.noreply.github.com> Date: Thu, 2 Jul 2026 14:02:55 +0300 Subject: [PATCH 3/5] Rename c17412731.lua to c17412731.lua --- {official => pre-errata}/c17412731.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {official => pre-errata}/c17412731.lua (99%) diff --git a/official/c17412731.lua b/pre-errata/c17412731.lua similarity index 99% rename from official/c17412731.lua rename to pre-errata/c17412731.lua index f597247ddd..28fab02870 100644 --- a/official/c17412731.lua +++ b/pre-errata/c17412731.lua @@ -64,4 +64,4 @@ function s.leave(e,tp,eg,ep,ev,re,r,rp) if tc and c:IsRelateToCard(tc) and tc:IsRelateToCard(c) then Duel.Remove(tc,POS_FACEUP,REASON_EFFECT) end -end \ No newline at end of file +end From 665c6d4613cec7f6b521fe09edbe3fdd9ad5abc8 Mon Sep 17 00:00:00 2001 From: pyrQ <30827955+pyrQ@users.noreply.github.com> Date: Thu, 2 Jul 2026 14:03:13 +0300 Subject: [PATCH 4/5] Rename c96782896.lua to c96782896.lua --- {official => pre-errata}/c96782896.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {official => pre-errata}/c96782896.lua (99%) diff --git a/official/c96782896.lua b/pre-errata/c96782896.lua similarity index 99% rename from official/c96782896.lua rename to pre-errata/c96782896.lua index 41d365b91c..a0a8119179 100644 --- a/official/c96782896.lua +++ b/pre-errata/c96782896.lua @@ -38,4 +38,4 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp) if #g>0 then Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP_ATTACK) end -end \ No newline at end of file +end From 6525b1b5446afdc9b29fba027975dd47cf037ac6 Mon Sep 17 00:00:00 2001 From: pyrQ <30827955+pyrQ@users.noreply.github.com> Date: Thu, 2 Jul 2026 14:04:37 +0300 Subject: [PATCH 5/5] Add files via upload --- official/c17412721.lua | 72 ++++++++++++++++++++-------------------- official/c96782886.lua | 18 +++++----- pre-errata/c17412731.lua | 70 +++++++++++++++++++------------------- pre-errata/c96782896.lua | 27 ++++++++------- 4 files changed, 91 insertions(+), 96 deletions(-) diff --git a/official/c17412721.lua b/official/c17412721.lua index 3c465bdc0d..87ded553a3 100644 --- a/official/c17412721.lua +++ b/official/c17412721.lua @@ -3,27 +3,22 @@ local s,id=GetID() function s.initial_effect(c) c:EnableReviveLimit() - --Fusion materials: 1 Synchro or Xyz Monster + 1 Synchro or Xyz Monster - Fusion.AddProcMixN(c,true,true,aux.FilterBoolFunctionEx(Card.IsType,TYPE_XYZ|TYPE_SYNCHRO),2) - --When this card is Special Summoned from the Extra Deck: You can target 1 Level 4 or lower monster in your Graveyard; Special Summon it, but its effects are negated + --Fusion Materials: 1 Synchro or Xyz Monster + 1 Synchro or Xyz Monster + Fusion.AddProcMixN(c,true,true,aux.FilterBoolFunctionEx(Card.IsType,TYPE_SYNCHRO|TYPE_XYZ),2) + --When this card is Special Summoned from the Extra Deck: You can target 1 Level 4 or lower monster in your GY; Special Summon it, but its effects are negated, also banish it when this card leaves the field. You can only use this effect of "Elder Entity Norden" once per turn local e1=Effect.CreateEffect(c) e1:SetDescription(aux.Stringid(id,0)) - e1:SetCategory(CATEGORY_SPECIAL_SUMMON) - e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP) + e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_DISABLE+CATEGORY_REMOVE) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) + e1:SetProperty(EFFECT_FLAG_CARD_TARGET) e1:SetCode(EVENT_SPSUMMON_SUCCESS) - e1:SetCountLimit(1,{id,0}) - e1:SetCondition(function(e) return e:GetHandler():IsSummonLocation(LOCATION_EXTRA) end) + e1:SetCountLimit(1,id) + e1:SetCondition(function(e) + return e:GetHandler():IsSummonLocation(LOCATION_EXTRA) + end) e1:SetTarget(s.sptg) e1:SetOperation(s.spop) c:RegisterEffect(e1) - --Banish that monster when this card leaves the field - local e2=Effect.CreateEffect(c) - e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) - e2:SetCode(EVENT_LEAVE_FIELD) - e2:SetOperation(s.leave) - c:RegisterEffect(e2) - e1:SetLabelObject(e2) end s.miracle_synchro_fusion=true function s.spfilter(c,e,tp) @@ -38,32 +33,37 @@ function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,tp,0) end function s.spop(e,tp,eg,ep,ev,re,r,rp) - local c=e:GetHandler() local tc=Duel.GetFirstTarget() if tc:IsRelateToEffect(e) and Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP) then - local e1=Effect.CreateEffect(c) - e1:SetType(EFFECT_TYPE_SINGLE) - e1:SetCode(EFFECT_DISABLE) - e1:SetReset(RESET_EVENT|RESETS_STANDARD) - tc:RegisterEffect(e1,true) - local e2=Effect.CreateEffect(c) - e2:SetType(EFFECT_TYPE_SINGLE) - e2:SetCode(EFFECT_DISABLE_EFFECT) - e2:SetReset(RESET_EVENT|RESETS_STANDARD) - tc:RegisterEffect(e2,true) - Duel.SpecialSummonComplete() - if c:IsRelateToEffect(e) then + local c=e:GetHandler() + --Its effects are negated + tc:NegateEffects(c) + if c:IsRelateToEffect(e) and c:IsFaceup() then c:SetCardTarget(tc) - e:GetLabelObject():SetLabelObject(tc) - c:CreateRelation(tc,RESET_EVENT|RESET_OVERLAY|RESET_TOFIELD|RESET_TURN_SET) + c:CreateRelation(tc,RESET_EVENT|RESET_OVERLAY|RESET_MSCHANGE|RESET_TURN_SET) tc:CreateRelation(c,RESET_EVENT|RESETS_STANDARD|RESET_OVERLAY) + --Also banish it when this card leaves the field + local e1=Effect.CreateEffect(c) + e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) + e1:SetCode(EVENT_LEAVE_FIELD_P) + e1:SetOperation(function(e,tp,eg,ep,ev,re,r,rp) + --Register the banishing effect only if its effects aren't negated right before it leaves the field + local e1=Effect.CreateEffect(c) + e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) + e1:SetCode(EVENT_LEAVE_FIELD) + e1:SetOperation(function(e,tp,eg,ep,ev,re,r,rp) + if c:IsRelateToCard(tc) and tc:IsRelateToCard(c) then + c:ReleaseRelation(tc) + Duel.Remove(tc,POS_FACEUP,REASON_EFFECT) + end + e:Reset() + end) + e1:SetReset(RESET_EVENT|(RESET_OVERLAY|RESET_MSCHANGE|RESET_TURN_SET)) + c:RegisterEffect(e1) + end) + e1:SetReset(RESET_EVENT|(RESET_OVERLAY|RESET_MSCHANGE|RESET_TURN_SET)) + c:RegisterEffect(e1) end end -end -function s.leave(e,tp,eg,ep,ev,re,r,rp) - local c=e:GetHandler() - local tc=e:GetLabelObject() - if tc and c:IsRelateToCard(tc) and tc:IsRelateToCard(c) then - Duel.Remove(tc,POS_FACEUP,REASON_EFFECT) - end + Duel.SpecialSummonComplete() end \ No newline at end of file diff --git a/official/c96782886.lua b/official/c96782886.lua index 86e280c554..4ef234a98e 100644 --- a/official/c96782886.lua +++ b/official/c96782886.lua @@ -2,27 +2,25 @@ --Mind Master local s,id=GetID() function s.initial_effect(c) - --You can pay 800 Life Points and Tribute 1 Psychic-Type monster; Special Summon 1 Level 4 or lower Psychic-Type monster from your Deck in Attack Position + --You can pay 800 LP and Tribute 1 Psychic monster; Special Summon 1 Level 4 or lower Psychic monster from your Deck in Attack Position. You can only use this effect of "Mind Master" once per turn local e1=Effect.CreateEffect(c) e1:SetDescription(aux.Stringid(id,0)) e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetType(EFFECT_TYPE_IGNITION) e1:SetRange(LOCATION_MZONE) - e1:SetCountLimit(1,{id,0}) - e1:SetCost(s.cost) + e1:SetCountLimit(1,id) + e1:SetCost(Cost.AND(Cost.PayLP(800),s.spcost)) e1:SetTarget(s.sptg) e1:SetOperation(s.spop) c:RegisterEffect(e1) end -function s.cost(e,tp,eg,ep,ev,re,r,rp,chk) - if chk==0 then return Duel.CheckLPCost(tp,800) - and Duel.CheckReleaseGroupCost(tp,Card.IsRace,1,false,aux.ReleaseCheckMMZ,nil,RACE_PSYCHIC) end - Duel.PayLPCost(tp,800) - local sg=Duel.SelectReleaseGroupCost(tp,Card.IsRace,1,1,false,aux.ReleaseCheckMMZ,nil,RACE_PSYCHIC) - Duel.Release(sg,REASON_COST) +function s.spcost(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then return Duel.CheckReleaseGroupCost(tp,Card.IsRace,1,false,aux.ReleaseCheckMMZ,nil,RACE_PSYCHIC) end + local g=Duel.SelectReleaseGroupCost(tp,Card.IsRace,1,1,false,aux.ReleaseCheckMMZ,nil,RACE_PSYCHIC) + Duel.Release(g,REASON_COST) end function s.spfilter(c,e,tp) - return c:IsRace(RACE_PSYCHIC) and c:IsLevelBelow(4) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) + return c:IsLevelBelow(4) and c:IsRace(RACE_PSYCHIC) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_ATTACK) end function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk) if chk==0 then return Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) end diff --git a/pre-errata/c17412731.lua b/pre-errata/c17412731.lua index 28fab02870..d0219169d6 100644 --- a/pre-errata/c17412731.lua +++ b/pre-errata/c17412731.lua @@ -1,27 +1,20 @@ --旧神ノーデン ---Elder Entity Norden (pre-errata) +--Elder Entity Norden (Pre-Errata) local s,id=GetID() function s.initial_effect(c) c:EnableReviveLimit() - --Fusion materials: 1 Synchro or Xyz Monster + 1 Synchro or Xyz Monster - Fusion.AddProcMixN(c,true,true,aux.FilterBoolFunctionEx(Card.IsType,TYPE_XYZ|TYPE_SYNCHRO),2) - --When this card is Special Summoned: You can target 1 Level 4 or lower monster in your GY; Special Summon it, but its effects are negated + --Fusion Materials: 1 Synchro or Xyz Monster + 1 Synchro or Xyz Monster + Fusion.AddProcMixN(c,true,true,aux.FilterBoolFunctionEx(Card.IsType,TYPE_SYNCHRO|TYPE_XYZ),2) + --When this card is Special Summoned: You can target 1 Level 4 or lower monster in your Graveyard; Special Summon it, but its effects are negated, also banish it when this card leaves the field local e1=Effect.CreateEffect(c) e1:SetDescription(aux.Stringid(id,0)) - e1:SetCategory(CATEGORY_SPECIAL_SUMMON) - e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP) + e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_DISABLE+CATEGORY_REMOVE) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) + e1:SetProperty(EFFECT_FLAG_CARD_TARGET) e1:SetCode(EVENT_SPSUMMON_SUCCESS) e1:SetTarget(s.sptg) e1:SetOperation(s.spop) c:RegisterEffect(e1) - --Banish that monster when this card leaves the field - local e2=Effect.CreateEffect(c) - e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) - e2:SetCode(EVENT_LEAVE_FIELD) - e2:SetOperation(s.leave) - c:RegisterEffect(e2) - e1:SetLabelObject(e2) end s.miracle_synchro_fusion=true function s.spfilter(c,e,tp) @@ -36,32 +29,37 @@ function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,tp,0) end function s.spop(e,tp,eg,ep,ev,re,r,rp) - local c=e:GetHandler() local tc=Duel.GetFirstTarget() if tc:IsRelateToEffect(e) and Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP) then - local e1=Effect.CreateEffect(c) - e1:SetType(EFFECT_TYPE_SINGLE) - e1:SetCode(EFFECT_DISABLE) - e1:SetReset(RESET_EVENT|RESETS_STANDARD) - tc:RegisterEffect(e1,true) - local e2=Effect.CreateEffect(c) - e2:SetType(EFFECT_TYPE_SINGLE) - e2:SetCode(EFFECT_DISABLE_EFFECT) - e2:SetReset(RESET_EVENT|RESETS_STANDARD) - tc:RegisterEffect(e2,true) - Duel.SpecialSummonComplete() - if c:IsRelateToEffect(e) then + local c=e:GetHandler() + --Its effects are negated + tc:NegateEffects(c) + if c:IsRelateToEffect(e) and c:IsFaceup() then c:SetCardTarget(tc) - e:GetLabelObject():SetLabelObject(tc) - c:CreateRelation(tc,RESET_EVENT|RESET_OVERLAY|RESET_TOFIELD|RESET_TURN_SET) + c:CreateRelation(tc,RESET_EVENT|RESET_OVERLAY|RESET_MSCHANGE|RESET_TURN_SET) tc:CreateRelation(c,RESET_EVENT|RESETS_STANDARD|RESET_OVERLAY) + --Also banish it when this card leaves the field + local e1=Effect.CreateEffect(c) + e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) + e1:SetCode(EVENT_LEAVE_FIELD_P) + e1:SetOperation(function(e,tp,eg,ep,ev,re,r,rp) + --Register the banishing effect only if its effects aren't negated right before it leaves the field + local e1=Effect.CreateEffect(c) + e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) + e1:SetCode(EVENT_LEAVE_FIELD) + e1:SetOperation(function(e,tp,eg,ep,ev,re,r,rp) + if c:IsRelateToCard(tc) and tc:IsRelateToCard(c) then + c:ReleaseRelation(tc) + Duel.Remove(tc,POS_FACEUP,REASON_EFFECT) + end + e:Reset() + end) + e1:SetReset(RESET_EVENT|(RESET_OVERLAY|RESET_MSCHANGE|RESET_TURN_SET)) + c:RegisterEffect(e1) + end) + e1:SetReset(RESET_EVENT|(RESET_OVERLAY|RESET_MSCHANGE|RESET_TURN_SET)) + c:RegisterEffect(e1) end end -end -function s.leave(e,tp,eg,ep,ev,re,r,rp) - local c=e:GetHandler() - local tc=e:GetLabelObject() - if tc and c:IsRelateToCard(tc) and tc:IsRelateToCard(c) then - Duel.Remove(tc,POS_FACEUP,REASON_EFFECT) - end -end + Duel.SpecialSummonComplete() +end \ No newline at end of file diff --git a/pre-errata/c96782896.lua b/pre-errata/c96782896.lua index a0a8119179..035c05c3fd 100644 --- a/pre-errata/c96782896.lua +++ b/pre-errata/c96782896.lua @@ -1,31 +1,30 @@ --メンタルマスター ---Mind Master (pre-errata) +--Mind Master (Pre-Errata) local s,id=GetID() +local CARD_MIND_MASTER=96782886 function s.initial_effect(c) - --You can pay 800 Life Points and Tribute 1 Psychic-Type monster, except "Mind Master"; Special Summon 1 Level 4 or lower Psychic-Type monster from your Deck in Attack Position + --You can pay 800 Life Points and Tribute 1 Psychic-Type monster, except "Mind Master", to Special Summon 1 Level 4 or lower Psychic-Type monster from your Deck in face-up Attack Position local e1=Effect.CreateEffect(c) e1:SetDescription(aux.Stringid(id,0)) e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetType(EFFECT_TYPE_IGNITION) e1:SetRange(LOCATION_MZONE) - e1:SetCost(s.cost) + e1:SetCost(Cost.AND(Cost.PayLP(800),s.spcost)) e1:SetTarget(s.sptg) e1:SetOperation(s.spop) c:RegisterEffect(e1) end -s.listed_names={id} -function s.costfilter(c) - return c:IsRace(RACE_PSYCHIC) and not c:IsCode(id) +s.listed_names={CARD_MIND_MASTER} +function s.spcostfilter(c) + return c:IsRace(RACE_PSYCHIC) and not c:IsCode(CARD_MIND_MASTER) end -function s.cost(e,tp,eg,ep,ev,re,r,rp,chk) - if chk==0 then return Duel.CheckLPCost(tp,800) - and Duel.CheckReleaseGroupCost(tp,s.costfilter,1,false,aux.ReleaseCheckMMZ,nil) end - Duel.PayLPCost(tp,800) - local sg=Duel.SelectReleaseGroupCost(tp,s.costfilter,1,1,false,aux.ReleaseCheckMMZ,nil) - Duel.Release(sg,REASON_COST) +function s.spcost(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then return Duel.CheckReleaseGroupCost(tp,s.spcostfilter,1,false,aux.ReleaseCheckMMZ,nil) end + local g=Duel.SelectReleaseGroupCost(tp,s.spcostfilter,1,1,false,aux.ReleaseCheckMMZ,nil) + Duel.Release(g,REASON_COST) end function s.spfilter(c,e,tp) - return c:IsRace(RACE_PSYCHIC) and c:IsLevelBelow(4) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) + return c:IsLevelBelow(4) and c:IsRace(RACE_PSYCHIC) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_ATTACK) end function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk) if chk==0 then return Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) end @@ -38,4 +37,4 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp) if #g>0 then Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP_ATTACK) end -end +end \ No newline at end of file