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)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function s.splimit(e,c)
return not c:IsType(TYPE_XYZ) and c:IsLocation(LOCATION_EXTRA)
end
function s.filter(c)
return c:IsSetCard(0x2b7) and c:IsRace(RACE_FISH) and c:IsAbleToHand()
end
......
......@@ -29,7 +29,7 @@ function s.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
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
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)
......@@ -74,7 +74,7 @@ end
function s.eqop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
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
--equip limit
local e1=Effect.CreateEffect(c)
......
......@@ -29,7 +29,7 @@ function s.cfilter(c)
return c:IsType(TYPE_SPELL) and c:IsDiscardable()
end
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
function s.xyzop(e,tp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_HAND,0,1,nil) end
......
......@@ -37,12 +37,12 @@ function s.thfilter(c)
return c:IsCode(101206208) and c:IsAbleToHand()
end
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
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE+LOCATION_DECK)
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_DECK)
end
function s.thop(e,tp,eg,ep,ev,re,r,rp)
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
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
......@@ -54,7 +54,7 @@ function s.thcost2(e,tp,eg,ep,ev,re,r,rp,chk)
end
function s.thfilter2(c)
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
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
......@@ -96,7 +96,7 @@ function s.xyzop(e,tp,eg,ep,ev,re,r,rp)
local tc2=tg:GetFirst()
if tc then
local og=tc:GetOverlayGroup()
local sg=og:Select(1,1,nil)
local sg=og:Select(tp,1,1,nil)
Duel.Overlay(tc,sg)
end
end
\ No newline at end of file
......@@ -41,12 +41,17 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CANNOT_DISABLE)
e1:SetRange(LOCATION_MZONE)
e1:SetAbsoluteRange(tp,1,0)
e1:SetTargetRange(1,0)
e1:SetTarget(s.splimit)
e1:SetCondition(s.con)
e1:SetLabel(tp)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1,true)
end
end
function s.con(e)
return e:GetHandler():GetControler()==e:GetLabel()
end
function s.splimit(e,c)
return not c:IsType(TYPE_XYZ) and c:IsLocation(LOCATION_EXTRA)
end
......
......@@ -5,6 +5,7 @@ function s.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_EQUIP)
e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e1:SetCondition(s.ibcon)
e1:SetValue(1)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
......@@ -32,7 +33,11 @@ function s.initial_effect(c)
e4:SetOperation(s.eqop)
c:RegisterEffect(e4)
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
end
function s.thfilter(c,ec)
......
......@@ -17,6 +17,7 @@ function s.initial_effect(c)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_GRAVE)
e2:SetCountLimit(1,id+o)
e2:SetCost(aux.bfgcost)
e2:SetTarget(s.atttg)
e2:SetOperation(s.attop)
......
......@@ -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)
end
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
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
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
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
if chk==0 then return Duel.IsExistingMatchingCard(s.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
local g=Duel.GetMatchingGroup(s.filter,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
local attr=0
for tc in aux.Next(g) do
attr=attr|tc:GetAttribute()
......@@ -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)
end
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
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)
......
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