Commit 4951902f authored by POLYMER's avatar POLYMER

fix

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