Commit 059d777c authored by Tachibana's avatar Tachibana

1145141919810

parent 20ca999a
Pipeline #14759 passed with stages
in 34 minutes and 19 seconds
No preview for this file type
...@@ -37,6 +37,7 @@ function cm.initial_effect(c) ...@@ -37,6 +37,7 @@ function cm.initial_effect(c)
e3:SetCategory(CATEGORY_TOHAND) e3:SetCategory(CATEGORY_TOHAND)
e3:SetType(EFFECT_TYPE_IGNITION) e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET)
e3:SetCountLimit(1) e3:SetCountLimit(1)
e3:SetCondition(cm.thcon) e3:SetCondition(cm.thcon)
e3:SetCost(cm.thcost) e3:SetCost(cm.thcost)
......
--异夕光物 雀鱿章 --异夕光物 雀鱿章
local m=51300002 local m=51300002
local cm=_G["c"..m] local cm=_G["c"..m]
xpcall(function() require("expansions/script/c10000100") end,function() require("script/c10000100") end) xpcall(function() require("expansions/script/c51300039") end,function() require("script/c51300039") end)
function cm.initial_effect(c) function cm.initial_effect(c)
--cannot special summon --cannot special summon
local e1,e2=yixi.spself(c,m,1) local e1,e2=yixi.spself(c,m,1)
......
--异夕光物 戴菊座头鲸 --异夕光物 戴菊座头鲸
local m=51300011 local m=51300011
local cm=_G["c"..m] local cm=_G["c"..m]
xpcall(function() require("expansions/script/c10000100") end,function() require("script/c10000100") end) xpcall(function() require("expansions/script/c51300039") end,function() require("script/c51300039") end)
function cm.initial_effect(c) function cm.initial_effect(c)
--cannot special summon --cannot special summon
local e1,e2=yixi.spself(c,m,1) local e1,e2=yixi.spself(c,m,1)
......
--异夕光物 鸵鸟蟹 --异夕光物 鸵鸟蟹
local m=51300021 local m=51300021
local cm=_G["c"..m] local cm=_G["c"..m]
xpcall(function() require("expansions/script/c10000100") end,function() require("script/c10000100") end) xpcall(function() require("expansions/script/c51300039") end,function() require("script/c51300039") end)
function cm.initial_effect(c) function cm.initial_effect(c)
--cannot special summon --cannot special summon
local e1,e2=yixi.spself(c,m,1) local e1,e2=yixi.spself(c,m,1)
......
--异夕光物 鹰恐鱼 --异夕光物 鹰恐鱼
local m=51300031 local m=51300031
local cm=_G["c"..m] local cm=_G["c"..m]
xpcall(function() require("expansions/script/c10000100") end,function() require("script/c10000100") end) xpcall(function() require("expansions/script/c51300039") end,function() require("script/c51300039") end)
function cm.initial_effect(c) function cm.initial_effect(c)
--cannot special summon --cannot special summon
local e1,e2=yixi.spself(c,m,2) local e1,e2=yixi.spself(c,m,2)
...@@ -10,7 +10,7 @@ function cm.initial_effect(c) ...@@ -10,7 +10,7 @@ function cm.initial_effect(c)
e2:SetDescription(aux.Stringid(m,1)) e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_ATKCHANGE+CATEGORY_DEFCHANGE) e2:SetCategory(CATEGORY_ATKCHANGE+CATEGORY_DEFCHANGE)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP) e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCode(EVENT_SPSUMMON_SUCCESS) e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetTarget(cm.atktg) e2:SetTarget(cm.atktg)
e2:SetOperation(cm.atkop) e2:SetOperation(cm.atkop)
......
--光衍生物
yixi=yixi or {}
--SpecialSummon self
function yixi.spself(c,m,count)
--cannot special summon
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION)
c:RegisterEffect(e1)
--special summon
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_SPSUMMON_PROC)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e2:SetRange(LOCATION_HAND)
e2:SetLabel(count)
e2:SetCondition(yixi.spcon)
e2:SetOperation(yixi.spop)
c:RegisterEffect(e2)
return e1,e2
end
function yixi.spfilter(c)
return c:IsSetCard(0xa01) and c:IsType(TYPE_MONSTER) and c:IsReleasable() and not c:IsCode(51300051)
end
function yixi.spcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
local ct=e:GetLabel()
return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(yixi.spfilter,tp,LOCATION_HAND,0,ct,c)
end
function yixi.spop(e,tp,eg,ep,ev,re,r,rp,c)
local ct=e:GetLabel()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g=Duel.SelectMatchingCard(tp,yixi.spfilter,tp,LOCATION_HAND,0,ct,ct,c)
Duel.Release(g,REASON_COST)
end
--when Release
function yixi.released(c,m)
--cannot special summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,1))
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_RELEASE)
return e1
end
\ No newline at end of file
--异夕光物 鹦鹉螺 --异夕光物 鹦鹉螺
local m=51300041 local m=51300041
local cm=_G["c"..m] local cm=_G["c"..m]
xpcall(function() require("expansions/script/c10000100") end,function() require("script/c10000100") end) xpcall(function() require("expansions/script/c51300039") end,function() require("script/c51300039") end)
function cm.initial_effect(c) function cm.initial_effect(c)
--cannot special summon --cannot special summon
local e1,e2=yixi.spself(c,m,2) local e1,e2=yixi.spself(c,m,2)
......
--异夕光物 孔雀狮子鱼 --异夕光物 孔雀狮子鱼
local m=51300051 local m=51300051
local cm=_G["c"..m] local cm=_G["c"..m]
xpcall(function() require("expansions/script/c10000100") end,function() require("script/c10000100") end) xpcall(function() require("expansions/script/c51300039") end,function() require("script/c51300039") end)
function cm.initial_effect(c) function cm.initial_effect(c)
--cannot special summon --cannot special summon
local e1,e2=yixi.spself(c,m,2) local e1,e2=yixi.spself(c,m,2)
......
--异夕光物 鹏海星 --异夕光物 鹏海星
local m=51300071 local m=51300071
local cm=_G["c"..m] local cm=_G["c"..m]
xpcall(function() require("expansions/script/c10000100") end,function() require("script/c10000100") end) xpcall(function() require("expansions/script/c51300039") end,function() require("script/c51300039") end)
function cm.initial_effect(c) function cm.initial_effect(c)
--cannot special summon --cannot special summon
local e1,e2=yixi.spself(c,m,1) local e1,e2=yixi.spself(c,m,1)
......
...@@ -10,6 +10,13 @@ function cm.initial_effect(c) ...@@ -10,6 +10,13 @@ function cm.initial_effect(c)
--dialog --dialog
local e0=public.dialog(c,m,9,12) local e0=public.dialog(c,m,9,12)
e0:SetCondition(cm.condition) e0:SetCondition(cm.condition)
--spsummon condition
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetCode(EFFECT_SPSUMMON_CONDITION)
e10:SetValue(cm.splimit)
c:RegisterEffect(e10)
--immune --immune
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE) e2:SetType(EFFECT_TYPE_SINGLE)
...@@ -62,6 +69,11 @@ function cm.initial_effect(c) ...@@ -62,6 +69,11 @@ function cm.initial_effect(c)
e6:SetValue(cm.repval) e6:SetValue(cm.repval)
c:RegisterEffect(e6) c:RegisterEffect(e6)
end end
--splimit
function cm.splimit(e,se,sp,st)
return bit.band(st,SUMMON_TYPE_FUSION)==SUMMON_TYPE_FUSION
end
--fusion material
function cm.ffilter(c,fc,sub,mg,sg) function cm.ffilter(c,fc,sub,mg,sg)
local p=c:IsFusionType(TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ) and c:IsFusionSetCard(0xa01) local p=c:IsFusionType(TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ) and c:IsFusionSetCard(0xa01)
if not sg then if not sg then
......
--小崎甜花 --小崎甜花
local m=81011100 local m=81011100
local cm=_G["c"..m] local cm=_G["c"..m]
function c81011100.initial_effect(c) function cm.initial_effect(c)
--pendulum summon --pendulum summon
aux.EnablePendulumAttribute(c) aux.EnablePendulumAttribute(c)
c:EnableReviveLimit() c:EnableReviveLimit()
...@@ -12,10 +12,10 @@ function c81011100.initial_effect(c) ...@@ -12,10 +12,10 @@ function c81011100.initial_effect(c)
e1:SetCode(EVENT_ATTACK_ANNOUNCE) e1:SetCode(EVENT_ATTACK_ANNOUNCE)
e1:SetRange(LOCATION_PZONE) e1:SetRange(LOCATION_PZONE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCountLimit(1,81011100) e1:SetCountLimit(1,m)
e1:SetCondition(c81011100.drcon) e1:SetCondition(cm.drcon)
e1:SetTarget(c81011100.drtg) e1:SetTarget(cm.drtg)
e1:SetOperation(c81011100.drop) e1:SetOperation(cm.drop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--immune --immune
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -23,85 +23,85 @@ function c81011100.initial_effect(c) ...@@ -23,85 +23,85 @@ function c81011100.initial_effect(c)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_IMMUNE_EFFECT) e2:SetCode(EFFECT_IMMUNE_EFFECT)
e2:SetValue(c81011100.efilter) e2:SetValue(cm.efilter)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--indes --indes
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_INDESTRUCTABLE_BATTLE) e3:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e3:SetValue(c81011100.indval) e3:SetValue(cm.indval)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--Activate --Activate
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_ATKCHANGE) e4:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_ATKCHANGE)
e4:SetType(EFFECT_TYPE_IGNITION) e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_MZONE) e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1,81011190) e4:SetCountLimit(1,m+90)
e4:SetTarget(c81011100.target) e4:SetTarget(cm.target)
e4:SetOperation(c81011100.activate) e4:SetOperation(cm.activate)
c:RegisterEffect(e4) c:RegisterEffect(e4)
--pendulum --pendulum
local e6=Effect.CreateEffect(c) local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e6:SetCode(EVENT_DESTROYED) e6:SetCode(EVENT_DESTROYED)
e6:SetProperty(EFFECT_FLAG_DELAY) e6:SetProperty(EFFECT_FLAG_DELAY)
e6:SetCondition(c81011100.pencon) e6:SetCondition(cm.pencon)
e6:SetTarget(c81011100.pentg) e6:SetTarget(cm.pentg)
e6:SetOperation(c81011100.penop) e6:SetOperation(cm.penop)
c:RegisterEffect(e6) c:RegisterEffect(e6)
end end
function c81011100.drcon(e,tp,eg,ep,ev,re,r,rp) function cm.drcon(e,tp,eg,ep,ev,re,r,rp)
local a=Duel.GetAttacker() local a=Duel.GetAttacker()
local d=Duel.GetAttackTarget() local d=Duel.GetAttackTarget()
return (a:IsControler(tp) and a:IsType(TYPE_RITUAL) and a:IsType(TYPE_PENDULUM)) or (d and d:IsControler(tp) and d:IsFaceup() and d:IsType(TYPE_RITUAL) and d:IsType(TYPE_PENDULUM)) return (a:IsControler(tp) and a:IsType(TYPE_RITUAL) and a:IsType(TYPE_PENDULUM)) or (d and d:IsControler(tp) and d:IsFaceup() and d:IsType(TYPE_RITUAL) and d:IsType(TYPE_PENDULUM))
end end
function c81011100.drtg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,1) end if chk==0 then return Duel.IsPlayerCanDraw(tp,1) end
Duel.SetTargetPlayer(tp) Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(1) Duel.SetTargetParam(1)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1) Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end end
function c81011100.drop(e,tp,eg,ep,ev,re,r,rp) function cm.drop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end if not e:GetHandler():IsRelateToEffect(e) then return end
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM) local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Draw(p,d,REASON_EFFECT) Duel.Draw(p,d,REASON_EFFECT)
end end
function c81011100.efilter(e,te) function cm.efilter(e,te)
return te:IsActiveType(TYPE_MONSTER) and not (te:GetOwner():IsType(TYPE_RITUAL) and te:GetOwner():IsType(TYPE_PENDULUM)) return te:IsActiveType(TYPE_MONSTER) and not (te:GetOwner():IsType(TYPE_RITUAL) and te:GetOwner():IsType(TYPE_PENDULUM))
end end
function c81011100.indval(e,c) function cm.indval(e,c)
return not (c:IsType(TYPE_RITUAL) and c:IsType(TYPE_PENDULUM)) return not (c:IsType(TYPE_RITUAL) and c:IsType(TYPE_PENDULUM))
end end
function c81011100.filter(c,e,tp,m,ft) function cm.filter(c,e,tp,m,ft)
if bit.band(c:GetOriginalType(),0x81)~=0x81 if bit.band(c:GetOriginalType(),0x81)~=0x81
or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true) then return false end or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true) then return false end
local mg=m:Filter(Card.IsCanBeRitualMaterial,c,c) local mg=m:Filter(Card.IsCanBeRitualMaterial,c,c)
if ft>0 then if ft>0 then
return mg:CheckWithSumGreater(Card.GetRitualLevel,c:GetLevel(),c) return mg:CheckWithSumGreater(Card.GetRitualLevel,c:GetLevel(),c)
else else
return mg:IsExists(c81011100.filterF,1,nil,tp,mg,c) return mg:IsExists(cm.filterF,1,nil,tp,mg,c)
end end
end end
function c81011100.filterF(c,tp,mg,rc) function cm.filterF(c,tp,mg,rc)
if c:IsControler(tp) and c:IsLocation(LOCATION_MZONE) and c:GetSequence()<5 then if c:IsControler(tp) and c:IsLocation(LOCATION_MZONE) and c:GetSequence()<5 then
Duel.SetSelectedCard(c) Duel.SetSelectedCard(c)
return mg:CheckWithSumGreater(Card.GetRitualLevel,rc:GetLevel(),rc) return mg:CheckWithSumGreater(Card.GetRitualLevel,rc:GetLevel(),rc)
else return false end else return false end
end end
function c81011100.target(e,tp,eg,ep,ev,re,r,rp,chk) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
local mg=Duel.GetRitualMaterial(tp) local mg=Duel.GetRitualMaterial(tp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
return ft>-1 and Duel.IsExistingMatchingCard(c81011100.filter,tp,LOCATION_PZONE,0,1,nil,e,tp,mg,ft) return ft>-1 and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_PZONE,0,1,nil,e,tp,mg,ft)
end end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_PZONE) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_PZONE)
end end
function c81011100.activate(e,tp,eg,ep,ev,re,r,rp) function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local mg=Duel.GetRitualMaterial(tp) local mg=Duel.GetRitualMaterial(tp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tg=Duel.SelectMatchingCard(tp,c81011100.filter,tp,LOCATION_PZONE,0,1,1,nil,e,tp,mg,ft) local tg=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_PZONE,0,1,1,nil,e,tp,mg,ft)
local tc=tg:GetFirst() local tc=tg:GetFirst()
if tc then if tc then
mg=mg:Filter(Card.IsCanBeRitualMaterial,tc,tc) mg=mg:Filter(Card.IsCanBeRitualMaterial,tc,tc)
...@@ -111,7 +111,7 @@ function c81011100.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -111,7 +111,7 @@ function c81011100.activate(e,tp,eg,ep,ev,re,r,rp)
mat=mg:SelectWithSumGreater(tp,Card.GetRitualLevel,tc:GetLevel(),tc) mat=mg:SelectWithSumGreater(tp,Card.GetRitualLevel,tc:GetLevel(),tc)
else else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
mat=mg:FilterSelect(tp,c81011100.filterF,1,1,nil,tp,mg,tc) mat=mg:FilterSelect(tp,cm.filterF,1,1,nil,tp,mg,tc)
Duel.SetSelectedCard(mat) Duel.SetSelectedCard(mat)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local mat2=mg:SelectWithSumGreater(tp,Card.GetRitualLevel,tc:GetLevel(),tc) local mat2=mg:SelectWithSumGreater(tp,Card.GetRitualLevel,tc:GetLevel(),tc)
...@@ -134,14 +134,14 @@ function c81011100.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -134,14 +134,14 @@ function c81011100.activate(e,tp,eg,ep,ev,re,r,rp)
end end
end end
end end
function c81011100.pencon(e,tp,eg,ep,ev,re,r,rp) function cm.pencon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
return c:IsPreviousLocation(LOCATION_MZONE) and c:IsFaceup() return c:IsPreviousLocation(LOCATION_MZONE) and c:IsFaceup()
end end
function c81011100.pentg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.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 if chk==0 then return Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1) end
end end
function c81011100.penop(e,tp,eg,ep,ev,re,r,rp) function cm.penop(e,tp,eg,ep,ev,re,r,rp)
if not Duel.CheckLocation(tp,LOCATION_PZONE,0) and not Duel.CheckLocation(tp,LOCATION_PZONE,1) then return end if not Duel.CheckLocation(tp,LOCATION_PZONE,0) and not Duel.CheckLocation(tp,LOCATION_PZONE,1) then return end
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) then if c:IsRelateToEffect(e) then
......
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