Commit e295b84d authored by VanillaSalt's avatar VanillaSalt

fix

parent 480bcbf9
...@@ -2384,7 +2384,10 @@ int32 field::process_instant_event() { ...@@ -2384,7 +2384,10 @@ int32 field::process_instant_event() {
peffect = pr.first->second; peffect = pr.first->second;
if(!peffect->is_condition_check(peffect->handler->current.controler, *elit)) if(!peffect->is_condition_check(peffect->handler->current.controler, *elit))
continue; continue;
peffect->handler->create_relation(peffect); if((peffect->flag & EFFECT_FLAG_FIELD_ONLY)
|| ((peffect->type & EFFECT_TYPE_SINGLE) && !(peffect->flag & EFFECT_FLAG_SINGLE_RANGE))
|| !(peffect->range & LOCATION_HAND) || (peffect->range & peffect->handler->current.location))
peffect->handler->create_relation(peffect);
peffect->s_range = peffect->handler->current.location; peffect->s_range = peffect->handler->current.location;
peffect->o_range = peffect->handler->current.sequence; peffect->o_range = peffect->handler->current.sequence;
newchain.flag = 0; newchain.flag = 0;
......
...@@ -68,7 +68,7 @@ function c1516510.efilter(e,re) ...@@ -68,7 +68,7 @@ function c1516510.efilter(e,re)
return e:GetOwnerPlayer()~=re:GetOwnerPlayer() return e:GetOwnerPlayer()~=re:GetOwnerPlayer()
end end
function c1516510.lvfilter(c) function c1516510.lvfilter(c)
return not c:IsCode(16178681) return c:IsCode(16178681) or c:IsHasEffect(EFFECT_FUSION_SUBSTITUTE)
end end
function c1516510.imfilter(c) function c1516510.imfilter(c)
return c:IsLocation(LOCATION_MZONE) and c:GetSummonType()==SUMMON_TYPE_PENDULUM return c:IsLocation(LOCATION_MZONE) and c:GetSummonType()==SUMMON_TYPE_PENDULUM
...@@ -76,12 +76,24 @@ end ...@@ -76,12 +76,24 @@ end
function c1516510.valcheck(e,c) function c1516510.valcheck(e,c)
local g=c:GetMaterial() local g=c:GetMaterial()
local flag=0 local flag=0
local lg=g:Filter(c1516510.lvfilter,nil) if g:GetCount()==2 then
local lv=lg:GetFirst():GetOriginalLevel() local lv=0
if lv>0 and lv<5 then local lg1=g:Filter(c1516510.lvfilter,nil)
flag=0x1 local lg2=g:Filter(Card.IsRace,nil,RACE_SPELLCASTER)
elseif lv>4 then if lg1:GetCount()==2 then
flag=0x2 lv=lg2:GetFirst():GetOriginalLevel()
local lc=lg2:GetNext()
if lc then lv=math.max(lv,lc:GetOriginalLevel()) end
else
local lc=g:GetFirst()
if lc==lg1:GetFirst() then lc=g:GetNext() end
lv=lc:GetOriginalLevel()
end
if lv>4 then
flag=0x2
elseif lv>0 then
flag=0x1
end
end end
if g:IsExists(c1516510.imfilter,1,nil) then if g:IsExists(c1516510.imfilter,1,nil) then
flag=flag+0x4 flag=flag+0x4
......
...@@ -44,7 +44,7 @@ function c30757396.damop(e,tp,eg,ep,ev,re,r,rp) ...@@ -44,7 +44,7 @@ function c30757396.damop(e,tp,eg,ep,ev,re,r,rp)
Duel.Damage(p,ct*300,REASON_EFFECT) Duel.Damage(p,ct*300,REASON_EFFECT)
end end
function c30757396.damcon2(e,tp,eg,ep,ev,re,r,rp) function c30757396.damcon2(e,tp,eg,ep,ev,re,r,rp)
return rp~=tp return eg:IsExists(Card.IsControler,1,nil,1-tp)
end end
function c30757396.damtg2(e,tp,eg,ep,ev,re,r,rp,chk) function c30757396.damtg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true 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