Flower Cardian Peony with Butterfly
- Card ID:
57261568 - Format: Standard
- Script:
Scripts/c57261568.lua
Stats
| Field | Value |
|---|---|
| Type | 0x2001021 |
| ATK | 1000 |
| DEF | 1000 |
| Level/Rank/Link | 0x6 |
| Race | 0x1 |
| Attribute | 0x20 |
| Category | 0x20000108 |
Card Text
text
Cannot be Normal Summoned/Set.
Must first be Special Summoned (from your hand) by Tributing 1 "Flower Cardian" monster, except "Flower Cardian Peony with Butterfly".
If this card is Special Summoned: Draw 1 card, and if you do, show it, then, if it is a "Flower Cardian" monster, look at the top 3 cards of your opponent's Deck, then place them all on the top or bottom of the Deck in any order.
Otherwise, send it to the Graveyard.
When this card is used as Synchro Material, you can treat it and all other Synchro Materials (that have a Level) as Level 2 monsters.Detected API Calls
Auxiliary.MustMaterialCheckAuxiliary.StringidCard.EnableReviveLimitCard.GetControlerCard.GetLevelCard.GetSynchroLevelCard.IsCanBeSynchroMaterialCard.IsCodeCard.IsControlerCard.IsFaceupCard.IsFaceupExCard.IsSetCardCard.IsTypeCard.RegisterEffectDuel.BreakEffectDuel.CheckReleaseGroupExDuel.ConfirmCardsDuel.DrawDuel.GetChainInfoDuel.GetDecktopGroupDuel.GetFieldGroupCountDuel.GetLocationCountFromExDuel.GetMZoneCountDuel.GetOperatedGroupDuel.GetReleaseGroupDuel.GetSynchroMaterialDuel.HintDuel.MoveSequenceDuel.ReleaseDuel.SelectOptionDuel.SendtoGraveDuel.SetOperationInfoDuel.SetSynchroMaterialDuel.SetTargetParamDuel.SetTargetPlayerDuel.ShuffleHandDuel.SortDecktopEffect.CreateEffectEffect.GetHandlerEffect.GetLabelObject- ...and 22 more
Script
lua
--花札衛-牡丹に蝶-
function c57261568.initial_effect(c)
c:EnableReviveLimit()
--special summon rule
local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_HAND)
e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetCondition(c57261568.hspcon)
e1:SetTarget(c57261568.hsptg)
e1:SetOperation(c57261568.hspop)
c:RegisterEffect(e1)
--draw
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(57261568,0))
e2:SetCategory(CATEGORY_DRAW)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetTarget(c57261568.target)
e2:SetOperation(c57261568.operation)
c:RegisterEffect(e2)
--synchro level
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_SYNCHRO_MATERIAL_CUSTOM)
e3:SetTarget(c57261568.syntg)
e3:SetValue(1)
e3:SetOperation(c57261568.synop)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e4:SetCode(89818984)
e4:SetRange(LOCATION_MZONE)
c:RegisterEffect(e4)
end
function c57261568.hspfilter(c,tp)
return c:IsSetCard(0xe6) and not c:IsCode(57261568)
and Duel.GetMZoneCount(tp,c)>0 and (c:IsControler(tp) or c:IsFaceup())
end
function c57261568.hspcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
return Duel.CheckReleaseGroupEx(tp,c57261568.hspfilter,1,REASON_SPSUMMON,false,nil,tp)
end
function c57261568.hsptg(e,tp,eg,ep,ev,re,r,rp,chk,c)
local g=Duel.GetReleaseGroup(tp,false,REASON_SPSUMMON):Filter(c57261568.hspfilter,nil,tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local tc=g:SelectUnselect(nil,tp,false,true,1,1)
if tc then
e:SetLabelObject(tc)
return true
else return false end
end
function c57261568.hspop(e,tp,eg,ep,ev,re,r,rp,c)
local g=e:GetLabelObject()
Duel.Release(g,REASON_SPSUMMON)
end
function c57261568.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(1)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end
function c57261568.operation(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
if Duel.Draw(p,d,REASON_EFFECT)~=0 then
local tc=Duel.GetOperatedGroup():GetFirst()
Duel.ConfirmCards(1-tp,tc)
if tc:IsType(TYPE_MONSTER) and tc:IsSetCard(0xe6) then
local ct=math.min(3,Duel.GetFieldGroupCount(1-tp,LOCATION_DECK,0))
if ct==0 then return end
Duel.BreakEffect()
local g=Duel.GetDecktopGroup(1-tp,ct)
Duel.ConfirmCards(tp,g)
local opt=Duel.SelectOption(tp,aux.Stringid(57261568,1),aux.Stringid(57261568,2))
Duel.SortDecktop(tp,1-tp,ct)
if opt==1 then
for i=1,ct do
local mg=Duel.GetDecktopGroup(1-tp,1)
Duel.MoveSequence(mg:GetFirst(),SEQ_DECKBOTTOM)
end
end
else
Duel.BreakEffect()
Duel.SendtoGrave(tc,REASON_EFFECT)
end
Duel.ShuffleHand(tp)
end
end
function c57261568.cardiansynlevel(c)
return 2
end
function c57261568.synfilter(c,syncard,tuner,f)
return c:IsFaceupEx() and c:IsCanBeSynchroMaterial(syncard,tuner) and (f==nil or f(c,syncard))
end
function c57261568.syncheck(c,g,mg,tp,lv,syncard,minc,maxc)
g:AddCard(c)
local ct=g:GetCount()
local res=c57261568.syngoal(g,tp,lv,syncard,minc,ct)
or (ct<maxc and mg:IsExists(c57261568.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc))
g:RemoveCard(c)
return res
end
function c57261568.syngoal(g,tp,lv,syncard,minc,ct)
return ct>=minc and Duel.GetLocationCountFromEx(tp,tp,g,syncard)>0
and (g:CheckWithSumEqual(Card.GetSynchroLevel,lv,ct,ct,syncard)
or g:CheckWithSumEqual(c57261568.cardiansynlevel,lv,ct,ct,syncard))
and aux.MustMaterialCheck(g,tp,EFFECT_MUST_BE_SMATERIAL)
end
function c57261568.syntg(e,syncard,f,min,max)
local minc=min+1
local maxc=max+1
local c=e:GetHandler()
local tp=syncard:GetControler()
local lv=syncard:GetLevel()
if lv<=c:GetLevel() and lv<=c57261568.cardiansynlevel(c) then return false end
local g=Group.FromCards(c)
local mg=Duel.GetSynchroMaterial(tp):Filter(c57261568.synfilter,c,syncard,c,f)
return mg:IsExists(c57261568.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc)
end
function c57261568.synop(e,tp,eg,ep,ev,re,r,rp,syncard,f,min,max)
local minc=min+1
local maxc=max+1
local c=e:GetHandler()
local lv=syncard:GetLevel()
local g=Group.FromCards(c)
local mg=Duel.GetSynchroMaterial(tp):Filter(c57261568.synfilter,c,syncard,c,f)
for i=1,maxc do
local cg=mg:Filter(c57261568.syncheck,g,g,mg,tp,lv,syncard,minc,maxc)
if cg:GetCount()==0 then break end
local minct=1
if c57261568.syngoal(g,tp,lv,syncard,minc,i) then
minct=0
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local sg=cg:Select(tp,minct,1,nil)
if sg:GetCount()==0 then break end
g:Merge(sg)
end
Duel.SetSynchroMaterial(g)
end