Commit b8ee1f64 authored by POLYMER's avatar POLYMER

fix

parent 8f0aa358
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -124,9 +124,9 @@ fucs.cod = { ...@@ -124,9 +124,9 @@ fucs.cod = {
RE = EVENT_REMOVE , RE = EVENT_REMOVE ,
MO = EVENT_MOVE , MO = EVENT_MOVE ,
--召唤 --召唤
PS = EVENT_SUMMON , --召唤之际(怪兽还没上场、神宣等时点) PS = EVENT_SUMMON , --召唤之际(怪兽还没上场、神宣等时点)
PSP = EVENT_SPSUMMON , --特殊召唤之际 PSP = EVENT_SPSUMMON , --特殊召唤之际
PFS = EVENT_FLIP_SUMMON , --翻转召唤之际 PFS = EVENT_FLIP_SUMMON , --翻转召唤之际
S = EVENT_SUMMON_SUCCESS , --通常召唤成功时 S = EVENT_SUMMON_SUCCESS , --通常召唤成功时
SP = EVENT_SPSUMMON_SUCCESS , --特殊召唤成功时 SP = EVENT_SPSUMMON_SUCCESS , --特殊召唤成功时
FS = EVENT_FLIP_SUMMON_SUCCESS , --翻转召唤成功时 FS = EVENT_FLIP_SUMMON_SUCCESS , --翻转召唤成功时
...@@ -150,30 +150,30 @@ fucs.cod = { ...@@ -150,30 +150,30 @@ fucs.cod = {
NEGS = EVENT_SUMMON_NEGATED , --召唤被无效时 NEGS = EVENT_SUMMON_NEGATED , --召唤被无效时
NEGFS = EVENT_FLIP_SUMMON_NEGATED , --反转召唤被无效时 NEGFS = EVENT_FLIP_SUMMON_NEGATED , --反转召唤被无效时
NEGSP = EVENT_SPSUMMON_NEGATED , --特殊召唤被无效时 NEGSP = EVENT_SPSUMMON_NEGATED , --特殊召唤被无效时
NEGATK = EVENT_ATTACK_DISABLED , --攻击无效时(翻倍机会)
--连锁 --连锁
CH = EVENT_CHAINING , --效果发动时 CH = EVENT_CHAINING , --效果发动时
CHED= EVENT_CHAIN_SOLVED , --连锁处理结束时 CHED= EVENT_CHAIN_SOLVED , --连锁处理结束时
----组合时点 --攻击
PHS = EVENT_PHASE_START , ATK = EVENT_ATTACK_ANNOUNCE , --攻击宣言时
BATK= EVENT_BE_BATTLE_TARGET , --被选为攻击对象时
--需组合 阶段时点
PH = EVENT_PHASE , --阶段结束时
PHS = EVENT_PHASE_START , --阶段开始时
--[[ --[[
EVENT_CHAIN_SOLVING =1020 --连锁处理开始时(EVENT_CHAIN_ACTIVATING之後) EVENT_CHAIN_SOLVING =1020 --连锁处理开始时(EVENT_CHAIN_ACTIVATING之後)
EVENT_CHAIN_ACTIVATING =1021 --连锁处理准备中 EVENT_CHAIN_ACTIVATING =1021 --连锁处理准备中
EVENT_CHAIN_ACTIVATED =1023 --N/A EVENT_CHAIN_ACTIVATED =1023 --N/A
EVENT_CHAIN_NEGATED =1024 --连锁发动无效时(EVENT_CHAIN_ACTIVATING之後)
EVENT_CHAIN_DISABLED =1025 --连锁效果无效时
EVENT_CHAIN_END =1026 --连锁串结束时 EVENT_CHAIN_END =1026 --连锁串结束时
EVENT_BECOME_TARGET =1028 --成为效果对象时 EVENT_BECOME_TARGET =1028 --成为效果对象时
EVENT_BREAK_EFFECT =1050 --Duel.BreakEffect()被调用时 EVENT_BREAK_EFFECT =1050 --Duel.BreakEffect()被调用时
EVENT_MSET =1106 --放置怪兽时 EVENT_MSET =1106 --放置怪兽时
EVENT_SSET =1107 --放置魔陷时 EVENT_SSET =1107 --放置魔陷时
EVENT_DRAW =1110 --抽卡时
EVENT_DAMAGE =1111 --造成战斗/效果伤害时 EVENT_DAMAGE =1111 --造成战斗/效果伤害时
EVENT_RECOVER =1112 --回复生命值时 EVENT_RECOVER =1112 --回复生命值时
EVENT_PREDRAW =1113 --抽卡阶段通常抽卡前 EVENT_PREDRAW =1113 --抽卡阶段通常抽卡前
EVENT_CONTROL_CHANGED =1120 --控制权变更 EVENT_CONTROL_CHANGED =1120 --控制权变更
EVENT_EQUIP =1121 --装备卡装备时 EVENT_EQUIP =1121 --装备卡装备时
EVENT_ATTACK_ANNOUNCE =1130 --攻击宣言时
EVENT_BE_BATTLE_TARGET =1131 --被选为攻击对象时
EVENT_BATTLE_START =1132 --伤害步骤开始时(反转前) EVENT_BATTLE_START =1132 --伤害步骤开始时(反转前)
EVENT_BATTLE_CONFIRM =1133 --伤害计算前(反转後) EVENT_BATTLE_CONFIRM =1133 --伤害计算前(反转後)
EVENT_PRE_DAMAGE_CALCULATE =1134 --伤害计算时(羽斬) EVENT_PRE_DAMAGE_CALCULATE =1134 --伤害计算时(羽斬)
...@@ -184,7 +184,6 @@ EVENT_BATTLED =1138 --伤害计算后(异女、同反转效果时点) ...@@ -184,7 +184,6 @@ EVENT_BATTLED =1138 --伤害计算后(异女、同反转效果时点)
EVENT_BATTLE_DESTROYING =1139 --以战斗破坏怪兽送去墓地时(BF-苍炎之修罗) EVENT_BATTLE_DESTROYING =1139 --以战斗破坏怪兽送去墓地时(BF-苍炎之修罗)
EVENT_BATTLE_DESTROYED =1140 --被战斗破坏送去墓地时(杀人番茄等) EVENT_BATTLE_DESTROYED =1140 --被战斗破坏送去墓地时(杀人番茄等)
EVENT_DAMAGE_STEP_END =1141 --伤害步骤结束时 EVENT_DAMAGE_STEP_END =1141 --伤害步骤结束时
EVENT_ATTACK_DISABLED =1142 --攻击无效时(翻倍机会)
EVENT_BATTLE_DAMAGE =1143 --造成战斗伤害时 EVENT_BATTLE_DAMAGE =1143 --造成战斗伤害时
EVENT_TOSS_DICE =1150 --掷骰子的结果产生后 EVENT_TOSS_DICE =1150 --掷骰子的结果产生后
EVENT_TOSS_COIN =1151 --抛硬币的结果产生后 EVENT_TOSS_COIN =1151 --抛硬币的结果产生后
...@@ -194,8 +193,6 @@ EVENT_LEVEL_UP =1200 --等级上升时 ...@@ -194,8 +193,6 @@ EVENT_LEVEL_UP =1200 --等级上升时
EVENT_PAY_LPCOST =1201 --支付生命值时 EVENT_PAY_LPCOST =1201 --支付生命值时
EVENT_RETURN_TO_GRAVE =1203 --回到墓地时 EVENT_RETURN_TO_GRAVE =1203 --回到墓地时
EVENT_TURN_END =1210 --回合结束时 EVENT_TURN_END =1210 --回合结束时
EVENT_PHASE =0x1000 --阶段结束时
EVENT_PHASE_START =0x2000 --阶段开始时
EVENT_ADD_COUNTER =0x10000 --增加指示物时 EVENT_ADD_COUNTER =0x10000 --增加指示物时
EVENT_REMOVE_COUNTER =0x20000 --去除指示物时(A指示物),Card.RemoveCounter()必須手動觸發此事件 EVENT_REMOVE_COUNTER =0x20000 --去除指示物时(A指示物),Card.RemoveCounter()必須手動觸發此事件
--]] --]]
...@@ -219,7 +216,7 @@ fucs.pro = { ...@@ -219,7 +216,7 @@ fucs.pro = {
CAL = EFFECT_FLAG_DAMAGE_CAL , --可以在伤害计算时发动 CAL = EFFECT_FLAG_DAMAGE_CAL , --可以在伤害计算时发动
OP = EFFECT_FLAG_EVENT_PLAYER , --发动/处理效果的玩家为触发事件的玩家而不是卡片的持有者,如仪式魔人,万魔殿 OP = EFFECT_FLAG_EVENT_PLAYER , --发动/处理效果的玩家为触发事件的玩家而不是卡片的持有者,如仪式魔人,万魔殿
NR = EFFECT_FLAG_NO_TURN_RESET , --发条等“这张卡在场上只能发动一次”的效果 NR = EFFECT_FLAG_NO_TURN_RESET , --发条等“这张卡在场上只能发动一次”的效果
OE = 0x40400 , --EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE(out effect) OE = 0x40400 , --EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE(out effect)
} }
--Location Variable --Location Variable
fucs.ran = { fucs.ran = {
...@@ -237,13 +234,19 @@ fucs.ran = { ...@@ -237,13 +234,19 @@ fucs.ran = {
["P"] = LOCATION_PZONE , ["P"] = LOCATION_PZONE ,
["A"] = 0xff ["A"] = 0xff
} }
--Countlimit Variable
fucs.ctl = {
O = EFFECT_COUNT_CODE_OATH,
D = EFFECT_COUNT_CODE_DUEL,
C = EFFECT_COUNT_CODE_CHAIN,
}
--Phase Variable --Phase Variable
fucs.pha = { fucs.pha = {
DP = PHASE_DRAW , --抽卡阶段 DP = PHASE_DRAW , --抽卡阶段
SP = PHASE_STANDBY , --准备阶段 SP = PHASE_STANDBY , --准备阶段
M1 = PHASE_MAIN1 , --主要阶段1 M1 = PHASE_MAIN1 , --主要阶段1
BPS = PHASE_BATTLE_START, --战斗阶段开始 BPS = PHASE_BATTLE_START, --战斗阶段开始
BP = PHASE_BATTLE_STEP , --战斗步驟 BS = PHASE_BATTLE_STEP , --战斗步驟
DS = PHASE_DAMAGE , --伤害步驟 DS = PHASE_DAMAGE , --伤害步驟
DC = PHASE_DAMAGE_CAL , --伤害计算时 DC = PHASE_DAMAGE_CAL , --伤害计算时
BPE = PHASE_BATTLE , --战斗阶段結束 BPE = PHASE_BATTLE , --战斗阶段結束
...@@ -396,5 +399,21 @@ fucs.val = { ...@@ -396,5 +399,21 @@ fucs.val = {
LI = SUMMON_TYPE_LINK , LI = SUMMON_TYPE_LINK ,
--Summon Value --特定的召唤方式 --Summon Value --特定的召唤方式
SELF = SUMMON_VALUE_SELF , SELF = SUMMON_VALUE_SELF ,
SYM = SUMMON_VALUE_SYNCHRO_MATERIAL SYM = SUMMON_VALUE_SYNCHRO_MATERIAL ,
} --location Value --离场重定向
\ No newline at end of file H = LOCATION_HAND ,
D = LOCATION_DECK ,
G = LOCATION_GRAVE ,
R = LOCATION_REMOVED,
E = LOCATION_EXTRA ,
}
--Value Variable
fucs.act = {
S = ACTIVITY_SUMMON , --召唤(不包括通常召唤的set)
NS = ACTIVITY_NORMALSUMMON , --通常召唤(包括通常召唤的set)
SP = ACTIVITY_SPSUMMON , --特殊召唤
FS = ACTIVITY_FLIPSUMMON , --反转召唤
ATK = ACTIVITY_ATTACK , --攻击
CH = ACTIVITY_CHAIN , --发动效果
}
...@@ -160,6 +160,10 @@ function s.fspop(e,tp,eg,ep,ev,re,r,rp) ...@@ -160,6 +160,10 @@ function s.fspop(e,tp,eg,ep,ev,re,r,rp)
if sg1:IsContains(tc) and (sg2==nil or not sg2:IsContains(tc) or ce and not Duel.SelectYesNo(tp,ce:GetDescription())) then if sg1:IsContains(tc) and (sg2==nil or not sg2:IsContains(tc) or ce and not Duel.SelectYesNo(tp,ce:GetDescription())) then
local mat1=Duel.SelectFusionMaterial(tp,tc,mg1,nil,chkf) local mat1=Duel.SelectFusionMaterial(tp,tc,mg1,nil,chkf)
if #mat1==0 then goto cancel end if #mat1==0 then goto cancel end
if mat1:IsExists(Card.IsFacedown,1,nil) then
Duel.ConfirmCards(1-tp,mat1)
end
Duel.HintSelection(mat1)
tc:SetMaterial(mat1) tc:SetMaterial(mat1)
Duel.SendtoGrave(mat1,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION) Duel.SendtoGrave(mat1,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION)
Duel.BreakEffect() Duel.BreakEffect()
...@@ -167,6 +171,10 @@ function s.fspop(e,tp,eg,ep,ev,re,r,rp) ...@@ -167,6 +171,10 @@ function s.fspop(e,tp,eg,ep,ev,re,r,rp)
elseif ce~=nil then elseif ce~=nil then
local mat2=Duel.SelectFusionMaterial(tp,tc,mg2,nil,chkf) local mat2=Duel.SelectFusionMaterial(tp,tc,mg2,nil,chkf)
if #mat2==0 then goto cancel end if #mat2==0 then goto cancel end
if mat2:IsExists(Card.IsFacedown,1,nil) then
Duel.ConfirmCards(1-tp,mat2)
end
Duel.HintSelection(mat2)
local fop=ce:GetOperation() local fop=ce:GetOperation()
fop(ce,e,tp,tc,mat2) fop(ce,e,tp,tc,mat2)
end end
......
...@@ -90,11 +90,21 @@ function c66620515.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -90,11 +90,21 @@ function c66620515.activate(e,tp,eg,ep,ev,re,r,rp)
if sg1:IsContains(tc) and (sg2==nil or not sg2:IsContains(tc) or not Duel.SelectYesNo(tp,ce:GetDescription())) then if sg1:IsContains(tc) and (sg2==nil or not sg2:IsContains(tc) or not Duel.SelectYesNo(tp,ce:GetDescription())) then
local mat1=Duel.SelectFusionMaterial(tp,tc,mg1,nil,chkf) local mat1=Duel.SelectFusionMaterial(tp,tc,mg1,nil,chkf)
tc:SetMaterial(mat1) tc:SetMaterial(mat1)
if mat1:IsExists(Card.IsFacedown, 1, nil) then
local g=mat1:Filter(Card.IsFacedown, nil)
Duel.ConfirmCards(1-tp, g)
end
Duel.HintSelection(mat1)
Duel.Remove(mat1,POS_FACEUP,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION) Duel.Remove(mat1,POS_FACEUP,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION)
Duel.BreakEffect() Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_FUSION,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(tc,SUMMON_TYPE_FUSION,tp,tp,false,false,POS_FACEUP)
else else
local mat2=Duel.SelectFusionMaterial(tp,tc,mg3,nil,chkf) local mat2=Duel.SelectFusionMaterial(tp,tc,mg3,nil,chkf)
if mat2:IsExists(Card.IsFacedown, 1, nil) then
local g=mat2:Filter(Card.IsFacedown, nil)
Duel.ConfirmCards(1-tp, g)
end
Duel.HintSelection(mat2)
local fop=ce:GetOperation() local fop=ce:GetOperation()
fop(ce,e,tp,tc,mat2) fop(ce,e,tp,tc,mat2)
end end
......
...@@ -2,111 +2,113 @@ ...@@ -2,111 +2,113 @@
local m=89390003 local m=89390003
local cm=_G["c"..m] local cm=_G["c"..m]
function cm.initial_effect(c) function cm.initial_effect(c)
c:EnableReviveLimit() c:EnableReviveLimit()
aux.AddFusionProcFunRep(c,cm.ffilter,3,true) aux.AddFusionProcFunRep(c,cm.ffilter,3,true)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_SUMMON_SUCCESS) e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.limcon) e1:SetCondition(cm.limcon)
e1:SetOperation(cm.limop) e1:SetOperation(cm.limop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e2=e1:Clone() local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS) e2:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e0=e1:Clone() local e0=e1:Clone()
e0:SetCode(EVENT_FLIP_SUMMON_SUCCESS) e0:SetCode(EVENT_FLIP_SUMMON_SUCCESS)
c:RegisterEffect(e0) c:RegisterEffect(e0)
local e5=Effect.CreateEffect(c) local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e5:SetRange(LOCATION_MZONE) e5:SetRange(LOCATION_MZONE)
e5:SetCode(EVENT_CHAIN_END) e5:SetCode(EVENT_CHAIN_END)
e5:SetOperation(cm.limop2) e5:SetOperation(cm.limop2)
c:RegisterEffect(e5) c:RegisterEffect(e5)
local e6=Effect.CreateEffect(c) local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e6:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e6:SetCode(EVENT_CHAINING) e6:SetCode(EVENT_CHAINING)
e6:SetRange(LOCATION_MZONE) e6:SetRange(LOCATION_MZONE)
e6:SetCondition(cm.limcon) e6:SetCondition(cm.limcon)
e6:SetOperation(cm.chainop) e6:SetOperation(cm.chainop)
c:RegisterEffect(e6) c:RegisterEffect(e6)
local e7=Effect.CreateEffect(c) local e7=Effect.CreateEffect(c)
e7:SetDescription(aux.Stringid(m,0)) e7:SetDescription(aux.Stringid(m,0))
e7:SetCategory(CATEGORY_REMOVE+CATEGORY_DRAW) e7:SetCategory(CATEGORY_REMOVE+CATEGORY_DRAW)
e7:SetType(EFFECT_TYPE_QUICK_O) e7:SetType(EFFECT_TYPE_QUICK_O)
e7:SetCode(EVENT_FREE_CHAIN) e7:SetCode(EVENT_FREE_CHAIN)
e7:SetProperty(EFFECT_FLAG_NO_TURN_RESET) e7:SetProperty(EFFECT_FLAG_NO_TURN_RESET)
e7:SetRange(LOCATION_MZONE) e7:SetRange(LOCATION_MZONE)
e7:SetCountLimit(1,EFFECT_COUNT_CODE_SINGLE) e7:SetCountLimit(1,EFFECT_COUNT_CODE_SINGLE)
e7:SetTarget(cm.destg) e7:SetTarget(cm.destg)
e7:SetOperation(cm.desop) e7:SetOperation(cm.desop)
c:RegisterEffect(e7) c:RegisterEffect(e7)
local e8=e7:Clone() local e8=e7:Clone()
e8:SetDescription(aux.Stringid(m,1)) e8:SetDescription(aux.Stringid(m,1))
e8:SetTarget(cm.destg2) e8:SetTarget(cm.destg2)
e8:SetOperation(cm.desop2) e8:SetOperation(cm.desop2)
c:RegisterEffect(e8) c:RegisterEffect(e8)
end end
function cm.ffilter(c,fc,sub,mg,sg) function cm.ffilter(c,fc,sub,mg,sg)
return c:IsRace(RACE_PSYCHO) and (not sg or not sg:IsExists(Card.IsFusionCode,1,c,c:GetFusionCode())) return c:IsRace(RACE_PSYCHO) and (not sg or not sg:IsExists(Card.IsFusionCode,1,c,c:GetFusionCode()))
end end
function cm.chainlm(e,rp,tp) function cm.chainlm(e,rp,tp)
return tp==rp return tp==rp
end end
function cm.limcon(e,tp,eg,ep,ev,re,r,rp) function cm.limcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=c:GetMaterial() local g=c:GetMaterial()
return c:IsSummonType(SUMMON_TYPE_FUSION) and g:IsExists(Card.IsFusionCode,1,nil,89390000) and g:IsExists(Card.IsFusionCode,1,nil,89390001) and g:IsExists(Card.IsFusionCode,1,nil,89390002) return c:IsSummonType(SUMMON_TYPE_FUSION) and g:IsExists(Card.IsFusionCode,1,nil,89390000) and g:IsExists(Card.IsFusionCode,1,nil,89390001) and g:IsExists(Card.IsFusionCode,1,nil,89390002)
end end
function cm.limop(e,tp,eg,ep,ev,re,r,rp) function cm.limop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetCurrentChain()==0 then if Duel.GetCurrentChain()==0 then
Duel.SetChainLimitTillChainEnd(cm.chainlm) Duel.SetChainLimitTillChainEnd(cm.chainlm)
elseif Duel.GetCurrentChain()==1 then elseif Duel.GetCurrentChain()==1 then
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1) e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
end end
end end
function cm.limop2(e,tp,eg,ep,ev,re,r,rp) function cm.limop2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=c:GetMaterial() local g=c:GetMaterial()
if c:IsSummonType(SUMMON_TYPE_FUSION) and g:IsExists(Card.IsFusionCode,1,nil,89390000) and g:IsExists(Card.IsFusionCode,1,nil,89390001) and g:IsExists(Card.IsFusionCode,1,nil,89390002) and c:GetFlagEffect(m)>0 then if c:IsSummonType(SUMMON_TYPE_FUSION) and g:IsExists(Card.IsFusionCode,1,nil,89390000) and g:IsExists(Card.IsFusionCode,1,nil,89390001) and g:IsExists(Card.IsFusionCode,1,nil,89390002) and c:GetFlagEffect(m)>0 then
Duel.SetChainLimitTillChainEnd(cm.chainlm) Duel.SetChainLimitTillChainEnd(cm.chainlm)
end end
c:ResetFlagEffect(m) c:ResetFlagEffect(m)
end end
function cm.chainop(e,tp,eg,ep,ev,re,r,rp) function cm.chainop(e,tp,eg,ep,ev,re,r,rp)
Duel.SetChainLimit(cm.chainlm) Duel.SetChainLimit(cm.chainlm)
end end
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetFieldGroup(tp,LOCATION_HAND,0) local g=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
local gc=g:GetCount() local gc=g:GetCount()
if chk==0 then return gc>0 and g:FilterCount(Card.IsAbleToRemove,nil)==gc and Duel.IsPlayerCanDraw(tp,gc) end if chk==0 then return gc>0 and g:FilterCount(Card.IsAbleToRemove,nil)==gc and Duel.IsPlayerCanDraw(tp,gc) end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,gc,0,0) Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,gc) Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,gc,0,0)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,gc)
end end
function cm.desop(e,tp,eg,ep,ev,re,r,rp) function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetFieldGroup(tp,LOCATION_HAND,0) local g=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
local gc=g:GetCount() local gc=g:GetCount()
if gc>0 and g:FilterCount(Card.IsAbleToRemove,nil)==gc then if gc>0 and g:FilterCount(Card.IsAbleToRemove,nil)==gc then
local oc=Duel.Remove(g,POS_FACEUP,REASON_EFFECT) local oc=Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
if oc>0 then if oc>0 then
Duel.Draw(tp,oc,REASON_EFFECT) Duel.Draw(tp,oc,REASON_EFFECT)
end end
end end
end end
function cm.destg2(e,tp,eg,ep,ev,re,r,rp,chk) function cm.destg2(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetFieldGroup(tp,0,LOCATION_HAND) local g=Duel.GetFieldGroup(tp,0,LOCATION_HAND)
local gc=g:GetCount() local gc=g:GetCount()
if chk==0 then return gc>0 and g:FilterCount(Card.IsAbleToRemove,nil)==gc and Duel.IsPlayerCanDraw(1-tp) end if chk==0 then return gc>0 and g:FilterCount(Card.IsAbleToRemove,nil)==gc and Duel.IsPlayerCanDraw(1-tp) end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,gc,0,0) Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,1-tp,gc) Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,gc,0,0)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,1-tp,gc)
end end
function cm.desop2(e,tp,eg,ep,ev,re,r,rp) function cm.desop2(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetFieldGroup(tp,0,LOCATION_HAND) local g=Duel.GetFieldGroup(tp,0,LOCATION_HAND)
local gc=g:GetCount() local gc=g:GetCount()
if gc>0 and g:FilterCount(Card.IsAbleToRemove,nil)==gc then if gc>0 and g:FilterCount(Card.IsAbleToRemove,nil)==gc then
local oc=Duel.Remove(g,POS_FACEUP,REASON_EFFECT) local oc=Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
if oc>0 then if oc>0 then
Duel.Draw(1-tp,oc,REASON_EFFECT) Duel.Draw(1-tp,oc,REASON_EFFECT)
end end
end end
end end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment