Commit 2cfcb334 authored by Amiya's avatar Amiya

修复

parent 722466a0
...@@ -62,6 +62,9 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -62,6 +62,9 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
function s.splimit(e,c)
return not c:IsType(TYPE_XYZ) and c:IsLocation(LOCATION_EXTRA)
end
function s.filter(c) function s.filter(c)
return c:IsSetCard(0x2b7) and c:IsRace(RACE_FISH) and c:IsAbleToHand() return c:IsSetCard(0x2b7) and c:IsRace(RACE_FISH) and c:IsAbleToHand()
end end
......
...@@ -29,7 +29,7 @@ function s.spcost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -29,7 +29,7 @@ function s.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
end end
function s.tgfilter(c,e,tp) function s.tgfilter(c,e,tp)
return c:IsAbleToGraveAsCost() and c:IsAttribute(ATTRIBUTE_WATER) and c:IsType(TYPE_XYZ) and Duel.IsExistingTarget(s.spfilter,tp,0,LOCATION_MZONE,1,nil,e,tp,c:GetRank()) return c:IsAbleToGraveAsCost() and c:IsAttribute(ATTRIBUTE_WATER) and c:IsType(TYPE_XYZ) and Duel.IsExistingTarget(s.spfilter,tp,LOCATION_MZONE,0,1,nil,e,tp,c:GetRank())
end end
function s.spfilter(c,e,tp,rk) function s.spfilter(c,e,tp,rk)
return c:IsFaceup() and c:IsLevel(rk) and c:IsRace(RACE_FISH) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsFaceup() and c:IsLevel(rk) and c:IsRace(RACE_FISH) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
...@@ -74,7 +74,7 @@ end ...@@ -74,7 +74,7 @@ end
function s.eqop(e,tp,eg,ep,ev,re,r,rp) function s.eqop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if c:IsRelateToEffect(e) and tc:IsFaceup() and tc:IsRelateToEffect(e) and tc:IsControler(tp) then if c:IsRelateToEffect(e) and tc:IsFaceup() and tc:IsRelateToEffect(e) then
if not Duel.Equip(tp,c,tc) then return end if not Duel.Equip(tp,c,tc) then return end
--equip limit --equip limit
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
......
...@@ -29,7 +29,7 @@ function s.cfilter(c) ...@@ -29,7 +29,7 @@ function s.cfilter(c)
return c:IsType(TYPE_SPELL) and c:IsDiscardable() return c:IsType(TYPE_SPELL) and c:IsDiscardable()
end end
function s.ovfilter(c) function s.ovfilter(c)
return c:IsFaceup() and c:IsRankBelow(4) and c:IsSetCard(0x12b7) return c:IsFaceup() and c:IsRank(4) and c:IsSetCard(0x12b7)
end end
function s.xyzop(e,tp,chk) function s.xyzop(e,tp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_HAND,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_HAND,0,1,nil) end
......
...@@ -37,12 +37,12 @@ function s.thfilter(c) ...@@ -37,12 +37,12 @@ function s.thfilter(c)
return c:IsCode(101206208) and c:IsAbleToHand() return c:IsCode(101206208) and c:IsAbleToHand()
end end
function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk) function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.thfilter,tp,LOCATION_GRAVE+LOCATION_DECK,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(s.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE+LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end end
function s.thop(e,tp,eg,ep,ev,re,r,rp) function s.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(s.thfilter),tp,LOCATION_GRAVE+LOCATION_DECK,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,s.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT) Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
...@@ -54,7 +54,7 @@ function s.thcost2(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -54,7 +54,7 @@ function s.thcost2(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function s.thfilter2(c) function s.thfilter2(c)
return not c:IsCode(id) and c:IsRace(RACE_FISH+RACE_AQUA+RACE_SEASERPENT) return not c:IsCode(id) and c:IsRace(RACE_FISH+RACE_AQUA+RACE_SEASERPENT)
and c:IsLevelBelow(4) and c:IsAbleToHand() and c:IsAbleToHand()
end end
function s.thtg2(e,tp,eg,ep,ev,re,r,rp,chk) function s.thtg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.thfilter2,tp,LOCATION_GRAVE,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(s.thfilter2,tp,LOCATION_GRAVE,0,1,nil) end
...@@ -96,7 +96,7 @@ function s.xyzop(e,tp,eg,ep,ev,re,r,rp) ...@@ -96,7 +96,7 @@ function s.xyzop(e,tp,eg,ep,ev,re,r,rp)
local tc2=tg:GetFirst() local tc2=tg:GetFirst()
if tc then if tc then
local og=tc:GetOverlayGroup() local og=tc:GetOverlayGroup()
local sg=og:Select(1,1,nil) local sg=og:Select(tp,1,1,nil)
Duel.Overlay(tc,sg) Duel.Overlay(tc,sg)
end end
end end
\ No newline at end of file
...@@ -41,12 +41,17 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -41,12 +41,17 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON) e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CANNOT_DISABLE) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CANNOT_DISABLE)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetAbsoluteRange(tp,1,0) e1:SetTargetRange(1,0)
e1:SetTarget(s.splimit) e1:SetTarget(s.splimit)
e1:SetCondition(s.con)
e1:SetLabel(tp)
e1:SetReset(RESET_EVENT+RESETS_STANDARD) e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1,true) tc:RegisterEffect(e1,true)
end end
end end
function s.con(e)
return e:GetHandler():GetControler()==e:GetLabel()
end
function s.splimit(e,c) function s.splimit(e,c)
return not c:IsType(TYPE_XYZ) and c:IsLocation(LOCATION_EXTRA) return not c:IsType(TYPE_XYZ) and c:IsLocation(LOCATION_EXTRA)
end end
......
...@@ -5,6 +5,7 @@ function s.initial_effect(c) ...@@ -5,6 +5,7 @@ function s.initial_effect(c)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_EQUIP) e1:SetType(EFFECT_TYPE_EQUIP)
e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE) e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e1:SetCondition(s.ibcon)
e1:SetValue(1) e1:SetValue(1)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -32,7 +33,11 @@ function s.initial_effect(c) ...@@ -32,7 +33,11 @@ function s.initial_effect(c)
e4:SetOperation(s.eqop) e4:SetOperation(s.eqop)
c:RegisterEffect(e4) c:RegisterEffect(e4)
end end
function s.xyzcon(e,tp,eg,ep,ev,re,r,rp,chk) function s.ibcon(e,tp,eg,ep,ev,re,r,rp)
local ec=e:GetHandler():GetEquipTarget()
return ec:IsType(TYPE_XYZ)
end
function s.xyzcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetBattledGroupCount()>0 return e:GetHandler():GetBattledGroupCount()>0
end end
function s.thfilter(c,ec) function s.thfilter(c,ec)
......
...@@ -17,6 +17,7 @@ function s.initial_effect(c) ...@@ -17,6 +17,7 @@ function s.initial_effect(c)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET) e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetCode(EVENT_FREE_CHAIN) e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_GRAVE) e2:SetRange(LOCATION_GRAVE)
e2:SetCountLimit(1,id+o)
e2:SetCost(aux.bfgcost) e2:SetCost(aux.bfgcost)
e2:SetTarget(s.atttg) e2:SetTarget(s.atttg)
e2:SetOperation(s.attop) e2:SetOperation(s.attop)
......
...@@ -32,14 +32,14 @@ function s.descon(e,tp,eg,ep,ev,re,r,rp) ...@@ -32,14 +32,14 @@ function s.descon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(s.ffilter,tp,LOCATION_MZONE,0,1,nil) return Duel.IsExistingMatchingCard(s.ffilter,tp,LOCATION_MZONE,0,1,nil)
end end
function s.desfilter(c,attr) function s.desfilter(c,attr)
return c:IsFaceup() and c:IsAttribute(attr) and not c:GetEquipGroup() return c:IsFaceup() and c:IsAttribute(attr) and not c:GetEquipGroup():Filter(Card.IsType,nil,TYPE_SPELL)
end end
function s.filter(c) function s.filter(c)
return c:IsFaceup() and not c:GetEquipGroup() return c:IsFaceup() and not c:GetEquipGroup():Filter(Card.IsType,nil,TYPE_SPELL)
end end
function s.destg(e,tp,eg,ep,ev,re,r,rp,chk) function s.destg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(s.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,nil) local g=Duel.GetMatchingGroup(s.filter,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
local attr=0 local attr=0
for tc in aux.Next(g) do for tc in aux.Next(g) do
attr=attr|tc:GetAttribute() attr=attr|tc:GetAttribute()
...@@ -63,7 +63,7 @@ function s.spcost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -63,7 +63,7 @@ function s.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.RemoveOverlayCard(tp,1,0,1,1,REASON_COST) Duel.RemoveOverlayCard(tp,1,0,1,1,REASON_COST)
end end
function s.filter(c,e,tp) function s.filter(c,e,tp)
return c:IsRace(RACE_FISH+RACE_AQUA+RACE_SEASERPENT) and c:IsLevelBelow(4) and (c:IsCanBeSpecialSummoned(e,0,tp,false,false) or c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP,1-tp)) return c:IsRace(RACE_FISH+RACE_AQUA+RACE_SEASERPENT) and (c:IsCanBeSpecialSummoned(e,0,tp,false,false) or c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP,1-tp))
end end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return (Duel.GetLocationCount(tp,LOCATION_MZONE)>0 or Duel.GetLocationCount(1-tp,LOCATION_MZONE)>0) if chk==0 then return (Duel.GetLocationCount(tp,LOCATION_MZONE)>0 or Duel.GetLocationCount(1-tp,LOCATION_MZONE)>0)
......
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