Commit 4951902f authored by POLYMER's avatar POLYMER

fix

parent f18c77bc
--心象风景 赎罪 --心象风景 赎罪
function c19209557.initial_effect(c) function c19209557.initial_effect(c)
aux.AddCodeList(c,19209525) aux.AddCodeList(c,19209511,19209525)
--act in set turn --act in set turn
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE) e0:SetType(EFFECT_TYPE_SINGLE)
...@@ -19,6 +19,14 @@ function c19209557.initial_effect(c) ...@@ -19,6 +19,14 @@ function c19209557.initial_effect(c)
e1:SetTarget(c19209557.target) e1:SetTarget(c19209557.target)
e1:SetOperation(c19209557.activate) e1:SetOperation(c19209557.activate)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--to deck
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_REMOVE)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCondition(c19209557.tdcon)
e2:SetOperation(c19209557.tdop)
c:RegisterEffect(e2)
if not c19209557.global_check then if not c19209557.global_check then
c19209557.global_check=true c19209557.global_check=true
local ge1=Effect.CreateEffect(c) local ge1=Effect.CreateEffect(c)
...@@ -37,11 +45,11 @@ end ...@@ -37,11 +45,11 @@ end
function c19209557.actcon(e) function c19209557.actcon(e)
return e:GetHandler():GetFlagEffect(19209557)>0 return e:GetHandler():GetFlagEffect(19209557)>0
end end
function c19209557.chkfilter(c) function c19209557.chkfilter(c,code)
return c:IsCode(19209525) and c:IsFaceup() return c:IsCode(code) and c:IsFaceup()
end end
function c19209557.condition(e,tp,eg,ep,ev,re,r,rp) function c19209557.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c19209557.chkfilter,tp,LOCATION_ONFIELD+LOCATION_REMOVED,0,1,nil) return Duel.IsExistingMatchingCard(c19209557.chkfilter,tp,LOCATION_ONFIELD+LOCATION_REMOVED,0,1,nil,19209525)
end end
function c19209557.cfilter(c) function c19209557.cfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsAbleToRemove() return c:IsType(TYPE_MONSTER) and c:IsAbleToRemove()
...@@ -67,3 +75,36 @@ function c19209557.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -67,3 +75,36 @@ function c19209557.activate(e,tp,eg,ep,ev,re,r,rp)
end end
end end
end end
function c19209557.tdcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c19209557.chkfilter,tp,LOCATION_ONFIELD,0,1,nil,19209511)
end
function c19209557.tdop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CUSTOM+19209557)
e1:SetOperation(c19209557.regop)
e1:SetLabel(0)
e1:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_TO_GRAVE)
e2:SetOperation(c19209557.tdevent)
e2:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e2,tp)
local e3=e2:Clone()
e3:SetCode(EVENT_REMOVE)
Duel.RegisterEffect(e3,tp)
end
function c19209557.regop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,19209557)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToDeck,tp,0x30,0x30,1,1,nil)
Duel.SendtoDeck(g,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
local ct=e:GetLabel()
ct=ct+1
if ct==3 then e:Reset() else e:SetLabel(ct) end
end
function c19209557.tdevent(e,tp,eg,ep,ev,re,r,rp)
Duel.RaiseEvent(eg,EVENT_CUSTOM+19209557,re,r,rp,ep,ev)
end
...@@ -66,7 +66,7 @@ end ...@@ -66,7 +66,7 @@ end
function c75011026.cost(e,tp,eg,ep,ev,re,r,rp,chk) function c75011026.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
local g=e:GetHandler():GetOverlayGroup() local g=e:GetHandler():GetOverlayGroup()
e:SetLabel(#g) e:SetLabel(g:GetCount())
Duel.SendtoGrave(g,REASON_COST) Duel.SendtoGrave(g,REASON_COST)
end end
function c75011026.operation(e,tp,eg,ep,ev,re,r,rp) function c75011026.operation(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -18,7 +18,7 @@ function c75011050.initial_effect(c) ...@@ -18,7 +18,7 @@ function c75011050.initial_effect(c)
e2:SetProperty(EFFECT_FLAG_DELAY) e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetRange(LOCATION_GRAVE) e2:SetRange(LOCATION_GRAVE)
e2:SetCondition(c75011050.thcon1) e2:SetCondition(c75011050.thcon1)
e2:SetCost(aux.bfgcost) --e2:SetCost(aux.bfgcost)
e2:SetTarget(c75011050.thtg) e2:SetTarget(c75011050.thtg)
e2:SetOperation(c75011050.thop) e2:SetOperation(c75011050.thop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
......
...@@ -2,122 +2,122 @@ ...@@ -2,122 +2,122 @@
local m=89390012 local m=89390012
local cm=_G["c"..m] local cm=_G["c"..m]
function cm.initial_effect(c) function cm.initial_effect(c)
c:SetSPSummonOnce(m) c:SetSPSummonOnce(m)
c:EnableReviveLimit() c:EnableReviveLimit()
aux.AddFusionProcFun2(c,Card.IsTuner,cm.ffilter,true) aux.AddFusionProcFun2(c,Card.IsTuner,cm.ffilter,true)
aux.AddContactFusionProcedure(c,cm.mfilter,LOCATION_HAND+LOCATION_ONFIELD,0,Duel.Remove,POS_FACEUP,REASON_COST+REASON_MATERIAL) aux.AddContactFusionProcedure(c,cm.mfilter,LOCATION_HAND+LOCATION_ONFIELD,0,Duel.Remove,POS_FACEUP,REASON_COST+REASON_MATERIAL)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION) e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(aux.fuslimit) e1:SetValue(aux.fuslimit)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_SPSUMMON_SUCCESS) e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetOperation(cm.regop) e3:SetOperation(cm.regop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_QUICK_F) e2:SetType(EFFECT_TYPE_QUICK_F)
e2:SetCode(EVENT_CHAINING) e2:SetCode(EVENT_CHAINING)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,EFFECT_COUNT_CODE_CHAIN) e2:SetCountLimit(1,EFFECT_COUNT_CODE_CHAIN)
e2:SetCondition(cm.immcon) e2:SetCondition(cm.immcon)
e2:SetCost(cm.cost) e2:SetCost(cm.cost)
e2:SetOperation(cm.immop) e2:SetOperation(cm.immop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
if not cm.global_check then if not cm.global_check then
cm.global_check=true cm.global_check=true
cm[0]={} cm[0]={}
cm[1]={} cm[1]={}
cm[2]={} cm[2]={}
cm[3]={} cm[3]={}
local ge1=Effect.CreateEffect(c) local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_CHAINING) ge1:SetCode(EVENT_CHAINING)
ge1:SetOperation(cm.checkop) ge1:SetOperation(cm.checkop)
Duel.RegisterEffect(ge1,0) Duel.RegisterEffect(ge1,0)
local ge2=ge1:Clone() local ge2=ge1:Clone()
ge2:SetCode(EVENT_CHAIN_NEGATED) ge2:SetCode(EVENT_CHAIN_NEGATED)
ge2:SetOperation(cm.regop2) ge2:SetOperation(cm.regop2)
Duel.RegisterEffect(ge2,0) Duel.RegisterEffect(ge2,0)
local ge4=Effect.CreateEffect(c) local ge4=Effect.CreateEffect(c)
ge4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) ge4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge4:SetCode(EVENT_PHASE_START+PHASE_DRAW) ge4:SetCode(EVENT_PHASE_START+PHASE_DRAW)
ge4:SetOperation(cm.clearop) ge4:SetOperation(cm.clearop)
Duel.RegisterEffect(ge4,0) Duel.RegisterEffect(ge4,0)
end end
end end
function cm.ffilter(c) function cm.ffilter(c)
return not c:IsStatus(STATUS_SPSUMMON_TURN) and c:IsFusionType(TYPE_FUSION) return not c:IsStatus(STATUS_SPSUMMON_TURN) and c:IsFusionType(TYPE_FUSION)
end end
function cm.mfilter(c) function cm.mfilter(c)
local tp=c:GetControler() local tp=c:GetControler()
local rc=c:GetFusionCode() local rc=c:GetFusionCode()
return not cm[tp][rc] and cm[tp+2][rc] and c:IsAbleToRemoveAsCost() return not cm[tp][rc] and cm[tp+2][rc] and c:IsAbleToRemoveAsCost()
end end
function cm.regop(e,tp,eg,ep,ev,re,r,rp) function cm.regop(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetHandler() local tc=e:GetHandler()
local g=tc:GetMaterial() local g=tc:GetMaterial()
if not g then return end if not g then return end
local c=g:GetFirst() local c=g:GetFirst()
while c do while c do
cm.regmf(c,tc) cm.regmf(c,tc)
c=g:GetNext() c=g:GetNext()
end end
end end
function cm.regmf(c,tc) function cm.regmf(c,tc)
if c:IsRace(RACE_PSYCHO+RACE_MACHINE) then if c:IsRace(RACE_PSYCHO+RACE_MACHINE) then
tc:CopyEffect(c:GetOriginalCode(),RESET_EVENT+0x1fe0000) tc:CopyEffect(c:GetOriginalCode(),RESET_EVENT+0x1fe0000)
end end
end end
function cm.immcon(e,tp,eg,ep,ev,re,r,rp) function cm.immcon(e,tp,eg,ep,ev,re,r,rp)
return rp==1-tp return rp==1-tp
end end
function cm.costfilter(c,rc) function cm.costfilter(c,rc)
return c:IsType(rc:GetType()) and c:IsAbleToRemoveAsCost() return c:IsType(bit.band(rc:GetType(),0x7)) and c:IsAbleToRemoveAsCost()
end end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return Duel.IsExistingMatchingCard(cm.costfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,c,re:GetHandler()) end if chk==0 then return Duel.IsExistingMatchingCard(cm.costfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,c,re:GetHandler()) end
if Duel.SelectYesNo(tp,aux.Stringid(m,0)) then if Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,cm.costfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,c,re:GetHandler()) local g=Duel.SelectMatchingCard(tp,cm.costfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,c,re:GetHandler())
Duel.Remove(g,POS_FACEUP,REASON_COST) Duel.Remove(g,POS_FACEUP,REASON_COST)
Duel.SetChainLimit(aux.FALSE) Duel.SetChainLimit(aux.FALSE)
end end
end end
function cm.immop(e,tp,eg,ep,ev,re,r,rp) function cm.immop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) then if c:IsRelateToEffect(e) then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_CANNOT_DISABLE) e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_CANNOT_DISABLE)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_IMMUNE_EFFECT) e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END) e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
e1:SetValue(cm.efilter) e1:SetValue(cm.efilter)
e1:SetLabel(re:GetHandler():GetCode()) e1:SetLabel(re:GetHandler():GetCode())
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
end end
function cm.efilter(e,te) function cm.efilter(e,te)
return te:GetHandler():IsCode(e:GetLabel()) return te:GetHandler():IsCode(e:GetLabel())
end end
function cm.checkop(e,tp,eg,ep,ev,re,r,rp) function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
if re:IsActiveType(TYPE_MONSTER) then if re:IsActiveType(TYPE_MONSTER) then
local rc=re:GetHandler():GetCode() local rc=re:GetHandler():GetCode()
if cm[rp][rc] then cm[rp][rc]=cm[rp][rc]+1 else cm[rp][rc]=1 end if cm[rp][rc] then cm[rp][rc]=cm[rp][rc]+1 else cm[rp][rc]=1 end
if cm[rp+2][rc] then cm[rp+2][rc]=cm[rp+2][rc]+1 else cm[rp+2][rc]=1 end if cm[rp+2][rc] then cm[rp+2][rc]=cm[rp+2][rc]+1 else cm[rp+2][rc]=1 end
end end
end end
function cm.regop2(e,tp,eg,ep,ev,re,r,rp) function cm.regop2(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler():GetCode() local rc=re:GetHandler():GetCode()
if cm[rp][rc] then cm[rp][rc]=cm[rp][rc]-1 else cm[rp][rc]=nil end if cm[rp][rc] then cm[rp][rc]=cm[rp][rc]-1 else cm[rp][rc]=nil end
if cm[rp+2][rc] then cm[rp+2][rc]=cm[rp+2][rc]-1 else cm[rp+2][rc]=nil end if cm[rp+2][rc] then cm[rp+2][rc]=cm[rp+2][rc]-1 else cm[rp+2][rc]=nil end
end end
function cm.clearop(e,tp,eg,ep,ev,re,r,rp) function cm.clearop(e,tp,eg,ep,ev,re,r,rp)
cm[0]={} cm[0]={}
cm[1]={} cm[1]={}
end end
...@@ -4,18 +4,26 @@ function c91000101.initial_effect(c) ...@@ -4,18 +4,26 @@ function c91000101.initial_effect(c)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_DRAW) e1:SetCode(EVENT_PHASE+PHASE_DRAW)
e1:SetCost(aux.bfgcost)
e1:SetRange(LOCATION_DECK+LOCATION_HAND) e1:SetRange(LOCATION_DECK+LOCATION_HAND)
e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_DUEL) e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_DUEL)
e1:SetTarget(cm.tg)
e1:SetOperation(cm.activate) e1:SetOperation(cm.activate)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetChainLimit(aux.FALSE)
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp) function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
Duel.Remove(c,POS_FACEUP,REASON_EFFECT)
if c:IsLocation(LOCATION_HAND) then Duel.Draw(tp,1,REASON_EFFECT) end if c:IsLocation(LOCATION_HAND) then Duel.Draw(tp,1,REASON_EFFECT) end
--抽 卡 --抽 卡
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local lv=Duel.AnnounceLevel(tp,2,6) local lv=Duel.AnnounceLevel(tp,2,6)
Debug.Message("对方选择让你每回合抽卡数为:")
Debug.Message(lv)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD) e2:SetType(EFFECT_TYPE_FIELD)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
...@@ -27,6 +35,8 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -27,6 +35,8 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
--通 常 召 唤 --通 常 召 唤
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SUMMON)
local ln=Duel.AnnounceLevel(tp,2,10) local ln=Duel.AnnounceLevel(tp,2,10)
Debug.Message("对方选择让你每回合通常召唤数为:")
Debug.Message(ln)
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD) e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_SET_SUMMON_COUNT_LIMIT) e3:SetCode(EFFECT_SET_SUMMON_COUNT_LIMIT)
...@@ -35,9 +45,11 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -35,9 +45,11 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
e3:SetValue(ln) e3:SetValue(ln)
Duel.RegisterEffect(e3,tp) Duel.RegisterEffect(e3,tp)
--回 复 --回 复
if Duel.SelectYesNo(tp,aux.Stringid(m,2)) then if Duel.SelectYesNo(tp,aux.Stringid(m,2)) then
Duel.Hint(HINT_SELECTMSG,tp,HINGMSG_NUMBER) Duel.Hint(HINT_SELECTMSG,tp,HINGMSG_NUMBER)
local lp=Duel.AnnounceLevel(tp,1,8) local lp=Duel.AnnounceLevel(tp,1,8)
Debug.Message("对方选择让你每回合回血数值为")
Debug.Message(lp*1000)
--local t={8,16,32,64} --local t={8,16,32,64}
--local lp=(Duel.AnnounceNumber(tp,table.unpack(t))) --local lp=(Duel.AnnounceNumber(tp,table.unpack(t)))
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
...@@ -46,19 +58,22 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -46,19 +58,22 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetRange(0xff) e1:SetRange(0xff)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetLabel(lp) e1:SetLabel(lp)
e1:SetCondition(cm.con)
e1:SetOperation(cm.activate2) e1:SetOperation(cm.activate2)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
--追 加 次 数 --追 加 次 数
if Duel.SelectYesNo(tp,aux.Stringid(m,3)) then if Duel.SelectYesNo(tp,aux.Stringid(m,3)) then
--Duel.Hint(HINT_SELECTMSG,tp,HINGMSG_NUMBER) Duel.Hint(HINT_SELECTMSG,tp,HINGMSG_NUMBER)
--local gc=Duel.AnnounceLevel(tp,1,3) local gc=Duel.AnnounceLevel(tp,1,3)
Debug.Message("对方选择让你卡片的额外发动次数:")
Debug.Message(gc)
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_CHAIN_SOLVING) e4:SetCode(EVENT_CHAIN_SOLVING)
e4:SetRange(0xff) e4:SetRange(0xff)
e4:SetLabel(gc)
e4:SetCondition(cm.addcon) e4:SetCondition(cm.addcon)
e4:SetTarget(cm.tg)
e4:SetOperation(cm.addop) e4:SetOperation(cm.addop)
Duel.RegisterEffect(e4,tp) Duel.RegisterEffect(e4,tp)
end end
...@@ -76,19 +91,26 @@ end ...@@ -76,19 +91,26 @@ end
--增 加 资 源 --增 加 资 源
if Duel.SelectYesNo(tp,aux.Stringid(m,5)) then if Duel.SelectYesNo(tp,aux.Stringid(m,5)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local ld=Duel.AnnounceLevel(tp,5,15) local ld=Duel.AnnounceLevel(tp,1,5)
local e4=Effect.CreateEffect(c) Debug.Message("对方选择让你的卡组资源增加数为:")
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) Debug.Message(ld)
e4:SetCode(EVENT_PHASE+PHASE_END) local e9=Effect.CreateEffect(c)
e4:SetRange(0xff) e9:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetCountLimit(1) e9:SetCode(EVENT_PHASE+PHASE_END)
e4:SetLabel(ld) e9:SetRange(0xff)
e4:SetCondition(cm.con) e9:SetLabel(ld)
e4:SetOperation(cm.activate3) e9:SetCountLimit(1)
Duel.RegisterEffect(e4,tp) e9:SetCondition(cm.con)
e9:SetTarget(cm.tg)
e9:SetOperation(cm.activate3)
Duel.RegisterEffect(e9,tp)
local e14=e9:Clone()
e14:SetType(EFFECT_TYPE_IGNITION+EFFECT_TYPE_CONTINUOUS)
Duel.RegisterEffect(e14,tp)
end end
--增 加 战 斗 阶 段 --增 加 战 斗 阶 段
if Duel.SelectYesNo(tp,aux.Stringid(m,6)) then if Duel.SelectYesNo(tp,aux.Stringid(m,6)) then
Debug.Message("对方选择让你增加战斗阶段")
local e5=Effect.CreateEffect(e:GetHandler()) local e5=Effect.CreateEffect(e:GetHandler())
e5:SetType(EFFECT_TYPE_FIELD) e5:SetType(EFFECT_TYPE_FIELD)
e5:SetCode(EFFECT_BP_TWICE) e5:SetCode(EFFECT_BP_TWICE)
...@@ -100,12 +122,15 @@ end ...@@ -100,12 +122,15 @@ end
if Duel.SelectYesNo(tp,aux.Stringid(m,7)) then if Duel.SelectYesNo(tp,aux.Stringid(m,7)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sp=Duel.AnnounceLevel(tp,1,3) local sp=Duel.AnnounceLevel(tp,1,3)
Debug.Message("对方选择让你战斗结束阶段特殊召唤的怪兽数量为:")
Debug.Message(sp)
local e6=Effect.CreateEffect(e:GetHandler()) local e6=Effect.CreateEffect(e:GetHandler())
e6:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e6:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e6:SetCode(EVENT_PHASE+PHASE_BATTLE) e6:SetCode(EVENT_PHASE+PHASE_BATTLE)
e6:SetCountLimit(1) e6:SetCountLimit(1)
e6:SetLabel(sp) e6:SetLabel(sp)
e6:SetCondition(cm.con) e6:SetCondition(cm.con)
e6:SetTarget(cm.tg)
e6:SetOperation(cm.spop) e6:SetOperation(cm.spop)
Duel.RegisterEffect(e6,tp) Duel.RegisterEffect(e6,tp)
end end
...@@ -119,15 +144,15 @@ function cm.activate2(e,tp,eg,ep,ev,re,r,rp) ...@@ -119,15 +144,15 @@ function cm.activate2(e,tp,eg,ep,ev,re,r,rp)
end end
function cm.activate3(e,tp,eg,ep,ev,re,r,rp) function cm.activate3(e,tp,eg,ep,ev,re,r,rp)
local ld=e:GetLabel() local ld=e:GetLabel()
local tp=e:GetHandlerPlayer() local tp=Duel.GetTurnPlayer()
local g1=Duel.GetMatchingGroup(nil,tp,0,LOCATION_GRAVE+LOCATION_REMOVED,nil) local g1=Duel.GetMatchingGroup(nil,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,nil)
if #g1<0 then return end if #g1<0 then return end
local n=math.min(#g1,ld) local n=math.min(#g1,ld)
local g=g1:RandomSelect(tp,n) local g=g1:Select(tp,0,n,nil)
local tc=g:GetFirst() local tc=g:GetFirst()
local g2=Group.CreateGroup() local g2=Group.CreateGroup()
while tc do while tc do
local nc=Duel.CreateToken(1-tp,tc:GetCode()) local nc=Duel.CreateToken(tp,tc:GetCode())
g2:AddCard(nc) g2:AddCard(nc)
tc=g:GetNext() tc=g:GetNext()
end end
...@@ -139,21 +164,20 @@ function cm.spfilter(c,e,tp) ...@@ -139,21 +164,20 @@ function cm.spfilter(c,e,tp)
end end
function cm.spop(e,tp,eg,ep,ev,re,r,rp) function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local sp=e:GetLabel() local sp=e:GetLabel()
local tp=e:GetHandlerPlayer() local tp=Duel.GetTurnPlayer()
if Duel.GetTurnPlayer()~=e:GetHandlerPlayer() then local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE+LOCATION_REMOVED,0,nil,e,tp)
local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter),tp,0,LOCATION_GRAVE+LOCATION_REMOVED,nil,e,tp) if g2:GetCount()>0 then
if g2:GetCount()>0 then local n=math.min(sp,#g2)
local n=math.min(sp,#g2) local g=g2:Select(tp,0,n,nil)
local g=g2:RandomSelect(t,n) Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
Duel.SpecialSummon(g,0,1-tp,1-tp,false,false,POS_FACEUP) end
end
end
end end
function cm.change_effect(effect,count) function cm.change_effect(effect,count)
local eff=effect:Clone() local eff=effect:Clone()
local etype=EFFECT_TYPE_ACTIVATE+EFFECT_TYPE_FLIP+EFFECT_TYPE_IGNITION+EFFECT_TYPE_TRIGGER_O+EFFECT_TYPE_QUICK_O+EFFECT_TYPE_TRIGGER_F+EFFECT_TYPE_QUICK_F local etype=EFFECT_TYPE_ACTIVATE+EFFECT_TYPE_FLIP+EFFECT_TYPE_IGNITION+EFFECT_TYPE_TRIGGER_O+EFFECT_TYPE_QUICK_O+EFFECT_TYPE_TRIGGER_F+EFFECT_TYPE_QUICK_F
local limcount,limid=effect:GetCountLimit() local limcount,limid=effect:GetCountLimit()
limid=limid^EFFECT_COUNT_CODE_DUEL --limid=limid^EFFECT_COUNT_CODE_DUEL
if effect:GetType()&etype~=0 and limid then if effect:GetType()&etype~=0 and limid then
eff:SetCountLimit(limcount+count,limid) eff:SetCountLimit(limcount+count,limid)
--eff:SetReset(RESET_PHASE+PHASE_END) --eff:SetReset(RESET_PHASE+PHASE_END)
......
...@@ -19,13 +19,10 @@ function cm.initial_effect(c) ...@@ -19,13 +19,10 @@ function cm.initial_effect(c)
e2:SetType(EFFECT_TYPE_SINGLE) e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_INDESTRUCTABLE_BATTLE) e2:SetCode(EFFECT_INDESTRUCTABLE_COUNT)
e2:SetValue(1)
e2:SetCountLimit(1) e2:SetCountLimit(1)
e2:SetValue(cm.indct)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e2b=e2:Clone()
e2b:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
c:RegisterEffect(e2b)
--加入手卡与特召 --加入手卡与特召
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
...@@ -76,7 +73,9 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -76,7 +73,9 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
end end
--记录攻击次数 --记录攻击次数
function cm.indct(e,re,r,rp)
return bit.band(r,REASON_BATTLE+REASON_EFFECT)~=0
end
--检索与特召 --检索与特召
function cm.thfilter(c) function cm.thfilter(c)
......
...@@ -20,13 +20,10 @@ function cm.initial_effect(c) ...@@ -20,13 +20,10 @@ function cm.initial_effect(c)
e2:SetType(EFFECT_TYPE_SINGLE) e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_INDESTRUCTABLE_BATTLE) e2:SetCode(EFFECT_INDESTRUCTABLE_COUNT)
e2:SetValue(1)
e2:SetCountLimit(1) e2:SetCountLimit(1)
e2:SetValue(cm.indct)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e2b=e2:Clone()
e2b:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
c:RegisterEffect(e2b)
--特召+同调 --特召+同调
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
......
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