Commit fc29a553 authored by VanillaSalt's avatar VanillaSalt

fix

parent 0c4c498b
......@@ -406,13 +406,8 @@ int32 effect::is_immuned(effect_set_v* effects) {
effect* peffect;
for (int i = 0; i < effects->count; ++i) {
peffect = effects->at(i);
if(type & 0x7f0) {
if(peffect->owner == handler)
return FALSE;
} else {
if(peffect->owner == owner)
return FALSE;
}
if(peffect->owner == owner)
return FALSE;
if(peffect->value) {
pduel->lua->add_param(this, PARAM_TYPE_EFFECT);
if(peffect->check_value_condition(1))
......
......@@ -1641,27 +1641,25 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32
}
card_vector nsyn;
card* pm;
if (mg) {
for (auto cit = mg->container.begin(); cit != mg->container.end(); ++cit) {
pm=*cit;
if(pm && pm != tuner && pm != smat && pm->is_can_be_synchro_material(pcard, tuner)) {
if(mg) {
for(auto cit = mg->container.begin(); cit != mg->container.end(); ++cit) {
pm = *cit;
if(pm != tuner && pm != smat && pm->is_can_be_synchro_material(pcard, tuner)) {
if(pcheck)
pcheck->get_value(pm);
if(pm->current.location == LOCATION_MZONE && !pm->is_position(POS_FACEUP))
continue;
if(!pduel->lua->check_matching(pm, findex2, 0))
continue;
nsyn.push_back(pm);
pm->operation_param = pm->get_synchro_level(pcard);
}
}
if(check_with_sum_limit(&nsyn, lv, 0, 1, min, max)) {
pduel->restore_assumes();
return TRUE;
}
} else {
for(uint8 p = 0; p < 2; ++p) {
for(int32 i = 0; i < 5; ++i) {
pm = player[p].list_mzone[i];
if(pm && pm != tuner && pm != smat && pm->is_position(POS_FACEUP) && pm->is_can_be_synchro_material(pcard, tuner)) {
if(pm && pm != tuner && pm != smat && pm->is_position(POS_FACEUP) && pm->is_can_be_synchro_material(pcard, tuner)) {
if(pcheck)
pcheck->get_value(pm);
if(!pduel->lua->check_matching(pm, findex2, 0))
......@@ -1671,10 +1669,10 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32
}
}
}
if(check_with_sum_limit(&nsyn, lv, 0, 1, min, max)) {
pduel->restore_assumes();
return TRUE;
}
}
if(check_with_sum_limit(&nsyn, lv, 0, 1, min, max)) {
pduel->restore_assumes();
return TRUE;
}
}
}
......
......@@ -3785,74 +3785,80 @@ int32 field::select_synchro_material(int16 step, uint8 playerid, card* pcard, in
return FALSE;
}
}
card_set cset;
card_set* mset;
if(mg)
mset = &mg->container;
else {
for(uint8 p = 0; p < 2; ++p) {
for(int32 i = 0; i < 5; ++i) {
card* pm = player[p].list_mzone[i];
if(pm && (pm->current.location != LOCATION_MZONE || pm->is_position(POS_FACEUP)))
cset.insert(pm);
}
}
mset = &cset;
}
card* tuner;
effect* peffect;
for(uint8 p = 0; p < 2; ++p) {
for(int32 i = 0; i < 5; ++i) {
pduel->restore_assumes();
tuner = player[p].list_mzone[i];
if(tuner && tuner->is_position(POS_FACEUP) && (tuner->get_type() & TYPE_TUNER) && tuner->is_can_be_synchro_material(pcard)) {
effect* pcheck = tuner->is_affected_by_effect(EFFECT_SYNCHRO_CHECK);
if(pcheck)
pcheck->get_value(tuner);
if(mg && !mg->has_card(tuner))
for(auto cit = mset->begin(); cit != mset->end(); ++cit) {
pduel->restore_assumes();
tuner = *cit;
if((tuner->get_type() & TYPE_TUNER) && tuner->is_can_be_synchro_material(pcard)) {
effect* pcheck = tuner->is_affected_by_effect(EFFECT_SYNCHRO_CHECK);
if(pcheck)
pcheck->get_value(tuner);
if(!pduel->lua->check_matching(tuner, -2, 0))
continue;
if((peffect = tuner->is_affected_by_effect(EFFECT_SYNCHRO_MATERIAL_CUSTOM, pcard))) {
if(!peffect->target)
continue;
if(!pduel->lua->check_matching(tuner, -2, 0))
pduel->lua->add_param(peffect, PARAM_TYPE_EFFECT);
pduel->lua->add_param(pcard, PARAM_TYPE_CARD);
pduel->lua->add_param(-1, PARAM_TYPE_INDEX);
pduel->lua->add_param(min, PARAM_TYPE_INT);
pduel->lua->add_param(max, PARAM_TYPE_INT);
if(pduel->lua->check_condition(peffect->target, 5))
core.select_cards.push_back(tuner);
} else {
int32 l = tuner->get_synchro_level(pcard);
int32 l1 = l & 0xffff;
//int32 l2 = l >> 16;
int32 lv = pcard->get_level();
lv -= l1;
if(lv <= 0)
continue;
if((peffect = tuner->is_affected_by_effect(EFFECT_SYNCHRO_MATERIAL_CUSTOM, pcard))) {
if(!peffect->target)
continue;
pduel->lua->add_param(peffect, PARAM_TYPE_EFFECT);
pduel->lua->add_param(pcard, PARAM_TYPE_CARD);
pduel->lua->add_param(-1, PARAM_TYPE_INDEX);
pduel->lua->add_param(min, PARAM_TYPE_INT);
pduel->lua->add_param(max, PARAM_TYPE_INT);
if(pduel->lua->check_condition(peffect->target, 5))
core.select_cards.push_back(tuner);
} else {
int32 l = tuner->get_synchro_level(pcard);
int32 l1 = l & 0xffff;
//int32 l2 = l >> 16;
int32 lv = pcard->get_level();
if(smat) {
if(pcheck)
pcheck->get_value(smat);
l = smat->get_synchro_level(pcard);
l1 = l & 0xffff;
lv -= l1;
if(lv <= 0)
min--;
max--;
if(lv <= 0) {
if(lv == 0 && min == 0)
core.select_cards.push_back(tuner);
continue;
if(smat) {
}
if(max == 0)
continue;
}
card_vector nsyn;
card* pm;
for(auto mit = mset->begin(); mit != mset->end(); ++mit) {
pm = *mit;
if(pm != tuner && pm->is_can_be_synchro_material(pcard, tuner)) {
if(pcheck)
pcheck->get_value(smat);
l = smat->get_synchro_level(pcard);
l1 = l & 0xffff;
lv -= l1;
min--;
max--;
if(lv <= 0) {
if(lv == 0 && min == 0)
core.select_cards.push_back(tuner);
pcheck->get_value(pm);
if(!pduel->lua->check_matching(pm, -1, 0))
continue;
}
if(max == 0)
continue;
}
card_vector nsyn;
card* pm;
for(uint8 np = 0; np < 2; ++np) {
for(int32 j = 0; j < 5; ++j) {
pm = player[np].list_mzone[j];
if(pm && pm != tuner && pm->is_position(POS_FACEUP) && pm->is_can_be_synchro_material(pcard, tuner)) {
if(pcheck)
pcheck->get_value(pm);
if(mg && !mg->has_card(pm))
continue;
if(!pduel->lua->check_matching(pm, -1, 0))
continue;
nsyn.push_back(pm);
pm->operation_param = pm->get_synchro_level(pcard);
}
}
nsyn.push_back(pm);
pm->operation_param = pm->get_synchro_level(pcard);
}
if(check_with_sum_limit(&nsyn, lv, 0, 1, min, max))
core.select_cards.push_back(tuner);
}
if(check_with_sum_limit(&nsyn, lv, 0, 1, min, max))
core.select_cards.push_back(tuner);
}
}
}
......@@ -3930,13 +3936,13 @@ int32 field::select_synchro_material(int16 step, uint8 playerid, card* pcard, in
max--;
}
core.select_cards.clear();
for(uint8 np = 0; np < 2; ++np) {
for(int32 i = 0; i < 5; ++i) {
card* pm = player[np].list_mzone[i];
if(pm && pm != tuner && pm != smat && pm->is_position(POS_FACEUP) && pm->is_can_be_synchro_material(pcard, tuner)) {
if(mg) {
for(auto cit = mg->container.begin(); cit != mg->container.end(); ++cit) {
card* pm = *cit;
if(pm != tuner && pm != smat && pm->is_can_be_synchro_material(pcard, tuner)) {
if(pcheck)
pcheck->get_value(pm);
if(mg && !mg->has_card(pm))
if(pm->current.location == LOCATION_MZONE && !pm->is_position(POS_FACEUP))
continue;
if(!pduel->lua->check_matching(pm, -1, 0))
continue;
......@@ -3944,6 +3950,20 @@ int32 field::select_synchro_material(int16 step, uint8 playerid, card* pcard, in
pm->operation_param = pm->get_synchro_level(pcard);
}
}
} else {
for(uint8 np = 0; np < 2; ++np) {
for(int32 i = 0; i < 5; ++i) {
card* pm = player[np].list_mzone[i];
if(pm && pm != tuner && pm != smat && pm->is_position(POS_FACEUP) && pm->is_can_be_synchro_material(pcard, tuner)) {
if(pcheck)
pcheck->get_value(pm);
if(!pduel->lua->check_matching(pm, -1, 0))
continue;
core.select_cards.push_back(pm);
pm->operation_param = pm->get_synchro_level(pcard);
}
}
}
}
pduel->write_buffer8(MSG_HINT);
pduel->write_buffer8(HINT_SELECTMSG);
......
......@@ -39,23 +39,24 @@ function c16825874.ccon(e,tp,eg,ep,ev,re,r,rp)
end
function c16825874.cop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rc=c:GetReasonCard()
--leave redirect
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_LEAVE_FIELD_REDIRECT)
e1:SetValue(LOCATION_REMOVED)
e1:SetReset(RESET_EVENT+0x7e0000)
c:GetReasonCard():RegisterEffect(e1)
rc:RegisterEffect(e1)
--cannot trigger
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_CANNOT_TRIGGER)
e2:SetReset(RESET_EVENT+0x1fe0000)
c:GetReasonCard():RegisterEffect(e2)
rc:RegisterEffect(e2)
--disable
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_DISABLE)
e3:SetReset(RESET_EVENT+0x1fe0000)
c:GetReasonCard():RegisterEffect(e3)
rc:RegisterEffect(e3)
end
......@@ -31,7 +31,7 @@ function c20802187.xyzfilter(c)
return c:IsFaceup() and c:IsType(TYPE_XYZ)
end
function c20802187.matfilter(c)
return c:IsFaceup() and c:IsAttribute(ATTRIBUTE_LIGHT) and c:GetLevel()==4
return c:IsFaceup() and c:IsAttribute(ATTRIBUTE_LIGHT) and c:GetLevel()==4 and not c:IsType(TYPE_TOKEN)
end
function c20802187.mattg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_MZONE) and c20802187.xyzfilter(chkc) end
......@@ -43,7 +43,7 @@ end
function c20802187.matop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
local tc=Duel.GetFirstTarget()
if tc:IsFaceup() and tc:IsRelateToEffect(e) then
if tc:IsFaceup() and tc:IsRelateToEffect(e) and not tc:IsImmuneToEffect(e) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local g=Duel.SelectMatchingCard(tp,c20802187.matfilter,tp,LOCATION_MZONE,0,1,1,nil)
if g:GetCount()>0 then
......
......@@ -82,6 +82,8 @@ function c2095764.immop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rc=c:GetReasonCard()
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(2095764,1))
e1:SetProperty(EFFECT_FLAG_CLIENT_HINT)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetValue(c2095764.efilter)
......
......@@ -38,7 +38,6 @@ function c2273734.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_ATTACK)
e1:SetTargetRange(LOCATION_MZONE,0)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetTarget(c2273734.atktg)
e1:SetReset(RESET_PHASE+RESET_END)
Duel.RegisterEffect(e1,tp)
......
......@@ -25,7 +25,7 @@ end
function c24610207.efop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rc=c:GetReasonCard()
local e1=Effect.CreateEffect(c)
local e1=Effect.CreateEffect(rc)
e1:SetDescription(aux.Stringid(24610207,0))
e1:SetCategory(CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
......
......@@ -28,8 +28,7 @@ function c25642998.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
end
end
function c25642998.activate(e,tp,eg,ep,ev,re,r,rp)
local tg,d=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS,CHAININFO_TARGET_PARAM)
local tc=tg:GetFirst()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and tc:IsFaceup() and tc:IsAttackable() and Duel.NegateAttack() then
local dam=Duel.GetMatchingGroupCount(c25642998.dfilter,tp,LOCATION_MZONE,0,nil)*800
if dam>0 then
......
......@@ -13,7 +13,7 @@ function c25716180.initial_effect(c)
c:RegisterEffect(e1)
end
function c25716180.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and Card.IsAbleToHand(chkc) end
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and chkc:IsAbleToHand() end
if chk==0 then return Duel.IsExistingTarget(Card.IsAbleToHand,tp,0,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g=Duel.SelectTarget(tp,Card.IsAbleToHand,tp,0,LOCATION_MZONE,1,1,nil)
......
......@@ -47,7 +47,7 @@ function c25920413.spop(e,tp,eg,ep,ev,re,r,rp,c)
e1:SetReset(RESET_PHASE+RESET_END)
e1:SetTargetRange(1,0)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_CANNOT_MSET)
Duel.RegisterEffect(e2,tp)
end
......
......@@ -22,7 +22,7 @@ end
function c27068117.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and tc:IsFaceup() and c:IsRelateToEffect(e) then
if tc:IsRelateToEffect(e) and tc:IsFaceup() and not tc:IsImmuneToEffect(e) and c:IsRelateToEffect(e) then
c:CancelToGrave()
Duel.Overlay(tc,Group.FromCards(c))
end
......
......@@ -21,6 +21,7 @@ function c29228350.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
and Duel.IsExistingMatchingCard(Card.IsDestructable,tp,0,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectTarget(tp,c29228350.filter,tp,LOCATION_SZONE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,g,1,0,0)
local sg=Duel.GetMatchingGroup(Card.IsDestructable,tp,0,LOCATION_MZONE,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,sg,sg:GetCount(),0,0)
end
......
......@@ -25,7 +25,7 @@ function c313513.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetReset(RESET_SELF_TURN+RESET_PHASE+RESET_END,2)
e1:SetTargetRange(1,0)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_CANNOT_MSET)
Duel.RegisterEffect(e2,tp)
end
......
......@@ -18,7 +18,6 @@ function c34116027.filter(c)
return c:IsLevelBelow(4) and c:IsRace(RACE_DRAGON+RACE_WINDBEAST) and c:IsAbleToHand()
end
function c34116027.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.IsExistingMatchingCard(c34116027.filter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_HANDES,nil,1,tp,1)
......
......@@ -14,7 +14,7 @@ end
function c34143852.efop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rc=c:GetReasonCard()
local e1=Effect.CreateEffect(c)
local e1=Effect.CreateEffect(rc)
e1:SetDescription(aux.Stringid(34143852,0))
e1:SetCategory(CATEGORY_ATKCHANGE)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
......
......@@ -82,6 +82,8 @@ function c35089369.immop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rc=c:GetReasonCard()
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(35089369,1))
e1:SetProperty(EFFECT_FLAG_CLIENT_HINT)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetValue(c35089369.efilter)
......
......@@ -32,9 +32,9 @@ function c35984222.initial_effect(c)
local e5=e3:Clone()
e5:SetCode(EFFECT_CANNOT_SUMMON)
c:RegisterEffect(e5)
local e5=e3:Clone()
e5:SetCode(EFFECT_CANNOT_MSET)
c:RegisterEffect(e5)
local e6=e3:Clone()
e6:SetCode(EFFECT_CANNOT_MSET)
c:RegisterEffect(e6)
end
function c35984222.spr(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
......@@ -50,7 +50,7 @@ function c3606728.efop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,3606728)
local c=e:GetHandler()
local rc=c:GetReasonCard()
local e1=Effect.CreateEffect(c)
local e1=Effect.CreateEffect(rc)
e1:SetDescription(aux.Stringid(3606728,1))
e1:SetCategory(CATEGORY_ATKCHANGE)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
......
......@@ -14,7 +14,7 @@ function c37620434.filter(c)
return c:IsFaceup() and c:IsRace(RACE_FIEND) and c:IsControlerCanBeChanged()
end
function c37620434.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:GetLocation()==LOCATION_MZONE and chkc:GetControler()~=tp and c37620434.filter(chkc) end
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and c37620434.filter(chkc) end
if chk==0 then return true end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONTROL)
local g=Duel.SelectTarget(tp,c37620434.filter,tp,0,LOCATION_MZONE,1,1,nil)
......
......@@ -43,7 +43,7 @@ function c38331564.effop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,38331564)
local c=e:GetHandler()
local rc=c:GetReasonCard()
local e1=Effect.CreateEffect(c)
local e1=Effect.CreateEffect(rc)
e1:SetDescription(aux.Stringid(38331564,1))
e1:SetCategory(CATEGORY_DESTROY+CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
......
......@@ -37,7 +37,7 @@ function c39695323.spop(e,tp,eg,ep,ev,re,r,rp)
if tc:IsRelateToEffect(e) and Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP_DEFENCE)~=0 then
Duel.BreakEffect()
if c:IsRelateToEffect(e) and c:IsFaceup() then
Duel.ChangePosition(e:GetHandler(),POS_FACEUP_DEFENCE)
Duel.ChangePosition(c,POS_FACEUP_DEFENCE)
end
end
end
......
......@@ -44,6 +44,7 @@ function c4239451.adtg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
Duel.SelectTarget(tp,c4239451.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
end
function c4239451.adop1(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and tc:IsFaceup() then
local atk=tc:GetAttack()
......
......@@ -25,7 +25,7 @@ function c44028461.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetTargetRange(1,0)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_CANNOT_MSET)
Duel.RegisterEffect(e2,tp)
end
......
......@@ -17,7 +17,6 @@ function c44883830.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c44883830.cfilter,tp,LOCATION_MZONE,0,3,nil)
end
function c44883830.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDestructable,tp,0,LOCATION_ONFIELD,1,nil) end
local g=Duel.GetMatchingGroup(Card.IsDestructable,tp,0,LOCATION_ONFIELD,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
......
......@@ -29,7 +29,7 @@ function c45170821.valtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
end
function c45170821.valop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
local o=e:GetLabelObject(e)
local o=e:GetLabelObject()
local s=g:GetFirst()
if s==o then s=g:GetNext() end
if s:IsFaceup() and o:IsFaceup() and s:IsRelateToEffect(e) and o:IsRelateToEffect(e) then
......
......@@ -21,7 +21,7 @@ function c45305419.filter(c,e,tp)
and Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_GRAVE,0,2,c,c:GetCode())
end
function c45305419.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:GetLocation()==LOCATION_GRAVE and chkc:GetControler()==tp and c45305419.filter(chkc,e,tp) end
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c45305419.filter(chkc,e,tp) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingTarget(c45305419.filter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
......
......@@ -20,15 +20,9 @@ function c48092532.initial_effect(c)
c:RegisterEffect(e2)
end
function c48092532.rmcon(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsFacedown() then return false end
if bit.band(r,REASON_BATTLE)~=0 then
return bit.band(e:GetHandler():GetBattlePosition(),POS_FACEUP)~=0
and e:GetHandler():GetPreviousControler()==tp
else
return bit.band(e:GetHandler():GetPreviousLocation(),LOCATION_ONFIELD)~=0
and bit.band(e:GetHandler():GetPreviousPosition(),POS_FACEUP)~=0
and e:GetHandler():GetPreviousControler()==tp
end
local c=e:GetHandler()
return c:IsFaceup() and c:IsPreviousPosition(POS_FACEUP)
and c:IsPreviousLocation(LOCATION_ONFIELD) and c:GetPreviousControler()==tp
end
function c48092532.rmop(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():RegisterFlagEffect(48092532,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
......
......@@ -32,7 +32,6 @@ function c51717541.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,ds,1,0,0)
end
function c51717541.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ex1,g1=Duel.GetOperationInfo(0,CATEGORY_REMOVE)
local rm=g1:GetFirst()
if not rm:IsRelateToEffect(e) then return end
......
......@@ -51,7 +51,6 @@ function c51858306.operation(e,tp,eg,ep,ev,re,r,rp)
end
end
function c51858306.thcon(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject():GetLabelObject()
return e:GetHandler():IsFaceup() and e:GetHandler():GetFlagEffect(51858306)~=0
end
function c51858306.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
......
......@@ -21,7 +21,7 @@ function c52105192.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetTargetRange(1,0)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_CANNOT_MSET)
Duel.RegisterEffect(e2,tp)
end
......
--ץȥޥܩ`
--プチトマボー
function c525110.initial_effect(c)
--special summon
local e1=Effect.CreateEffect(c)
......@@ -6,7 +6,6 @@ function c525110.initial_effect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_BATTLE_DESTROYED)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(c525110.condition)
e1:SetTarget(c525110.target)
e1:SetOperation(c525110.operation)
......
......@@ -24,9 +24,9 @@ function c57274196.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetTargetRange(1,0)
e1:SetLabelObject(e)
Duel.RegisterEffect(e1,tp)
local e3=e1:Clone()
e3:SetCode(EFFECT_CANNOT_SUMMON)
Duel.RegisterEffect(e3,tp)
local e2=e1:Clone()
e2:SetCode(EFFECT_CANNOT_SUMMON)
Duel.RegisterEffect(e2,tp)
local e3=e1:Clone()
e3:SetCode(EFFECT_CANNOT_FLIP_SUMMON)
Duel.RegisterEffect(e3,tp)
......
......@@ -51,8 +51,8 @@ function c57774843.spcon(e,c)
return ct>3
end
function c57774843.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLPCost(tp,1000)
else Duel.PayLPCost(tp,1000) end
if chk==0 then return Duel.CheckLPCost(tp,1000) end
Duel.PayLPCost(tp,1000)
end
function c57774843.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
......
......@@ -15,7 +15,6 @@ function c57784563.initial_effect(c)
c:RegisterEffect(e1)
end
function c57784563.eqcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ec=e:GetLabelObject()
return ec==nil or ec:GetFlagEffect(57784563)==0
end
......
--
--世界樹
function c5973663.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
......
......@@ -69,4 +69,3 @@ function c59771339.desop(e,tp,eg,ep,ev,re,r,rp)
Duel.Destroy(d,REASON_EFFECT)
end
end
......@@ -45,7 +45,7 @@ end
function c64605089.efop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rc=c:GetReasonCard()
local e1=Effect.CreateEffect(c)
local e1=Effect.CreateEffect(rc)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
......
......@@ -51,7 +51,7 @@ end
function c64726269.effop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rc=c:GetReasonCard()
local e1=Effect.CreateEffect(c)
local e1=Effect.CreateEffect(rc)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetRange(LOCATION_MZONE)
......
......@@ -82,6 +82,8 @@ function c66500065.indop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rc=c:GetReasonCard()
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(66500065,1))
e1:SetProperty(EFFECT_FLAG_CLIENT_HINT)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e1:SetValue(1)
......
......@@ -49,7 +49,6 @@ function c69488544.spop(e,tp,eg,ep,ev,re,r,rp)
end
end
function c69488544.negcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not aux.IsDualState(e) or not re:IsHasProperty(EFFECT_FLAG_CARD_TARGET) then return false end
local g=Duel.GetChainInfo(ev,CHAININFO_TARGET_CARDS)
if not g or not g:IsExists(Card.IsLocation,1,nil,LOCATION_MZONE) then return false end
......
......@@ -14,7 +14,7 @@ end
function c7080743.efop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rc=c:GetReasonCard()
local e1=Effect.CreateEffect(c)
local e1=Effect.CreateEffect(rc)
e1:SetDescription(aux.Stringid(7080743,0))
e1:SetCategory(CATEGORY_ATKCHANGE)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
......
......@@ -24,7 +24,7 @@ end
function c72502414.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) then
if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) and not tc:IsImmuneToEffect(e) then
Duel.Overlay(tc,Group.FromCards(c))
end
end
......@@ -11,10 +11,10 @@ function c74825788.initial_effect(c)
c:RegisterEffect(e1)
end
function c74825788.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:GetLocation()==LOCATION_MZONE and chkc:GetControler()==tp and chkc:IsFaceup() end
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and chkc:IsFaceup() end
if chk==0 then return Duel.IsExistingTarget(Card.IsFaceup,tp,LOCATION_MZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local g=Duel.SelectTarget(tp,Card.IsFaceup,tp,LOCATION_MZONE,0,1,1,nil)
Duel.SelectTarget(tp,Card.IsFaceup,tp,LOCATION_MZONE,0,1,1,nil)
end
function c74825788.activate(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
......
......@@ -20,7 +20,6 @@ function c75434695.filter(c)
return c:IsCode(24094653) and c:IsAbleToHand() and not c:IsHasEffect(EFFECT_NECRO_VALLEY)
end
function c75434695.tg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.IsExistingMatchingCard(c75434695.filter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,0,1,0,LOCATION_DECK+LOCATION_GRAVE)
end
......
......@@ -45,7 +45,7 @@ function c75732622.spcop(e,tp,eg,ep,ev,re,r,rp)
e1:SetReset(RESET_PHASE+RESET_END)
e1:SetTargetRange(1,0)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_CANNOT_MSET)
Duel.RegisterEffect(e2,tp)
end
......@@ -17,7 +17,6 @@ function c75967082.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c75967082.cfilter,tp,LOCATION_MZONE,0,3,nil)
end
function c75967082.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDestructable,tp,0,LOCATION_ONFIELD,1,nil) end
local g=Duel.GetMatchingGroup(Card.IsDestructable,tp,0,LOCATION_ONFIELD,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
......
......@@ -35,7 +35,6 @@ function c78700060.target(e,tp,eg,ep,ev,re,r,rp,chk)
end
end
function c78700060.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.GetCurrentChain()~=ev+1 then return end
if Duel.NegateActivation(ev) and re:GetHandler():IsRelateToEffect(re) then
Duel.Destroy(eg,REASON_EFFECT)
......
--֩`ȡꥢ`
--ブースト・ウォリアー
function c80457744.initial_effect(c)
--special summon
local e1=Effect.CreateEffect(c)
......
......@@ -5,41 +5,36 @@ function c81913510.initial_effect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCost(c81913510.cost)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetTarget(c81913510.target)
e1:SetOperation(c81913510.activate)
c:RegisterEffect(e1)
end
function c81913510.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetLabel(1)
return true
end
function c81913510.filter1(c,e,tp)
local code=c:GetCode()
return c:IsFaceup() and c:IsSetCard(0x1f) and c:IsAbleToGraveAsCost()
return c:IsFaceup() and c:IsSetCard(0x1f)
and Duel.IsExistingMatchingCard(c81913510.filter2,tp,LOCATION_EXTRA,0,1,nil,code,e,tp)
end
function c81913510.filter2(c,code,e,tp)
return c:IsCode(code) and c:IsCanBeSpecialSummoned(e,0,tp,true,false)
end
function c81913510.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
if e:GetLabel()~=1 then return false end
e:SetLabel(0)
return Duel.GetLocationCount(tp,LOCATION_MZONE)>-1
and Duel.IsExistingMatchingCard(c81913510.filter1,tp,LOCATION_MZONE,0,1,nil,e,tp)
end
function c81913510.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c81913510.filter1(chkc,e,tp) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>-1
and Duel.IsExistingTarget(c81913510.filter1,tp,LOCATION_MZONE,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local rg=Duel.SelectMatchingCard(tp,c81913510.filter1,tp,LOCATION_MZONE,0,1,1,nil,e,tp)
Duel.SendtoGrave(rg,REASON_COST)
e:SetLabel(rg:GetFirst():GetCode())
local g=Duel.SelectTarget(tp,c81913510.filter1,tp,LOCATION_MZONE,0,1,1,nil,e,tp)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,g,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function c81913510.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local code=e:GetLabel()
local tc=Duel.GetFirstMatchingCard(c81913510.filter2,tp,LOCATION_EXTRA,0,nil,code,e,tp)
if tc and Duel.SpecialSummon(tc,0,tp,tp,true,false,POS_FACEUP)~=0 then
tc:CompleteProcedure()
if Duel.GetLocationCount(tp,LOCATION_MZONE)<0 then return end
local tc1=Duel.GetFirstTarget()
if tc1:IsRelateToEffect(e) and Duel.SendtoGrave(tc1,REASON_EFFECT)~=0 then
local code=tc1:GetCode()
local tc2=Duel.GetFirstMatchingCard(c81913510.filter2,tp,LOCATION_EXTRA,0,nil,code,e,tp)
if tc2 and Duel.SpecialSummon(tc2,0,tp,tp,true,false,POS_FACEUP)~=0 then
tc2:CompleteProcedure()
end
end
end
......@@ -30,7 +30,7 @@ function c83108603.xyzfilter(c,tp)
and Duel.IsExistingMatchingCard(c83108603.matfilter,tp,LOCATION_MZONE+LOCATION_HAND,0,1,c)
end
function c83108603.matfilter(c)
return (c:IsLocation(LOCATION_HAND) or c:IsFaceup()) and c:IsSetCard(0x107d) and c:IsType(TYPE_MONSTER)
return (c:IsLocation(LOCATION_HAND) or c:IsFaceup()) and c:IsSetCard(0x107d) and c:IsType(TYPE_MONSTER) and not c:IsType(TYPE_TOKEN)
end
function c83108603.mattg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_MZONE) and c83108603.xyzfilter(chkc,tp) end
......@@ -41,7 +41,7 @@ end
function c83108603.matop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
local tc=Duel.GetFirstTarget()
if tc:IsFaceup() and tc:IsRelateToEffect(e) then
if tc:IsFaceup() and tc:IsRelateToEffect(e) and not tc:IsImmuneToEffect(e) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
local g=Duel.SelectMatchingCard(tp,c83108603.matfilter,tp,LOCATION_MZONE+LOCATION_HAND,0,1,1,tc)
if g:GetCount()>0 then
......
......@@ -14,7 +14,7 @@ end
function c83272895.efop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rc=c:GetReasonCard()
local e1=Effect.CreateEffect(c)
local e1=Effect.CreateEffect(rc)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_PIERCE)
e1:SetReset(RESET_EVENT+0x1fe0000)
......@@ -24,7 +24,7 @@ function c83272895.efop(e,tp,eg,ep,ev,re,r,rp)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_CHANGE_TYPE)
e2:SetValue(TYPE_MONSTER+TYPE_EFFECT+TYPE_XYZ)
e2:SetReset(RESET_EVENT+0x1ff0000)
e2:SetReset(RESET_EVENT+0x1fe0000)
rc:RegisterEffect(e2)
end
end
......@@ -37,7 +37,7 @@ end
function c8696773.effop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rc=c:GetReasonCard()
local e1=Effect.CreateEffect(c)
local e1=Effect.CreateEffect(rc)
e1:SetDescription(aux.Stringid(8696773,0))
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
......
......@@ -25,6 +25,7 @@ function c87319876.ccon(e,tp,eg,ep,ev,re,r,rp)
end
function c87319876.cop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rc=c:GetReasonCard()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
......@@ -33,14 +34,14 @@ function c87319876.cop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCountLimit(1)
e1:SetValue(c87319876.valcon)
e1:SetReset(RESET_EVENT+0x1fe0000)
c:GetReasonCard():RegisterEffect(e1)
rc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE)
e2:SetCode(EVENT_DAMAGE_STEP_END)
e2:SetCondition(c87319876.adcon)
e2:SetOperation(c87319876.adop)
e2:SetReset(RESET_EVENT+0x1fe0000)
c:GetReasonCard():RegisterEffect(e2)
rc:RegisterEffect(e2)
end
function c87319876.valcon(e,re,r,rp)
if bit.band(r,REASON_BATTLE)~=0 then
......
--ѥ`ԥ
--パワー・ピカクス
function c90246973.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
......@@ -50,7 +50,7 @@ function c90246973.rmtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingTarget(c90246973.rmfilter,tp,0,LOCATION_GRAVE,1,nil,ec:GetLevel()) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectTarget(tp,c90246973.rmfilter,tp,0,LOCATION_GRAVE,1,1,nil,ec:GetLevel())
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,g:GetCount(),0,0)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,1,0,0)
end
function c90246973.rmop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
......@@ -55,7 +55,7 @@ end
function c9260791.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) then
if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) and not tc:IsImmuneToEffect(e) then
Duel.Overlay(tc,Group.FromCards(c))
end
end
......@@ -29,7 +29,7 @@ function c92901944.spcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c92901944.cfilter,1,e:GetHandler(),tp) and not eg:IsContains(e:GetHandler())
end
function c92901944.sptg(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.GetLocationCount(tp,LOCATION_MZONE)>0
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
......
--Noble Knight Eachtar
function c93085839.initial_effect(c)
c:SetUniqueOnField(1,0,93085839)
--special summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(93085839,0))
......
......@@ -13,7 +13,6 @@ function c93260132.filter(c)
return c:IsFaceup() and c:IsType(TYPE_SPELL) and c:IsDestructable()
end
function c93260132.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.IsExistingMatchingCard(c93260132.filter,tp,0,LOCATION_ONFIELD,1,nil) end
local sg=Duel.GetMatchingGroup(c93260132.filter,tp,0,LOCATION_ONFIELD,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,sg,sg:GetCount(),0,0)
......
......@@ -76,7 +76,7 @@ function c95291684.lmop(e,tp,eg,ep,ev,re,r,rp)
e1:SetReset(RESET_PHASE+RESET_END)
e1:SetTargetRange(1,0)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_CANNOT_MSET)
Duel.RegisterEffect(e2,tp)
end
......@@ -21,7 +21,7 @@ function c97738431.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
end
function c97738431.activate(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and tc:IsFaceup() then
if tc:IsRelateToEffect(e) and tc:IsFaceup() and not tc:IsImmuneToEffect(e) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
local g=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_HAND,0,nil,TYPE_MONSTER)
if g:GetCount()>=2 then
......
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