Commit b8986b6a authored by CubeRuler's avatar CubeRuler

fixed

parent 13e48ff0
......@@ -81,7 +81,7 @@ end
--效果2
function cm.tgcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsLevel(1)
return c:IsLevel(1) and Duel.GetCurrentPhase()~=PHASE_END
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
......@@ -104,12 +104,12 @@ function cm.spfilter(c,e,tp)
return c.setname=="TaleSouls" and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsLevel(1) and not c:IsCode(m)
end
function cm.tgtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
if chk==0 then return Duel.GetMZoneCount(tp,e:GetHandler())>0
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_HAND+LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND+LOCATION_GRAVE)
end
function cm.tgop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
if Duel.GetMZoneCount(tp,e:GetHandler())>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_HAND+LOCATION_GRAVE,0,1,1,nil,e,tp)
if g:GetCount()>0 then
......
......@@ -121,7 +121,7 @@ function cm.operation2(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(-200)
e1:SetValue(-400)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
......
......@@ -113,14 +113,14 @@ function cm.atkop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_DAMAGE_CAL)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetValue(bc:GetAttack())
c:RegisterEffect(e1)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_EXTRA_ATTACK)
e3:SetValue(1)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE)
e3:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e3)
if dam<0 then dam=0 end
Duel.Damage(1-tp,dam,REASON_EFFECT)
......
......@@ -17,16 +17,16 @@ function c33350005.initial_effect(c)
e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(0,LOCATION_MZONE)
e3:SetCode(EFFECT_CANNOT_ATTACK_ANNOUNCE)
e3:SetValue(cm.atlimit)
e3:SetTarget(cm.attack)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e4:SetCode(EFFECT_CANNOT_ACTIVATE)
e4:SetRange(LOCATION_MZONE)
e4:SetTargetRange(1,1)
e4:SetTargetRange(0,LOCATION_MZONE)
e4:SetCondition(cm.actcon)
e4:SetValue(cm.aclimit)
e4:SetValue(cm.atlimit)
c:RegisterEffect(e4)
end
cm.setname="TaleSouls"
......@@ -45,34 +45,35 @@ function cm.e01op(e,tp,eg,ep,ev,re,r,rp)
local tp=e:GetHandlerPlayer()
local c=e:GetHandler()
local seq=c:GetSequence()
local g=Duel.GetFieldGroup(tp,0xff,0)
local seed=g:RandomSelect(tp,1)
local nseq=seed:GetFirst():GetSequence()
local nseq=math.randomseed(0,4)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetValue(300)
c:RegisterEffect(e1)
while nseq>4 do nseq=nseq-5 end
if Duel.GetLocationCount(tp,LOCATION_MZONE)==0 then
return false
else
if nseq==seq then
if seq>=2 then
if Duel.CheckLocation(e:GetHandlerPlayer(),LOCATION_MZONE,nseq-1) then
Duel.MoveSequence(c,nseq-1)
end
else
if Duel.CheckLocation(e:GetHandlerPlayer(),LOCATION_MZONE,nseq+1) then
Duel.MoveSequence(c,nseq+1)
end
end
else
if Duel.CheckLocation(e:GetHandlerPlayer(),LOCATION_MZONE,nseq) then
if Duel.CheckLocation(e:GetHandlerPlayer(),LOCATION_MZONE,nseq)then
Duel.MoveSequence(c,nseq)
elseif seq~=4 and Duel.CheckLocation(e:GetHandlerPlayer(),LOCATION_MZONE,nseq+1)then
Duel.MoveSequence(c,nseq+1)
elseif seq~=0 and Duel.CheckLocation(e:GetHandlerPlayer(),LOCATION_MZONE,nseq-1) then
Duel.MoveSequence(c,nseq-1)
elseif nseq+2<=4 and Duel.CheckLocation(e:GetHandlerPlayer(),LOCATION_MZONE,nseq+2)then
Duel.MoveSequence(c,nseq+2)
elseif nseq-2>=0 and Duel.CheckLocation(e:GetHandlerPlayer(),LOCATION_MZONE,nseq-2)then
Duel.MoveSequence(c,nseq-2)
elseif nseq-3>=0 and Duel.CheckLocation(e:GetHandlerPlayer(),LOCATION_MZONE,nseq-3)then
Duel.MoveSequence(c,nseq-3)
elseif nseq+3<=4 and Duel.CheckLocation(e:GetHandlerPlayer(),LOCATION_MZONE,nseq+3)then
Duel.MoveSequence(c,nseq+3)
elseif nseq-4>=0 and Duel.CheckLocation(e:GetHandlerPlayer(),LOCATION_MZONE,nseq-4)then
Duel.MoveSequence(c,nseq-4)
elseif nseq+4<=4 and Duel.CheckLocation(e:GetHandlerPlayer(),LOCATION_MZONE,nseq+4)then
Duel.MoveSequence(c,nseq+4)
end
end
end
if Duel.IsExistingMatchingCard(cm.tgfilter,tp,0,LOCATION_MZONE,1,nil)
and Duel.GetLocationCount(1-tp,LOCATION_MZONE,PLAYER_NONE,0)>0 and Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
......@@ -91,7 +92,7 @@ function cm.e01op(e,tp,eg,ep,ev,re,r,rp)
end
end
--效果1
function cm.atlimit(e,c)
function cm.atlimit(e,re)
local tc=re:GetHandler()
return tc:IsLocation(LOCATION_MZONE) and re:IsActiveType(TYPE_MONSTER) and e:GetHandler():GetColumnGroup():IsContains(tc) and tc:IsAttackBelow(e:GetHandler():GetAttack())
end
......@@ -100,4 +101,10 @@ function cm.actcon(e,tp)
end
function cm.spfilter(c,e,tp)
return c:IsCode(33350001) and c:IsFaceup()
end
function cm.attack(e,c)
local ct1=aux.GetColumn(e:GetHandler())
local ct2=aux.GetColumn(c)
if not ct1 or not ct2 then return false end
return math.abs(ct1-ct2)==0
end
\ No newline at end of file
......@@ -79,17 +79,20 @@ function cm.desop(e,tp,eg,ep,ev,re,r,rp)
end
--效果1
function cm.sccon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ph=Duel.GetCurrentPhase()
return not e:GetHandler():IsStatus(STATUS_CHAINING) and Duel.GetTurnPlayer()==1-tp
and (ph==PHASE_MAIN1 or (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE) or ph==PHASE_MAIN2) and not e:GetHandler():IsControler(tp)
return not e:GetHandler():IsStatus(STATUS_CHAINING) and Duel.GetTurnPlayer()==1-c:GetControler()
and (ph==PHASE_MAIN1 or (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE) or ph==PHASE_MAIN2) and not e:GetHandler():IsControler(tp) and Duel.GetCurrentChain()==0
end
function cm.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(aux.TRUE,1-tp,LOCATION_HAND,0,1,e:GetHandler()) end
if chk==0 then return Duel.IsExistingMatchingCard(aux.TRUE,tp,LOCATION_HAND,0,1,e:GetHandler()) end
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2)
end
function cm.drop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(m,0))
local ag=Duel.SelectMatchingCard(tp,aux.TRUE,tp,0,LOCATION_HAND,1,1,nil)
local ag=Duel.SelectMatchingCard(tp,aux.TRUE,tp,LOCATION_HAND,0,1,1,nil)
local g1=Duel.GetDecktopGroup(tp,1)
ag:Merge(g1)
if ag:GetCount()==2 then
......@@ -97,9 +100,11 @@ function cm.drop(e,tp,eg,ep,ev,re,r,rp)
Duel.ConfirmCards(tp,ag)
Duel.ShuffleHand(tp)
Duel.ShuffleHand(1-tp)
Duel.BreakEffect()
end
Duel.BreakEffect()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
......@@ -109,5 +114,4 @@ function cm.drop(e,tp,eg,ep,ev,re,r,rp)
e2:SetValue(RESET_TURN_SET)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e2)
end
end
\ No newline at end of file
......@@ -8,17 +8,17 @@ function c33350007.initial_effect(c)
e1:SetCategory(CATEGORY_SEARCH+CATEGORY_COIN+CATEGORY_TOHAND)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetCondition(cm.conditon1)
e1:SetCondition(cm.conditon1)
e1:SetTarget(cm.destg1)
e1:SetOperation(cm.desop1)
c:RegisterEffect(e1)
local e2=e1:Clone()
local e2=e1:Clone()
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetCondition(cm.conditon2)
e2:SetTarget(cm.destg2)
e2:SetOperation(cm.desop2)
e2:SetTarget(cm.destg2)
e2:SetOperation(cm.desop2)
c:RegisterEffect(e2)
local e4=Effect.CreateEffect(c)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e4:SetCode(EFFECT_CANNOT_TO_HAND)
......@@ -35,10 +35,10 @@ function cm.spfilter(c,e,tp)
return c:IsCode(33350001) and c:IsFaceup()
end
function cm.conditon1(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_REMOVED+LOCATION_GRAVE,0,1,nil,e,tp)
return not Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_REMOVED+LOCATION_GRAVE,0,1,nil,e,tp)
end
function cm.conditon2(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_REMOVED+LOCATION_GRAVE,0,1,nil,e,tp)
return Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_REMOVED+LOCATION_GRAVE,0,1,nil,e,tp)
end
function cm.destg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.sfilter,tp,LOCATION_DECK,0,1,nil,e,tp) end
......@@ -49,8 +49,8 @@ function cm.desop1(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(cm.sfilter,tp,LOCATION_DECK,0,nil)
if g:GetCount()==0 then return end
local coin=Duel.AnnounceCoin(tp)
local c1=Duel.TossCoin(tp,1)
local ct=c1
local l1=Duel.TossCoin(tp,1)
local ct=l1
if coin~=res then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SELECT)
local dg=g:Select(tp,1,ct,nil):GetFirst()
......@@ -68,44 +68,50 @@ function cm.efilter(e,te)
return te:GetOwnerPlayer()~=e:GetHandlerPlayer()
end
function cm.desop2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(cm.sfilter,tp,LOCATION_DECK,0,nil)
local ng=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
local ng=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
if g:GetCount()==0 then return end
local b=Duel.AnnounceCoin(tp)
local s=Duel.AnnounceCoin(tp)
local y=Duel.AnnounceCoin(tp)
local c1,c2,c3=Duel.TossCoin(tp,3)
if (b==c1 and s~=c2 and y~=c3) or(b~=c1 and s==c2 and y~=c3)or (b~=c1 and s~=c2 and y==c3) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SELECT)
local dg=g:Select(tp,1,ct,nil)
if g:GetCount()>0 then
Duel.SendtoHand(dg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,dg)
local l1,l2,l3=Duel.TossCoin(tp,3)
local ic=0
if l1~=b then ic=ic+1 end
if l2~=s then ic=ic+1 end
if l3~=y then ic=ic+1 end
if ic~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SELECT)
local dg=g:Select(tp,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(dg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,dg)
end
if ic>1 then
local yg=ng:Select(tp,1,1,nil)
Duel.HintSelection(yg)
Duel.Destroy(yg,REASON_EFFECT)
end
if ic==3 then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetValue(cm.efilter)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetValue(3000)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_DIRECT_ATTACK)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e3)
end
end
elseif (b==c1 and s==c2 and y~=c3) or (b==c1 and s~=c2 and y==c3) or (b~=c1 and s==c2 and y==c3) then
local yg=ng:Select(tp,1,1,nil)
Duel.HintSelection(yg)
Duel.Destroy(yg,REASON_EFFECT)
elseif b==c1 and s==c2 and y==c3 then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetValue(cm.efilter)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetValue(3000)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_DIRECT_ATTACK)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e3)
end
end
--效果2
......
......@@ -14,7 +14,7 @@ function c33350009.initial_effect(c)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_ATTACK_ANNOUNCE)
e2:SetRange(LOCATION_HAND)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(cm.condition)
e2:SetTarget(cm.target)
e2:SetOperation(cm.operation)
......
......@@ -2,12 +2,12 @@
local m=33350010
local cm=_G["c"..m]
function c33350010.initial_effect(c)
local e1=Effect.CreateEffect(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH)
e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH)
e1:SetCondition(cm.spcon)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
......@@ -46,6 +46,7 @@ function cm.copyop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc and c:IsRelateToEffect(e) and c:IsFaceup() and tc:IsRelateToEffect(e) and (tc:IsFaceup() or tc:IsLocation(LOCATION_GRAVE)) then
local code=tc:GetOriginalCodeRule()
local cid=0
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
......@@ -53,41 +54,46 @@ function cm.copyop(e,tp,eg,ep,ev,re,r,rp)
e1:SetValue(code)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
local e11=Effect.CreateEffect(c)
e11:SetType(EFFECT_TYPE_SINGLE)
e11:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e11:SetCode(EFFECT_CHANGE_LEVEL)
e11:SetValue(tc:GetLevel())
e11:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e11)
if not tc:IsType(TYPE_TRAPMONSTER) then
local cid=c:CopyEffect(code,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,1)
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_PHASE+PHASE_END)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCountLimit(1)
e3:SetRange(LOCATION_MZONE)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
e3:SetLabelObject(e1)
e3:SetLabel(cid)
e3:SetOperation(cm.rstop)
c:RegisterEffect(e3)
cid=c:CopyEffect(code,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,1)
end
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_PHASE+PHASE_END)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCountLimit(1)
e3:SetRange(LOCATION_MZONE)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
e3:SetLabelObject(e1)
e3:SetLabel(cid)
e3:SetOperation(cm.rstop)
c:RegisterEffect(e3)
end
end
function cm.rstop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local cid=e:GetLabel()
if cid~=0 then
c:ResetEffect(cid,RESET_COPY)
c:ResetEffect(RESET_DISABLE,RESET_EVENT)
end
local e1=e:GetLabelObject()
e1:Reset()
Duel.HintSelection(Group.FromCards(c))
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function cm.spfilter(c)
return cm.setname=="TaleSouls" and c:IsAbleToGraveAsCost()
return c.setname=="TaleSouls" and c:IsAbleToGraveAsCost()
end
function cm.spcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,c)
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_HAND,0,1,c)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,c)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_HAND,0,1,1,c)
Duel.SendtoGrave(g,REASON_COST)
end
......@@ -27,7 +27,6 @@ function c33350011.initial_effect(c)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_MZONE)
e3:SetProperty(EFFECT_FLAG_BOTH_SIDE+EFFECT_FLAG_PLAYER_TARGET)
e3:SetCountLimit(1,EFFECT_COUNT_CODE_SINGLE)
e3:SetCost(cm.effcost)
e3:SetTarget(cm.drtg)
e3:SetOperation(cm.drop)
......@@ -35,10 +34,10 @@ function c33350011.initial_effect(c)
end
cm.setname="TaleSouls"
function cm.mfilter(c,xyzc)
return cm.setname=="TaleSouls" and c:IsLevel(1)
return c.setname=="TaleSouls" and c:IsLevel(1)
end
function cm.spfilter(c,e,tp)
return c:IsCode(33350001) and c:IsFaceup()
return c:IsCode(33350007) and c:IsFaceup()
end
function cm.xyzop(c,e,tp)
return Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_REMOVED+LOCATION_GRAVE,0,1,nil,e,tp) and c:IsFaceup() and c:IsCode(33350010)
......@@ -48,14 +47,14 @@ function cm.effcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ)
end
function cm.ofilter(c,e)
return c:IsCanOverlay() and (not e or not c:IsImmuneToEffect(e))
return c:IsCanOverlay() and (not e or not c:IsImmuneToEffect(e)) and c.setname=="TaleSouls"
end
function cm.gselect(g,mat)
g:Merge(mat)
return aux.dncheck(g) and g:GetClassCount(Card.GetOriginalCodeRule)==#g
end
function cm.tgfilter(c)
return c:IsCanOverlay()
return c:IsCanOverlay() and c.setname=="TaleSouls"
end
function cm.efftg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
......@@ -98,7 +97,7 @@ end
function cm.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,c:GetControler(),500)
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,1-c:GetControler(),500)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-c:GetControler(),800)
end
function cm.drop(e,tp,eg,ep,ev,re,r,rp)
......@@ -118,6 +117,6 @@ function cm.drop(e,tp,eg,ep,ev,re,r,rp)
c:RegisterEffect(e2)
end
Duel.BreakEffect()
Duel.Recover(c:GetControler(),500,REASON_EFFECT)
Duel.Recover(1-c:GetControler(),500,REASON_EFFECT)
Duel.Damage(1-c:GetControler(),800,REASON_EFFECT)
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