Commit 002d5777 authored by 大崎甜花's avatar 大崎甜花 Committed by GitHub

Add files via upload

parent 60ca4593
......@@ -17,6 +17,7 @@ function c21520082.initial_effect(c)
e00:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e00:SetRange(LOCATION_EXTRA)
e00:SetCondition(c21520082.sprcon)
e00:SetTarget(c21520082.sprtg)
e00:SetOperation(c21520082.sprop)
e00:SetValue(SUMMON_TYPE_FUSION)
c:RegisterEffect(e00)
......@@ -69,33 +70,27 @@ end
function c21520082.fcheck2(c)
return c:IsRace(RACE_SPELLCASTER) and c:IsType(TYPE_MONSTER)
end
function c21520082.fgoal(c,tp,sg)
function c21520082.fgoal(sg,tp)
return sg:GetCount()>1 and Duel.GetLocationCountFromEx(tp,tp,sg)>0 and sg:IsExists(c21520082.fcheck,1,nil,sg)
end
function c21520082.fselect(c,tp,mg,sg)
sg:AddCard(c)
local res=c21520082.fgoal(c,tp,sg) or mg:IsExists(c21520082.fselect,1,sg,tp,mg,sg)
sg:RemoveCard(c)
return res
end
function c21520082.sprcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
local mg=Duel.GetMatchingGroup(c21520082.cfilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil,tp)
local sg=Group.CreateGroup()
return mg:IsExists(c21520082.fselect,1,nil,tp,mg,sg)
return mg:CheckSubGroup(c21520082.fgoal,1,nil,tp)
end
function c21520082.sprop(e,tp,eg,ep,ev,re,r,rp,c)
function c21520082.sprtg(e,tp,eg,ep,ev,re,r,rp,chk,c)
local mg=Duel.GetMatchingGroup(c21520082.cfilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil,tp)
local sg=Group.CreateGroup()
while true do
local cg=mg:Filter(c21520082.fselect,sg,tp,mg,sg)
if cg:GetCount()==0
or (c21520082.fgoal(c,tp,sg) and not Duel.SelectYesNo(tp,210)) then break end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g=cg:Select(tp,1,1,nil)
sg:Merge(g)
end
local cancel=Duel.GetCurrentChain()==0
local sg=mg:SelectSubGroup(tp,c21520082.fgoal,cancel,1,nil,tp)
if sg then
sg:KeepAlive()
e:SetLabelObject(sg)
return true
else return false end
end
function c21520082.sprop(e,tp,eg,ep,ev,re,r,rp,c)
local sg=e:GetLabelObject()
c:SetMaterial(sg)
Duel.Release(sg,REASON_COST+REASON_MATERIAL+REASON_FUSION)
......
......@@ -17,6 +17,7 @@ function c21520083.initial_effect(c)
e00:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e00:SetRange(LOCATION_EXTRA)
e00:SetCondition(c21520083.sprcon)
e00:SetTarget(c21520083.sprtg)
e00:SetOperation(c21520083.sprop)
e00:SetValue(SUMMON_TYPE_FUSION)
c:RegisterEffect(e00)
......@@ -68,6 +69,31 @@ end
function c21520083.fcheck2(c)
return c:IsRace(RACE_SPELLCASTER) and c:IsType(TYPE_MONSTER)
end
function c21520083.fgoal(sg,tp)
return sg:GetCount()>1 and Duel.GetLocationCountFromEx(tp,tp,sg)>0 and sg:IsExists(c21520083.fcheck,1,nil,sg)
end
function c21520083.sprcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
local mg=Duel.GetMatchingGroup(c21520083.cfilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil,tp)
return mg:CheckSubGroup(c21520083.fgoal,1,nil,tp)
end
function c21520083.sprtg(e,tp,eg,ep,ev,re,r,rp,chk,c)
local mg=Duel.GetMatchingGroup(c21520083.cfilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil,tp)
local cancel=Duel.GetCurrentChain()==0
local sg=mg:SelectSubGroup(tp,c21520083.fgoal,cancel,1,nil,tp)
if sg then
sg:KeepAlive()
e:SetLabelObject(sg)
return true
else return false end
end
function c21520083.sprop(e,tp,eg,ep,ev,re,r,rp,c)
local sg=e:GetLabelObject()
c:SetMaterial(sg)
Duel.Release(sg,REASON_COST+REASON_MATERIAL+REASON_FUSION)
end
--[[
function c21520083.fgoal(c,tp,sg)
return sg:GetCount()>1 and Duel.GetLocationCountFromEx(tp,tp,sg)>0 and sg:IsExists(c21520083.fcheck,1,nil,sg)
end
......@@ -95,9 +121,10 @@ function c21520083.sprop(e,tp,eg,ep,ev,re,r,rp,c)
local g=cg:Select(tp,1,1,nil)
sg:Merge(g)
end
local sg=e:GetLabelObject()
c:SetMaterial(sg)
Duel.Release(sg,REASON_COST+REASON_MATERIAL+REASON_FUSION)
end
end--]]
function c21520083.matcheck(e,c)
local ct=c:GetMaterialCount()
local ae=Effect.CreateEffect(c)
......
......@@ -34,7 +34,7 @@ function c21520085.initial_effect(c)
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(21520085,2))
e4:SetCategory(CATEGORY_DAMAGE)
e4:SetProperty(+EFFECT_FLAG_DAMAGE_STEP)
e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetHintTiming(TIMING_BATTLE_STEP_END)
e4:SetCode(EVENT_FREE_CHAIN)
......@@ -113,15 +113,17 @@ end
function c21520085.exatkcon(e,tp,eg,ep,ev,re,r,rp)
local ph=Duel.GetCurrentPhase()
local tp=Duel.GetTurnPlayer()
return e:GetHandler():GetAttackedCount()>0 and tp==e:GetHandler():GetControler() and ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE --and e:GetHandler():GetFlagEffect(21520085)~=0
return e:GetHandler():GetAttackedCount()>0 and tp==e:GetHandler():GetControler() and ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE
end
function c21520085.exatkcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c21520085.adfilter,tp,LOCATION_GRAVE,0,1,nil) end
if chk==0 then return Duel.IsExistingMatchingCard(c21520085.adfilter,tp,LOCATION_GRAVE,0,1,nil)
and e:GetHandler():GetFlagEffect(21520085)==0 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,c21520085.adfilter,tp,LOCATION_GRAVE,0,1,1,nil)
g:KeepAlive()
e:SetLabelObject(g)
Duel.Remove(g,POS_FACEUP,REASON_COST)
e:GetHandler():RegisterFlagEffect(21520085,RESET_CHAIN,0,1)
end
function c21520085.exatkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
......@@ -10,6 +10,7 @@ function c21520087.initial_effect(c)
e0:SetCode(EFFECT_SPSUMMON_PROC)
e0:SetRange(LOCATION_EXTRA)
e0:SetCondition(c21520087.sprcon)
e0:SetTarget(c21520087.sprtg)
e0:SetOperation(c21520087.sprop)
c:RegisterEffect(e0)
local e01=Effect.CreateEffect(c)
......@@ -93,32 +94,27 @@ end
function c21520087.spfilter(c)
return c21520087.fsfilter(c) and c:IsAbleToDeckOrExtraAsCost()
end
function c21520087.fselect(c,tp,mg,sg)
sg:AddCard(c)
local res=false
if sg:GetCount()<2 then
res=mg:IsExists(c21520087.fselect,1,sg,tp,mg,sg)
else
res=Duel.GetLocationCountFromEx(tp,tp,sg)>0
end
sg:RemoveCard(c)
return res
function c21520087.fgoal(sg,tp)
return Duel.GetLocationCountFromEx(tp,tp,sg)>0 and sg:IsExists(aux.TRUE,2,nil)
end
function c21520087.sprcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
local mg=Duel.GetMatchingGroup(c21520087.spfilter,tp,LOCATION_MZONE,0,nil)
local sg=Group.CreateGroup()
return mg:IsExists(c21520087.fselect,1,nil,tp,mg,sg)
return mg:CheckSubGroup(c21520087.fgoal,1,nil,tp)
end
function c21520087.sprop(e,tp,eg,ep,ev,re,r,rp,c)
function c21520087.sprtg(e,tp,eg,ep,ev,re,r,rp,chk,c)
local mg=Duel.GetMatchingGroup(c21520087.spfilter,tp,LOCATION_MZONE,0,nil)
local sg=Group.CreateGroup()
while sg:GetCount()<2 do
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=mg:FilterSelect(tp,c21520087.fselect,1,1,sg,tp,mg,sg)
sg:Merge(g)
end
local cancel=Duel.GetCurrentChain()==0
local sg=mg:SelectSubGroup(tp,c21520087.fgoal,cancel,1,2,tp)
if sg then
sg:KeepAlive()
e:SetLabelObject(sg)
return true
else return false end
end
function c21520087.sprop(e,tp,eg,ep,ev,re,r,rp,c)
local sg=e:GetLabelObject()
local cg=sg:Filter(Card.IsFacedown,nil)
if cg:GetCount()>0 then
Duel.ConfirmCards(1-tp,cg)
......
......@@ -10,6 +10,7 @@ function c21520088.initial_effect(c)
e0:SetCode(EFFECT_SPSUMMON_PROC)
e0:SetRange(LOCATION_EXTRA)
e0:SetCondition(c21520088.sprcon)
e0:SetTarget(c21520088.sprtg)
e0:SetOperation(c21520088.sprop)
c:RegisterEffect(e0)
local e01=Effect.CreateEffect(c)
......@@ -48,9 +49,36 @@ function c21520088.fsfilter(c)
return (c:GetBaseAttack()>=2400 and c:GetBaseDefense()>=1000) and c:IsCanBeFusionMaterial()
end
function c21520088.spfilter(c)
return c21520088.fsfilter and c:IsAbleToDeckOrExtraAsCost()
return c21520088.fsfilter(c) and c:IsAbleToDeckOrExtraAsCost()
end
function c21520088.fselect(c,tp,mg,sg)
function c21520088.fgoal(sg,tp)
return Duel.GetLocationCountFromEx(tp,tp,sg)>0 and sg:IsExists(aux.TRUE,2,nil)
end
function c21520088.sprcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
local mg=Duel.GetMatchingGroup(c21520088.spfilter,tp,LOCATION_MZONE,0,nil)
return mg:CheckSubGroup(c21520088.fgoal,1,nil,tp)
end
function c21520088.sprtg(e,tp,eg,ep,ev,re,r,rp,chk,c)
local mg=Duel.GetMatchingGroup(c21520088.spfilter,tp,LOCATION_MZONE,0,nil)
local cancel=Duel.GetCurrentChain()==0
local sg=mg:SelectSubGroup(tp,c21520088.fgoal,cancel,1,2,tp)
if sg then
sg:KeepAlive()
e:SetLabelObject(sg)
return true
else return false end
end
function c21520088.sprop(e,tp,eg,ep,ev,re,r,rp,c)
local sg=e:GetLabelObject()
local cg=sg:Filter(Card.IsFacedown,nil)
if cg:GetCount()>0 then
Duel.ConfirmCards(1-tp,cg)
end
Duel.SendtoDeck(sg,nil,2,REASON_COST)
end
--[[nction c21520088.fselect(c,tp,mg,sg)
sg:AddCard(c)
local res=false
if sg:GetCount()<2 then
......@@ -81,7 +109,7 @@ function c21520088.sprop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.ConfirmCards(1-tp,cg)
end
Duel.SendtoDeck(sg,nil,2,REASON_COST)
end
end--]]
function c21520088.indescon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsStatus(STATUS_SPSUMMON_TURN)
end
......
......@@ -13,9 +13,10 @@ function c21520183.initial_effect(c)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_SPSUMMON_PROC)
e2:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e2:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e2:SetRange(LOCATION_GRAVE+LOCATION_EXTRA)
e2:SetCondition(c21520183.spcon)
e2:SetTarget(c21520183.sptg)
e2:SetOperation(c21520183.spop)
c:RegisterEffect(e2)
--draw
......@@ -92,14 +93,21 @@ function c21520183.spcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
local mg=Duel.GetMatchingGroup(c21520183.spfilter,tp,LOCATION_MZONE+LOCATION_GRAVE,0,e:GetHandler())
local sg=Group.CreateGroup()
return mg:CheckSubGroup(c21520183.spgoal,1,nil,tp)
end
function c21520183.spop(e,tp,eg,ep,ev,re,r,rp,c)
function c21520183.sptg(e,tp,eg,ep,ev,re,r,rp,chk,c)
local mg=Duel.GetMatchingGroup(c21520183.spfilter,tp,LOCATION_MZONE+LOCATION_GRAVE,0,e:GetHandler())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local cancel=Duel.GetCurrentChain()==0
local sg=mg:SelectSubGroup(tp,c21520183.spgoal,cancel,1,nil,tp,c:GetLocation())
if sg then
sg:KeepAlive()
e:SetLabelObject(sg)
return true
else return false end
end
function c21520183.spop(e,tp,eg,ep,ev,re,r,rp,c)
local sg=e:GetLabelObject()
c:SetMaterial(sg)
Duel.Remove(sg,POS_FACEUP,REASON_COST)
end
......
......@@ -185,7 +185,7 @@ function c21520189.tgop(e,tp,eg,ep,ev,re,r,rp)
end
local ct=Duel.SendtoGrave(tgg,REASON_EFFECT)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local otg=Duel.SelectMatchingCard(tp,Card.IsAbleToGrave,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,ct,nil)
local otg=Duel.SelectMatchingCard(tp,Card.IsAbleToGrave,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,ct,ct,nil)
Duel.SendtoGrave(otg,REASON_EFFECT)
Duel.ShuffleDeck(tp)
end
--+++++猛毒性 球系
function c24562471.initial_effect(c)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(24562471,0))
e2:SetCategory(CATEGORY_DRAW)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_DAMAGE)
e2:SetRange(LOCATION_MZONE)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetCountLimit(1,24562471)
e2:SetCondition(c24562471.drcon)
e2:SetTarget(c24562471.drtg)
e2:SetOperation(c24562471.drop)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(24562471,1))
e3:SetCategory(CATEGORY_DAMAGE)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_PHASE+PHASE_BATTLE_START)
e3:SetRange(LOCATION_MZONE)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetCountLimit(1)
e3:SetTarget(c24562471.target)
e3:SetOperation(c24562471.operation)
c:RegisterEffect(e3)
end
function c24562471.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetTargetPlayer(1-tp)
Duel.SetTargetParam(600)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-tp,600)
end
function c24562471.operation(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Damage(p,d,REASON_EFFECT)
end
function c24562471.drcon(e,tp,eg,ep,ev,re,r,rp)
if bit.band(r,REASON_EFFECT)~=0 then
return re and re:GetHandler():IsSetCard(0x9390) and ep~=tp
else return ep~=tp
end
end
function c24562471.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(1)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end
function c24562471.drop(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TRIGGERING_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Draw(p,d,REASON_EFFECT)
end
\ No newline at end of file
......@@ -45,10 +45,10 @@ function c33400007.sumval(e,c)
return 0,sumzone,relzone
end
function c33400007.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
local ct=e:GetLabel()
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,nil)
and Duel.IsCanRemoveCounter(tp,1,0,0x34f,ct,REASON_COST)
end
local ct=e:GetLabel()
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
Duel.RemoveCounter(tp,1,0,0x34f,ct,REASON_COST)
Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_COST+REASON_DISCARD)
......
......@@ -20,6 +20,7 @@ function c33400013.initial_effect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_TO_GRAVE)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY+EFFECT_FLAG_CARD_TARGET)
e2:SetCountLimit(1,33400013+10000)
e2:SetTarget(c33400013.addct)
e2:SetOperation(c33400013.addc)
c:RegisterEffect(e2)
......
......@@ -20,7 +20,7 @@ function c33400103.filter(c)
end
function c33400103.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingTarget(c33400103.cfilter,tp,LOCATION_MZONE,0,1,nil)
and Duel.IsCanRemoveCounter(tp,1,0,0x1003,1,REASON_COST)
and Duel.IsCanRemoveCounter(tp,1,0,0x34f,1,REASON_COST)
end
local sc=Duel.GetMatchingGroupCount(c33400103.cfilter,tp,LOCATION_MZONE,0,nil)
if chkc then return chkc:IsControler(1-tp) and chkc:IsLocation(LOCATION_MZONE) and c33400102.filter(chkc) end
......
......@@ -35,6 +35,7 @@ function c65020067.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_MZONE)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetCondition(c65020067.con)
e1:SetCost(c65020067.cost)
e1:SetTarget(c65020067.xyztg)
......
......@@ -35,6 +35,7 @@ function c65020068.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_MZONE)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetCondition(c65020068.con)
e1:SetCost(c65020068.cost)
e1:SetTarget(c65020068.xyztg)
......
......@@ -33,6 +33,7 @@ function c65020069.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetCondition(c65020069.con)
e1:SetCost(c65020069.cost)
e1:SetTarget(c65020069.linktg)
......
......@@ -34,6 +34,7 @@ function c65020070.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetCondition(c65020070.con)
e1:SetCost(c65020070.cost)
e1:SetTarget(c65020070.linktg)
......
......@@ -36,6 +36,7 @@ function c65020071.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER)
e1:SetCondition(c65020071.con)
e1:SetTarget(c65020071.destg)
......
......@@ -39,6 +39,7 @@ function c65020072.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetCondition(c65020072.con)
e1:SetTarget(c65020072.distg)
e1:SetOperation(c65020072.disop)
......@@ -58,7 +59,7 @@ function c65020072.distg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingTarget(c65020072.filter,tp,LOCATION_ONFIELD,0,1,e:GetHandler())
and Duel.IsExistingTarget(aux.disfilter1,tp,0,LOCATION_ONFIELD,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SELF)
Duel.SelectTarget(tp,aux.disfilter1,tp,LOCATION_ONFIELD,0,1,1,nil)
Duel.SelectTarget(tp,aux.filter,tp,LOCATION_ONFIELD,0,1,1,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPPO)
Duel.SelectTarget(tp,aux.disfilter1,tp,0,LOCATION_ONFIELD,1,1,nil)
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