Commit c0e9a94f authored by REIKAI's avatar REIKAI 💬

update 11.19

parent 6d8e0ea3
No preview for this file type
...@@ -63,7 +63,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -63,7 +63,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(nil,tp,0,LOCATION_HAND,nil) local g=Duel.GetMatchingGroup(nil,tp,0,LOCATION_HAND,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.ConfirmCards(tp,g) Duel.ConfirmCards(tp,g)
if Duel.Draw(1-tp,count) > 0 then if Duel.Draw(1-tp,count,REASON_EFFECT) > 0 then
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_ACTIVATE) e1:SetCode(EFFECT_CANNOT_ACTIVATE)
......
--言灵法·灵长
function c86570086.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,nil,5,6,c86570086.lcheck)
c:EnableReviveLimit()
--
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_CANNOT_DISABLE_SPSUMMON)
c:RegisterEffect(e1)
--cannot be target
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetCode(EFFECT_CANNOT_BE_BATTLE_TARGET)
e2:SetRange(LOCATION_MZONE)
e2:SetValue(aux.imval1)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e3:SetValue(1)
c:RegisterEffect(e3)
--attribute change
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(86570086,0))
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetCode(EVENT_FREE_CHAIN)
e4:SetRange(LOCATION_MZONE)
e4:SetCondition(c86570086.raccon)
e4:SetTarget(c86570086.ractg)
e4:SetOperation(c86570086.racop)
c:RegisterEffect(e4)
--tohand
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(86570086,1))
e5:SetCategory(CATEGORY_TOHAND)
e5:SetType(EFFECT_TYPE_QUICK_O)
e5:SetCode(EVENT_FREE_CHAIN)
e5:SetRange(LOCATION_MZONE)
e5:SetCountLimit(1,86570086)
e5:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e5:SetCost(c86570086.thcost)
e5:SetTarget(c86570086.thtg)
e5:SetOperation(c86570086.thop)
c:RegisterEffect(e5)
--extra material
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_FIELD)
e7:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e7:SetCode(EFFECT_EXTRA_LINK_MATERIAL)
e7:SetRange(LOCATION_EXTRA)
e7:SetTargetRange(0,LOCATION_MZONE)
e7:SetValue(c86570086.matval)
c:RegisterEffect(e7)
end
function c86570086.matval(e,lc,mg,c,tp)
if e:GetHandler()~=lc then return false,nil end
return true,not mg or not mg:IsExists(Card.IsControler,1,nil,1-tp)
end
function c86570086.lcheck(g,lc)
return g:IsExists(Card.IsLinkSetCard,1,nil,0x651)
end
function c86570086.raccon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentPhase()==PHASE_MAIN1 or Duel.GetCurrentPhase()==PHASE_MAIN2
end
function c86570086.ractg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFlagEffect(tp,86570086)==0 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RACE)
local rac=Duel.AnnounceRace(tp,1,RACE_ALL)
e:SetLabel(rac)
Duel.RegisterFlagEffect(tp,86570086,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1)
Duel.RaiseEvent(e:GetHandler(),EVENT_CUSTOM+86570086,re,r,rp,ep,Duel.GetCurrentChain())
end
function c86570086.racop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local race=e:GetLabel()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetTargetRange(0,1)
e1:SetLabel(race)
e1:SetRange(LOCATION_MZONE)
e1:SetValue(c86570086.aclimit)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+EVENT_CUSTOM+86570086)
c:RegisterEffect(e1)
--disable spsummon
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(0,1)
e2:SetTarget(c86570086.tglimit)
e2:SetLabel(e:GetLabel())
e2:SetReset(RESET_EVENT+RESETS_STANDARD+EVENT_CUSTOM+86570086)
c:RegisterEffect(e2,true)
local e3=e2:Clone()
e3:SetCode(EFFECT_CANNOT_SUMMON)
c:RegisterEffect(e3,true)
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(93729065,4))
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e4:SetCode(EVENT_CUSTOM+86570086)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1)
e4:SetLabelObject(e1)
e4:SetLabel(race)
e4:SetOperation(c86570086.rstop)
e4:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e4)
local e5=e4:Clone()
e5:SetLabelObject(e2)
c:RegisterEffect(e5)
local e6=e4:Clone()
e6:SetLabelObject(e3)
c:RegisterEffect(e6)
--disable
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_FIELD)
e7:SetRange(LOCATION_MZONE)
e7:SetTargetRange(0,LOCATION_MZONE)
e7:SetLabel(race)
e7:SetTarget(c86570086.disable)
e7:SetCode(EFFECT_DISABLE)
c:RegisterEffect(e7)
local e8=e4:Clone()
e8:SetLabelObject(e7)
c:RegisterEffect(e8)
end
function c86570086.disable(e,c)
return (c:IsType(TYPE_EFFECT) or c:GetOriginalType()&TYPE_EFFECT~=0) and c:IsRace(e:GetLabel())
end
function c86570086.aclimit(e,re,tp)
local c=re:GetHandler()
return re:IsActiveType(TYPE_MONSTER) and c:IsRace(e:GetLabel())
end
function c86570086.tglimit(e,c)
return c:IsRace(e:GetLabel())
end
function c86570086.cfilter(c)
return not c:IsStatus(STATUS_BATTLE_DESTROYED)
end
function c86570086.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckReleaseGroup(tp,c86570086.cfilter,1,nil) end
local g=Duel.SelectReleaseGroup(tp,c86570086.cfilter,1,1,nil)
Duel.Release(g,REASON_COST)
end
function c86570086.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToHand,tp,LOCATION_ONFIELD+LOCATION_GRAVE+LOCATION_REMOVED,LOCATION_ONFIELD+LOCATION_GRAVE+LOCATION_REMOVED,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,nil,LOCATION_ONFIELD+LOCATION_GRAVE+LOCATION_REMOVED)
end
function c86570086.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToHand,tp,LOCATION_ONFIELD+LOCATION_GRAVE+LOCATION_REMOVED,LOCATION_ONFIELD+LOCATION_GRAVE+LOCATION_REMOVED,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
end
end
function c86570086.rstop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local cid=e:GetLabel()
if cid~=0 then
c:ResetEffect(RESET_DISABLE,RESET_EVENT)
end
local e1=e:GetLabelObject()
e1:Reset()
local e2=e:GetLabelObject()
e2:Reset()
local e3=e:GetLabelObject()
e3:Reset()
Duel.HintSelection(Group.FromCards(c))
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
\ No newline at end of file
--言灵皇圣·墨兰
function c86570087.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,nil,2,3,c86570087.lcheck)
c:EnableReviveLimit()
--
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_CANNOT_DISABLE_SPSUMMON)
c:RegisterEffect(e1)
--
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetCondition(c86570087.sumcon)
e2:SetOperation(c86570087.sumsuc)
c:RegisterEffect(e2)
--token
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(86570087,0))
e3:SetCategory(CATEGORY_TOKEN+CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1,86570087)
e3:SetTarget(c86570087.tktg)
e3:SetOperation(c86570087.tkop)
c:RegisterEffect(e3)
end
function c86570087.lcheck(g,lc)
return g:IsExists(Card.IsLinkSetCard,1,nil,0x651)
end
function c86570087.sumcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function c86570087.sumsuc(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
--cannot be target
local e2=Effect.CreateEffect(c)
e2:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e2:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_SET_AVAILABLE)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetTargetRange(LOCATION_ONFIELD,0)
e2:SetValue(aux.tgoval)
e2:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e2,tp)
end
function c86570087.tkfilter(c,tp)
return c:IsFaceup() and Duel.IsPlayerCanSpecialSummonMonster(tp,86570018,0x651,TYPES_TOKEN_MONSTER,0,0,4,c:GetRace(),ATTRIBUTE_DARK)
end
function c86570087.tktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c86570087.tkfilter(chkc,tp) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingTarget(c86570087.tkfilter,tp,LOCATION_MZONE,0,1,nil,tp) end
Duel.SelectTarget(tp,c86570087.tkfilter,tp,LOCATION_MZONE,0,1,1,nil,tp)
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
end
function c86570087.tkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local rac=tc:GetRace()
if Duel.IsPlayerCanSpecialSummonMonster(tp,86570018,0x651,TYPES_TOKEN_MONSTER,0,0,4,rac,ATTRIBUTE_DARK) then
local token=Duel.CreateToken(tp,86570018)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CHANGE_RACE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetValue(rac)
e1:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD)
token:RegisterEffect(e1)
Duel.SpecialSummon(token,0,tp,tp,false,false,POS_FACEUP)
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