Commit fca6c85d authored by Nemo Ma's avatar Nemo Ma

fix

parent c255a60a
......@@ -13,6 +13,7 @@ function cm.initial_effect(c)
GO_RANDOM=true
cm[0]=0
cm[1]=0
cm.blacklist={}
local _SelectMatchingCard=Duel.SelectMatchingCard
local _SelectReleaseGroup=Duel.SelectReleaseGroup
local _SelectReleaseGroupEx=Duel.SelectReleaseGroupEx
......@@ -176,6 +177,12 @@ function cm.roll(min,max)
end
return cm.r
end
function cm.list(code)
for _,codes in pairs(cm.blacklist) do
if codes==code then return true end
end
return false
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local ct1=cm[tp]--Duel.GetFlagEffectLabel(tp,m)
local ct2=cm[1-tp]--Duel.GetFlagEffectLabel(1-tp,m)
......@@ -205,6 +212,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local ac=nil
local _TGetID=GetID
if ct1>0 then
ct1=math.min(ct1,85)
local tab1={}
for i=1,ct1 do
while not ac do
......@@ -224,7 +232,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
else
real=cc
end
if ctype&TYPE_TOKEN==0 then
if ctype&TYPE_TOKEN==0 and not cm.list(real) then
ac=real
end
end
......@@ -280,6 +288,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
end
end
if ct2>0 then
ct2=math.min(ct2,85)
local tab2={}
for i=1,ct2 do
while not ac do
......@@ -299,7 +308,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
else
real=cc
end
if ctype&TYPE_TOKEN==0 then
if ctype&TYPE_TOKEN==0 and not cm.list(real) then
ac=real
end
end
......
--traveler saga encounter
--21.04.09
local m=11451400
local cm=_G["c"..m]
--23.02.23
local cm,m=GetID()
function cm.initial_effect(c)
--activate
local e1=Effect.CreateEffect(c)
......@@ -21,11 +20,11 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return #eg==1 and eg:GetFirst():IsControler(1-tp)
end
function cm.filter(c,e,tp,zone)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.GetLocationCountFromEx(tp,tp,nil,c,zone)>0
return c:IsCanBeSpecialSummoned(e,0,tp,false,false,tp,zone) and Duel.GetLocationCountFromEx(tp,tp,nil,c,zone)>0
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local rc=eg:GetFirst()
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_EXTRA,0,1,nil,e,tp,rc:GetColumnZone(LOCATION_MZONE,tp)) end
if chk==0 then return rc:IsLocation(LOCATION_MZONE) and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_EXTRA,0,1,nil,e,tp,rc:GetColumnZone(LOCATION_MZONE,tp)) end
rc:CreateEffectRelation(e)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
......
--traveler saga outrun
--21.04.10
local m=11451401
local cm=_G["c"..m]
--23.02.23
local cm,m=GetID()
function cm.initial_effect(c)
--activate
local e1=Effect.CreateEffect(c)
......@@ -29,6 +28,7 @@ end
function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return eg:IsExists(cm.filter,1,c,tp) end
Duel.HintSelection(Group.FromCards(c))
if Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
local g=eg:Filter(cm.filter,c,tp)
if #g>1 then
......@@ -66,4 +66,5 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local g=eg:Filter(cm.thfilter,nil)
Duel.ConfirmCards(1-tp,g)
Duel.ShuffleHand(tp)
e:Reset()
end
\ No newline at end of file
--traveler saga tribute
--21.04.10
local m=11451402
local cm=_G["c"..m]
--23.02.23
local cm,m=GetID()
function cm.initial_effect(c)
--activate
local e1=Effect.CreateEffect(c)
......@@ -40,11 +39,8 @@ function cm.costcon(e)
cm[0]=false
return true
end
function cm.refilter(c,e)
return c:IsReleasable()
end
function cm.costchk(e,te,tp)
return Duel.IsExistingMatchingCard(cm.refilter,tp,LOCATION_MZONE,0,1,nil,te)
return Duel.IsExistingMatchingCard(Card.IsReleasable,tp,LOCATION_MZONE,0,1,nil)
end
function cm.costtg(e,te,tp)
e:SetLabelObject(te)
......
--废件
local m=11451695
local cm=_G["c"..m]
local cm,m=GetID()
function cm.initial_effect(c)
--Stuck
local EFFECT_STUCK=m
......@@ -31,7 +30,7 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_HAND,0,1,1,nil)
Duel.ConfirmCards(1-tp,g)
if Duel.SendtoDeck(g,nil,2,REASON_COST)>0 then
Duel.SendtoHand(e:GetHandler(),nil,REASON_EFFECT)
Duel.SendtoHand(e:GetHandler(),nil,REASON_RULE)
Duel.ConfirmCards(1-tp,e:GetHandler())
end
end
\ No newline at end of file
--大型废件
local m=11451706
local cm=_G["c"..m]
local cm,m=GetID()
function cm.initial_effect(c)
--Stuck
local EFFECT_STUCK=11451695
......@@ -35,7 +34,7 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.ConfirmCards(1-tp,g)
if Duel.SendtoDeck(g,nil,2,REASON_COST)>0 then
local tg=Duel.SelectMatchingCard(tp,cm.filter2,tp,LOCATION_DECK,0,1,2,nil)
Duel.SendtoHand(tg,nil,REASON_EFFECT)
Duel.SendtoHand(tg,nil,REASON_RULE)
Duel.ConfirmCards(1-tp,tg)
end
end
\ No newline at end of file
......@@ -120,6 +120,7 @@ function c114562761.thfilter(c)
end
function c114562761.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c114562761.thfilter,tp,LOCATION_GRAVE,0,2,nil) end
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,nil,2,tp,LOCATION_GRAVE)
end
function c114562761.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
......
......@@ -107,7 +107,8 @@ function c119828752.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
and Duel.IsExistingTarget(c119828752.filter2,tp,LOCATION_GRAVE+LOCATION_EXTRA,0,1,nil) end
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
Duel.SelectTarget(tp,c119828752.filter1,tp,LOCATION_MZONE,0,1,1,nil)
local g=Duel.SelectTarget(tp,c119828752.filter1,tp,LOCATION_MZONE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,g,1,0,0)
end
function c119828752.operation(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
......
......@@ -28,6 +28,7 @@ function c25584270.initial_effect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_LEAVE_FIELD)
e2:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e2:SetCost(c25584270.cost)
e2:SetCondition(c25584270.pencon)
e2:SetTarget(c25584270.pentg)
e2:SetOperation(c25584270.penop)
......@@ -88,7 +89,6 @@ function c25584270.spcon(e,tp,eg,ep,ev,re,r,rp)
and d:IsRelateToBattle() and (d:IsAbleToHandAsCost() or d:IsAbleToExtraAsCost())
end
function c25584270.spop(e,tp,eg,ep,ev,re,r,rp)
Debug.Message("222")
local c=e:GetHandler()
local a,d=Duel.GetBattleMonster(tp)
local g=Group.CreateGroup()
......@@ -106,18 +106,60 @@ function c25584270.spop(e,tp,eg,ep,ev,re,r,rp)
c:CompleteProcedure()
end
end
function c25584270.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local g=Duel.GetMatchingGroup(Card.IsAbleToHandAsCost,tp,LOCATION_PZONE,0,nil)
if g:GetCount()>0 and not Duel.CheckLocation(tp,LOCATION_SZONE,0) and not Duel.CheckLocation(tp,LOCATION_SZONE,4) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local sg=g:Select(tp,1,1,nil)
Duel.SendtoHand(sg,nil,REASON_COST)
return true
end
if g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(25584270,3)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local sg=g:Select(tp,1,1,nil)
Duel.SendtoHand(sg,nil,REASON_COST)
end
end
function c25584270.pencon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsPreviousLocation(LOCATION_MZONE) and c:IsFaceup()
end
function c25584270.pentg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1) end
local g=Duel.GetMatchingGroup(Card.IsAbleToHandAsCost,tp,LOCATION_PZONE,0,nil)
if chk==0 then return Duel.CheckLocation(tp,LOCATION_SZONE,0) or Duel.CheckLocation(tp,LOCATION_SZONE,4) or Duel.IsExistingMatchingCard(Card.IsAbleToHandAsCost,tp,LOCATION_PZONE,0,1,nil) end
end
function c25584270.penop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.MoveToField(c,tp,tp,LOCATION_PZONE,POS_FACEUP,true)
end
if not c:IsRelateToEffect(e) then return end
Duel.MoveToField(c,tp,tp,LOCATION_PZONE,POS_FACEUP,true)
--local b1=Duel.CheckLocation(tp,LOCATION_SZONE,0) or (not Duel.CheckLocation(tp,LOCATION_SZONE,0) and Duel.GetFieldCard(tp,LOCATION_SZONE,0):IsAbleToHand())
--local b2=Duel.CheckLocation(tp,LOCATION_SZONE,4) or (not Duel.CheckLocation(tp,LOCATION_SZONE,0) and Duel.GetFieldCard(tp,LOCATION_SZONE,4):IsAbleToHand())
--local s=0
--if b1 then
-- s=0x100
-- s=s+0x1
--end
--if b2 then
-- s=s+0x1000
-- s=s+0x10
--end
--if s==0 then return false end
--Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
--local seq=Duel.SelectField(tp,1,LOCATION_SZONE+LOCATION_PZONE,0,~s)
--if bit.band(seq,0x100)>0 or bit.band(seq,0x1)>0 then
-- local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,0)
-- if tc then
-- Duel.SendtoHand(tc,nil,REASON_EFFECT)
-- end
-- Duel.MoveToField(c,tp,tp,LOCATION_PZONE,POS_FACEUP,true,seq)
--elseif bit.band(s,0x1000)>0 or bit.band(seq,0x10)>0 then
-- local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,4)
-- if tc then
-- Duel.SendtoHand(tc,nil,REASON_EFFECT)
-- end
-- Duel.MoveToField(c,tp,tp,LOCATION_PZONE,POS_FACEUP,true,seq)
--end
end
function c25584270.check(e,tp)
local lpz=Duel.GetFieldCard(tp,LOCATION_PZONE,0)
......
......@@ -303,7 +303,6 @@ function c4058.exfilter(c,e,tp,lv)
end
function c4058.drop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then return end
if eg:IsExists(c4058.sufilter,1,nil,e,tp) then
local g=eg:Filter(c4058.sufilter,nil,e,tp)
local tc=g:GetFirst()
......
......@@ -125,6 +125,7 @@ function c98730113.thfilter(c)
end
function c98730113.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c98730113.thfilter,tp,LOCATION_REMOVED,0,2,nil) end
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,nil,2,tp,LOCATION_GRAVE)
end
function c98730113.thop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
......
......@@ -123,6 +123,7 @@ function c98730115.thfilter(c)
end
function c98730115.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c98730115.thfilter,tp,LOCATION_REMOVED,0,2,nil) end
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,nil,2,tp,LOCATION_GRAVE)
end
function c98730115.thop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
......
......@@ -128,6 +128,7 @@ function c98730117.thfilter(c)
end
function c98730117.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c98730117.thfilter,tp,LOCATION_REMOVED,0,2,nil) end
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,nil,2,tp,LOCATION_GRAVE)
end
function c98730117.thop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
......
......@@ -127,6 +127,7 @@ function c98730119.thfilter(c)
end
function c98730119.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c98730119.thfilter,tp,LOCATION_REMOVED,0,2,nil) end
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,nil,2,tp,LOCATION_GRAVE)
end
function c98730119.thop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
......
......@@ -295,6 +295,7 @@ function c98730213.eqtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
and Duel.IsExistingTarget(c98730213.filter,tp,LOCATION_MZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,c98730213.filter,tp,LOCATION_MZONE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,e:GetHandler(),1,0,0)
end
function c98730213.eqop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
......@@ -295,6 +295,7 @@ function c98730215.eqtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
and Duel.IsExistingTarget(c98730215.filter,tp,LOCATION_MZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,c98730215.filter,tp,LOCATION_MZONE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,e:GetHandler(),1,0,0)
end
function c98730215.eqop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
......@@ -296,6 +296,7 @@ function c98730217.eqtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
and Duel.IsExistingTarget(c98730217.filter,tp,LOCATION_MZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,c98730217.filter,tp,LOCATION_MZONE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,e:GetHandler(),1,0,0)
end
function c98730217.eqop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
......@@ -297,6 +297,7 @@ function c98730219.eqtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
and Duel.IsExistingTarget(c98730219.filter,tp,LOCATION_MZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,c98730219.filter,tp,LOCATION_MZONE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,e:GetHandler(),1,0,0)
end
function c98730219.eqop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
......@@ -27,6 +27,7 @@ function c98920103.initial_effect(c)
e2:SetCode(EVENT_CHAINING)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetCondition(c98920103.discon)
e2:SetCost(c98920103.discost)
e2:SetTarget(c98920103.distg)
......@@ -85,6 +86,6 @@ function c98920103.disop(e,tp,eg,ep,ev,re,r,rp)
Duel.ConfirmCards(1-tp,sc)
end
end
end
end
end
end
\ No newline at end of file
......@@ -12,9 +12,11 @@ function c98940010.initial_effect(c)
e2:SetRange(LOCATION_DECK)
e2:SetOperation(c98940010.acop)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetRange(LOCATION_HAND)
c:RegisterEffect(e3)
--act in hand
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_TRAP_ACT_IN_HAND)
c:RegisterEffect(e2)
--effect2
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(98940010,0))
......@@ -32,7 +34,6 @@ function c98940010.initial_effect(c)
c:RegisterEffect(e3)
--draw
local e12=Effect.CreateEffect(c)
e12:SetCategory(CATEGORY_TOHAND+CATEGORY_DRAW)
e12:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e12:SetRange(LOCATION_SZONE)
e12:SetCode(EVENT_SUMMON_SUCCESS)
......
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