Commit 36f1d83d authored by Fluorohydride's avatar Fluorohydride

Merge pull request #320 from VanillaSalt/patch37

fix
parents 8d49289e 986dfbc0
......@@ -8,7 +8,6 @@ function c12533811.initial_effect(c)
e1:SetDescription(aux.Stringid(12533811,0))
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCountLimit(1)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(c12533811.condition)
e1:SetCost(c12533811.cost)
......@@ -24,7 +23,7 @@ function c12533811.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
end
function c12533811.filter(c)
return c:IsFaceup() and c:GetLevel()==1
return c:IsFaceup() and c:GetLevel()==1 and c:GetEffectCount(EFFECT_DIRECT_ATTACK)==0
end
function c12533811.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_MZONE) and c12533811.filter(chkc) end
......
......@@ -40,7 +40,7 @@ function c20822520.cfilter(c)
return c:IsType(TYPE_SPELL) and c:IsSetCard(0x106e)
end
function c20822520.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c20822520.cfilter,tp,LOCATION_GRAVE,0,1,nil)
return Duel.IsExistingMatchingCard(c20822520.cfilter,tp,LOCATION_GRAVE,0,5,nil)
end
function c20822520.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFlagEffect(tp,20822520)==0 and c20822520[tp] end
......@@ -68,7 +68,7 @@ function c20822520.target(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,0,LOCATION_DECK)
end
function c20822520.filter(c)
return c:IsType(TYPE_SPELL) and c:IsSetCard(0x106e) and c:IsAbleToHand()
return c:IsType(TYPE_SPELL) and c:IsSetCard(0x106e)
end
function c20822520.activate(e,tp,eg,ep,ev,re,r,rp)
local p=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER)
......@@ -76,12 +76,14 @@ function c20822520.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetDecktopGroup(p,2)
if g:GetCount()>0 then
local sg=g:Filter(c20822520.filter,nil)
if sg:GetFirst():IsAbleToHand() then
Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-p,sg)
Duel.ShuffleHand(p)
else
Duel.SendtoGrave(sg,REASON_EFFECT)
if sg:GetCount()>0 then
if sg:GetFirst():IsAbleToHand() then
Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-p,sg)
Duel.ShuffleHand(p)
else
Duel.SendtoGrave(sg,REASON_EFFECT)
end
end
Duel.ShuffleDeck(p)
end
......
......@@ -52,6 +52,7 @@ function c24694698.drop(e,tp,eg,ep,ev,re,r,rp)
if g:FilterCount(Card.IsRelateToEffect,nil,e)==2 then
Duel.SendtoDeck(g,nil,0,REASON_EFFECT)
Duel.ShuffleDeck(tp)
Duel.BreakEffect()
Duel.Draw(tp,1,REASON_EFFECT)
end
end
--妖精王 アルヴェルド
function c28290705.initial_effect(c)
--xyz summon
aux.AddXyzProcedure(c,aux.XyzFilterFunctionF(c,aux.FilterBoolFunction(Card.IsAttribute,0xffff-ATTRIBUTE_EARTH),4),2)
aux.AddXyzProcedure(c,aux.XyzFilterFunctionF(c,aux.FilterBoolFunction(Card.IsAttribute,ATTRIBUTE_EARTH),4),2)
c:EnableReviveLimit()
--addown
local e1=Effect.CreateEffect(c)
......@@ -15,13 +15,13 @@ function c28290705.initial_effect(c)
e1:SetOperation(c28290705.adop)
c:RegisterEffect(e1)
end
function c28290705.xyzfilter(c)
return c:GetLevel()==4 and c:IsAttribute(ATTRIBUTE_EARTH)
end
function c28290705.adcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
end
function c28290705.filter(c)
return c:IsFaceup() and c:IsAttribute(0xffff-ATTRIBUTE_EARTH)
end
function c28290705.adtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c28290705.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
end
......
......@@ -10,7 +10,7 @@ function c39980304.initial_effect(c)
c:RegisterEffect(e1)
end
function c39980304.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
if chk==0 then return not Duel.CheckAttackActivity(tp) end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_ATTACK)
......
......@@ -38,7 +38,7 @@ function c48229808.target(e,tp,eg,ep,ev,re,r,rp,chk)
end
function c48229808.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsFacedown() and not c:IsRelateToEffect(e) then return end
if c:IsFacedown() or not c:IsRelateToEffect(e) then return end
Duel.NegateActivation(ev)
if re:GetHandler():IsRelateToEffect(re) then
Duel.Destroy(eg,REASON_EFFECT)
......
......@@ -20,5 +20,6 @@ function c48539234.condition(e,tp,eg,ep,ev,re,r,rp)
return ep~=tp and Duel.GetCurrentPhase()~=PHASE_DRAW
end
function c48539234.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,48539234)
Duel.Draw(tp,2,REASON_EFFECT)
end
......@@ -69,9 +69,8 @@ function c50140163.eqop(e,tp,eg,ep,ev,re,r,rp)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_EQUIP)
e2:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_OWNER_RELATE)
e2:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_OWNER_RELATE+EFFECT_FLAG_SET_AVAILABLE)
e2:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e2:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e2:SetReset(RESET_EVENT+0x1fe0000)
e2:SetValue(c50140163.repval)
tc:RegisterEffect(e2)
......
......@@ -22,7 +22,7 @@ function c55727845.atktg(e,tp,eg,ep,ev,re,r,rp,chk)
local at=Duel.GetAttackTarget()
if chk==0 then return ((at and at:IsFaceup() and Duel.GetAttacker()==e:GetHandler()) or at==e:GetHandler())
and not e:GetHandler():IsStatus(STATUS_CHAINING) end
Duel.SetTargetCard(at)
Duel.SetTargetCard(e:GetHandler():GetBattleTarget())
end
function c55727845.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
......@@ -39,7 +39,7 @@ function c59170782.tgcost(e,tp,eg,ep,ev,re,r,rp,chk)
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
end
function c59170782.tgcon1(e,tp,eg,ep,ev,re,r,rp)
if not re:IsActiveType(TYPE_SPELL+TYPE_TRAP) or not re:IsHasProperty(EFFECT_FLAG_CARD_TARGET) then return false end
if rp==tp or not re:IsActiveType(TYPE_SPELL+TYPE_TRAP) or not re:IsHasProperty(EFFECT_FLAG_CARD_TARGET) then return false end
local g=Duel.GetChainInfo(ev,CHAININFO_TARGET_CARDS)
if not g or g:GetCount()~=1 then return false end
local tc=g:GetFirst()
......
......@@ -59,5 +59,12 @@ function c73445448.operation(e,tp,eg,ep,ev,re,r,rp)
e2:SetValue(RESET_TURN_SET)
e2:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+RESET_END)
tc:RegisterEffect(e2)
if tc:IsType(TYPE_TRAPMONSTER) then
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_DISABLE_TRAPMONSTER)
e3:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+RESET_END)
tc:RegisterEffect(e3)
end
end
end
......@@ -70,8 +70,8 @@ end
function c78371393.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsFacedown() or not c:IsRelateToEffect(e) then return end
if Duel.CheckReleaseGroup(tp,Card.IsReleasableByEffect,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(78371393,2)) then
local g=Duel.SelectReleaseGroup(tp,Card.IsReleasableByEffect,1,1,nil)
if Duel.CheckReleaseGroup(tp,Card.IsReleasableByEffect,1,c) and Duel.SelectYesNo(tp,aux.Stringid(78371393,2)) then
local g=Duel.SelectReleaseGroup(tp,Card.IsReleasableByEffect,1,1,c)
Duel.Release(g,REASON_EFFECT)
else Duel.Destroy(c,REASON_EFFECT) end
end
......
......@@ -5,7 +5,7 @@ function c78422252.initial_effect(c)
e1:SetDescription(aux.Stringid(78422252,0))
e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_NO_TURN_RESET)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_BE_BATTLE_TARGET)
e1:SetCode(EVENT_ATTACK_ANNOUNCE)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetCondition(c78422252.condition)
......
......@@ -12,7 +12,7 @@ function c82263578.initial_effect(c)
c:RegisterEffect(e1)
end
function c82263578.condition(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(nil,tp,LOCATION_ONFIELD,LOCATION_INFIELD,1,e:GetHandler())
return not Duel.IsExistingMatchingCard(nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,e:GetHandler())
end
function c82263578.filter(c)
return c:IsAttribute(ATTRIBUTE_WATER+ATTRIBUTE_WIND) and c:IsAbleToHand()
......
......@@ -33,6 +33,7 @@ function c82639107.activate(e,tp,eg,ep,ev,re,r,rp)
sg1:Merge(sg2)
Duel.SendtoGrave(sg1,REASON_EFFECT)
Duel.ShuffleDeck(tp)
Duel.BreakEffect()
Duel.Draw(tp,2,REASON_EFFECT)
end
end
......@@ -5,7 +5,7 @@ function c82670878.initial_effect(c)
e1:SetDescription(aux.Stringid(82670878,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_ATTACK_ANNOUNCE)
e1:SetCode(82670878)
e1:SetRange(LOCATION_HAND)
e1:SetCondition(c82670878.condition)
e1:SetTarget(c82670878.target)
......@@ -41,6 +41,8 @@ function c82670878.check(e,tp,eg,ep,ev,re,r,rp)
c82670878[3]=Duel.GetAttacker():GetAttack()
c82670878[4]=Duel.GetAttacker():GetDefence()
Duel.GetAttacker():RegisterFlagEffect(82670878,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
elseif c82670878[1-tc:GetControler()]==2 then
Duel.RaiseEvent(tc,82670878,e,0,0,0,0)
end
end
end
......
......@@ -19,13 +19,13 @@ function c83715234.initial_effect(c)
e2:SetOperation(c83715234.desop)
c:RegisterEffect(e2)
end
function c83715234.cfilter(c)
function c83715234.cfilter(c,tp)
local np=c:GetPosition()
local pp=c:GetPreviousPosition()
return c:IsRace(RACE_ROCK) and not c:IsStatus(STATUS_CONTINUOUS_POS) and ((np<3 and pp>3) or (pp<3 and np>3))
return c:IsControler(tp) and c:IsRace(RACE_ROCK) and not c:IsStatus(STATUS_CONTINUOUS_POS) and ((np<3 and pp>3) or (pp<3 and np>3))
end
function c83715234.descon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c83715234.cfilter,1,nil)
return eg:IsExists(c83715234.cfilter,1,nil,tp)
end
function c83715234.desfilter(c)
return c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsDestructable()
......
......@@ -24,7 +24,7 @@ end
function c86840720.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return eg:IsContains(chkc) and c86840720.filter(chkc,e,tp) end
if chk==0 then return eg:IsExists(c86840720.filter,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=eg:FilterSelect(tp,c86840720.filter,1,1,nil,e,tp)
Duel.SetTargetCard(g)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0)
......
......@@ -42,7 +42,7 @@ function c95772051.initial_effect(c)
c:RegisterEffect(e6)
end
function c95772051.spfilter(c)
return c:IsFaceup() and c:IsAttribute(ATTRIBUTE_LIGHT) and c:IsType(TYPE_NORMAL) and c:IsAbleToRemoveAsCost()
return c:IsFaceup() and c:IsAttribute(ATTRIBUTE_LIGHT) and c:IsType(TYPE_NORMAL) and c:IsAbleToGraveAsCost()
end
function c95772051.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c95772051.spfilter,tp,LOCATION_MZONE,0,1,nil) end
......
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