Commit 638402c6 authored by wyykak's avatar wyykak

fix season mechanism

Provided by: kritosoft
Signed-off-by: wyykak's avatarwyykak <wyy_1414@126.com>
parent 773b50ff
This diff is collapsed.
...@@ -71,7 +71,12 @@ function c1192020.ofilter2(c) ...@@ -71,7 +71,12 @@ function c1192020.ofilter2(c)
end end
function c1192020.op2(e,tp,eg,ep,ev,re,r,rp) function c1192020.op2(e,tp,eg,ep,ev,re,r,rp)
-- --
if Duel.IsExistingMatchingCard(c1192020.ofilter2,tp,0xff,0xff,1,nil) then Nef.SetCommonCounter(1,999104,tp) end Debug.Message(Nef.PLCounter.Get(tp,999104))
if Nef.PLCounter.Get(tp,999104)~=0 then
local a=Nef.PLCounter.Get(tp,999104)
Nef.PLCounter.Add(tp,999104,1-a)
Nef.PLCounter.Add(1-tp,999104,1-a)
end
-- --
if Duel.Recover(tp,1500,REASON_EFFECT)<1 then return end if Duel.Recover(tp,1500,REASON_EFFECT)<1 then return end
-- --
......
--幻想时令『四时之兆』 --幻想时令『四时之兆』
local M = c999104 local M = c999104
local Mid = 999104 local Mid = 999104
require("expansions/script/nef/nef")
function M.initial_effect(c) function M.initial_effect(c)
-- --
aux.AddCodeList(c,1192020) aux.AddCodeList(c,1192020)
-- Nef.SeasonChange(c)
Nef.CommonCounterGroup(c, Mid)
if M.counter == nil then
M.counter = true
local ge0=Effect.CreateEffect(c)
ge0:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
ge0:SetCode(EVENT_PHASE_START+PHASE_STANDBY)
ge0:SetOperation(M.addcount)
Duel.RegisterEffect(ge0, 0)
end
--Activate --Activate
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_ACTIVATE) e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN) e0:SetCode(EVENT_FREE_CHAIN)
e0:SetOperation(function (e,tp,eg,ep,ev,re,r,rp)
Nef.RefreshCommonCounter(c, Mid)
end)
c:RegisterEffect(e0) c:RegisterEffect(e0)
-- --
...@@ -54,16 +42,6 @@ function M.initial_effect(c) ...@@ -54,16 +42,6 @@ function M.initial_effect(c)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function M.addcount(e,tp,eg,ep,ev,re,r,rp)
for p = 0, 1 do
if Nef.GetCommonCounter(Mid, p) < 4 then
Nef.AddCommonCounter(1, Mid, p)
else
Nef.AddCommonCounter(-3, Mid, p)
end
end
end
function M.filter1(c) function M.filter1(c)
return c:IsSetCard(0x123) and c:IsAbleToHand() return c:IsSetCard(0x123) and c:IsAbleToHand()
end end
...@@ -92,7 +70,7 @@ end ...@@ -92,7 +70,7 @@ end
function M.target(e,tp,eg,ep,ev,re,r,rp,chk) function M.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk == 0 then if chk == 0 then
local flag = Nef.GetCommonCounter(Mid, tp) local flag = Nef.PLCounter.Get(tp,Mid)
local list = {20200, 22400, 23300, 10100} local list = {20200, 22400, 23300, 10100}
return flag > 0 and Duel.IsExistingMatchingCard(M["filter"..flag], tp, LOCATION_DECK, 0, 1, nil) return flag > 0 and Duel.IsExistingMatchingCard(M["filter"..flag], tp, LOCATION_DECK, 0, 1, nil)
and Duel.IsExistingMatchingCard(M.filter, tp, LOCATION_DECK, 0, 1, nil, list[flag]) and Duel.IsExistingMatchingCard(M.filter, tp, LOCATION_DECK, 0, 1, nil, list[flag])
...@@ -101,7 +79,7 @@ function M.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -101,7 +79,7 @@ function M.target(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function M.operation(e,tp,eg,ep,ev,re,r,rp) function M.operation(e,tp,eg,ep,ev,re,r,rp)
local flag = Nef.GetCommonCounter(Mid, tp) local flag = Nef.PLCounter.Get(tp,Mid)
local list = {20200, 22400, 23300, 10100} local list = {20200, 22400, 23300, 10100}
if flag > 0 and Duel.IsExistingMatchingCard(M["filter"..flag], tp, LOCATION_DECK, 0, 1, nil) if flag > 0 and Duel.IsExistingMatchingCard(M["filter"..flag], tp, LOCATION_DECK, 0, 1, nil)
and Duel.IsExistingMatchingCard(M.filter, tp, LOCATION_DECK, 0, 1, nil, list[flag]) then and Duel.IsExistingMatchingCard(M.filter, tp, LOCATION_DECK, 0, 1, nil, list[flag]) then
...@@ -129,6 +107,9 @@ function M.seasonop(e,tp,eg,ep,ev,re,r,rp) ...@@ -129,6 +107,9 @@ function M.seasonop(e,tp,eg,ep,ev,re,r,rp)
[10100] = 4, [10100] = 4,
} }
if list[code] then if list[code] then
Nef.SetCommonCounter(list[code], Mid, tp) local a=Nef.PLCounter.Get(tp,Mid)
local b=list[code]
Nef.PLCounter.Add(tp,Mid,b-a)
Nef.PLCounter.Add(1-tp,Mid,b-a)
end end
end end
...@@ -102,8 +102,6 @@ function M.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -102,8 +102,6 @@ function M.activate(e,tp,eg,ep,ev,re,r,rp)
local cost = te:GetCost() local cost = te:GetCost()
if cost then cost(te, tep, eg, ep, ev, re, r, rp, 1) end if cost then cost(te, tep, eg, ep, ev, re, r, rp, 1) end
Duel.RaiseEvent(tc, EVENT_CHAIN_SOLVED, tc:GetActivateEffect(), 0, tp, tp, Duel.GetCurrentChain()) Duel.RaiseEvent(tc, EVENT_CHAIN_SOLVED, tc:GetActivateEffect(), 0, tp, tp, Duel.GetCurrentChain())
Nef.RefreshCommonCounter(tc, 999104)
end end
-- immune -- immune
...@@ -136,11 +134,11 @@ end ...@@ -136,11 +134,11 @@ end
function M.tokentg(e,tp,eg,ep,ev,re,r,rp,chk) function M.tokentg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
local flag = Nef.GetCommonCounter(999104, tp) local flag = Nef.PLCounter.Get(tp,999104)
local list = { local list = {
[1] = {25161, 0x208, 0x4011, 2000, 2000, 5, RACE_PLANT, ATTRIBUTE_LIGHT}, [1] = {25161, 0x208, 0x4011, 2000, 2000, 5, RACE_PLANT, ATTRIBUTE_LIGHT},
[2] = {25160, 0x208, 0x4011, 1000, 1000, 1, RACE_PLANT, ATTRIBUTE_LIGHT}, [2] = {25160, 0x208, 0x4011, 1000, 1000, 1, RACE_PLANT, ATTRIBUTE_LIGHT},
[3] = {999300, 0x208, 0x4011, 0, 0, 2, RACE_PLANT, ATTRIBUTE_EARTH}, [3] = {999300, 0x208, 0x4011, 0, 0, 2, RACE_PLANT, ATTRIBUTE_EARTH},
[4] = {999999, 0x208, 0x4011, 900, 900, 9, RACE_AQUA, ATTRIBUTE_WATER}, [4] = {999999, 0x208, 0x4011, 900, 900, 9, RACE_AQUA, ATTRIBUTE_WATER},
} }
return flag > 0 and Duel.GetLocationCount(tp, LOCATION_MZONE) > 0 return flag > 0 and Duel.GetLocationCount(tp, LOCATION_MZONE) > 0
...@@ -151,12 +149,12 @@ function M.tokentg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -151,12 +149,12 @@ function M.tokentg(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function M.tokenop(e,tp,eg,ep,ev,re,r,rp) function M.tokenop(e,tp,eg,ep,ev,re,r,rp)
local flag = Nef.GetCommonCounter(999104, tp) local flag = Nef.PLCounter.Get(tp,999104)
local list = { local list = {
[1] = {25161, 0x208, 0x4011, 2000, 2000, 5, RACE_PLANT, ATTRIBUTE_LIGHT}, [1] = {25161, 0x208, 0x4011, 2000, 2000, 5, RACE_PLANT, ATTRIBUTE_LIGHT},
[2] = {25160, 0x208, 0x4011, 1000, 1000, 1, RACE_PLANT, ATTRIBUTE_LIGHT}, [2] = {25160, 0x208, 0x4011, 1000, 1000, 1, RACE_PLANT, ATTRIBUTE_LIGHT},
[3] = {999300, 0x208, 0x4011, 0, 0, 2, RACE_PLANT, ATTRIBUTE_EARTH}, [3] = {999300, 0x208, 0x4011, 0, 0, 2, RACE_PLANT, ATTRIBUTE_EARTH},
[4] = {999999, 0x208, 0x4011, 900, 900, 9, 0x40, ATTRIBUTE_WATER}, [4] = {999999, 0x208, 0x4011, 900, 900, 9, 0x40, ATTRIBUTE_WATER},
} }
local ft = Duel.GetLocationCount(tp, LOCATION_MZONE) local ft = Duel.GetLocationCount(tp, LOCATION_MZONE)
local c = e:GetHandler() local c = e:GetHandler()
......
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