Commit 9290a029 authored by Fluorohydride's avatar Fluorohydride

Merge pull request #567 from salix5/patch4

fix:41620959, 87025064, 47942531, 6614221, 8794435, 88071625, 83986578
parents e963a748 514aaa2f
......@@ -12,7 +12,7 @@ function c41620959.initial_effect(c)
end
function c41620959.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFlagEffect(tp,41620959)==0 end
Duel.RegisterFlagEffect(tp,41620959,RESET_PHASE+PHASE_END,0,1)
Duel.RegisterFlagEffect(tp,41620959,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1)
end
function c41620959.tgfilter(c)
return c:IsRace(RACE_DRAGON) and c:IsAbleToGrave()
......
......@@ -6,6 +6,13 @@ function c47942531.initial_effect(c)
e1:SetCode(EFFECT_MATERIAL_CHECK)
e1:SetValue(c47942531.valcheck)
c:RegisterEffect(e1)
--give atk effect only when summon
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_SUMMON_COST)
e2:SetOperation(c47942531.facechk)
e2:SetLabelObject(e1)
c:RegisterEffect(e2)
end
function c47942531.valcheck(e,c)
local tc=c:GetMaterial():GetFirst()
......@@ -13,12 +20,17 @@ function c47942531.valcheck(e,c)
if tc then atk=tc:GetTextAttack()*2 end
if atk<0 then atk=0 end
--atk continuous effect
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetValue(atk)
e1:SetReset(RESET_EVENT+0xff0000)
c:RegisterEffect(e1)
if e:GetLabel()==1 then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetValue(atk)
e1:SetReset(RESET_EVENT+0xff0000)
c:RegisterEffect(e1)
end
end
function c47942531.facechk(e,tp,eg,ep,ev,re,r,rp)
e:GetLabelObject():SetLabel(1)
end
......@@ -12,14 +12,21 @@ function c6614221.initial_effect(c)
e2:SetCode(EFFECT_MATERIAL_CHECK)
e2:SetValue(c6614221.valcheck)
c:RegisterEffect(e2)
--cannot release
--give atk effect only when summon
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EFFECT_CANNOT_RELEASE)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetTargetRange(1,1)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_SUMMON_COST)
e3:SetOperation(c6614221.facechk)
e3:SetLabelObject(e2)
c:RegisterEffect(e3)
--cannot release
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetRange(LOCATION_MZONE)
e4:SetCode(EFFECT_CANNOT_RELEASE)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e4:SetTargetRange(1,1)
c:RegisterEffect(e4)
end
function c6614221.valcheck(e,c)
local g=c:GetMaterial()
......@@ -30,13 +37,17 @@ function c6614221.valcheck(e,c)
atk=atk+(catk>=0 and catk or 0)
tc=g:GetNext()
end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetValue(atk)
e1:SetReset(RESET_EVENT+0xff0000)
c:RegisterEffect(e1)
if e:GetLabel()==1 then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetValue(atk)
e1:SetReset(RESET_EVENT+0xff0000)
c:RegisterEffect(e1)
end
end
function c6614221.facechk(e,tp,eg,ep,ev,re,r,rp)
e:GetLabelObject():SetLabel(1)
end
......@@ -19,7 +19,7 @@ function c83986578.cfilter(c)
return c:IsFaceup() and c:IsAttackBelow(1400)
end
function c83986578.condition(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c83986578.cfilter,1,nil)
return eg:IsExists(c83986578.cfilter,1,nil) and not eg:IsContains(e:GetHandler())
end
function c83986578.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
......
......@@ -13,7 +13,7 @@ function c87025064.initial_effect(c)
end
function c87025064.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFlagEffect(tp,87025064)==0 end
Duel.RegisterFlagEffect(tp,87025064,RESET_PHASE+PHASE_END,0,1)
Duel.RegisterFlagEffect(tp,87025064,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1)
end
function c87025064.filter(c,e,tp)
return c:IsRace(RACE_DRAGON) and c:IsType(TYPE_NORMAL) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
......
......@@ -6,6 +6,13 @@ function c8794435.initial_effect(c)
e1:SetCode(EFFECT_MATERIAL_CHECK)
e1:SetValue(c8794435.valcheck)
c:RegisterEffect(e1)
--give atk effect only when summon
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_SUMMON_COST)
e2:SetOperation(c8794435.facechk)
e2:SetLabelObject(e1)
c:RegisterEffect(e2)
end
function c8794435.valcheck(e,c)
local g=c:GetMaterial()
......@@ -16,13 +23,18 @@ function c8794435.valcheck(e,c)
atk=atk+(catk>=0 and catk or 0)
tc=g:GetNext()
end
--atk continuous effect
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetValue(atk)
e1:SetReset(RESET_EVENT+0xff0000)
c:RegisterEffect(e1)
if e:GetLabel()==1 then
--atk continuous effect
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetValue(atk)
e1:SetReset(RESET_EVENT+0xff0000)
c:RegisterEffect(e1)
end
end
function c8794435.facechk(e,tp,eg,ep,ev,re,r,rp)
e:GetLabelObject():SetLabel(1)
end
......@@ -7,7 +7,7 @@ function c88071625.initial_effect(c)
e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(aux.FALSE)
c:RegisterEffect(e1)
--summon with 1 tribute
--summon/set with 1 tribute
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(88071625,0))
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
......@@ -17,22 +17,32 @@ function c88071625.initial_effect(c)
e2:SetOperation(c88071625.otop)
e2:SetValue(SUMMON_TYPE_ADVANCE)
c:RegisterEffect(e2)
--tribute check
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_MATERIAL_CHECK)
e3:SetValue(c88071625.valcheck)
local e3=e2:Clone()
e3:SetCode(EFFECT_SET_PROC)
c:RegisterEffect(e3)
--copy
--tribute check
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(88071625,1))
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e4:SetProperty(EFFECT_FLAG_CARD_TARGET)
e4:SetCode(EVENT_SUMMON_SUCCESS)
e4:SetCondition(c88071625.copycon)
e4:SetTarget(c88071625.copytg)
e4:SetOperation(c88071625.copyop)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_MATERIAL_CHECK)
e4:SetValue(c88071625.valcheck)
c:RegisterEffect(e4)
--give atk effect only when summon
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_SUMMON_COST)
e5:SetOperation(c88071625.facechk)
e5:SetLabelObject(e4)
c:RegisterEffect(e5)
--copy
local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(88071625,1))
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e6:SetProperty(EFFECT_FLAG_CARD_TARGET)
e6:SetCode(EVENT_SUMMON_SUCCESS)
e6:SetCondition(c88071625.copycon)
e6:SetTarget(c88071625.copytg)
e6:SetOperation(c88071625.copyop)
c:RegisterEffect(e6)
end
function c88071625.otcon(e,c)
if c==nil then return true end
......@@ -55,20 +65,25 @@ function c88071625.valcheck(e,c)
def=def+(cdef>=0 and cdef or 0)
tc=g:GetNext()
end
--atk continuous effect
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetValue(atk)
e1:SetReset(RESET_EVENT+0xff0000)
c:RegisterEffect(e1)
--def continuous effect
local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENCE)
e2:SetValue(def)
c:RegisterEffect(e2)
if e:GetLabel()==1 then
--atk continuous effect
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetValue(atk)
e1:SetReset(RESET_EVENT+0xff0000)
c:RegisterEffect(e1)
--def continuous effect
local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENCE)
e2:SetValue(def)
c:RegisterEffect(e2)
end
end
function c88071625.facechk(e,tp,eg,ep,ev,re,r,rp)
e:GetLabelObject():SetLabel(1)
end
function c88071625.copycon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetSummonType()==SUMMON_TYPE_ADVANCE
......
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