Commit d07249bd authored by wind2009's avatar wind2009

Merge remote-tracking branch 'upstream/master' into master

parents ca3ce09a d218313f
...@@ -80,12 +80,11 @@ function c19508728.tdcost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -80,12 +80,11 @@ function c19508728.tdcost(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function c19508728.tdtg(e,tp,eg,ep,ev,re,r,rp,chk) function c19508728.tdtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
local opt=Duel.SelectOption(tp,aux.Stringid(19508728,0),aux.Stringid(19508728,1))
e:SetLabel(opt)
Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0)
end end
function c19508728.tdop(e,tp,eg,ep,ev,re,r,rp) function c19508728.tdop(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsRelateToEffect(e) then if e:GetHandler():IsRelateToEffect(e) then
Duel.SendtoDeck(e:GetHandler(),nil,e:GetLabel(),REASON_EFFECT) local opt=Duel.SelectOption(tp,aux.Stringid(19508728,0),aux.Stringid(19508728,1))
Duel.SendtoDeck(e:GetHandler(),nil,opt,REASON_EFFECT)
end end
end end
...@@ -49,7 +49,7 @@ function c20765952.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -49,7 +49,7 @@ function c20765952.operation(e,tp,eg,ep,ev,re,r,rp)
end end
function c20765952.damcon(e,tp,eg,ep,ev,re,r,rp) function c20765952.damcon(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetHandler():GetFirstCardTarget() local tc=e:GetHandler():GetFirstCardTarget()
return tc and Duel.GetTurnPlayer()==tc:GetControler() return tc and Duel.GetTurnPlayer()==e:GetHandlerPlayer()
end end
function c20765952.damtg(e,tp,eg,ep,ev,re,r,rp,chk) function c20765952.damtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
......
...@@ -33,7 +33,7 @@ function c24662957.stfilter(c) ...@@ -33,7 +33,7 @@ function c24662957.stfilter(c)
end end
function c24662957.activate(e,tp,eg,ep,ev,re,r,rp) function c24662957.activate(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.Remove(tc,0,REASON_EFFECT+REASON_TEMPORARY)~=0 then if tc:IsRelateToEffect(e) and tc:IsType(TYPE_MONSTER) and Duel.Remove(tc,0,REASON_EFFECT+REASON_TEMPORARY)~=0 then
tc:RegisterFlagEffect(24662957,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,2) tc:RegisterFlagEffect(24662957,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,2)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
...@@ -60,4 +60,4 @@ function c24662957.retcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -60,4 +60,4 @@ function c24662957.retcon(e,tp,eg,ep,ev,re,r,rp)
end end
function c24662957.retop(e,tp,eg,ep,ev,re,r,rp) function c24662957.retop(e,tp,eg,ep,ev,re,r,rp)
Duel.ReturnToField(e:GetLabelObject()) Duel.ReturnToField(e:GetLabelObject())
end end
\ No newline at end of file
...@@ -70,6 +70,7 @@ function c38694052.desop(e,tp,eg,ep,ev,re,r,rp) ...@@ -70,6 +70,7 @@ function c38694052.desop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK) e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetValue(star*300) e1:SetValue(star*300)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,2) e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,2)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
......
...@@ -45,7 +45,12 @@ function c41685633.sprfilter1(c,sc) ...@@ -45,7 +45,12 @@ function c41685633.sprfilter1(c,sc)
return c:IsRace(RACE_THUNDER) and c:IsAbleToRemoveAsCost() and c:IsCanBeFusionMaterial(sc,SUMMON_TYPE_SPECIAL) return c:IsRace(RACE_THUNDER) and c:IsAbleToRemoveAsCost() and c:IsCanBeFusionMaterial(sc,SUMMON_TYPE_SPECIAL)
end end
function c41685633.sprfilter2(c) function c41685633.sprfilter2(c)
return c:IsLocation(LOCATION_MZONE) and c:IsFusionType(TYPE_FUSION) and not c:IsFusionCode(41685633) if not (c:IsLocation(LOCATION_MZONE) and c:IsFusionType(TYPE_FUSION)) then return false end
if not c:IsFusionCode(41685633) then return true end
for i,code in ipairs({c:GetFusionCode()}) do
if code~=41685633 then return true end
end
return false
end end
function c41685633.fselect(g,tp,sc) function c41685633.fselect(g,tp,sc)
return aux.gffcheck(g,Card.IsLocation,LOCATION_HAND,c41685633.sprfilter2,nil) return aux.gffcheck(g,Card.IsLocation,LOCATION_HAND,c41685633.sprfilter2,nil)
......
...@@ -33,6 +33,7 @@ function c43618262.cfop(e,tp,eg,ep,ev,re,r,rp) ...@@ -33,6 +33,7 @@ function c43618262.cfop(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck(true) Duel.DisableShuffleCheck(true)
Duel.SendtoHand(tc,p,REASON_EFFECT) Duel.SendtoHand(tc,p,REASON_EFFECT)
Duel.ConfirmCards(1-p,tc) Duel.ConfirmCards(1-p,tc)
Duel.ShuffleHand(p)
end end
end end
end end
\ No newline at end of file
...@@ -46,9 +46,9 @@ function s.filter(c,tp) ...@@ -46,9 +46,9 @@ function s.filter(c,tp)
end end
function s.mvtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function s.mvtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE+LOCATION_MZONE) and s.filter(chkc,tp) end if chkc then return chkc:IsLocation(LOCATION_GRAVE+LOCATION_MZONE) and s.filter(chkc,tp) end
if chk==0 then return Duel.IsExistingTarget(s.filter,tp,LOCATION_GRAVE+LOCATION_MZONE,LOCATION_GRAVE+LOCATION_MZONE,1,nil) end if chk==0 then return Duel.IsExistingTarget(s.filter,tp,LOCATION_GRAVE+LOCATION_MZONE,LOCATION_GRAVE+LOCATION_MZONE,1,nil,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g=Duel.SelectTarget(tp,s.filter,tp,LOCATION_GRAVE+LOCATION_MZONE,LOCATION_GRAVE+LOCATION_MZONE,1,1,nil) local g=Duel.SelectTarget(tp,s.filter,tp,LOCATION_GRAVE+LOCATION_MZONE,LOCATION_GRAVE+LOCATION_MZONE,1,1,nil,tp)
if g:GetFirst():IsLocation(LOCATION_GRAVE) then if g:GetFirst():IsLocation(LOCATION_GRAVE) then
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,g,1,0,0)
end end
......
...@@ -17,6 +17,7 @@ function c703897.initial_effect(c) ...@@ -17,6 +17,7 @@ function c703897.initial_effect(c)
e2:SetRange(LOCATION_GRAVE) e2:SetRange(LOCATION_GRAVE)
e2:SetCode(EVENT_FREE_CHAIN) e2:SetCode(EVENT_FREE_CHAIN)
e2:SetCountLimit(1,703897) e2:SetCountLimit(1,703897)
e2:SetHintTiming(0,TIMING_END_PHASE)
e2:SetCost(c703897.thcost) e2:SetCost(c703897.thcost)
e2:SetTarget(c703897.thtg) e2:SetTarget(c703897.thtg)
e2:SetOperation(c703897.thop) e2:SetOperation(c703897.thop)
......
...@@ -29,7 +29,8 @@ function c71143015.filter1(c,e,tp,m,f,chkf) ...@@ -29,7 +29,8 @@ function c71143015.filter1(c,e,tp,m,f,chkf)
return res return res
end end
function c71143015.fcheck(tp,sg,fc) function c71143015.fcheck(tp,sg,fc)
return sg:IsExists(Card.IsFusionCode,1,nil,89631139,23995346) return sg:IsExists(Card.IsFusionCode,1,nil,89631139) and aux.IsMaterialListCode(fc,89631139)
or sg:IsExists(Card.IsFusionCode,1,nil,23995346) and aux.IsMaterialListCode(fc,23995346)
end end
function c71143015.target(e,tp,eg,ep,ev,re,r,rp,chk) function c71143015.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
......
...@@ -35,7 +35,7 @@ function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -35,7 +35,7 @@ function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetTargetParam(Duel.AnnounceType(tp)) Duel.SetTargetParam(Duel.AnnounceType(tp))
end end
function s.thop(e,tp,eg,ep,ev,re,r,rp) function s.thop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)==0 or Duel.GetFieldGroup(tp,0,LOCATION_DECK)==0 then return end if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)==0 or Duel.GetFieldGroupCount(tp,0,LOCATION_DECK)==0 then return end
local sc=Duel.GetFieldCard(tp,LOCATION_DECK,0) local sc=Duel.GetFieldCard(tp,LOCATION_DECK,0)
local oc=Duel.GetFieldCard(1-tp,LOCATION_DECK,0) local oc=Duel.GetFieldCard(1-tp,LOCATION_DECK,0)
Duel.ConfirmCards(tp,sc) Duel.ConfirmCards(tp,sc)
......
...@@ -38,7 +38,7 @@ function c8038143.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -38,7 +38,7 @@ function c8038143.target(e,tp,eg,ep,ev,re,r,rp,chk)
if tgp~=tp and (te:IsActiveType(TYPE_MONSTER) or te:IsHasType(EFFECT_TYPE_ACTIVATE)) and Duel.IsChainNegatable(i) then if tgp~=tp and (te:IsActiveType(TYPE_MONSTER) or te:IsHasType(EFFECT_TYPE_ACTIVATE)) and Duel.IsChainNegatable(i) then
local tc=te:GetHandler() local tc=te:GetHandler()
ng:AddCard(tc) ng:AddCard(tc)
if tc:IsOnField() and tc:IsRelateToEffect(te) and tc:IsAbleToDeck() then if tc:IsOnField() and tc:IsRelateToEffect(te) then
dg:AddCard(tc) dg:AddCard(tc)
end end
end end
...@@ -53,13 +53,12 @@ function c8038143.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -53,13 +53,12 @@ function c8038143.activate(e,tp,eg,ep,ev,re,r,rp)
local te,tgp=Duel.GetChainInfo(i,CHAININFO_TRIGGERING_EFFECT,CHAININFO_TRIGGERING_PLAYER) local te,tgp=Duel.GetChainInfo(i,CHAININFO_TRIGGERING_EFFECT,CHAININFO_TRIGGERING_PLAYER)
if tgp~=tp and (te:IsActiveType(TYPE_MONSTER) or te:IsHasType(EFFECT_TYPE_ACTIVATE)) and Duel.NegateActivation(i) then if tgp~=tp and (te:IsActiveType(TYPE_MONSTER) or te:IsHasType(EFFECT_TYPE_ACTIVATE)) and Duel.NegateActivation(i) then
local tc=te:GetHandler() local tc=te:GetHandler()
if tc:IsRelateToEffect(e) and tc:IsRelateToEffect(te) and tc:IsAbleToDeck() then if tc:IsRelateToEffect(e) and tc:IsRelateToEffect(te) then
tc:CancelToGrave()
dg:AddCard(tc) dg:AddCard(tc)
end end
end end
end end
Duel.SendtoDeck(dg,nil,SEQ_DECKSHUFFLE,REASON_EFFECT) Duel.SendtoDeck(dg,nil,SEQ_DECKSHUFFLE,REASON_EFFECT,tp,true)
end end
function c8038143.filter(c) function c8038143.filter(c)
return c:IsFaceup() and c:IsSetCard(0x307b) return c:IsFaceup() and c:IsSetCard(0x307b)
......
...@@ -46,8 +46,9 @@ function s.filter(c,lv) ...@@ -46,8 +46,9 @@ function s.filter(c,lv)
return c:IsSetCard(0x1a1) and c:IsType(TYPE_MONSTER) and c:IsLevelBelow(lv) and c:IsAbleToGrave() return c:IsSetCard(0x1a1) and c:IsType(TYPE_MONSTER) and c:IsLevelBelow(lv) and c:IsAbleToGrave()
end end
function s.tgtg(e,tp,eg,ep,ev,re,r,rp,chk) function s.tgtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.dfilter,tp,LOCATION_MZONE,0,1,nil,tp) end local g=Duel.GetMatchingGroup(s.dfilter,tp,LOCATION_MZONE,0,nil,tp)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,tp,LOCATION_MZONE) if chk==0 then return #g>0 end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,tp,LOCATION_MZONE)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK)
end end
function s.gcheck(lv) function s.gcheck(lv)
......
...@@ -1231,7 +1231,7 @@ function Auxiliary.AddFusionProcCodeRep(c,code1,cc,sub,insf) ...@@ -1231,7 +1231,7 @@ function Auxiliary.AddFusionProcCodeRep(c,code1,cc,sub,insf)
end end
---Fusion monster, name * minc to maxc ---Fusion monster, name * minc to maxc
---@param c Card ---@param c Card
---@param code1 integer ---@param code1 integer|table
---@param minc integer ---@param minc integer
---@param maxc integer ---@param maxc integer
---@param sub boolean ---@param sub boolean
...@@ -1241,7 +1241,7 @@ function Auxiliary.AddFusionProcCodeRep2(c,code1,minc,maxc,sub,insf) ...@@ -1241,7 +1241,7 @@ function Auxiliary.AddFusionProcCodeRep2(c,code1,minc,maxc,sub,insf)
end end
---Fusion monster, name + condition * n ---Fusion monster, name + condition * n
---@param c Card ---@param c Card
---@param code1 integer ---@param code1 integer|table
---@param f function|table ---@param f function|table
---@param cc integer ---@param cc integer
---@param sub boolean ---@param sub boolean
...@@ -1301,7 +1301,7 @@ function Auxiliary.AddFusionProcFunFunRep(c,f1,f2,minc,maxc,insf) ...@@ -1301,7 +1301,7 @@ function Auxiliary.AddFusionProcFunFunRep(c,f1,f2,minc,maxc,insf)
end end
---Fusion monster, name + condition * minc to maxc ---Fusion monster, name + condition * minc to maxc
---@param c Card ---@param c Card
---@param code1 integer ---@param code1 integer|table
---@param f function|table ---@param f function|table
---@param minc integer ---@param minc integer
---@param maxc integer ---@param maxc integer
...@@ -1312,8 +1312,8 @@ function Auxiliary.AddFusionProcCodeFunRep(c,code1,f,minc,maxc,sub,insf) ...@@ -1312,8 +1312,8 @@ function Auxiliary.AddFusionProcCodeFunRep(c,code1,f,minc,maxc,sub,insf)
end end
---Fusion monster, name + name + condition * minc to maxc ---Fusion monster, name + name + condition * minc to maxc
---@param c Card ---@param c Card
---@param code1 integer ---@param code1 integer|table
---@param code2 integer ---@param code2 integer|table
---@param f function|table ---@param f function|table
---@param minc integer ---@param minc integer
---@param maxc integer ---@param maxc integer
......
...@@ -147,7 +147,7 @@ end ...@@ -147,7 +147,7 @@ end
---Return value starts from 1, different from Duel.SelectOption ---Return value starts from 1, different from Duel.SelectOption
---@param tp integer ---@param tp integer
---@param ... table {condition, option[, value]} ---@param ... table {condition, option[, value]}
---@return integer|nil ---@return integer
function Auxiliary.SelectFromOptions(tp,...) function Auxiliary.SelectFromOptions(tp,...)
local options={...} local options={...}
local ops={} local ops={}
...@@ -1105,7 +1105,7 @@ end ...@@ -1105,7 +1105,7 @@ end
---@param min? integer ---@param min? integer
---@param max? integer ---@param max? integer
---@param ... any ---@param ... any
---@return Group|nil ---@return Group
function Group.SelectSubGroup(g,tp,f,cancelable,min,max,...) function Group.SelectSubGroup(g,tp,f,cancelable,min,max,...)
Auxiliary.SubGroupCaptured=Group.CreateGroup() Auxiliary.SubGroupCaptured=Group.CreateGroup()
min=min or 1 min=min or 1
...@@ -1203,7 +1203,7 @@ end ...@@ -1203,7 +1203,7 @@ end
---@param cancelable? boolean ---@param cancelable? boolean
---@param f? function ---@param f? function
---@param ... any ---@param ... any
---@return Group|nil ---@return Group
function Group.SelectSubGroupEach(g,tp,checks,cancelable,f,...) function Group.SelectSubGroupEach(g,tp,checks,cancelable,f,...)
if cancelable==nil then cancelable=false end if cancelable==nil then cancelable=false end
if f==nil then f=Auxiliary.TRUE end if f==nil then f=Auxiliary.TRUE 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