Commit b44a5b70 authored by salix5's avatar salix5

PHASE_BATTLE_START

parent d097ce8c
......@@ -18,5 +18,5 @@ end
function c10012614.con(e)
local ph=Duel.GetCurrentPhase()
local tp=Duel.GetTurnPlayer()
return tp==e:GetHandlerPlayer() and (ph==PHASE_BATTLE or ph==PHASE_DAMAGE or ph==PHASE_DAMAGE_CAL)
return tp==e:GetHandlerPlayer() and ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE
end
......@@ -23,7 +23,7 @@ end
function c13522325.atkcon(e)
local ph=Duel.GetCurrentPhase()
local tp=Duel.GetTurnPlayer()
return tp==e:GetHandler():GetControler() and (ph==PHASE_BATTLE or ph==PHASE_DAMAGE or ph==PHASE_DAMAGE_CAL)
return tp==e:GetHandler():GetControler() and ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE
end
function c13522325.spfilter(c)
return c:IsAttribute(ATTRIBUTE_FIRE) and c:IsAbleToRemoveAsCost()
......
......@@ -13,7 +13,7 @@ function c15960641.initial_effect(c)
end
function c15960641.con(e)
local ph=Duel.GetCurrentPhase()
return ph==PHASE_BATTLE or ph==PHASE_DAMAGE or ph==PHASE_DAMAGE_CAL
return ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE
end
function c15960641.aclimit(e,re,tp)
return re:GetHandler():IsType(TYPE_TRAP) and re:IsHasType(EFFECT_TYPE_ACTIVATE)
......
......@@ -14,7 +14,7 @@ function c16708652.initial_effect(c)
end
function c16708652.condition(e,tp,eg,ep,ev,re,r,rp)
local ph=Duel.GetCurrentPhase()
return ph==PHASE_BATTLE or (ph==PHASE_DAMAGE and not Duel.IsDamageCalculated())
return ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE and (not ph==PHASE_DAMAGE or Duel.IsDamageCalculated())
end
function c16708652.filter(c)
return c:IsPosition(POS_FACEUP_ATTACK) and c:IsSetCard(0x11)
......
......@@ -32,7 +32,7 @@ function c18235309.cost1(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetLabel(0)
local tn=Duel.GetTurnPlayer()
local ph=Duel.GetCurrentPhase()
if (tn~=tp and (ph==PHASE_MAIN1 or ph==PHASE_MAIN2 or ph==PHASE_BATTLE))
if (tn~=tp and (ph==PHASE_MAIN1 or ph==PHASE_MAIN2 or (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE)))
and Duel.IsExistingMatchingCard(c18235309.filter,tp,LOCATION_HAND,0,1,nil)
and Duel.SelectYesNo(tp,94) then
e:SetLabel(1)
......@@ -64,7 +64,7 @@ end
function c18235309.condition2(e,tp,eg,ep,ev,re,r,rp)
local tn=Duel.GetTurnPlayer()
local ph=Duel.GetCurrentPhase()
return tn~=tp and (ph==PHASE_MAIN1 or ph==PHASE_MAIN2 or ph==PHASE_BATTLE)
return tn~=tp and (ph==PHASE_MAIN1 or ph==PHASE_MAIN2 or (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE))
end
function c18235309.target2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():GetFlagEffect(18235309)==0
......
......@@ -54,7 +54,7 @@ end
function c2095764.sccon(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()==tp then return false end
local ph=Duel.GetCurrentPhase()
return ph==PHASE_MAIN1 or ph==PHASE_BATTLE or ph==PHASE_MAIN2
return ph==PHASE_MAIN1 or (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE) or ph==PHASE_MAIN2
end
function c2095764.mfilter(c)
return c:IsSetCard(0x9e)
......
......@@ -54,7 +54,7 @@ end
function c30106950.sccon(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()==tp then return false end
local ph=Duel.GetCurrentPhase()
return ph==PHASE_MAIN1 or ph==PHASE_BATTLE or ph==PHASE_MAIN2
return ph==PHASE_MAIN1 or (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE) or ph==PHASE_MAIN2
end
function c30106950.mfilter(c)
return c:IsSetCard(0x9e)
......
......@@ -16,7 +16,7 @@ function c3056267.swapfilter(c)
end
function c3056267.condition(e)
local ph=Duel.GetCurrentPhase()
return not (ph==PHASE_BATTLE or ph==PHASE_DAMAGE or ph==PHASE_DAMAGE_CAL)
return not (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE)
end
function c3056267.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end
......
......@@ -54,7 +54,7 @@ end
function c35089369.sccon(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()==tp then return false end
local ph=Duel.GetCurrentPhase()
return ph==PHASE_MAIN1 or ph==PHASE_BATTLE or ph==PHASE_MAIN2
return ph==PHASE_MAIN1 or (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE) or ph==PHASE_MAIN2
end
function c35089369.mfilter(c)
return c:IsSetCard(0x9e)
......
......@@ -25,7 +25,7 @@ function c46772449.condition(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()==tp then
return ph==PHASE_MAIN1 or ph==PHASE_MAIN2
else
return ph==PHASE_BATTLE
return (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE)
end
end
function c46772449.cost(e,tp,eg,ep,ev,re,r,rp,chk)
......
......@@ -25,7 +25,7 @@ function c5026221.target1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local tn=Duel.GetTurnPlayer()
local ph=Duel.GetCurrentPhase()
if ((tn==tp and (ph==PHASE_MAIN1 or ph==PHASE_MAIN2)) or (tn~=tp and ph==PHASE_BATTLE))
if ((tn==tp and (ph==PHASE_MAIN1 or ph==PHASE_MAIN2)) or (tn~=tp and (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE)))
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c5026221.filter,tp,LOCATION_HAND,0,1,nil,e,tp)
and Duel.SelectYesNo(tp,94) then
......
......@@ -29,7 +29,7 @@ function c50903514.initial_effect(c)
end
function c50903514.condition(e,tp,eg,ep,ev,re,r,rp)
local ph=Duel.GetCurrentPhase()
return ph==PHASE_BATTLE or (ph==PHASE_DAMAGE and not Duel.IsDamageCalculated())
return ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE and (not ph==PHASE_DAMAGE or Duel.IsDamageCalculated())
end
function c50903514.filter(c)
return c:IsFaceup() and c:IsRace(RACE_WARRIOR)
......
......@@ -17,7 +17,7 @@ function c55461064.initial_effect(c)
end
function c55461064.atkcon(e,tp,eg,ep,ev,re,r,rp)
local phase=Duel.GetCurrentPhase()
return Duel.GetTurnPlayer()~=tp and (phase==PHASE_BATTLE or (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()))
return Duel.GetTurnPlayer()~=tp and ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE and (not ph==PHASE_DAMAGE or Duel.IsDamageCalculated())
end
function c55461064.atkcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end
......
......@@ -27,12 +27,7 @@ function c56535497.filter(c)
end
function c56535497.target1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end
if chk==0 then
local ph=Duel.GetCurrentPhase()
if Duel.GetTurnPlayer()==tp then return ph==PHASE_MAIN1 or ph==PHASE_MAIN2
else return ph==PHASE_BATTLE or (ph==PHASE_DAMAGE
and Duel.IsExistingTarget(c56535497.filter,tp,LOCATION_MZONE,LOCATION_MZONE,2,nil)) end
end
if chk==0 then return true end
if Duel.GetCurrentPhase()==PHASE_DAMAGE or
(Duel.IsExistingTarget(c56535497.filter,tp,LOCATION_MZONE,LOCATION_MZONE,2,nil) and Duel.SelectYesNo(tp,aux.Stringid(56535497,0))) then
e:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP)
......@@ -50,7 +45,7 @@ end
function c56535497.condition2(e,tp,eg,ep,ev,re,r,rp)
local ph=Duel.GetCurrentPhase()
if Duel.GetTurnPlayer()==tp then return ph==PHASE_MAIN1 or ph==PHASE_MAIN2
else return ph==PHASE_BATTLE or ph==PHASE_DAMAGE end
else return ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE and (not ph==PHASE_DAMAGE or Duel.IsDamageCalculated()) end
end
function c56535497.target2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end
......
......@@ -54,7 +54,7 @@ end
function c66500065.sccon(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()==tp then return false end
local ph=Duel.GetCurrentPhase()
return ph==PHASE_MAIN1 or ph==PHASE_BATTLE or ph==PHASE_MAIN2
return ph==PHASE_MAIN1 or (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE) or ph==PHASE_MAIN2
end
function c66500065.mfilter(c)
return c:IsSetCard(0x9e)
......
......@@ -57,7 +57,7 @@ function c75987257.eqlimit(e,c)
end
function c75987257.poscon(e,tp,eg,ep,ev,re,r,rp)
local ph=Duel.GetCurrentPhase()
return (ph==PHASE_MAIN1 or ph==PHASE_BATTLE or ph==PHASE_MAIN2) and e:GetHandler():GetEquipTarget()
return ph>=PHASE_MAIN1 and ph<=PHASE_MAIN2 and e:GetHandler():GetEquipTarget()
end
function c75987257.posop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
......@@ -23,7 +23,7 @@ end
function c76305638.atkcon(e)
local ph=Duel.GetCurrentPhase()
local tp=Duel.GetTurnPlayer()
return tp~=e:GetHandler():GetControler() and (ph==PHASE_BATTLE or ph==PHASE_DAMAGE or ph==PHASE_DAMAGE_CAL)
return tp~=e:GetHandler():GetControler() and ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE
end
function c76305638.spfilter(c)
return c:IsAttribute(ATTRIBUTE_EARTH) and c:IsAbleToRemoveAsCost()
......
......@@ -23,7 +23,7 @@ end
function c77527210.atkcon(e)
local ph=Duel.GetCurrentPhase()
local tp=Duel.GetTurnPlayer()
return tp~=e:GetHandler():GetControler() and (ph==PHASE_BATTLE or ph==PHASE_DAMAGE or ph==PHASE_DAMAGE_CAL)
return tp~=e:GetHandler():GetControler() and ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE
end
function c77527210.spfilter(c)
return c:IsAttribute(ATTRIBUTE_LIGHT) and c:IsAbleToRemoveAsCost()
......
......@@ -38,7 +38,7 @@ function c77783947.becon(e)
end
function c77783947.sccon(e,tp,eg,ep,ev,re,r,rp)
local ph=Duel.GetCurrentPhase()
return ph==PHASE_MAIN1 or ph==PHASE_BATTLE or ph==PHASE_MAIN2
return ph==PHASE_MAIN1 or (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE) or ph==PHASE_MAIN2
end
function c77783947.mfilter(c)
return c:IsSetCard(0x9e) and c:IsType(TYPE_MONSTER)
......
......@@ -30,10 +30,10 @@ function c80604091.cost1(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetLabel(0)
local tn=Duel.GetTurnPlayer()
local ph=Duel.GetCurrentPhase()
if (tn==tp and ph~=PHASE_MAIN1 and ph~=PHASE_MAIN2) or (tn~=tp and ph~=PHASE_BATTLE) then return false end
if Duel.GetLP(tp)<=500 then return end
if Duel.IsExistingMatchingCard(c80604091.filter,tp,LOCATION_HAND+LOCATION_MZONE,0,1,nil)
and Duel.SelectYesNo(tp,aux.Stringid(80604091,1)) then
if ((tn==tp and (ph==PHASE_MAIN1 or ph==PHASE_MAIN2)) or (tn~=tp and ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE))
and Duel.GetLP(tp)>=500
and Duel.IsExistingMatchingCard(c80604091.filter,tp,LOCATION_HAND+LOCATION_MZONE,0,1,nil)
and Duel.SelectYesNo(tp,aux.Stringid(80604091,1)) then
Duel.PayLPCost(tp,500)
e:SetLabel(1)
end
......@@ -60,7 +60,7 @@ end
function c80604091.condition2(e,tp,eg,ep,ev,re,r,rp)
local tn=Duel.GetTurnPlayer()
local ph=Duel.GetCurrentPhase()
return (tn==tp and (ph==PHASE_MAIN1 or ph==PHASE_MAIN2)) or (tn~=tp and ph==PHASE_BATTLE)
return (tn==tp and (ph==PHASE_MAIN1 or ph==PHASE_MAIN2)) or (tn~=tp and ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE)
end
function c80604091.cost2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLPCost(tp,500)
......
......@@ -53,7 +53,7 @@ function c80696379.spop(e,tp,eg,ep,ev,re,r,rp)
end
function c80696379.condition(e)
local ph=Duel.GetCurrentPhase()
return ph==PHASE_BATTLE or ph==PHASE_DAMAGE or ph==PHASE_DAMAGE_CAL
return ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE
end
function c80696379.aclimit(e,re,tp)
return re:IsActiveType(TYPE_MONSTER) and not re:GetHandler():IsImmuneToEffect(e)
......
......@@ -6,10 +6,10 @@ function c88177324.initial_effect(c)
--negate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(88177324,0))
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_PHASE+PHASE_BATTLE_START)
e1:SetRange(LOCATION_MZONE)
e1:SetHintTiming(TIMING_BATTLE_START,0)
e1:SetCountLimit(1)
e1:SetCondition(c88177324.negcon)
e1:SetCost(c88177324.negcost)
e1:SetTarget(c88177324.negtg)
......@@ -26,7 +26,7 @@ function c88177324.initial_effect(c)
end
c88177324.xyz_number=107
function c88177324.negcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp and Duel.GetCurrentPhase()==PHASE_BATTLE and not Duel.CheckPhaseActivity() and Duel.GetCurrentChain()==0
return Duel.GetTurnPlayer()==tp
end
function c88177324.negcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
......
......@@ -13,7 +13,7 @@ function c88975532.initial_effect(c)
end
function c88975532.con(e)
local ph=Duel.GetCurrentPhase()
return ph==PHASE_BATTLE or ph==PHASE_DAMAGE or ph==PHASE_DAMAGE_CAL
return ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE
end
function c88975532.aclimit(e,re,tp)
return re:GetHandler():IsType(TYPE_TRAP) and re:IsHasType(EFFECT_TYPE_ACTIVATE)
......
......@@ -24,7 +24,7 @@ function c91697229.initial_effect(c)
e5:SetDescription(aux.Stringid(91697229,1))
e5:SetCategory(CATEGORY_POSITION)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e5:SetCode(EVENT_PHASE_START+PHASE_BATTLE)
e5:SetCode(EVENT_PHASE+PHASE_BATTLE_START)
e5:SetRange(LOCATION_MZONE)
e5:SetCountLimit(1)
e5:SetCondition(c91697229.poscon)
......
......@@ -11,7 +11,7 @@ function c97120394.initial_effect(c)
c:RegisterEffect(e1)
end
function c97120394.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentPhase()==PHASE_BATTLE and not Duel.CheckPhaseActivity()
return Duel.GetCurrentPhase()==PHASE_BATTLE_START
end
function c97120394.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
......
......@@ -54,7 +54,7 @@ end
function c99946920.sccon(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()==tp then return false end
local ph=Duel.GetCurrentPhase()
return ph==PHASE_MAIN1 or ph==PHASE_BATTLE or ph==PHASE_MAIN2
return ph==PHASE_MAIN1 or (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE) or ph==PHASE_MAIN2
end
function c99946920.mfilter(c)
return c:IsSetCard(0x9e)
......
......@@ -174,11 +174,13 @@ COUNTER_NEED_ENABLE =0x2000 --可以放置某指示物
PHASE_DRAW =0x01 --抽卡阶段
PHASE_STANDBY =0x02 --准备阶段
PHASE_MAIN1 =0x04 --主要阶段1
PHASE_BATTLE =0x08 --战斗阶段
PHASE_DAMAGE =0x10 --伤害步驟
PHASE_DAMAGE_CAL =0x20 --伤害计算时
PHASE_MAIN2 =0x40 --主要阶段2
PHASE_END =0x80 --结束阶段
PHASE_BATTLE_START =0x08 --战斗阶段开始
PHASE_BATTLE_STEP =0x10 --战斗步驟
PHASE_DAMAGE =0x20 --伤害步驟
PHASE_DAMAGE_CAL =0x40 --伤害计算时
PHASE_BATTLE =0x80 --战斗阶段結束
PHASE_MAIN2 =0x100 --主要阶段2
PHASE_END =0x200 --结束阶段
--Player --玩家
PLAYER_NONE =2 --2个玩家都不是
PLAYER_ALL =3 --2个玩家都是
......@@ -198,18 +200,10 @@ CHAININFO_CHAIN_ID =0x800 --连锁ID
CHAININFO_TYPE =0x1000 --连锁类型
CHAININFO_EXTTYPE =0x2000 --连锁额外类型
--========== Reset ========== --重置条件(注意:重置条件可以多个相加)
--PHASE_DRAW --抽卡阶段重置
--PHASE_STANDBY --准备阶段重置
--PHASE_MAIN1 --主要阶段1重置
--PHASE_BATTLE --战斗阶段重置
--PHASE_DAMAGE --伤害计算前重置
--PHASE_DAMAGE_CAL --伤害计算时重置
--PHASE_MAIN2 --主要阶段2重置
--PHASE_END --结束阶段重置
RESET_SELF_TURN =0x0100 --自己回合结束重置
RESET_OPPO_TURN =0x0200 --对方回合结束重置
RESET_PHASE =0x0400 --阶段结束重置(一般和上面那些阶段配合使用)
RESET_CHAIN =0x0800 --连锁结束重置
RESET_SELF_TURN =0x10000000 --自己回合结束重置
RESET_OPPO_TURN =0x20000000 --对方回合结束重置
RESET_PHASE =0x40000000 --阶段结束重置(一般和上面那些阶段配合使用)
RESET_CHAIN =0x80000000 --连锁结束重置
RESET_EVENT =0x1000 --指定的條件下重置(一般和下面这些事件配合使用)
RESET_CARD =0x2000 --重置Owner為指定卡片的效果
RESET_CODE =0x4000 --重置指定Code的single效果(不含EFFECT_FLAG_SINGLE_RANGE)
......
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