Commit 52e83ce0 authored by Tachibana's avatar Tachibana

得得得得得

parent 8a74bc96
Pipeline #11688 passed with stages
in 31 minutes and 41 seconds
......@@ -65,7 +65,7 @@ end
function cm.gvtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and cm.gvfilter(chkc,e:GetHandler()) end
if chk==0 then return ft>-1 and Duel.IsExistingTarget(cm.gvfilter,tp,LOCATION_MZONE,0,1,nil,e:GetHandler()) and Duel.IsExistingTarget(cm.gvfilte1,tp,LOCATION_MZONE,0,1,nil,e:GetHandler())
if chk==0 then return ft>-1 and Duel.IsExistingTarget(cm.gvfilter,tp,LOCATION_MZONE,0,1,nil,e:GetHandler()) and Duel.IsExistingTarget(cm.gvfilter1,tp,LOCATION_MZONE,0,1,nil,e:GetHandler())
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g1=Duel.SelectTarget(tp,cm.gvfilter,tp,LOCATION_MZONE,0,1,1,nil,e:GetHandler())
......@@ -94,7 +94,7 @@ function cm.gvop(e,tp,eg,ep,ev,re,r,rp)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
sc:RegisterEffect(e2,true)
if sc:IsType(TYPE_XYZ) then
Duel.Overlay(sc,Group.FromCards(tc))
Duel.Overlay(sc,g)
end
Duel.SpecialSummonComplete()
end
......
......@@ -18,7 +18,7 @@ function cm.initial_effect(c)
local e4=e3:Clone()
e4:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e4)
local e6,e7=Suyu_constel.effect(c,m,3,LOCATION_MZONE,cm.mtg,cm.mop,CATEGORY_POSITION,EFFECT_FLAG_CARD_TARGET)
local e6,e7=Suyu_constel.effect(c,m,3,LOCATION_MZONE,cm.mtg,cm.mop,CATEGORY_POSITION,nil,EFFECT_FLAG_CARD_TARGET)
end
function cm.drcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():GetFlagEffect(m)==0 and Duel.CheckLPCost(tp,1000) end
......
--星系守护神 半人马星神
---星系守护神 半人马星神
local m=64800042
local cm=_G["c"..m]
function cm.initial_effect(c)
......@@ -12,51 +12,44 @@ function cm.initial_effect(c)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_CUSTOM+m+EFFECT_COUNT_CODE_DUEL)
e2:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e2:SetCode(EVENT_TO_GRAVE)
e2:SetProperty(0x14000+EFFECT_FLAG_SET_AVAILABLE)
e2:SetRange(LOCATION_HAND)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TODECK)
e2:SetCountLimit(1,m+EFFECT_COUNT_CODE_DUEL)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetCondition(cm.thcon)
e2:SetTarget(cm.sptg1)
e2:SetOperation(cm.spop1)
c:RegisterEffect(e2)
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_LEAVE_FIELD)
ge1:SetOperation(cm.checkop)
Duel.RegisterEffect(ge1,0)
end
end
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
if eg:FilterCount(cm.filter,nil,tp,rp)==1 and Duel.GetMatchingGroupCount(cm.confilter,tp,LOCATION_SZONE,0,nil)==0 then
Duel.RaiseEvent(eg,EVENT_CUSTOM+m,re,r,rp,tp,ev)
end
if eg:FilterCount(cm.filter,nil,1-tp,rp)==1 and Duel.GetMatchingGroupCount(cm.confilter,1-tp,LOCATION_SZONE,0,nil)==0 then
Duel.RaiseEvent(eg,EVENT_CUSTOM+m,re,r,rp,1-tp,ev)
end
local e3=e2:Clone()
e3:SetCode(EVENT_TO_DECK)
c:RegisterEffect(e3)
local e4=e2:Clone()
e4:SetCode(EVENT_REMOVE)
c:RegisterEffect(e4)
local e5=e2:Clone()
e5:SetCode(EVENT_TO_HAND)
c:RegisterEffect(e5)
end
function cm.splimit(e,se,sp,st)
return se:IsHasType(EFFECT_TYPE_ACTIONS)
end
function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
return ep==tp and Duel.GetMatchingGroupCount(cm.confilter,tp,LOCATION_SZONE,0,nil)==0 and Duel.GetMatchingGroupCount(nil,tp,LOCATION_MZONE,0,nil)==0
end
function cm.confilter(c)
return c:GetSequence()<5
local g=Duel.GetFieldGroup(tp,LOCATION_ONFIELD,0)
Debug.Message(#g)
Debug.Message(eg:IsExists(cm.filter,1,nil,tp,rp))
return #g==0 and eg:IsExists(cm.filter,1,nil,tp,rp) and Duel.GetFieldGroupCount(tp,LOCATION_SZONE,0)==0
end
function cm.filter(c,tp,rp)
return c:IsPreviousLocation(LOCATION_MZONE) and c:GetPreviousControler()==tp and (c:IsReason(REASON_BATTLE) or (rp==1-tp and c:IsReason(REASON_EFFECT)))
end
function cm.sptg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 end
if Duel.GetFieldGroupCount(tp,0,LOCATION_ONFIELD)>Duel.GetFieldGroupCount(tp,LOCATION_HAND,0) then
if chk==0 then return true end
if Duel.GetFieldGroupCount(tp,0,LOCATION_ONFIELD)>Duel.GetFieldGroupCount(tp,0,LOCATION_ONFIELD) then
Duel.SetChainLimit(function(e,ep,tp)
return tp==ep
end)end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,0,0,LOCATION_ONFIELD+LOCATION_GRAVE)
end
function cm.spop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
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