Commit 5be0dfe5 authored by Nemo Ma's avatar Nemo Ma

fix

parent 66a28443
...@@ -58,7 +58,7 @@ function cm.adop(e,tp,eg,ep,ev,re,r,rp) ...@@ -58,7 +58,7 @@ function cm.adop(e,tp,eg,ep,ev,re,r,rp)
e2:SetCountLimit(1) e2:SetCountLimit(1)
e2:SetCondition(cm.tgcon) e2:SetCondition(cm.tgcon)
e2:SetOperation(cm.tgop) e2:SetOperation(cm.tgop)
if Duel.GetCurrentPhase()==PHASE_BATTLE_START then if 1~=1 then
e2:SetReset(RESET_PHASE+PHASE_BATTLE_START,2) e2:SetReset(RESET_PHASE+PHASE_BATTLE_START,2)
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,1) c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,1)
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,2) c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,2)
......
...@@ -58,7 +58,7 @@ function cm.adop(e,tp,eg,ep,ev,re,r,rp) ...@@ -58,7 +58,7 @@ function cm.adop(e,tp,eg,ep,ev,re,r,rp)
e2:SetCountLimit(1) e2:SetCountLimit(1)
e2:SetCondition(cm.tgcon) e2:SetCondition(cm.tgcon)
e2:SetOperation(cm.tgop) e2:SetOperation(cm.tgop)
if Duel.GetCurrentPhase()==PHASE_BATTLE_START then if 1~=1 then
e2:SetReset(RESET_PHASE+PHASE_BATTLE_START,2) e2:SetReset(RESET_PHASE+PHASE_BATTLE_START,2)
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,1) c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,1)
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,2) c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,2)
......
...@@ -67,7 +67,7 @@ function cm.adop(e,tp,eg,ep,ev,re,r,rp) ...@@ -67,7 +67,7 @@ function cm.adop(e,tp,eg,ep,ev,re,r,rp)
e2:SetCountLimit(1) e2:SetCountLimit(1)
e2:SetCondition(cm.tgcon) e2:SetCondition(cm.tgcon)
e2:SetOperation(cm.tgop) e2:SetOperation(cm.tgop)
if Duel.GetCurrentPhase()==PHASE_BATTLE_START then if 1~=1 then
e2:SetReset(RESET_PHASE+PHASE_BATTLE_START,2) e2:SetReset(RESET_PHASE+PHASE_BATTLE_START,2)
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,1) c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,1)
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,2) c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,2)
......
...@@ -91,7 +91,7 @@ function cm.adop(e,tp,eg,ep,ev,re,r,rp) ...@@ -91,7 +91,7 @@ function cm.adop(e,tp,eg,ep,ev,re,r,rp)
e2:SetCountLimit(1) e2:SetCountLimit(1)
e2:SetCondition(cm.tgcon) e2:SetCondition(cm.tgcon)
e2:SetOperation(cm.tgop) e2:SetOperation(cm.tgop)
if Duel.GetCurrentPhase()==PHASE_BATTLE_START then if 1~=1 then
e2:SetReset(RESET_PHASE+PHASE_BATTLE_START,2) e2:SetReset(RESET_PHASE+PHASE_BATTLE_START,2)
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,1) c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,1)
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,2) c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,2)
......
...@@ -53,7 +53,7 @@ function cm.adop(e,tp,eg,ep,ev,re,r,rp) ...@@ -53,7 +53,7 @@ function cm.adop(e,tp,eg,ep,ev,re,r,rp)
e2:SetCountLimit(1) e2:SetCountLimit(1)
e2:SetCondition(cm.tgcon) e2:SetCondition(cm.tgcon)
e2:SetOperation(cm.tgop) e2:SetOperation(cm.tgop)
if Duel.GetCurrentPhase()==PHASE_BATTLE_START then if 1~=1 then
e2:SetReset(RESET_PHASE+PHASE_BATTLE_START,2) e2:SetReset(RESET_PHASE+PHASE_BATTLE_START,2)
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,1) c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,1)
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,2) c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,2)
......
...@@ -54,7 +54,7 @@ function cm.adop(e,tp,eg,ep,ev,re,r,rp) ...@@ -54,7 +54,7 @@ function cm.adop(e,tp,eg,ep,ev,re,r,rp)
e2:SetCountLimit(1) e2:SetCountLimit(1)
e2:SetCondition(cm.tgcon) e2:SetCondition(cm.tgcon)
e2:SetOperation(cm.tgop) e2:SetOperation(cm.tgop)
if Duel.GetCurrentPhase()==PHASE_BATTLE_START then if 1~=1 then
e2:SetReset(RESET_PHASE+PHASE_BATTLE_START,2) e2:SetReset(RESET_PHASE+PHASE_BATTLE_START,2)
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,1) c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,1)
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,2) c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE_START,0,2)
......
...@@ -15,11 +15,18 @@ function cm.initial_effect(c) ...@@ -15,11 +15,18 @@ function cm.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_CHAINING) e3:SetCode(EVENT_CHAIN_SOLVED)
e3:SetRange(LOCATION_FZONE) e3:SetRange(LOCATION_FZONE)
e3:SetCondition(cm.mondamcon) e3:SetCondition(cm.mondamcon)
e3:SetOperation(cm.mondamop) e3:SetOperation(cm.mondamop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
local e35=Effect.CreateEffect(c)
e35:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e35:SetCode(EVENT_CHAINING)
e35:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e35:SetRange(LOCATION_FZONE)
e35:SetOperation(aux.chainreg)
c:RegisterEffect(e35)
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetCode(EVENT_LEAVE_FIELD) e4:SetCode(EVENT_LEAVE_FIELD)
...@@ -38,13 +45,15 @@ function cm.tgdamcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -38,13 +45,15 @@ function cm.tgdamcon(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.tgdamop(e,tp,eg,ep,ev,re,r,rp) function cm.tgdamop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,m) Duel.Hint(HINT_CARD,0,m)
Duel.Hint(HINT_OPSELECTED,0,aux.Stringid(m,0))
Duel.Damage(1-tp,300,REASON_EFFECT) Duel.Damage(1-tp,300,REASON_EFFECT)
end end
function cm.mondamcon(e,tp,eg,ep,ev,re,r,rp) function cm.mondamcon(e,tp,eg,ep,ev,re,r,rp)
return ep==tp and re:IsActiveType(TYPE_MONSTER) and re:GetHandler():IsSetCard(0x3310) return ep==tp and re:IsActiveType(TYPE_MONSTER) and re:GetHandler():IsSetCard(0x3310) and e:GetHandler():GetFlagEffect(1)>0
end end
function cm.mondamop(e,tp,eg,ep,ev,re,r,rp) function cm.mondamop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,m) Duel.Hint(HINT_CARD,0,m)
Duel.Hint(HINT_OPSELECTED,0,aux.Stringid(m,1))
Duel.Damage(1-tp,300,REASON_EFFECT) Duel.Damage(1-tp,300,REASON_EFFECT)
end end
function cm.drfilter(c) function cm.drfilter(c)
......
...@@ -29,11 +29,11 @@ function cm.initial_effect(c) ...@@ -29,11 +29,11 @@ function cm.initial_effect(c)
e4:SetLabel(1) e4:SetLabel(1)
e4:SetCondition(cm.countcon) e4:SetCondition(cm.countcon)
c:RegisterEffect(e4) c:RegisterEffect(e4)
local e5=e3:Clone() local e5=e4:Clone()
e5:SetCode(EFFECT_DIRECT_ATTACK) e5:SetCode(EFFECT_DIRECT_ATTACK)
e5:SetLabel(2) e5:SetLabel(2)
c:RegisterEffect(e5) c:RegisterEffect(e5)
local e6=e3:Clone() local e6=e4:Clone()
e6:SetCode(EFFECT_CHANGE_BATTLE_DAMAGE) e6:SetCode(EFFECT_CHANGE_BATTLE_DAMAGE)
e6:SetValue(DOUBLE_DAMAGE) e6:SetValue(DOUBLE_DAMAGE)
e6:SetLabel(3) e6:SetLabel(3)
...@@ -52,7 +52,7 @@ function cm.hop(e,tp,eg,ep,ev,re,r,rp) ...@@ -52,7 +52,7 @@ function cm.hop(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_ONFIELD) end if chkc then return chkc:IsLocation(LOCATION_ONFIELD) end
if chk==0 then return Duel.IsExistingTarget(Card.IsFaceup,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end if chk==0 then return Duel.IsExistingTarget(nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
Duel.SelectTarget(tp,Card.IsFaceup,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil) Duel.SelectTarget(tp,Card.IsFaceup,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
end end
......
...@@ -49,8 +49,8 @@ function cm.splimit(e,c) ...@@ -49,8 +49,8 @@ function cm.splimit(e,c)
return not (c:IsRace(RACE_PYRO) or c:IsAttribute(ATTRIBUTE_FIRE)) return not (c:IsRace(RACE_PYRO) or c:IsAttribute(ATTRIBUTE_FIRE))
end end
function cm.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_ONFIELD) and chkc:IsFaceup() end if chkc then return chkc:IsOnField() and aux.NegateAnyFilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(Card.IsFaceup,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end if chk==0 then return Duel.IsExistingTarget(aux.NegateAnyFilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,Card.IsFaceup,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil) Duel.SelectTarget(tp,Card.IsFaceup,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
end end
......
...@@ -49,18 +49,19 @@ end ...@@ -49,18 +49,19 @@ end
function cm.searfilter(c,tc) function cm.searfilter(c,tc)
return c:IsCode(tc:GetCode()) and c:IsAbleToHand() return c:IsCode(tc:GetCode()) and c:IsAbleToHand()
end end
function cm.filter(c) function cm.filter(c,tp)
return c:IsFaceup() and Duel.IsExistingMatchingCard(cm.searfilter,tp,LOCATION_DECK,0,1,nil,c) return c:IsFaceup() and Duel.IsExistingMatchingCard(cm.searfilter,tp,LOCATION_DECK,0,1,nil,c)
end end
function cm.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and cm.filter(chkc) end if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and cm.filter(chkc,tp) end
if chk==0 then return Duel.IsExistingTarget(cm.filter,tp,LOCATION_MZONE,0,1,e:GetHandler()) end if chk==0 then return Duel.IsExistingTarget(cm.filter,tp,LOCATION_MZONE,0,1,e:GetHandler(),tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,cm.filter,tp,LOCATION_MZONE,0,1,1,e:GetHandler()) Duel.SelectTarget(tp,cm.filter,tp,LOCATION_MZONE,0,1,1,e:GetHandler(),tp)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end end
function cm.atkop(e,tp,eg,ep,ev,re,r,rp) function cm.atkop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if not tc:IsRelateToEffect(e) then return end
local g=Duel.SelectMatchingCard(tp,cm.searfilter,tp,LOCATION_DECK,0,1,1,nil,tc) local g=Duel.SelectMatchingCard(tp,cm.searfilter,tp,LOCATION_DECK,0,1,1,nil,tc)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT) Duel.SendtoHand(g,nil,REASON_EFFECT)
......
...@@ -37,11 +37,11 @@ function c72411740.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -37,11 +37,11 @@ function c72411740.operation(e,tp,eg,ep,ev,re,r,rp)
local sg3=Group.Filter(sg,Card.IsType,nil,TYPE_MONSTER):GetCount() local sg3=Group.Filter(sg,Card.IsType,nil,TYPE_MONSTER):GetCount()
local ct=Duel.SendtoGrave(sg,REASON_EFFECT+REASON_DISCARD) local ct=Duel.SendtoGrave(sg,REASON_EFFECT+REASON_DISCARD)
if sg1>1 then if sg1>1 then
Duel.BreakEffect() --Duel.BreakEffect()
Duel.Draw(tp,3,REASON_EFFECT) end Duel.Draw(tp,3,REASON_EFFECT) end
if sg2>1 and Duel.GetLocationCount(tp,LOCATION_MZONE)>1 if sg2>1 and Duel.GetLocationCount(tp,LOCATION_MZONE)>1
and Duel.IsExistingMatchingCard(c72411740.filter,tp,LOCATION_DECK,0,2,nil,e,tp) and not Duel.IsPlayerAffectedByEffect(tp,59822133) then and Duel.IsExistingMatchingCard(c72411740.filter,tp,LOCATION_DECK,0,2,nil,e,tp) and not Duel.IsPlayerAffectedByEffect(tp,59822133) then
Duel.BreakEffect() --Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c72411740.filter,tp,LOCATION_DECK,0,2,2,nil,e,tp) local g=Duel.SelectMatchingCard(tp,c72411740.filter,tp,LOCATION_DECK,0,2,2,nil,e,tp)
if g:GetCount()==2 then if g:GetCount()==2 then
...@@ -49,7 +49,7 @@ function c72411740.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -49,7 +49,7 @@ function c72411740.operation(e,tp,eg,ep,ev,re,r,rp)
end end
end end
if sg3>1 and Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) then if sg3>1 and Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) then
Duel.BreakEffect() --Duel.BreakEffect()
local dg=Duel.GetMatchingGroup(aux.TRUE,tp,0,LOCATION_ONFIELD,nil) local dg=Duel.GetMatchingGroup(aux.TRUE,tp,0,LOCATION_ONFIELD,nil)
Duel.Destroy(dg,REASON_EFFECT) Duel.Destroy(dg,REASON_EFFECT)
end end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment