Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Magical Hats
- --COPYRIGHT by Yami An
- function c999999983.initial_effect(c)
- --Activate
- local e1=Effect.CreateEffect(c)
- e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
- e1:SetType(EFFECT_TYPE_ACTIVATE)
- e1:SetCode(EVENT_FREE_CHAIN)
- e1:SetHintTiming(0,TIMING_BATTLE_START+TIMING_BATTLE_END)
- e1:SetCondition(c999999983.condition)
- e1:SetTarget(c999999983.target)
- e1:SetOperation(c999999983.activate)
- c:RegisterEffect(e1)
- end
- function c999999983.condition(e,tp,eg,ep,ev,re,r,rp)
- return Duel.GetTurnPlayer()~=tp and Duel.GetCurrentPhase()==PHASE_BATTLE
- end
- function c999999983.filter(c)
- return not c:IsType(TYPE_TOKEN)
- end
- function c999999983.spfilter(c,tp)
- return c:IsFacedown() and c:IsCode(999999982)
- end
- function c999999983.target(e,tp,eg,ep,ev,re,r,rp,chk)
- if chk==0 then
- return Duel.GetLocationCount(tp,LOCATION_MZONE)>2 and Duel.IsPlayerCanSpecialSummonMonster(tp,999999982,0,0x4011,0,0,0,0,0) and Duel.IsExistingMatchingCard(c999999983.filter,tp,LOCATION_MZONE,0,1,nil)
- end
- Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,3,0,0)
- end
- function c999999983.activate(e,tp,eg,ep,ev,re,r,rp)
- if Duel.GetLocationCount(tp,LOCATION_MZONE)>2 and Duel.IsPlayerCanSpecialSummonMonster(tp,999999982,0,0x4011,0,0,0,0,0) then
- local tc=Duel.SelectMatchingCard(tp,c999999983.filter,tp,LOCATION_MZONE,0,1,1,nil):GetFirst()
- if not tc or tc:IsImmuneToEffect(e) then return end
- Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
- if tc:IsFaceup() then
- if tc:IsHasEffect(EFFECT_DEVINE_LIGHT) then
- Duel.ChangePosition(tc,POS_FACEUP_DEFENCE)
- else
- Duel.ChangePosition(tc,POS_FACEDOWN_DEFENCE)
- tc:ClearEffectRelation()
- end
- end
- for i=1,3 do
- local token=Duel.CreateToken(tp,999999982)
- Duel.SpecialSummonStep(token,0,tp,tp,false,false,POS_FACEDOWN_DEFENCE)
- --Destroy
- local e1=Effect.CreateEffect(token)
- e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_FLIP)
- e1:SetOperation(c999999983.operation)
- token:RegisterEffect(e1,true)
- end
- Duel.SpecialSummonComplete()
- local sg=Duel.GetMatchingGroup(c999999983.spfilter,tp,LOCATION_MZONE,0,nil,tp)
- sg:AddCard(tc)
- Duel.ShuffleSetCard(sg)
- end
- end
- function c999999983.operation(e,tp,eg,ep,ev,re,r,rp)
- local c=e:GetHandler()
- local e1=Effect.CreateEffect(c)
- e1:SetType(EFFECT_TYPE_SINGLE)
- e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE)
- e1:SetRange(LOCATION_MZONE)
- e1:SetCode(EFFECT_SELF_DESTROY)
- c:RegisterEffect(e1)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement