Commit 04bf00f8 authored by POLYMER's avatar POLYMER

fix

parent 367c5955
--向空挥拳!
function c33703032.initial_effect(c)
--这张卡在自己场上有且仅有1只怪兽存在的场合可以从手卡发动。
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_TRAP_ACT_IN_HAND)
e1:SetCondition(c33703032.handcon)
c:RegisterEffect(e1)
--自己场上只有这张卡和1只怪兽的场合才能发动。自己场上的怪兽的攻击力·守备力变成5000。自己没有手卡的场合,自己场上的怪兽直到下个对方的结束阶段时不受效果影响。是自己回合的场合,这个回合结束。
local e2=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_ATKCHANGE+CATEGORY_DEFCHANGE)
e1:SetCategory(CATEGORY_DISABLE+CATEGORY_ATKCHANGE+CATEGORY_DEFCHANGE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCode(EVENT_CHAINING)
e1:SetCondition(c33703032.condition)
e1:SetTarget(c33703032.target)
e1:SetOperation(c33703032.activate)
c:RegisterEffect(e1)
--act in hand
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_TRAP_ACT_IN_HAND)
e2:SetCondition(c33703032.handcon)
c:RegisterEffect(e2)
end
--这张卡在自己场上有且仅有1只怪兽存在的场合可以从手卡发动。
function c33703032.handcon(e)
return Duel.GetFieldGroupCount(e:GetHandlerPlayer(),LOCATION_MZONE,0)==1 and Duel.GetFieldGroupCount(e:GetHandlerPlayer(),LOCATION_ONFIELD,0)==1
end
function c33703032.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFieldGroupCount(e:GetHandlerPlayer(),LOCATION_ONFIELD,0)==2 and Duel.GetFieldGroupCount(e:GetHandlerPlayer(),LOCATION_MZONE,0)==1 and Duel.GetFieldGroupCount(e:GetHandlerPlayer(),LOCATION_SZONE,0)==1
if not (Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)==1
and not Duel.IsExistingMatchingCard(aux.TRUE,tp,LOCATION_ONFIELD,0,2,e:GetHandler())) then return false end
for i=1,ev do
if Duel.IsChainDisablable(i) then return true end
end
return false
end
--自己场上只有这张卡和1只怪兽的场合才能发动。自己场上的怪兽的攻击力·守备力变成5000。
function c33703032.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local dg=Group.CreateGroup()
for i=1,ev do
Duel.NegateActivation(i)
local te=Duel.GetChainInfo(i,CHAININFO_TRIGGERING_EFFECT)
if Duel.IsChainNegatable(i) then dg:AddCard(te:GetHandler()) end
end
if chk==0 then return Duel.IsExistingTarget(Card.IsFaceup(),tp,LOCATION_MZONE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DISABLE,dg,dg:GetCount(),0,0)
end
function c33703032.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(Card.IsFaceup(),tp,LOCATION_MZONE,0,nil)
local tc=g:GetFirst()
while tc do
for i=1,ev do Duel.NegateEffect(i) end
local sg=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,0,nil)
for sc in aux.Next(sg) do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetCode(EFFECT_SET_BASE_ATTACK_FINAL)
e1:SetValue(5000)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_SET_DEFENSE)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
e2:SetValue(5000)
tc:RegisterEffect(e2)
--自己没有手卡的场合,自己场上的怪兽直到下个对方的结束阶段时不受效果影响。
if Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)==0 then
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
sc:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_SET_BASE_DEFENSE_FINAL)
sc:RegisterEffect(e2)
end
if Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)==0 then
local tg=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_MZONE,0,nil)
for tc in aux.Next(tg) do
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_CANNOT_DISABLE)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EFFECT_IMMUNE_EFFECT)
e3:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e3:SetValue(c33703032.efilter)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
e3:SetValue(c33703032.value)
tc:RegisterEffect(e3)
end
tc=g:GetNext()
end
--是自己回合的场合,这个回合结束。
if Duel.GetTurnPlayer()==1-tp then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetCode(EFFECT_SKIP_TURN)
e1:SetReset(RESET_PHASE+PHASE_END+RESET_SELF_TURN,2)
Duel.RegisterEffect(e1,tp)
if Duel.GetTurnPlayer()==tp then
Duel.SkipPhase(tp,PHASE_DRAW,RESET_PHASE+PHASE_END,1)
Duel.SkipPhase(tp,PHASE_STANDBY,RESET_PHASE+PHASE_END,1)
Duel.SkipPhase(tp,PHASE_MAIN1,RESET_PHASE+PHASE_END,1)
Duel.SkipPhase(tp,PHASE_BATTLE,RESET_PHASE+PHASE_END,1,1)
Duel.SkipPhase(tp,PHASE_MAIN2,RESET_PHASE+PHASE_END,1)
local e4=Effect.CreateEffect(c)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_CANNOT_BP)
e4:SetTargetRange(1,0)
e4:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e4,tp)
end
end
function c33703032.value(e,te)
return te:GetOwner()~=e:GetOwner()
end
\ No newline at end of file
function c33703032.efilter(e,re)
return e:GetHandler()~=re:GetOwner()
end
function c33703032.handcon(e)
return Duel.GetFieldGroupCount(e:GetHandlerPlayer(),LOCATION_MZONE,0)==1
and not Duel.IsExistingMatchingCard(aux.TRUE,e:GetHandlerPlayer(),LOCATION_ONFIELD,0,2,nil)
end
......@@ -49,10 +49,14 @@ function c44401001.rmop(e,tp,eg,ep,ev,re,r,rp)
and Duel.IsExistingMatchingCard(c44401001.thfilter,tp,LOCATION_REMOVED,0,1,nil)
and Duel.SelectYesNo(tp,aux.Stringid(44401001,0)) then
--to hand
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local tg=Duel.SelectMatchingCard(tp,c44401001.thfilter,tp,LOCATION_REMOVED,0,1,1,nil)
Duel.SendtoHand(tg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tg)
local tg=Duel.GetMatchingGroup(c44401001.thfilter,tp,LOCATION_REMOVED,0,nil)
local tc=tg:GetFirst()
if #tg>1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
tc=tg:Select(tp,1,1,nil):GetFirst()
end
Duel.SendtoHand(tc,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tc)
end
end
function c44401001.runcon(e,tp,eg,ep,ev,re,r,rp)
......
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