Commit 7522a370 authored by 聖園ミカ's avatar 聖園ミカ 🐟

duiduiduiduidui

parent 30ee3f3b
...@@ -20,6 +20,7 @@ function cm.initial_effect(c) ...@@ -20,6 +20,7 @@ function cm.initial_effect(c)
e2:SetCode(EFFECT_SPSUMMON_PROC) e2:SetCode(EFFECT_SPSUMMON_PROC)
e2:SetRange(LOCATION_EXTRA) e2:SetRange(LOCATION_EXTRA)
e2:SetCondition(cm.hspcon) e2:SetCondition(cm.hspcon)
e2:SetTarget(cm.hsptg)
e2:SetOperation(cm.hspop) e2:SetOperation(cm.hspop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--special summon --special summon
...@@ -53,17 +54,27 @@ function cm.splimit(e,se,sp,st) ...@@ -53,17 +54,27 @@ function cm.splimit(e,se,sp,st)
return not e:GetHandler():IsLocation(LOCATION_EXTRA) or aux.fuslimit(e,se,sp,st) return not e:GetHandler():IsLocation(LOCATION_EXTRA) or aux.fuslimit(e,se,sp,st)
end end
function cm.hspfilter(c,tp,sc) function cm.hspfilter(c,tp,sc)
return c:IsAttribute(ATTRIBUTE_WATER) and c:IsRace(RACE_PSYCHO) return c:IsAttribute(ATTRIBUTE_WATER) and c:IsRace(RACE_PSYCHO) and c:IsControler(tp) and Duel.GetLocationCountFromEx(tp,tp,c,sc)>0
and c:IsControler(tp) and Duel.GetLocationCountFromEx(tp,tp,c,sc)>0 and c:IsCanBeFusionMaterial(sc,SUMMON_TYPE_SPECIAL) and c:IsCanBeFusionMaterial(sc,SUMMON_TYPE_SPECIAL)
end end
function cm.hspcon(e,c) function cm.hspcon(e,c)
if c==nil then return true end if c==nil then return true end
return Duel.CheckReleaseGroupEx(c:GetControler(),cm.hspfilter,2,REASON_SPSUMMON,false,nil,c:GetControler(),c) and Duel.CheckLPCost(c:GetControler(),1000) return Duel.CheckReleaseGroupEx(c:GetControler(),cm.hspfilter,2,REASON_SPSUMMON,false,nil,c:GetControler(),c)
and Duel.CheckLPCost(c:GetControler(),1000)
end
function cm.hsptg(e,tp,eg,ep,ev,re,r,rp,chk,c)
local g=Duel.GetReleaseGroup(tp,false,REASON_SPSUMMON):Filter(cm.hspfilter,nil,tp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local tc=g:SelectUnselect(nil,tp,false,true,2,2)
if tc then
e:SetLabelObject(tc)
return true
else return false end
end end
function cm.hspop(e,tp,eg,ep,ev,re,r,rp,c) function cm.hspop(e,tp,eg,ep,ev,re,r,rp,c)
local g=Duel.SelectReleaseGroupEx(tp,cm.hspfilter,2,2,REASON_SPSUMMON,false,nil,tp,c) local tc=e:GetLabelObject()
c:SetMaterial(g) c:SetMaterial(Group.FromCards(tc))
Duel.Release(g,REASON_SPSUMMON) Duel.Release(tc,REASON_SPSUMMON)
Duel.PayLPCost(tp,1000) Duel.PayLPCost(tp,1000)
end end
function cm.cfilter(c,tp) function cm.cfilter(c,tp)
......
...@@ -20,6 +20,7 @@ function cm.initial_effect(c) ...@@ -20,6 +20,7 @@ function cm.initial_effect(c)
e2:SetCode(EFFECT_SPSUMMON_PROC) e2:SetCode(EFFECT_SPSUMMON_PROC)
e2:SetRange(LOCATION_EXTRA) e2:SetRange(LOCATION_EXTRA)
e2:SetCondition(cm.hspcon) e2:SetCondition(cm.hspcon)
e2:SetTarget(cm.hsptg)
e2:SetOperation(cm.hspop) e2:SetOperation(cm.hspop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--spsummon --spsummon
...@@ -53,18 +54,28 @@ function cm.splimit(e,se,sp,st) ...@@ -53,18 +54,28 @@ function cm.splimit(e,se,sp,st)
return not e:GetHandler():IsLocation(LOCATION_EXTRA) or aux.fuslimit(e,se,sp,st) return not e:GetHandler():IsLocation(LOCATION_EXTRA) or aux.fuslimit(e,se,sp,st)
end end
function cm.hspfilter(c,tp,sc) function cm.hspfilter(c,tp,sc)
return c:IsAttribute(ATTRIBUTE_WATER) and c:IsRace(RACE_PSYCHO) return c:IsAttribute(ATTRIBUTE_WATER) and c:IsRace(RACE_PSYCHO) and c:IsControler(tp) and Duel.GetLocationCountFromEx(tp,tp,c,sc)>0
and c:IsControler(tp) and Duel.GetLocationCountFromEx(tp,tp,c,sc)>0 and c:IsCanBeFusionMaterial(sc,SUMMON_TYPE_SPECIAL) and c:IsCanBeFusionMaterial(sc,SUMMON_TYPE_SPECIAL)
end end
function cm.hspcon(e,c) function cm.hspcon(e,c)
if c==nil then return true end if c==nil then return true end
return Duel.CheckReleaseGroupEx(c:GetControler(),cm.hspfilter,2,REASON_SPSUMMON,false,nil,c:GetControler(),c) and Duel.CheckLPCost(c:GetControler(),1000) return Duel.CheckReleaseGroupEx(c:GetControler(),cm.hspfilter,2,REASON_SPSUMMON,false,nil,c:GetControler(),c)
and Duel.CheckLPCost(c:GetControler(),1000)
end
function cm.hsptg(e,tp,eg,ep,ev,re,r,rp,chk,c)
local g=Duel.GetReleaseGroup(tp,false,REASON_SPSUMMON):Filter(cm.hspfilter,nil,tp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local tc=g:SelectUnselect(nil,tp,false,true,2,2)
if tc then
e:SetLabelObject(tc)
return true
else return false end
end end
function cm.hspop(e,tp,eg,ep,ev,re,r,rp,c) function cm.hspop(e,tp,eg,ep,ev,re,r,rp,c)
local g=Duel.SelectReleaseGroupEx(tp,cm.hspfilter,2,2,REASON_SPSUMMON,false,nil,tp,c) local tc=e:GetLabelObject()
c:SetMaterial(g) c:SetMaterial(Group.FromCards(tc))
Duel.Release(g,REASON_SPSUMMON) Duel.Release(tc,REASON_SPSUMMON)
Duel.PayLPCost(tp,1000) Duel.PayLPCost(tp,1000)
end end
function cm.drcon(e,tp,eg,ep,ev,re,r,rp) function cm.drcon(e,tp,eg,ep,ev,re,r,rp)
return rp==1-tp return rp==1-tp
......
...@@ -20,6 +20,7 @@ function cm.initial_effect(c) ...@@ -20,6 +20,7 @@ function cm.initial_effect(c)
e2:SetCode(EFFECT_SPSUMMON_PROC) e2:SetCode(EFFECT_SPSUMMON_PROC)
e2:SetRange(LOCATION_EXTRA) e2:SetRange(LOCATION_EXTRA)
e2:SetCondition(cm.hspcon) e2:SetCondition(cm.hspcon)
e2:SetTarget(cm.hsptg)
e2:SetOperation(cm.hspop) e2:SetOperation(cm.hspop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--special summon --special summon
...@@ -54,18 +55,28 @@ function cm.splimit(e,se,sp,st) ...@@ -54,18 +55,28 @@ function cm.splimit(e,se,sp,st)
return not e:GetHandler():IsLocation(LOCATION_EXTRA) or aux.fuslimit(e,se,sp,st) return not e:GetHandler():IsLocation(LOCATION_EXTRA) or aux.fuslimit(e,se,sp,st)
end end
function cm.hspfilter(c,tp,sc) function cm.hspfilter(c,tp,sc)
return c:IsAttribute(ATTRIBUTE_WATER) and c:IsRace(RACE_PSYCHO) return c:IsAttribute(ATTRIBUTE_WATER) and c:IsRace(RACE_PSYCHO) and c:IsControler(tp) and Duel.GetLocationCountFromEx(tp,tp,c,sc)>0
and c:IsControler(tp) and Duel.GetLocationCountFromEx(tp,tp,c,sc)>0 and c:IsCanBeFusionMaterial(sc,SUMMON_TYPE_SPECIAL) and c:IsCanBeFusionMaterial(sc,SUMMON_TYPE_SPECIAL)
end end
function cm.hspcon(e,c) function cm.hspcon(e,c)
if c==nil then return true end if c==nil then return true end
return Duel.CheckReleaseGroupEx(c:GetControler(),cm.hspfilter,2,REASON_SPSUMMON,false,nil,c:GetControler(),c) and Duel.CheckLPCost(c:GetControler(),1000) return Duel.CheckReleaseGroupEx(c:GetControler(),cm.hspfilter,2,REASON_SPSUMMON,false,nil,c:GetControler(),c)
and Duel.CheckLPCost(c:GetControler(),1000)
end
function cm.hsptg(e,tp,eg,ep,ev,re,r,rp,chk,c)
local g=Duel.GetReleaseGroup(tp,false,REASON_SPSUMMON):Filter(cm.hspfilter,nil,tp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local tc=g:SelectUnselect(nil,tp,false,true,2,2)
if tc then
e:SetLabelObject(tc)
return true
else return false end
end end
function cm.hspop(e,tp,eg,ep,ev,re,r,rp,c) function cm.hspop(e,tp,eg,ep,ev,re,r,rp,c)
local g=Duel.SelectReleaseGroupEx(tp,cm.hspfilter,2,2,REASON_SPSUMMON,false,nil,tp,c) local tc=e:GetLabelObject()
c:SetMaterial(g) c:SetMaterial(Group.FromCards(tc))
Duel.Release(g,REASON_SPSUMMON) Duel.Release(tc,REASON_SPSUMMON)
Duel.PayLPCost(tp,1000) Duel.PayLPCost(tp,1000)
end end
function cm.drcfilter(c,tp) function cm.drcfilter(c,tp)
return c:IsPreviousLocation(LOCATION_ONFIELD) and c:IsPreviousControler(1-tp) and c:IsReason(REASON_BATTLE+REASON_EFFECT) return c:IsPreviousLocation(LOCATION_ONFIELD) and c:IsPreviousControler(1-tp) and c:IsReason(REASON_BATTLE+REASON_EFFECT)
......
...@@ -20,6 +20,7 @@ function cm.initial_effect(c) ...@@ -20,6 +20,7 @@ function cm.initial_effect(c)
e2:SetCode(EFFECT_SPSUMMON_PROC) e2:SetCode(EFFECT_SPSUMMON_PROC)
e2:SetRange(LOCATION_EXTRA) e2:SetRange(LOCATION_EXTRA)
e2:SetCondition(cm.hspcon) e2:SetCondition(cm.hspcon)
e2:SetTarget(cm.hsptg)
e2:SetOperation(cm.hspop) e2:SetOperation(cm.hspop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--to deck --to deck
...@@ -54,18 +55,28 @@ function cm.splimit(e,se,sp,st) ...@@ -54,18 +55,28 @@ function cm.splimit(e,se,sp,st)
return not e:GetHandler():IsLocation(LOCATION_EXTRA) or aux.fuslimit(e,se,sp,st) return not e:GetHandler():IsLocation(LOCATION_EXTRA) or aux.fuslimit(e,se,sp,st)
end end
function cm.hspfilter(c,tp,sc) function cm.hspfilter(c,tp,sc)
return c:IsAttribute(ATTRIBUTE_WATER) and c:IsRace(RACE_PSYCHO) return c:IsAttribute(ATTRIBUTE_WATER) and c:IsRace(RACE_PSYCHO) and c:IsControler(tp) and Duel.GetLocationCountFromEx(tp,tp,c,sc)>0
and c:IsControler(tp) and Duel.GetLocationCountFromEx(tp,tp,c,sc)>0 and c:IsCanBeFusionMaterial(sc,SUMMON_TYPE_SPECIAL) and c:IsCanBeFusionMaterial(sc,SUMMON_TYPE_SPECIAL)
end end
function cm.hspcon(e,c) function cm.hspcon(e,c)
if c==nil then return true end if c==nil then return true end
return Duel.CheckReleaseGroupEx(c:GetControler(),cm.hspfilter,2,REASON_SPSUMMON,false,nil,c:GetControler(),c) and Duel.CheckLPCost(c:GetControler(),1000) return Duel.CheckReleaseGroupEx(c:GetControler(),cm.hspfilter,2,REASON_SPSUMMON,false,nil,c:GetControler(),c)
and Duel.CheckLPCost(c:GetControler(),1000)
end
function cm.hsptg(e,tp,eg,ep,ev,re,r,rp,chk,c)
local g=Duel.GetReleaseGroup(tp,false,REASON_SPSUMMON):Filter(cm.hspfilter,nil,tp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local tc=g:SelectUnselect(nil,tp,false,true,2,2)
if tc then
e:SetLabelObject(tc)
return true
else return false end
end end
function cm.hspop(e,tp,eg,ep,ev,re,r,rp,c) function cm.hspop(e,tp,eg,ep,ev,re,r,rp,c)
local g=Duel.SelectReleaseGroupEx(tp,cm.hspfilter,2,2,REASON_SPSUMMON,false,nil,tp,c) local tc=e:GetLabelObject()
c:SetMaterial(g) c:SetMaterial(Group.FromCards(tc))
Duel.Release(g,REASON_SPSUMMON) Duel.Release(tc,REASON_SPSUMMON)
Duel.PayLPCost(tp,1000) Duel.PayLPCost(tp,1000)
end end
function cm.drcfilter(c,tp) function cm.drcfilter(c,tp)
return c:IsPreviousLocation(LOCATION_DECK+LOCATION_HAND+LOCATION_EXTRA) and c:IsPreviousControler(1-tp) return c:IsPreviousLocation(LOCATION_DECK+LOCATION_HAND+LOCATION_EXTRA) and c:IsPreviousControler(1-tp)
......
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