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)
......
......@@ -76,7 +76,7 @@ function cm.immcon(e,tp,eg,ep,ev,re,r,rp)
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()
......
......@@ -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)
......@@ -38,6 +48,8 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
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)
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:RandomSelect(t,n)
Duel.SpecialSummon(g,0,1-tp,1-tp,false,false,POS_FACEUP)
end
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