Advertisement
Yamian

c999999981.lua (YGOPRO-Spellbinding Circle)

Jun 24th, 2016
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.21 KB | None | 0 0
  1. --Spellbinding Circle
  2. --COPYRIGHT by Yami An
  3. function c999999981.initial_effect(c)
  4.     --Activate
  5.     local e1=Effect.CreateEffect(c)
  6.     e1:SetCategory(CATEGORY_POSITION)
  7.     e1:SetType(EFFECT_TYPE_ACTIVATE)
  8.     e1:SetCode(EVENT_FREE_CHAIN)
  9.     e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
  10.     e1:SetTarget(c999999981.target)
  11.     e1:SetOperation(c999999981.operation)
  12.     c:RegisterEffect(e1)
  13.     --Destroy
  14.     local e2=Effect.CreateEffect(c)
  15.     e2:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
  16.     e2:SetRange(LOCATION_SZONE)
  17.     e2:SetCode(EVENT_LEAVE_FIELD)
  18.     e2:SetCondition(c999999981.descon)
  19.     e2:SetOperation(c999999981.desop)
  20.     c:RegisterEffect(e2)
  21.     e1:SetLabelObject(e2)
  22. end
  23. function c999999981.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
  24.     if chkc then
  25.         return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp)
  26.     end
  27.     if chk==0 then
  28.         return Duel.IsExistingTarget(nil,tp,0,LOCATION_MZONE,1,nil)
  29.     end
  30.     Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
  31.     Duel.SelectTarget(tp,nil,tp,0,LOCATION_MZONE,1,1,nil)
  32. end
  33. function c999999981.operation(e,tp,eg,ep,ev,re,r,rp)
  34.     local c=e:GetHandler()
  35.     local tc=Duel.GetFirstTarget()
  36.     if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) then
  37.         c:SetCardTarget(tc)
  38.         c:CreateRelation(tc,RESET_EVENT+0x1fe0000)
  39.         e:GetLabelObject():SetLabelObject(tc)
  40.         local e1=Effect.CreateEffect(c)
  41.         e1:SetType(EFFECT_TYPE_SINGLE)
  42.         e1:SetProperty(EFFECT_FLAG_OWNER_RELATE)
  43.         e1:SetCode(EFFECT_CANNOT_CHANGE_POSITION)
  44.         e1:SetReset(RESET_EVENT+0x1fc0000)
  45.         e1:SetCondition(c999999981.rcon)
  46.         tc:RegisterEffect(e1,true)
  47.         local e2=e1:Clone()
  48.         e2:SetCode(EFFECT_CANNOT_ATTACK)
  49.         tc:RegisterEffect(e2,true)
  50.         --ATK down
  51.         local e3=e1:Clone()
  52.         e3:SetCode(EFFECT_UPDATE_ATTACK)
  53.         e3:SetValue(-700)
  54.         tc:RegisterEffect(e3,true)
  55.     end
  56. end
  57. function c999999981.rcon(e)
  58.     return not e:GetHandler():IsImmuneToEffect(e) and e:GetOwner():IsRelateToCard(e:GetHandler())
  59. end
  60. function c999999981.descon(e,tp,eg,ep,ev,re,r,rp)
  61.     local c=e:GetHandler()
  62.     if c:IsStatus(STATUS_DESTROY_CONFIRMED) then return false end
  63.     local tc=e:GetLabelObject()
  64.     return tc and eg:IsContains(tc) and tc:IsReason(REASON_DESTROY) and c:IsRelateToCard(tc)
  65. end
  66. function c999999981.desop(e,tp,eg,ep,ev,re,r,rp)
  67.     Duel.Destroy(e:GetHandler(),REASON_EFFECT)
  68. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement