Commit 129b9ead authored by POLYMER's avatar POLYMER

fix

parent 4b8d0ae6
--蒹葭苍苍 --蒹葭苍苍
local cm, m, ofs = GetID() local cm, m, ofs = GetID()
local yr = 13020010 local yr = 13020010
xpcall(function() dofile("expansions/script/c16670000.lua") end, function() dofile("script/c16670000.lua") end) -- xpcall(function() dofile("expansions/script/c16670000.lua") end, function() dofile("script/c16670000.lua") end)
if not Duel.LoadScript and loadfile then
function Duel.LoadScript(str)
require_list = require_list or {}
str = "expansions/script/" .. str
if not require_list[str] then
if string.find(str, "%.") then
require_list[str] = loadfile(str)
else
require_list[str] = loadfile(str .. ".lua")
end
pcall(require_list[str])
end
return require_list[str]
end
end
Duel.LoadScript("c16670000.lua")
function cm.initial_effect(c) function cm.initial_effect(c)
aux.AddCodeList(c, yr) aux.AddCodeList(c, yr)
--Activate --Activate
...@@ -22,7 +38,7 @@ function cm.initial_effect(c) ...@@ -22,7 +38,7 @@ function cm.initial_effect(c)
e3:SetRange(QY_mx) e3:SetRange(QY_mx)
e3:SetCountLimit(1, m + 1) e3:SetCountLimit(1, m + 1)
e3:SetCondition(cm.spcon2) e3:SetCondition(cm.spcon2)
e3:SetCost(cm.spcost2)
e3:SetTarget(cm.sptg2) e3:SetTarget(cm.sptg2)
e3:SetOperation(cm.spop2) e3:SetOperation(cm.spop2)
c:RegisterEffect(e3) c:RegisterEffect(e3)
...@@ -60,6 +76,10 @@ function cm.spcon2(e, tp, eg, ep, ev, re, r, rp) ...@@ -60,6 +76,10 @@ function cm.spcon2(e, tp, eg, ep, ev, re, r, rp)
return eg:IsExists(cm.cfilter, 1, nil, tp) return eg:IsExists(cm.cfilter, 1, nil, tp)
end end
function cm.spcost2(e, tp, eg, ep, ev, re, r, rp, chk)
if chk == 0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable, tp, LOCATION_HAND, 0, 1, nil) end
Duel.DiscardHand(tp, Card.IsDiscardable, 1, 1, REASON_COST + REASON_DISCARD)
end
function cm.sptg2(e, tp, eg, ep, ev, re, r, rp, chk, chkc) function cm.sptg2(e, tp, eg, ep, ev, re, r, rp, chk, chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_GRAVE) and chkc:IsType(TYPE_SPELL + TYPE_EQUIP) end if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_GRAVE) and chkc:IsType(TYPE_SPELL + TYPE_EQUIP) end
...@@ -96,6 +116,100 @@ function cm.spop2(e, tp, eg, ep, ev, re, r, rp) ...@@ -96,6 +116,100 @@ function cm.spop2(e, tp, eg, ep, ev, re, r, rp)
e2:SetValue(cm.atkval) e2:SetValue(cm.atkval)
tc:RegisterEffect(e2) tc:RegisterEffect(e2)
Duel.SpecialSummonComplete() Duel.SpecialSummonComplete()
local cl = Duel.GetMatchingGroup(function(c)
return c:IsXyzSummonable(nil) and c:IsCanBeSpecialSummoned(e, SUMMON_TYPE_XYZ, tp, false, false)
end, tp, LOCATION_EXTRA, 0, 1, nil)
local lj = Duel.GetMatchingGroup(function(c)
return c:IsLinkSummonable(nil) and c:IsCanBeSpecialSummoned(e, SUMMON_TYPE_LINK, tp, false, false)
end, tp, LOCATION_EXTRA, 0, 1, nil)
local td = Duel.GetMatchingGroup(function(c)
return c:IsSynchroSummonable(nil) and
c:IsCanBeSpecialSummoned(e, SUMMON_TYPE_SYNCHRO, tp, false, false)
end, tp, LOCATION_EXTRA, 0, 1, nil)
local mg1 = Duel.GetFusionMaterial(tp):Filter(function(c)
return not c:IsImmuneToEffect(e)
end, nil)
local rh = Duel.GetMatchingGroup(function(c)
return c:CheckFusionMaterial(mg1, nil, tp) and
c:IsCanBeSpecialSummoned(e, SUMMON_TYPE_FUSION, tp, false, false)
end, tp, LOCATION_EXTRA, 0, 1, nil)
if (cl:GetCount() > 0 or lj:GetCount() > 0 or td:GetCount() > 0 or rh:GetCount() > 0) and Duel.SelectYesNo(tp, aux.Stringid(id, 0)) then
local off = 1
local ops = {}
local opval = {}
if td then
ops[off] = aux.Stringid(m, 3)
opval[off - 1] = 1
off = off + 1
end
if cl then
ops[off] = aux.Stringid(m, 1)
opval[off - 1] = 2
off = off + 1
end
if lj then
ops[off] = aux.Stringid(m, 5)
opval[off - 1] = 3
off = off + 1
end
if rh then
ops[off] = aux.Stringid(m, 6)
opval[off - 1] = 3
off = off + 1
end
Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_EFFECT)
local op = Duel.SelectOption(tp, table.unpack(ops))
if opval[op] == 1 then
local tc = td:Select(tp, 1, 1, nil):GetFirst()
if tc then
Duel.LinkSummon(tp, tc, nil)
end
elseif opval[op] == 2 then
local tc = cl:Select(tp, 1, 1, nil):GetFirst()
if tc then
Duel.XyzSummon(tp, tc, nil)
end
elseif opval[op] == 3 then
local tc = lj:Select(tp, 1, 1, nil):GetFirst()
if tc then
Duel.LinkSummon(tp, tc, nil)
end
elseif opval[op] == 4 then
local chkf = tp
local mg2 = nil
local sg2 = nil
local ce = Duel.GetChainMaterial(tp)
if ce ~= nil then
local fgroup = ce:GetTarget()
mg2 = fgroup(ce, e, tp)
local mf = ce:GetValue()
sg2 = Duel.GetMatchingGroup(function(c, e, tp, m, f, chkf)
return c:IsType(TYPE_FUSION) and (not f or f(c))
and c:IsCanBeSpecialSummoned(e, SUMMON_TYPE_FUSION, tp, false, false) and
c:CheckFusionMaterial(m, nil, chkf)
end, tp, LOCATION_EXTRA, 0, nil, e, tp, mg2, mf, chkf)
end
if rh:GetCount() > 0 or (sg2 ~= nil and sg2:GetCount() > 0) then
local sg = rh:Clone()
if sg2 then sg:Merge(sg2) end
Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_SPSUMMON)
local tg = sg:Select(tp, 1, 1, nil)
local tc = tg:GetFirst()
if rh:IsContains(tc) and (sg2 == nil or not sg2:IsContains(tc) or not Duel.SelectYesNo(tp, ce:GetDescription())) then
local mat1 = Duel.SelectFusionMaterial(tp, tc, mg1, nil, chkf)
tc:SetMaterial(mat1)
Duel.SendtoGrave(mat1, REASON_EFFECT + REASON_MATERIAL + REASON_FUSION)
Duel.BreakEffect()
Duel.SpecialSummon(tc, SUMMON_TYPE_FUSION, tp, tp, false, false, POS_FACEUP)
else
local mat2 = Duel.SelectFusionMaterial(tp, tc, mg2, nil, chkf)
local fop = ce:GetOperation()
fop(ce, e, tp, tc, mat2)
end
tc:CompleteProcedure()
end
end
end
end end
end end
......
--所谓伊人 --所谓伊人
local cm, m, ofs = GetID() local cm, m, ofs = GetID()
local yr = 13020010 local yr = 13020010
xpcall(function() dofile("expansions/script/c16670000.lua") end, function() dofile("script/c16670000.lua") end) --引用库 -- xpcall(function() dofile("expansions/script/c16670000.lua") end, function() dofile("script/c16670000.lua") end) --引用库
if not Duel.LoadScript and loadfile then
function Duel.LoadScript(str)
require_list = require_list or {}
str = "expansions/script/" .. str
if not require_list[str] then
if string.find(str, "%.") then
require_list[str] = loadfile(str)
else
require_list[str] = loadfile(str .. ".lua")
end
pcall(require_list[str])
end
return require_list[str]
end
end
Duel.LoadScript("c16670000.lua")
function cm.initial_effect(c) function cm.initial_effect(c)
aux.AddCodeList(c, yr) aux.AddCodeList(c, yr)
-- local e1 = xg.epp2(c, m, 1, nil, 3, QY_sp, cm.setcon2, cm.cost, cm.target, cm.operation, true) --使用库内函数进行便捷注册 -- local e1 = xg.epp2(c, m, 1, nil, 3, QY_sp, cm.setcon2, cm.cost, cm.target, cm.operation, true) --使用库内函数进行便捷注册
......
--在水一方 --在水一方
local cm, m, ofs = GetID() local cm, m, ofs = GetID()
local yr = 13020010 local yr = 13020010
xpcall(function() dofile("expansions/script/c16670000.lua") end, function() dofile("script/c16670000.lua") end) --引用库 -- xpcall(function() dofile("expansions/script/c16670000.lua") end, function() dofile("script/c16670000.lua") end) --引用库
if not Duel.LoadScript and loadfile then
function Duel.LoadScript(str)
require_list = require_list or {}
str = "expansions/script/" .. str
if not require_list[str] then
if string.find(str, "%.") then
require_list[str] = loadfile(str)
else
require_list[str] = loadfile(str .. ".lua")
end
pcall(require_list[str])
end
return require_list[str]
end
end
Duel.LoadScript("c16670000.lua")
function cm.initial_effect(c) function cm.initial_effect(c)
aux.AddCodeList(c, yr) aux.AddCodeList(c, yr)
--aux.AddEquipSpellEffect(c, true, true, Card.IsFaceup, nil) --aux.AddEquipSpellEffect(c, true, true, Card.IsFaceup, nil)
......
--在水之泗 --在水之泗
local cm, m, ofs = GetID() local cm, m, ofs = GetID()
local yr = 13020010 local yr = 13020010
xpcall(function() dofile("expansions/script/c16670000.lua") end, function() dofile("script/c16670000.lua") end) --引用库 -- xpcall(function() dofile("expansions/script/c16670000.lua") end, function() dofile("script/c16670000.lua") end) --引用库
if not Duel.LoadScript and loadfile then
function Duel.LoadScript(str)
require_list = require_list or {}
str = "expansions/script/" .. str
if not require_list[str] then
if string.find(str, "%.") then
require_list[str] = loadfile(str)
else
require_list[str] = loadfile(str .. ".lua")
end
pcall(require_list[str])
end
return require_list[str]
end
end
Duel.LoadScript("c16670000.lua")
function cm.initial_effect(c) function cm.initial_effect(c)
aux.AddCodeList(c, yr) aux.AddCodeList(c, yr)
aux.AddEquipSpellEffect(c, true, true, Card.IsFaceup, nil) aux.AddEquipSpellEffect(c, true, true, Card.IsFaceup, nil)
......
--在水之湄 --在水之湄
local cm, m, ofs = GetID() local cm, m, ofs = GetID()
local yr = 13020010 local yr = 13020010
xpcall(function() dofile("expansions/script/c16670000.lua") end, function() dofile("script/c16670000.lua") end) --引用库 -- xpcall(function() dofile("expansions/script/c16670000.lua") end, function() dofile("script/c16670000.lua") end) --引用库
if not Duel.LoadScript and loadfile then
function Duel.LoadScript(str)
require_list = require_list or {}
str = "expansions/script/" .. str
if not require_list[str] then
if string.find(str, "%.") then
require_list[str] = loadfile(str)
else
require_list[str] = loadfile(str .. ".lua")
end
pcall(require_list[str])
end
return require_list[str]
end
end
Duel.LoadScript("c16670000.lua")
function cm.initial_effect(c) function cm.initial_effect(c)
aux.AddCodeList(c, yr) aux.AddCodeList(c, yr)
aux.AddEquipSpellEffect(c, true, true, Card.IsFaceup, nil) aux.AddEquipSpellEffect(c, true, true, Card.IsFaceup, nil)
......
--在水中央 --在水中央
local cm, m, ofs = GetID() local cm, m, ofs = GetID()
local yr = 13020010 local yr = 13020010
xpcall(function() dofile("expansions/script/c16670000.lua") end, function() dofile("script/c16670000.lua") end) --引用库 -- xpcall(function() dofile("expansions/script/c16670000.lua") end, function() dofile("script/c16670000.lua") end) --引用库
if not Duel.LoadScript and loadfile then
function Duel.LoadScript(str)
require_list = require_list or {}
str = "expansions/script/" .. str
if not require_list[str] then
if string.find(str, "%.") then
require_list[str] = loadfile(str)
else
require_list[str] = loadfile(str .. ".lua")
end
pcall(require_list[str])
end
return require_list[str]
end
end
Duel.LoadScript("c16670000.lua")
function cm.initial_effect(c) function cm.initial_effect(c)
aux.AddCodeList(c, yr) aux.AddCodeList(c, yr)
aux.AddEquipSpellEffect(c, true, true, Card.IsFaceup, nil) aux.AddEquipSpellEffect(c, true, true, Card.IsFaceup, nil)
...@@ -183,7 +200,11 @@ function cm.operation(e, tp, eg, ep, ev, re, r, rp) ...@@ -183,7 +200,11 @@ function cm.operation(e, tp, eg, ep, ev, re, r, rp)
if te then if te then
for _, ie in ipairs(te) do for _, ie in ipairs(te) do
Duel.BreakEffect() Duel.BreakEffect()
-- Debug.Message(te)
-- Debug.Message(aux.GetValueType(te))
local tg = ie:GetTarget() local tg = ie:GetTarget()
-- Debug.Message(tg)
-- Debug.Message(aux.GetValueType(tg))
if tg and tg(ie, tp, eg, ep, ev, re, r, rp, 0) then if tg and tg(ie, tp, eg, ep, ev, re, r, rp, 0) then
local op = ie:GetOperation() local op = ie:GetOperation()
if op then if op then
......
--白露未已 --白露未已
local cm, m, o = GetID() local cm, m, o = GetID()
local yr = 13020010 local yr = 13020010
xpcall(function() dofile("expansions/script/c16670000.lua") end, function() dofile("script/c16670000.lua") end) -- xpcall(function() dofile("expansions/script/c16670000.lua") end, function() dofile("script/c16670000.lua") end)
if not Duel.LoadScript and loadfile then
function Duel.LoadScript(str)
require_list = require_list or {}
str = "expansions/script/" .. str
if not require_list[str] then
if string.find(str, "%.") then
require_list[str] = loadfile(str)
else
require_list[str] = loadfile(str .. ".lua")
end
pcall(require_list[str])
end
return require_list[str]
end
end
Duel.LoadScript("c16670000.lua")
function cm.initial_effect(c) function cm.initial_effect(c)
c:EnableReviveLimit() c:EnableReviveLimit()
local e1 = Effect.CreateEffect(c) local e1 = Effect.CreateEffect(c)
...@@ -123,12 +139,13 @@ function cm.drop(e, tp, eg, ep, ev, re, r, rp) ...@@ -123,12 +139,13 @@ function cm.drop(e, tp, eg, ep, ev, re, r, rp)
local sg = g:Select(tp, 1, 1, nil) local sg = g:Select(tp, 1, 1, nil)
Duel.SendtoHand(sg, tp, REASON_EFFECT) Duel.SendtoHand(sg, tp, REASON_EFFECT)
if Duel.SelectYesNo(tp, aux.Stringid(m, 2)) then if Duel.SelectYesNo(tp, aux.Stringid(m, 2)) then
local g = Duel.GetFieldGroup(tp, LOCATION_HAND, 0):Select(tp, 1, 1, nil)
if g:GetCount() > 0 then
Duel.BreakEffect() Duel.BreakEffect()
if Duel.SendtoDeck(g, nil, SEQ_DECKSHUFFLE, REASON_EFFECT) ~= 0 then
Duel.RegisterFlagEffect(tp, m, RESET_PHASE + PHASE_END, 0, 2) Duel.RegisterFlagEffect(tp, m, RESET_PHASE + PHASE_END, 0, 2)
end
end
end end
end 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