/
c22200403.lua
99 lines (99 loc) · 3.04 KB
/
c22200403.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
--ヒュプノシスター
function c22200403.initial_effect(c)
--atk/def
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(800)
e1:SetCondition(c22200403.effcon)
e1:SetLabel(1)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENSE)
c:RegisterEffect(e2)
--destroy
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(22200403,0))
e3:SetCategory(CATEGORY_DESTROY)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_BATTLE_START)
e3:SetCondition(c22200403.effcon)
e3:SetTarget(c22200403.destg)
e3:SetOperation(c22200403.desop)
e3:SetLabel(2)
c:RegisterEffect(e3)
--must attack
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_MUST_ATTACK)
e4:SetRange(LOCATION_MZONE)
e4:SetTargetRange(0,LOCATION_MZONE)
e4:SetCondition(c22200403.effcon)
e4:SetLabel(3)
c:RegisterEffect(e4)
local e5=e4:Clone()
e5:SetCode(EFFECT_MUST_ATTACK_MONSTER)
e5:SetValue(c22200403.atklimit)
c:RegisterEffect(e5)
--draw
local e7=Effect.CreateEffect(c)
e7:SetDescription(aux.Stringid(22200403,1))
e7:SetCategory(CATEGORY_DRAW)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e7:SetCode(EVENT_BATTLE_DESTROYING)
e7:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e7:SetCondition(c22200403.drcon1)
e7:SetTarget(c22200403.drtg)
e7:SetOperation(c22200403.drop)
e7:SetLabel(4)
c:RegisterEffect(e7)
local e8=Effect.CreateEffect(c)
e8:SetDescription(aux.Stringid(22200403,1))
e8:SetCategory(CATEGORY_DRAW)
e8:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e8:SetCode(EVENT_DESTROYED)
e8:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e8:SetRange(LOCATION_MZONE)
e8:SetCondition(c22200403.drcon2)
e8:SetTarget(c22200403.drtg)
e8:SetOperation(c22200403.drop)
e8:SetLabel(4)
c:RegisterEffect(e8)
end
function c22200403.effcon(e)
return Duel.GetFieldGroupCount(0,LOCATION_PZONE,LOCATION_PZONE)>=e:GetLabel()
end
function c22200403.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=e:GetHandler():GetBattleTarget()
if chk==0 then return tc and tc:IsFaceup() and tc:IsSummonType(SUMMON_TYPE_PENDULUM) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,tc,1,0,0)
end
function c22200403.desop(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetHandler():GetBattleTarget()
if tc:IsRelateToBattle() then
Duel.Destroy(tc,REASON_EFFECT)
end
end
function c22200403.atklimit(e,c)
return c==e:GetHandler()
end
function c22200403.drcon1(e,tp,eg,ep,ev,re,r,rp)
return c22200403.effcon(e)
and e:GetHandler():IsRelateToBattle()
end
function c22200403.drtg(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 c22200403.drop(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Draw(p,d,REASON_EFFECT)
end
function c22200403.drcon2(e,tp,eg,ep,ev,re,r,rp)
return c22200403.effcon(e)
and bit.band(r,REASON_EFFECT)~=0 and re:GetHandler()==e:GetHandler()
end