Advertisement
Yamian

c999999983.lua (YGOPRO-Magical Hats)

Jun 21st, 2016
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.45 KB | None | 0 0
  1. --Magical Hats
  2. --COPYRIGHT by Yami An
  3. function c999999983.initial_effect(c)
  4.     --Activate
  5.     local e1=Effect.CreateEffect(c)
  6.     e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
  7.     e1:SetType(EFFECT_TYPE_ACTIVATE)
  8.     e1:SetCode(EVENT_FREE_CHAIN)
  9.     e1:SetHintTiming(0,TIMING_BATTLE_START+TIMING_BATTLE_END)
  10.     e1:SetCondition(c999999983.condition)
  11.     e1:SetTarget(c999999983.target)
  12.     e1:SetOperation(c999999983.activate)
  13.     c:RegisterEffect(e1)
  14. end
  15. function c999999983.condition(e,tp,eg,ep,ev,re,r,rp)
  16.     return Duel.GetTurnPlayer()~=tp and Duel.GetCurrentPhase()==PHASE_BATTLE
  17. end
  18. function c999999983.filter(c)
  19.     return not c:IsType(TYPE_TOKEN)
  20. end
  21. function c999999983.spfilter(c,tp)
  22.     return c:IsFacedown() and c:IsCode(999999982)
  23. end
  24. function c999999983.target(e,tp,eg,ep,ev,re,r,rp,chk)
  25.     if chk==0 then
  26.         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)
  27.     end
  28.     Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,3,0,0)
  29. end
  30. function c999999983.activate(e,tp,eg,ep,ev,re,r,rp)
  31.     if Duel.GetLocationCount(tp,LOCATION_MZONE)>2 and Duel.IsPlayerCanSpecialSummonMonster(tp,999999982,0,0x4011,0,0,0,0,0) then
  32.         local tc=Duel.SelectMatchingCard(tp,c999999983.filter,tp,LOCATION_MZONE,0,1,1,nil):GetFirst()
  33.         if not tc or tc:IsImmuneToEffect(e) then return end
  34.         Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
  35.         if tc:IsFaceup() then
  36.             if tc:IsHasEffect(EFFECT_DEVINE_LIGHT) then
  37.                 Duel.ChangePosition(tc,POS_FACEUP_DEFENCE)
  38.             else
  39.                 Duel.ChangePosition(tc,POS_FACEDOWN_DEFENCE)
  40.                 tc:ClearEffectRelation()
  41.             end
  42.         end
  43.         for i=1,3 do
  44.             local token=Duel.CreateToken(tp,999999982)
  45.             Duel.SpecialSummonStep(token,0,tp,tp,false,false,POS_FACEDOWN_DEFENCE)
  46.             --Destroy
  47.             local e1=Effect.CreateEffect(token)
  48.             e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_FLIP)
  49.             e1:SetOperation(c999999983.operation)
  50.             token:RegisterEffect(e1,true)
  51.         end
  52.         Duel.SpecialSummonComplete()
  53.         local sg=Duel.GetMatchingGroup(c999999983.spfilter,tp,LOCATION_MZONE,0,nil,tp)
  54.         sg:AddCard(tc)
  55.         Duel.ShuffleSetCard(sg)
  56.     end
  57. end
  58. function c999999983.operation(e,tp,eg,ep,ev,re,r,rp)
  59.     local c=e:GetHandler()
  60.     local e1=Effect.CreateEffect(c)
  61.     e1:SetType(EFFECT_TYPE_SINGLE)
  62.     e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE)
  63.     e1:SetRange(LOCATION_MZONE)
  64.     e1:SetCode(EFFECT_SELF_DESTROY)
  65.     c:RegisterEffect(e1)
  66. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement