Commit 8bcfb613 authored by argon.sun's avatar argon.sun

fix & new scripts

parent 4f232767
...@@ -563,13 +563,12 @@ void card::equip(card *target) { ...@@ -563,13 +563,12 @@ void card::equip(card *target) {
void card::unequip() { void card::unequip() {
if (!equiping_target) if (!equiping_target)
return; return;
effect_container::iterator it; for (auto it = equip_effect.begin(); it != equip_effect.end(); ++it) {
for (it = equip_effect.begin(); it != equip_effect.end(); ++it) {
if (it->second->is_disable_related()) if (it->second->is_disable_related())
pduel->game_field->add_to_disable_check_list(equiping_target); pduel->game_field->add_to_disable_check_list(equiping_target);
} }
pduel->write_buffer8(MSG_UNEQUIP); // pduel->write_buffer8(MSG_UNEQUIP);
pduel->write_buffer32(get_info_location()); // pduel->write_buffer32(get_info_location());
equiping_target->equiping_cards.erase(this); equiping_target->equiping_cards.erase(this);
pre_equip_target = equiping_target; pre_equip_target = equiping_target;
equiping_target = 0; equiping_target = 0;
...@@ -952,10 +951,8 @@ void card::reset(uint32 id, uint32 reset_type) { ...@@ -952,10 +951,8 @@ void card::reset(uint32 id, uint32 reset_type) {
} }
} }
void card::reset_effect_count() { void card::reset_effect_count() {
effect_indexer::iterator i; for (auto i = indexer.begin(); i != indexer.end(); ++i) {
effect* peffect; effect* peffect = i->first;
for (i = indexer.begin(); i != indexer.end(); ++i) {
peffect = i->first;
if (peffect->flag & EFFECT_FLAG_COUNT_LIMIT) if (peffect->flag & EFFECT_FLAG_COUNT_LIMIT)
peffect->recharge(); peffect->recharge();
} }
......
...@@ -458,7 +458,7 @@ void effect::dec_count() { ...@@ -458,7 +458,7 @@ void effect::dec_count() {
reset_count -= 0x100; reset_count -= 0x100;
} }
void effect::recharge() { void effect::recharge() {
if((type & EFFECT_TYPE_ACTIONS) && (flag & EFFECT_FLAG_COUNT_LIMIT)) { if(flag & EFFECT_FLAG_COUNT_LIMIT) {
reset_count &= 0xf0ff; reset_count &= 0xf0ff;
reset_count |= (reset_count >> 4) & 0xf00; reset_count |= (reset_count >> 4) & 0xf00;
} }
......
...@@ -204,6 +204,7 @@ public: ...@@ -204,6 +204,7 @@ public:
#define EFFECT_UNRELEASEABLE_NONSUM 44 // #define EFFECT_UNRELEASEABLE_NONSUM 44 //
#define EFFECT_DESTROY_SUBSTITUTE 45 // #define EFFECT_DESTROY_SUBSTITUTE 45 //
#define EFFECT_CANNOT_RELEASE 46 // #define EFFECT_CANNOT_RELEASE 46 //
#define EFFECT_INDESTRUCTABLE_COUNT 47 //
#define EFFECT_DESTROY_REPLACE 50 // #define EFFECT_DESTROY_REPLACE 50 //
#define EFFECT_RELEASE_REPLACE 51 // #define EFFECT_RELEASE_REPLACE 51 //
#define EFFECT_SEND_REPLACE 52 // #define EFFECT_SEND_REPLACE 52 //
......
...@@ -745,8 +745,10 @@ int32 scriptlib::duel_win(lua_State *L) { ...@@ -745,8 +745,10 @@ int32 scriptlib::duel_win(lua_State *L) {
if(playerid != 0 && playerid != 1 && playerid != 2) if(playerid != 0 && playerid != 1 && playerid != 2)
return 0; return 0;
duel* pduel = interpreter::get_duel_info(L); duel* pduel = interpreter::get_duel_info(L);
pduel->game_field->core.win_player = playerid; if(pduel->game_field->core.win_player == 5) {
pduel->game_field->core.win_reason = reason; pduel->game_field->core.win_player = playerid;
pduel->game_field->core.win_reason = reason;
}
return 0; return 0;
} }
int32 scriptlib::duel_draw(lua_State *L) { int32 scriptlib::duel_draw(lua_State *L) {
......
...@@ -121,8 +121,6 @@ int32 scriptlib::effect_set_count_limit(lua_State *L) { ...@@ -121,8 +121,6 @@ int32 scriptlib::effect_set_count_limit(lua_State *L) {
check_param_count(L, 2); check_param_count(L, 2);
check_param(L, PARAM_TYPE_EFFECT, 1); check_param(L, PARAM_TYPE_EFFECT, 1);
effect* peffect = *(effect**) lua_touserdata(L, 1); effect* peffect = *(effect**) lua_touserdata(L, 1);
if(!(peffect->type & EFFECT_TYPE_ACTIONS))
return 0;
int32 v = lua_tointeger(L, 2); int32 v = lua_tointeger(L, 2);
if(v == 0) if(v == 0)
v = 1; v = 1;
...@@ -183,7 +181,7 @@ int32 scriptlib::effect_set_label_object(lua_State *L) { ...@@ -183,7 +181,7 @@ int32 scriptlib::effect_set_label_object(lua_State *L) {
check_param(L, PARAM_TYPE_EFFECT, 1); check_param(L, PARAM_TYPE_EFFECT, 1);
effect* peffect = *(effect**) lua_touserdata(L, 1); effect* peffect = *(effect**) lua_touserdata(L, 1);
if(lua_isnil(L, 2)) { if(lua_isnil(L, 2)) {
peffect->label = 0; peffect->label_object = 0;
return 0; return 0;
} }
if(!lua_isuserdata(L, 2)) if(!lua_isuserdata(L, 2))
......
...@@ -1901,6 +1901,30 @@ int32 field::destroy(uint16 step, group * targets, effect * reason_effect, uint3 ...@@ -1901,6 +1901,30 @@ int32 field::destroy(uint16 step, group * targets, effect * reason_effect, uint3
continue; continue;
} }
} }
pcard->filter_effect(EFFECT_INDESTRUCTABLE_COUNT, &eset);
if (eset.count) {
bool indes = false;
for (int32 i = 0; i < eset.count; ++i) {
if(!(eset[i]->flag & EFFECT_FLAG_COUNT_LIMIT) || (eset[i]->reset_count & 0xf00) == 0)
continue;
pduel->lua->add_param(pcard->current.reason_effect, PARAM_TYPE_EFFECT);
pduel->lua->add_param(pcard->current.reason, PARAM_TYPE_INT);
pduel->lua->add_param(pcard->current.reason_player, PARAM_TYPE_INT);
if(eset[i]->check_value_condition(3)) {
eset[i]->dec_count();
indes = true;
}
}
eset.clear();
if(indes) {
pcard->current.reason = pcard->temp.reason;
pcard->current.reason_effect = pcard->temp.reason_effect;
pcard->current.reason_player = pcard->temp.reason_player;
pcard->set_status(STATUS_DESTROY_CONFIRMED, FALSE);
targets->container.erase(pcard);
continue;
}
}
pcard->filter_effect(EFFECT_DESTROY_SUBSTITUTE, &eset); pcard->filter_effect(EFFECT_DESTROY_SUBSTITUTE, &eset);
if (eset.count) { if (eset.count) {
bool sub = false; bool sub = false;
...@@ -2028,6 +2052,30 @@ int32 field::destroy(uint16 step, group * targets, effect * reason_effect, uint3 ...@@ -2028,6 +2052,30 @@ int32 field::destroy(uint16 step, group * targets, effect * reason_effect, uint3
continue; continue;
} }
} }
pcard->filter_effect(EFFECT_INDESTRUCTABLE_COUNT, &eset);
if (eset.count) {
bool indes = false;
for (int32 i = 0; i < eset.count; ++i) {
if(!(eset[i]->flag & EFFECT_FLAG_COUNT_LIMIT) || (eset[i]->reset_count & 0xf00) == 0)
continue;
pduel->lua->add_param(pcard->current.reason_effect, PARAM_TYPE_EFFECT);
pduel->lua->add_param(pcard->current.reason, PARAM_TYPE_INT);
pduel->lua->add_param(pcard->current.reason_player, PARAM_TYPE_INT);
if(eset[i]->check_value_condition(3)) {
eset[i]->dec_count();
indes = true;
}
}
eset.clear();
if(indes) {
pcard->current.reason = pcard->temp.reason;
pcard->current.reason_effect = pcard->temp.reason_effect;
pcard->current.reason_player = pcard->temp.reason_player;
pcard->set_status(STATUS_DESTROY_CONFIRMED, FALSE);
targets->container.erase(pcard);
continue;
}
}
pcard->filter_effect(EFFECT_DESTROY_SUBSTITUTE, &eset); pcard->filter_effect(EFFECT_DESTROY_SUBSTITUTE, &eset);
if (eset.count) { if (eset.count) {
bool sub = false; bool sub = false;
...@@ -2310,8 +2358,6 @@ int32 field::send_to(uint16 step, group * targets, effect * reason_effect, uint3 ...@@ -2310,8 +2358,6 @@ int32 field::send_to(uint16 step, group * targets, effect * reason_effect, uint3
dest = (pcard->operation_param >> 8) & 0xff; dest = (pcard->operation_param >> 8) & 0xff;
seq = (pcard->operation_param) & 0xff; seq = (pcard->operation_param) & 0xff;
pcard->enable_field_effect(FALSE); pcard->enable_field_effect(FALSE);
if(pcard->equiping_target)
pcard->unequip();
if(pcard->data.type & TYPE_TOKEN) { if(pcard->data.type & TYPE_TOKEN) {
pduel->write_buffer8(MSG_MOVE); pduel->write_buffer8(MSG_MOVE);
pduel->write_buffer32(pcard->data.code); pduel->write_buffer32(pcard->data.code);
...@@ -2399,6 +2445,8 @@ int32 field::send_to(uint16 step, group * targets, effect * reason_effect, uint3 ...@@ -2399,6 +2445,8 @@ int32 field::send_to(uint16 step, group * targets, effect * reason_effect, uint3
for(auto cit = targets->container.begin(); cit != targets->container.end(); ++cit) { for(auto cit = targets->container.begin(); cit != targets->container.end(); ++cit) {
card* pcard = *cit; card* pcard = *cit;
nloc = pcard->current.location; nloc = pcard->current.location;
if(pcard->equiping_target)
pcard->unequip();
if(pcard->equiping_cards.size()) { if(pcard->equiping_cards.size()) {
for(auto csit = pcard->equiping_cards.begin(); csit != pcard->equiping_cards.end();) { for(auto csit = pcard->equiping_cards.begin(); csit != pcard->equiping_cards.end();) {
auto rm = csit++; auto rm = csit++;
......
...@@ -29,7 +29,7 @@ end ...@@ -29,7 +29,7 @@ end
function c10000040.spcon(e,c) function c10000040.spcon(e,c)
if c==nil then return true end if c==nil then return true end
local tp=c:GetControler() local tp=c:GetControler()
return Duel.CheckReleaseGroup(tp,c10000040.spfilter,1,nil,10000000) return true or Duel.CheckReleaseGroup(tp,c10000040.spfilter,1,nil,10000000)
and Duel.CheckReleaseGroup(tp,c10000040.spfilter,1,nil,10000010) and Duel.CheckReleaseGroup(tp,c10000040.spfilter,1,nil,10000010)
and Duel.CheckReleaseGroup(tp,c10000040.spfilter,1,nil,10000020) and Duel.CheckReleaseGroup(tp,c10000040.spfilter,1,nil,10000020)
end end
......
--ネコマネキング --ネコマネキング
function c11021521.initial_effect(c) function c11021521.initial_effect(c)
c:SetStatus(STATUS_UNSUMMONABLE_CARD,true)
--end turn --end turn
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(11021521,0)) e1:SetDescription(aux.Stringid(11021521,0))
......
--マザー·スパイダー
function c17021204.initial_effect(c)
--spsummon proc
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:SetCondition(c17021204.spcon)
e1:SetOperation(c17021204.spop)
c:RegisterEffect(e1)
end
function c17021204.spfilter(c)
return c:IsPosition(POS_FACEUP_DEFENCE) and c:IsAbleToGraveAsCost()
end
function c17021204.check(tp)
local g=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_GRAVE,0,nil,TYPE_MONSTER)
return g:GetCount()~=0 and not g:IsExists(Card.IsRace,1,nil,0xfffffff-RACE_INSECT)
end
function c17021204.spcon(e,c)
if c==nil then return true end
return Duel.GetLocationCount(tp,LOCATION_MZONE)
and Duel.IsExistingMatchingCard(c17021204.spfilter,c:GetControler(),0,LOCATION_MZONE,2,nil)
and c17021204.check(c:GetControler())
end
function c17021204.spop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,c17021204.spfilter,tp,0,LOCATION_MZONE,2,2,nil)
Duel.SendtoGrave(g,REASON_COST)
end
--グランド·スパイダー
function c17243896.initial_effect(c)
--pos
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(17243896,0))
e1:SetCategory(CATEGORY_POSITION)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(c17243896.condition)
e1:SetTarget(c17243896.target)
e1:SetOperation(c17243896.operation)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e2)
end
function c17243896.filter(c,e,tp)
return c:IsPosition(POS_FACEUP_ATTACK) and c:GetSummonPlayer()==1-tp and (not e or c:IsRelateToEffect(e))
end
function c17243896.condition(e,tp,eg,ep,ev,re,r,rp,chk)
return e:GetHandler():IsPosition(POS_FACEUP_DEFENCE)
end
function c17243896.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():GetFlagEffect(17243896)==0
and eg:IsExists(c17243896.filter,1,nil,nil,tp) end
Duel.SetTargetCard(eg)
Duel.SetOperationInfo(0,CATEGORY_POSITION,eg,eg:GetCount(),0,0)
e:GetHandler():RegisterFlagEffect(17243896,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
end
function c17243896.operation(e,tp,eg,ep,ev,re,r,rp)
local g=eg:Filter(c17243896.filter,nil,e,tp)
Duel.ChangePosition(g,POS_FACEUP_DEFENCE)
end
--破邪の刻印
function c17874674.initial_effect(c)
--activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(TIMING_DRAW_PHASE)
c:RegisterEffect(e1)
--confirm
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(17874674,0))
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_PHASE+PHASE_STANDBY)
e2:SetRange(LOCATION_SZONE)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetCountLimit(1)
e2:SetCondition(c17874674.condition)
e2:SetTarget(c17874674.target)
e2:SetOperation(c17874674.operation)
c:RegisterEffect(e2)
--cancel target
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_PHASE+PHASE_END)
e3:SetRange(LOCATION_SZONE)
e3:SetCountLimit(1)
e3:SetCondition(c17874674.condition)
e3:SetOperation(c17874674.ctarget)
c:RegisterEffect(e3)
--
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e4:SetRange(LOCATION_SZONE)
e4:SetCode(EVENT_PHASE+PHASE_STANDBY)
e4:SetCountLimit(1)
e4:SetOperation(c17874674.costop)
c:RegisterEffect(e4)
end
function c17874674.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()~=tp
end
function c17874674.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() and chkc:IsFaceup() end
if chk==0 then return true end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,Card.IsFaceup,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
end
function c17874674.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc and c:IsRelateToEffect(e) and tc:IsFaceup() and tc:IsRelateToEffect(e) then
c:SetCardTarget(tc)
e:SetLabelObject(tc)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_OWNER_RELATE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
e1:SetCondition(c17874674.rcon)
tc:RegisterEffect(e1)
end
end
function c17874674.rcon(e)
return e:GetOwner():IsHasCardTarget(e:GetHandler())
end
function c17874674.ctarget(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetHandler():GetFirstCardTarget()
if tc then e:GetHandler():CancelCardTarget(tc) end
end
function c17874674.costop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()~=tp then return end
if Duel.GetLP(tp)>=500 and Duel.SelectYesNo(tp,aux.Stringid(17874674,1)) then
Duel.PayLPCost(tp,500)
else
Duel.Destroy(e:GetHandler(),REASON_RULE)
end
end
--デュアル·ブースター
function c18096222.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_EQUIP)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(TIMING_DAMAGE_STEP)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP)
e1:SetCondition(c18096222.condition)
e1:SetTarget(c18096222.target)
e1:SetOperation(c18096222.operation)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(18096222,0))
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetCode(EVENT_LEAVE_FIELD)
e2:SetCondition(c18096222.dacon)
e2:SetTarget(c18096222.datg)
e2:SetOperation(c18096222.daop)
c:RegisterEffect(e2)
end
function c18096222.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentPhase()~=PHASE_DAMAGE or not Duel.IsDamageCalculated()
end
function c18096222.filter(c)
return c:IsFaceup() and c:IsType(TYPE_DUAL)
end
function c18096222.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_MZONE) and c18096222.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c18096222.filter,tp,LOCATION_MZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
local g=Duel.SelectTarget(tp,c18096222.filter,tp,LOCATION_MZONE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
end
function c18096222.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsLocation(LOCATION_SZONE) then return end
local tc=Duel.GetFirstTarget()
if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then
Duel.Equip(tp,c,tc)
c:CancelToGrave()
--Atkup
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_EQUIP)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(700)
e1:SetReset(RESET_EVENT+0x1fe0000)
c:RegisterEffect(e1)
--Equip limit
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_EQUIP_LIMIT)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetValue(c18096222.eqlimit)
e2:SetReset(RESET_EVENT+0x1fe0000)
c:RegisterEffect(e2)
end
end
function c18096222.eqlimit(e,c)
return c:GetControler()==e:GetOwnerPlayer() and c:IsType(TYPE_DUAL)
end
function c18096222.dacon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsLocation(LOCATION_GRAVE) and e:GetHandler():GetEquipTarget()~=nil
end
function c18096222.dafilter(c)
return c:IsFaceup() and c:IsType(TYPE_DUAL) and not c:IsDualState()
end
function c18096222.datg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc.IsLocation(LOCATION_MZONE) and c18096222.dafilter(chkc) end
if chk==0 then return true end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
Duel.SelectTarget(tp,c18096222.dafilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
end
function c18096222.daop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc and tc:IsRelateToEffect(e) and c18096222.dafilter(tc) then
tc:EnableDualState()
end
end
--ジャイロイド --ジャイロイド
function c18325492.initial_effect(c) function c18325492.initial_effect(c)
--battle des rep --battle indes
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DESTROY_REPLACE) e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_INDESTRUCTABLE_COUNT)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetTarget(c18325492.reptg) e1:SetValue(c18325492.valcon)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c18325492.reptg(e,tp,eg,ep,ev,re,r,rp,chk) function c18325492.valcon(e,re,r,rp)
if chk==0 then return e:GetHandler():IsReason(REASON_BATTLE) end return bit.band(r,REASON_BATTLE)~=0
return true
end end
--レグルス
function c20210570.initial_effect(c)
--salvage
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(20210570,0))
e1:SetCategory(CATEGORY_TODECK)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetTarget(c20210570.target)
e1:SetOperation(c20210570.operation)
c:RegisterEffect(e1)
end
function c20210570.filter(c)
return c:IsType(TYPE_FIELD) and c:IsAbleToDeck()
end
function c20210570.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c20210570.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c20210570.filter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectTarget(tp,c20210570.filter,tp,LOCATION_GRAVE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,g:GetCount(),0,0)
end
function c20210570.operation(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc and tc:IsRelateToEffect(e) then
Duel.SendtoDeck(tc,nil,2,REASON_EFFECT)
end
end
--ヴィークラー
function c20797524.initial_effect(c)
--special summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(20797524,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_BATTLE_DESTROYED)
e1:SetCondition(c20797524.condition)
e1:SetTarget(c20797524.target)
e1:SetOperation(c20797524.operation)
c:RegisterEffect(e1)
end
function c20797524.condition(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsLocation(LOCATION_GRAVE) and e:GetHandler():IsReason(REASON_BATTLE)
end
function c20797524.filter(c,e,tp)
return c:IsCode(83392426) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c20797524.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c20797524.filter,tp,LOCATION_HAND+LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND+LOCATION_DECK)
end
function c20797524.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c20797524.filter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
--シンクロ·バリアー
function c21879581.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCost(c21879581.cost)
e1:SetOperation(c21879581.activate)
c:RegisterEffect(e1)
end
function c21879581.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckReleaseGroup(tp,Card.IsType,1,nil,TYPE_SYNCHRO) end
local g=Duel.SelectReleaseGroup(tp,Card.IsType,1,1,nil,TYPE_SYNCHRO)
Duel.Release(g,REASON_COST)
end
function c21879581.activate(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CHANGE_DAMAGE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetValue(0)
e1:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e1,tp)
end
--無視加護
function c22991179.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
--negate attack
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(22991179,0))
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetRange(LOCATION_SZONE)
e2:SetCode(EVENT_ATTACK_ANNOUNCE)
e2:SetCondition(c22991179.condition)
e2:SetCost(c22991179.cost)
e2:SetTarget(c22991179.target)
e2:SetOperation(c22991179.activate)
c:RegisterEffect(e2)
end
function c22991179.condition(e,tp,eg,ep,ev,re,r,rp)
return tp~=Duel.GetTurnPlayer()
end
function c22991179.cfilter(c)
return c:IsRace(RACE_INSECT) and c:IsAbleToRemoveAsCost()
end
function c22991179.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c22991179.cfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,c22991179.cfilter,tp,LOCATION_GRAVE,0,1,1,nil)
Duel.Remove(g,POS_FACEUP,REASON_COST)
end
function c22991179.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local tg=Duel.GetAttacker()
if chkc then return chkc==tg end
if chk==0 then return tg:IsOnField() and tg:IsCanBeEffectTarget(e) end
Duel.SetTargetCard(tg)
end
function c22991179.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.NegateAttack()
end
...@@ -43,13 +43,15 @@ function c23440062.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -43,13 +43,15 @@ function c23440062.operation(e,tp,eg,ep,ev,re,r,rp)
c:SetCardTarget(tc) c:SetCardTarget(tc)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_OWNER_RELATE) e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_OWNER_RELATE)
e1:SetRange(LOCATION_ONFIELD)
e1:SetCode(EFFECT_DISABLE) e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+0x1fe0000) e1:SetReset(RESET_EVENT+0x1fe0000)
tc:RegisterEffect(e1,true) tc:RegisterEffect(e1,true)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE) e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_OWNER_RELATE) e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_OWNER_RELATE)
e2:SetRange(LOCATION_ONFIELD)
e2:SetCode(EFFECT_CANNOT_ATTACK) e2:SetCode(EFFECT_CANNOT_ATTACK)
e2:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END) e2:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e2,true) tc:RegisterEffect(e2,true)
......
...@@ -8,12 +8,14 @@ function c28190303.initial_effect(c) ...@@ -8,12 +8,14 @@ function c28190303.initial_effect(c)
e1:SetRange(LOCATION_HAND) e1:SetRange(LOCATION_HAND)
e1:SetCondition(c28190303.spcon) e1:SetCondition(c28190303.spcon)
c:RegisterEffect(e1) c:RegisterEffect(e1)
-- --battle indes
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE) e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DESTROY_REPLACE) e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_INDESTRUCTABLE_COUNT)
e2:SetCountLimit(1) e2:SetCountLimit(1)
e2:SetTarget(c28190303.reptg) e2:SetValue(c28190303.valcon)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c28190303.spcon(e,c) function c28190303.spcon(e,c)
...@@ -24,7 +26,6 @@ function c28190303.spcon(e,c) ...@@ -24,7 +26,6 @@ function c28190303.spcon(e,c)
local tc=g:GetFirst() local tc=g:GetFirst()
return g:GetCount()==1 and tc:IsSetCard(0x33) and tc:GetCode()~=28190303 return g:GetCount()==1 and tc:IsSetCard(0x33) and tc:GetCode()~=28190303
end end
function c28190303.reptg(e,tp,eg,ep,ev,re,r,rp,chk) function c28190303.valcon(e,re,r,rp)
if chk==0 then return e:GetHandler():IsReason(REASON_BATTLE) end return bit.band(r,REASON_BATTLE)~=0
return true
end end
--シールド·ウィング --シールド·ウィング
function c28859794.initial_effect(c) function c28859794.initial_effect(c)
--battle des rep --battle indes
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DESTROY_REPLACE) e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_INDESTRUCTABLE_COUNT)
e1:SetCountLimit(2) e1:SetCountLimit(2)
e1:SetTarget(c28859794.reptg) e1:SetValue(c28859794.valcon)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c28859794.reptg(e,tp,eg,ep,ev,re,r,rp,chk) function c28859794.valcon(e,re,r,rp)
if chk==0 then return e:GetHandler():IsReason(REASON_BATTLE) end return bit.band(r,REASON_BATTLE)~=0
return true
end end
--サベージ·コロシアム
function c32391631.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
--to defence
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(32391631,0))
e2:SetCategory(CATEGORY_RECOVER)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_DAMAGE_STEP_END)
e2:SetRange(LOCATION_SZONE)
e2:SetTarget(c32391631.rectg)
e2:SetOperation(c32391631.recop)
c:RegisterEffect(e2)
--must attack
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_MUST_ATTACK)
e3:SetRange(LOCATION_SZONE)
e3:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_CANNOT_EP)
e4:SetRange(LOCATION_SZONE)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e4:SetTargetRange(1,1)
e4:SetCondition(c32391631.becon)
c:RegisterEffect(e4)
--destroy
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(32391631,1))
e5:SetCategory(CATEGORY_DESTROY)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e5:SetRange(LOCATION_SZONE)
e5:SetCountLimit(1)
e5:SetProperty(EFFECT_FLAG_REPEAT)
e5:SetCode(EVENT_PHASE+PHASE_END)
e5:SetTarget(c32391631.destg)
e5:SetOperation(c32391631.desop)
c:RegisterEffect(e5)
end
function c32391631.rectg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetTargetPlayer(Duel.GetTurnPlayer())
Duel.SetTargetParam(300)
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,Duel.GetTurnPlayer(),300)
end
function c32391631.recop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) or not Duel.GetAttacker():IsRelateToBattle() then return end
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Recover(p,d,REASON_EFFECT)
end
function c32391631.becon(e)
return Duel.IsExistingMatchingCard(Card.IsAttackable,Duel.GetTurnPlayer(),LOCATION_MZONE,0,1,nil)
end
function c32391631.desfilter(c)
return c:IsPosition(POS_FACEUP_ATTACK) and c:GetAttackedCount()==0 and c:IsDestructable()
end
function c32391631.destg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local g=Duel.GetMatchingGroup(c32391631.desfilter,Duel.GetTurnPlayer(),LOCATION_MZONE,0,e:GetHandler())
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
end
function c32391631.desop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
local g=Duel.GetMatchingGroup(c32391631.desfilter,Duel.GetTurnPlayer(),LOCATION_MZONE,0,e:GetHandler())
Duel.Destroy(g,REASON_EFFECT)
end
...@@ -19,18 +19,10 @@ function c33782437.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -19,18 +19,10 @@ function c33782437.activate(e,tp,eg,ep,ev,re,r,rp)
if d1==0 or d2==0 then return end if d1==0 or d2==0 then return end
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_AVOID_BATTLE_DAMAGE) e1:SetCode(EFFECT_CHANGE_DAMAGE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,1) e1:SetTargetRange(1,1)
e1:SetValue(1) e1:SetValue(0)
e1:SetReset(RESET_PHASE+PHASE_END,2) e1:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_CHANGE_DAMAGE)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(1,1)
e2:SetValue(0)
e2:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e2,tp)
end end
--儀式魔人プレサイダー
function c34358408.initial_effect(c)
--ritual material
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_EXTRA_RITUAL_MATERIAL)
c:RegisterEffect(e1)
--become material
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetCode(EVENT_BE_MATERIAL)
e2:SetCondition(c34358408.condition)
e2:SetOperation(c34358408.operation)
c:RegisterEffect(e2)
end
function c34358408.condition(e,tp,eg,ep,ev,re,r,rp)
return r==REASON_RITUAL
end
function c34358408.operation(e,tp,eg,ep,ev,re,r,rp)
local rc=e:GetHandler():GetReasonCard()
if rc:GetFlagEffect(34358408)==0 then
--draw
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_BATTLE_DESTROYING)
e1:SetOperation(c34358408.drawop)
e1:SetReset(RESET_EVENT+0x1fe0000)
rc:RegisterEffect(e1)
rc:RegisterFlagEffect(34358408,RESET_EVENT+0x1fe0000,0,1)
end
end
function c34358408.drawop(e,tp,eg,ep,ev,re,r,rp)
Duel.Draw(tp,1,REASON_EFFECT)
end
...@@ -74,7 +74,7 @@ function c35803249.spfilter(c) ...@@ -74,7 +74,7 @@ function c35803249.spfilter(c)
end end
function c35803249.spcon(e,c) function c35803249.spcon(e,c)
if c==nil then return true end if c==nil then return true end
return Duel.CheckReleaseGroup(tp,c35803249.spfilter,1,nil) return Duel.CheckReleaseGroup(c:GetControler(),c35803249.spfilter,1,nil)
end end
function c35803249.spop(e,tp,eg,ep,ev,re,r,rp,c) function c35803249.spop(e,tp,eg,ep,ev,re,r,rp,c)
local g=Duel.SelectReleaseGroup(tp,c35803249.spfilter,1,1,nil) local g=Duel.SelectReleaseGroup(tp,c35803249.spfilter,1,1,nil)
......
--紅蓮の指名者
function c43262273.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_REMOVE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMING_TOHAND)
e1:SetCost(c43262273.cost)
e1:SetTarget(c43262273.target)
e1:SetOperation(c43262273.activate)
c:RegisterEffect(e1)
end
function c43262273.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLPCost(tp,2000) and Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)~=0
and not Duel.IsExistingMatchingCard(Card.IsPublic,tp,LOCATION_HAND,0,1,nil) end
Duel.PayLPCost(tp,2000)
local g=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
Duel.ConfirmCards(1-tp,g)
Duel.ShuffleHand(tp)
end
function c43262273.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFieldGroupCount(tp,0,LOCATION_HAND)~=0
and Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,0,LOCATION_HAND,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,0,1-tp,LOCATION_HAND)
end
function c43262273.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,0,LOCATION_HAND,nil)
if g:GetCount()>0 then
Duel.ConfirmCards(tp,g)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local sg=g:Select(tp,1,1,nil)
Duel.Remove(sg,POS_FACEUP,REASON_EFFECT)
Duel.ShuffleHand(1-tp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetRange(LOCATION_REMOVED)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
if Duel.GetTurnPlayer()==1-tp and Duel.GetCurrentPhase()==PHASE_END then
e1:SetLabel(Duel.GetTurnCount())
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,3)
else
e1:SetLabel(0)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,2)
end
e1:SetCondition(c43262273.retcon)
e1:SetOperation(c43262273.retop)
sg:GetFirst():RegisterEffect(e1)
end
end
function c43262273.retcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp and Duel.GetTurnCount()~=e:GetLabel()
end
function c43262273.retop(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoHand(e:GetHandler(),nil,REASON_EFFECT)
end
--ナチュル·ビーンズ --ナチュル·ビーンズ
function c44789585.initial_effect(c) function c44789585.initial_effect(c)
--battle des rep --battle indes
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DESTROY_REPLACE) e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_INDESTRUCTABLE_COUNT)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetTarget(c44789585.reptg) e1:SetValue(c44789585.valcon)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--damage --damage
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -18,9 +20,8 @@ function c44789585.initial_effect(c) ...@@ -18,9 +20,8 @@ function c44789585.initial_effect(c)
e2:SetOperation(c44789585.damop) e2:SetOperation(c44789585.damop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c44789585.reptg(e,tp,eg,ep,ev,re,r,rp,chk) function c44789585.valcon(e,re,r,rp)
if chk==0 then return e:GetHandler():IsReason(REASON_BATTLE) end return bit.band(r,REASON_BATTLE)~=0
return true
end end
function c44789585.damtg(e,tp,eg,ep,ev,re,r,rp,chk) function c44789585.damtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
......
...@@ -12,18 +12,19 @@ function c45298492.initial_effect(c) ...@@ -12,18 +12,19 @@ function c45298492.initial_effect(c)
e1:SetTarget(c45298492.tg) e1:SetTarget(c45298492.tg)
e1:SetValue(1) e1:SetValue(1)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--Revive --battle indes
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DESTROY_REPLACE) e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_INDESTRUCTABLE_COUNT)
e2:SetCountLimit(1) e2:SetCountLimit(1)
e2:SetTarget(c45298492.reptg) e2:SetValue(c45298492.valcon)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c45298492.tg(e,c) function c45298492.tg(e,c)
return c~=e:GetHandler() and c:IsRace(RACE_WARRIOR) return c~=e:GetHandler() and c:IsRace(RACE_WARRIOR)
end end
function c45298492.reptg(e,tp,eg,ep,ev,re,r,rp,chk) function c45298492.valcon(e,re,r,rp)
if chk==0 then return e:GetHandler():IsReason(REASON_BATTLE) end return bit.band(r,REASON_BATTLE)~=0
return true
end end
...@@ -26,12 +26,14 @@ function c53540729.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -26,12 +26,14 @@ function c53540729.operation(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsFaceup() and tc:IsRelateToEffect(e) then if tc:IsFaceup() and tc:IsRelateToEffect(e) then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK) e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END) e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
e1:SetValue(600) e1:SetValue(600)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetType(EFFECT_TYPE_SINGLE) e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LEVEL) e2:SetCode(EFFECT_UPDATE_LEVEL)
e2:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END) e2:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
......
--リチュアルバスター
function c54094821.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCondition(c54094821.condition)
e1:SetOperation(c54094821.activate)
c:RegisterEffect(e1)
end
function c54094821.condition(e,tp,eg,ep,ev,re,r,rp)
return eg:GetCount()==1 and eg:GetFirst():GetSummonType()==SUMMON_TYPE_RITUAL
end
function c54094821.activate(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetTargetRange(0,1)
e1:SetValue(c54094821.aclimit)
if Duel.GetTurnPlayer()==tp then
e1:SetReset(RESET_PHASE+PHASE_STANDBY,2)
else
e1:SetReset(RESET_PHASE+PHASE_STANDBY,1)
end
Duel.RegisterEffect(e1,tp)
end
function c54094821.aclimit(e,re,tp)
return re:GetHandler():IsType(TYPE_SPELL+TYPE_TRAP)
end
--サクリファイス·スパイダー
function c54248491.initial_effect(c)
--destroy
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(54248491,0))
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(c54248491.condition)
e1:SetCost(c54248491.cost)
e1:SetTarget(c54248491.target)
e1:SetOperation(c54248491.operation)
c:RegisterEffect(e1)
end
function c54248491.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(Card.IsRace,tp,LOCATION_GRAVE,0,4,nil,RACE_INSECT)
end
function c54248491.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsReleaseable() end
Duel.Release(e:GetHandler(),REASON_COST)
end
function c54248491.filter(c)
return c:IsPosition(POS_FACEUP_DEFENCE) and c:IsDestructable()
end
function c54248491.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c54248491.filter,tp,0,LOCATION_MZONE,1,nil) end
local g=Duel.GetMatchingGroup(c54248491.filter,tp,0,LOCATION_MZONE,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
end
function c54248491.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c54248491.filter,tp,0,LOCATION_MZONE,nil)
Duel.Destroy(g,REASON_EFFECT)
end
--スパイダー·エッグ
function c56051648.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_ATTACK_ANNOUNCE)
e1:SetCondition(c56051648.condition)
e1:SetTarget(c56051648.target)
e1:SetOperation(c56051648.activate)
c:RegisterEffect(e1)
end
function c56051648.condition(e,tp,eg,ep,ev,re,r,rp)
return tp~=Duel.GetTurnPlayer() and Duel.GetAttackTarget()==nil
and Duel.IsExistingMatchingCard(Card.IsRace,tp,LOCATION_GRAVE,0,3,nil,RACE_INSECT)
end
function c56051648.target(e,tp,eg,ep,ev,re,r,rp,chk)
local tg=Duel.GetAttacker()
if chk==0 then return tg:IsOnField() and Duel.GetLocationCount(tp,LOCATION_MZONE)>=3
and Duel.IsPlayerCanSpecialSummonMonster(tp,56051649,0,0x4011,100,100,1,RACE_INSECT,ATTRIBUTE_EARTH) end
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,3,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,3,0,0)
end
function c56051648.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.NegateAttack() and Duel.GetLocationCount(tp,LOCATION_MZONE)>2
and Duel.IsPlayerCanSpecialSummonMonster(tp,56051649,0,0x4011,100,100,1,RACE_INSECT,ATTRIBUTE_EARTH) then
for i=1,3 do
local token=Duel.CreateToken(tp,56051649)
Duel.SpecialSummonStep(token,0,tp,tp,false,false,POS_FACEUP_ATTACK)
end
Duel.SpecialSummonComplete()
end
end
--未来王の予言
function c57274196.initial_effect(c)
--chain attack
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_BATTLE_DESTROYING)
e1:SetCondition(c57274196.condition)
e1:SetCost(c57274196.cost)
e1:SetOperation(c57274196.operation)
c:RegisterEffect(e1)
end
function c57274196.condition(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
return tc:IsControler(tp) and tc:IsRace(RACE_SPELLCASTER) and tc:IsChainAttackable()
end
function c57274196.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return not Duel.CheckSummonActivity(tp)
and not Duel.CheckFlipSummonActivity(tp) and not Duel.CheckSpecialSummonActivity(tp) end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetReset(RESET_PHASE+PHASE_END)
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 e3=e1:Clone()
e3:SetCode(EFFECT_CANNOT_FLIP_SUMMON)
Duel.RegisterEffect(e3,tp)
end
function c57274196.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.ChainAttack()
end
...@@ -23,15 +23,14 @@ function c61777313.tuner_filter(c) ...@@ -23,15 +23,14 @@ function c61777313.tuner_filter(c)
return c:IsSetCard(0x42) return c:IsSetCard(0x42)
end end
function c61777313.synfilter(c,syncard,f) function c61777313.synfilter(c,syncard,f)
return c:IsFaceup() and c:IsCanBeSynchroMaterial(syncard) and c:IsSetCard(0x42) and (f==nil or f(c)) return c:IsFaceup() and c:IsNotTuner() and c:IsCanBeSynchroMaterial(syncard) and c:IsSetCard(0x42) and (f==nil or f(c))
end end
function c61777313.syntg(e,syncard,f,minc) function c61777313.syntg(e,syncard,f,minc)
local c=e:GetHandler() local c=e:GetHandler()
local lv=syncard:GetLevel()-c:GetLevel() local lv=syncard:GetLevel()-c:GetLevel()
if lv<=0 then return false end if lv<=0 then return false end
local g=Duel.GetMatchingGroup(c61777313.synfilter,syncard:GetControler(),LOCATION_MZONE,LOCATION_MZONE,c,syncard,f) local g=Duel.GetMatchingGroup(c61777313.synfilter,syncard:GetControler(),LOCATION_MZONE,LOCATION_MZONE,c,syncard,f)
local res=g:CheckWithSumEqual(Card.GetSynchroLevel,lv,minc,syncard) return g:CheckWithSumEqual(Card.GetSynchroLevel,lv,minc,syncard)
return res
end end
function c61777313.synop(e,tp,eg,ep,ev,re,r,rp,syncard,f,minc) function c61777313.synop(e,tp,eg,ep,ev,re,r,rp,syncard,f,minc)
local lv=syncard:GetLevel()-e:GetHandler():GetLevel() local lv=syncard:GetLevel()-e:GetHandler():GetLevel()
......
--悪魔への貢物
function c68396778.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOGRAVE+CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(c68396778.target)
e1:SetOperation(c68396778.activate)
c:RegisterEffect(e1)
end
function c68396778.filter(c)
return Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE)~=0
and bit.band(c:GetSummonType(),SUMMON_TYPE_SPECIAL)==SUMMON_TYPE_SPECIAL
end
function c68396778.spfilter(c,e,tp)
return c:IsLevelBelow(4) and c:IsType(TYPE_NORMAL) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c68396778.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and c68396778.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c68396778.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil)
and Duel.IsExistingMatchingCard(c68396778.spfilter,tp,LOCATION_HAND,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectTarget(tp,c68396778.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,g,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end
function c68396778.activate(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
Duel.SendtoGrave(tc,REASON_EFFECT)
if tc:IsLocation(LOCATION_GRAVE) and Duel.GetLocationCount(tp,LOCATION_MZONE)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c68396778.spfilter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
if g:GetCount() then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
end
end
--スターダスト·シャオロン
function c68543408.initial_effect(c)
--spsummon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(68543408,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetRange(LOCATION_GRAVE)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCondition(c68543408.spcon)
e1:SetTarget(c68543408.sptg)
e1:SetOperation(c68543408.spop)
c:RegisterEffect(e1)
--battle indes
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_INDESTRUCTABLE_COUNT)
e2:SetCountLimit(1)
e2:SetValue(c68543408.valcon)
c:RegisterEffect(e2)
end
function c68543408.spcon(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
return tc:IsControler(tp) and tc:IsCode(44508094) and tc:GetSummonType()==SUMMON_TYPE_SYNCHRO
end
function c68543408.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
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
function c68543408.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP_ATTACK)
end
end
function c68543408.valcon(e,re,r,rp)
return bit.band(r,REASON_BATTLE)~=0
end
--アタック·フェロモン
function c68786330.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
--to defence
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(68786330,0))
e2:SetCategory(CATEGORY_POSITION)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_DAMAGE_STEP_END)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(c68786330.poscon)
e2:SetOperation(c68786330.posop)
c:RegisterEffect(e2)
end
function c68786330.poscon(e,tp,eg,ep,ev,re,r,rp)
local a=Duel.GetAttacker()
local d=Duel.GetAttackTarget()
return a:IsRelateToBattle() and d:IsRelateToBattle() and a:IsRace(RACE_REPTILE) and d:IsPosition(POS_DEFENCE)
end
function c68786330.posop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
local a=Duel.GetAttackTarget()
Duel.ChangePosition(a,POS_FACEUP_ATTACK)
end
--神聖なる森
function c69112325.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
--
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_INDESTRUCTABLE_COUNT)
e2:SetRange(LOCATION_SZONE)
e2:SetTargetRange(LOCATION_MZONE,0)
e2:SetTarget(c69112325.indtg)
e2:SetCountLimit(1)
e2:SetValue(c69112325.valcon)
c:RegisterEffect(e2)
end
function c69112325.indtg(e,c)
return c:IsRace(RACE_PLANT+RACE_BEAST+RACE_BEASTWARRIOR)
end
function c69112325.valcon(e,re,r,rp)
return bit.band(r,REASON_BATTLE)~=0
end
--スパイダー·ウェブ
function c69408987.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
--to defence
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_DAMAGE_STEP_END)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(c69408987.poscon)
e2:SetOperation(c69408987.posop)
c:RegisterEffect(e2)
end
function c69408987.poscon(e,tp,eg,ep,ev,re,r,rp)
local a=Duel.GetAttacker()
return a:IsPosition(POS_FACEUP_ATTACK) and a:IsRelateToBattle()
end
function c69408987.posop(e,tp,eg,ep,ev,re,r,rp)
local a=Duel.GetAttacker()
if Duel.ChangePosition(a,POS_FACEUP_DEFENCE)~=0 then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_CHANGE_POSITION)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,3)
a:RegisterEffect(e1)
end
end
...@@ -19,6 +19,8 @@ function c70902743.initial_effect(c) ...@@ -19,6 +19,8 @@ function c70902743.initial_effect(c)
e2:SetCategory(CATEGORY_DESTROY) e2:SetCategory(CATEGORY_DESTROY)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F) e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetProperty(EFFECT_FLAG_REPEAT)
e2:SetCode(EVENT_PHASE+PHASE_END) e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetCondition(c70902743.condition2) e2:SetCondition(c70902743.condition2)
e2:SetTarget(c70902743.target2) e2:SetTarget(c70902743.target2)
...@@ -44,13 +46,12 @@ function c70902743.filter2(c) ...@@ -44,13 +46,12 @@ function c70902743.filter2(c)
return c:GetAttackedCount()==0 and c:IsDestructable() return c:GetAttackedCount()==0 and c:IsDestructable()
end end
function c70902743.condition2(e,tp,eg,ep,ev,re,r,rp) function c70902743.condition2(e,tp,eg,ep,ev,re,r,rp)
return tp==Duel.GetTurnPlayer() and e:GetHandler():GetFlagEffect(70902743)==0 return tp==Duel.GetTurnPlayer()
end end
function c70902743.target2(e,tp,eg,ep,ev,re,r,rp,chk) function c70902743.target2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
local g=Duel.GetMatchingGroup(c70902743.filter2,tp,LOCATION_MZONE,0,e:GetHandler()) local g=Duel.GetMatchingGroup(c70902743.filter2,tp,LOCATION_MZONE,0,e:GetHandler())
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0) Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
e:GetHandler():RegisterFlagEffect(70902743,RESET_EVENT+0x1fe0000+RESET_PHASE+RESET_END,EFFECT_FLAG_OATH,1)
end end
function c70902743.operation2(e,tp,eg,ep,ev,re,r,rp) function c70902743.operation2(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c70902743.filter2,tp,LOCATION_MZONE,0,e:GetHandler()) local g=Duel.GetMatchingGroup(c70902743.filter2,tp,LOCATION_MZONE,0,e:GetHandler())
......
--エナジー·ブレイブ
function c72631243.initial_effect(c)
--indes
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e1:SetRange(LOCATION_MZONE)
e1:SetTargetRange(LOCATION_MZONE,0)
e1:SetTarget(c72631243.indtg)
e1:SetValue(1)
c:RegisterEffect(e1)
end
function c72631243.indtg(e,c)
return c:IsDualState()
end
...@@ -42,7 +42,7 @@ function c78422252.spcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -42,7 +42,7 @@ function c78422252.spcon(e,tp,eg,ep,ev,re,r,rp)
return a==Duel.GetAttacker() and bit.band(d:GetBattlePosition(),POS_DEFENCE)~=0 return a==Duel.GetAttacker() and bit.band(d:GetBattlePosition(),POS_DEFENCE)~=0
end end
function c78422252.filter(c,e,tp) function c78422252.filter(c,e,tp)
return c:IsSetCard(0x100d) and c:GetLevel()<=4 and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsSetCard(0x100d) and c:IsLevelBelow(4) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c78422252.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c78422252.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_GRAVE) and c78422252.filter(chkc,e,tp) end if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_GRAVE) and c78422252.filter(chkc,e,tp) end
......
...@@ -43,7 +43,7 @@ function c78794994.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -43,7 +43,7 @@ function c78794994.operation(e,tp,eg,ep,ev,re,r,rp)
local sg=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS) local sg=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
local tc=sg:GetFirst() local tc=sg:GetFirst()
if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) then if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) then
if Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP_ATTACK)==0 then return end if Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)==0 then return end
Duel.Equip(tp,c,tc) Duel.Equip(tp,c,tc)
--Add Equip limit --Add Equip limit
local e1=Effect.CreateEffect(tc) local e1=Effect.CreateEffect(tc)
......
...@@ -58,10 +58,12 @@ function c80244114.indop(e,tp,eg,ep,ev,re,r,rp) ...@@ -58,10 +58,12 @@ function c80244114.indop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsFaceup() and tc:IsRelateToEffect(e) then if tc:IsFaceup() and tc:IsRelateToEffect(e) then
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DESTROY_REPLACE) e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_INDESTRUCTABLE_COUNT)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetTarget(c80244114.reptg) e1:SetValue(c80244114.valcon)
e1:SetReset(RESET_EVENT+0x1fe0000) e1:SetReset(RESET_EVENT+0x1fe0000)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(e:GetHandler()) local e2=Effect.CreateEffect(e:GetHandler())
...@@ -72,10 +74,11 @@ function c80244114.indop(e,tp,eg,ep,ev,re,r,rp) ...@@ -72,10 +74,11 @@ function c80244114.indop(e,tp,eg,ep,ev,re,r,rp)
tc:RegisterEffect(e2) tc:RegisterEffect(e2)
end end
end end
function c80244114.reptg(e,tp,eg,ep,ev,re,r,rp,chk) function c80244114.valcon(e,re,r,rp)
if chk==0 then return e:GetHandler():IsReason(REASON_BATTLE) end if bit.band(r,REASON_BATTLE)~=0 then
e:GetHandler():RegisterFlagEffect(80244114,RESET_PHASE+PHASE_DAMAGE,0,1) e:GetHandler():RegisterFlagEffect(80244114,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_DAMAGE,0,1)
return true return true
else return false end
end end
function c80244114.addown(e,tp,eg,ep,ev,re,r,rp) function c80244114.addown(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():GetFlagEffect(80244114)==0 then return end if e:GetHandler():GetFlagEffect(80244114)==0 then return end
......
--スパイダー·スパイダー
function c80637190.initial_effect(c)
--spsummon
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(80637190,0))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetCode(EVENT_BATTLE_DESTROYING)
e2:SetCondition(c80637190.spcon)
e2:SetTarget(c80637190.sptg)
e2:SetOperation(c80637190.spop)
c:RegisterEffect(e2)
end
function c80637190.spcon(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetHandler():GetBattleTarget()
return bit.band(tc:GetBattlePosition(),POS_DEFENCE)~=0
end
function c80637190.filter(c,e,tp)
return c:IsLevelBelow(4) and c:IsRace(RACE_INSECT) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c80637190.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_GRAVE) and c80637190.filter(chkc,e,tp) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingTarget(c80637190.filter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectTarget(tp,c80637190.filter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0)
end
function c80637190.spop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
end
end
--ヴィクティム·カウンター
function c81601517.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_NEGATE+CATEGORY_DESTROY)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_CHAINING)
e1:SetCondition(c81601517.condition)
e1:SetTarget(c81601517.target)
e1:SetOperation(c81601517.activate)
c:RegisterEffect(e1)
end
function c81601517.condition(e,tp,eg,ep,ev,re,r,rp)
return rp~=tp and re:IsActiveType(TYPE_SPELL) and re:IsHasType(EFFECT_TYPE_ACTIVATE) and Duel.IsChainInactivatable(ev)
end
function c81601517.filter(c)
return c:IsFaceup() and c:IsType(TYPE_DUAL) and c:IsCanTurnSet()
end
function c81601517.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingTarget(c81601517.filter,tp,LOCATION_MZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,c81601517.filter,tp,LOCATION_MZONE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
if re:GetHandler():IsDestructable() and re:GetHandler():IsRelateToEffect(re) then
Duel.SetOperationInfo(0,CATEGORY_DESTROY,eg,1,0,0)
end
end
function c81601517.activate(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsFaceup() and tc:IsRelateToEffect(e) and Duel.ChangePosition(tc,POS_FACEDOWN_DEFENCE)~=0 then
Duel.BreakEffect()
Duel.NegateActivation(ev)
if re:GetHandler():IsRelateToEffect(re) then
Duel.Destroy(eg,REASON_EFFECT)
end
end
end
--ダーク·スパイダー
function c81759748.initial_effect(c)
--lv up
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(81759748,0))
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCategory(CATEGORY_ATKCHANGE)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetTarget(c81759748.target)
e1:SetOperation(c81759748.operation)
c:RegisterEffect(e1)
end
function c81759748.filter(c)
return c:IsFaceup() and c:IsRace(RACE_INSECT) and c:IsLevelAbove(1)
end
function c81759748.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c81759748.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c81759748.filter,tp,LOCATION_MZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local g=Duel.SelectTarget(tp,c81759748.filter,tp,LOCATION_MZONE,0,1,1,nil)
end
function c81759748.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsFaceup() and tc:IsRelateToEffect(e) then
local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LEVEL)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
e1:SetValue(2)
tc:RegisterEffect(e1)
end
end
--極限への衝動
function c82324105.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMING_END_PHASE)
e1:SetCost(c82324105.cost)
e1:SetTarget(c82324105.target)
e1:SetOperation(c82324105.activate)
c:RegisterEffect(e1)
end
function c82324105.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToGraveAsCost,tp,LOCATION_HAND,0,2,e:GetHandler()) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToGraveAsCost,tp,LOCATION_HAND,0,2,2,e:GetHandler())
Duel.SendtoGrave(g,REASON_COST)
end
function c82324105.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>1
and Duel.IsPlayerCanSpecialSummonMonster(tp,82324106,0,0x4011,0,0,1,RACE_FIEND,ATTRIBUTE_DARK) end
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,4,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,4,0,0)
end
function c82324105.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)>1
and Duel.IsPlayerCanSpecialSummonMonster(tp,82324106,0,0x4011,0,0,1,RACE_FIEND,ATTRIBUTE_DARK) then
for i=1,2 do
local token=Duel.CreateToken(tp,82324106)
Duel.SpecialSummonStep(token,0,tp,tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UNRELEASEABLE_NONSUM)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetValue(1)
token:RegisterEffect(e1,true)
end
Duel.SpecialSummonComplete()
end
end
...@@ -8,12 +8,14 @@ function c82693042.initial_effect(c) ...@@ -8,12 +8,14 @@ function c82693042.initial_effect(c)
e1:SetCode(EFFECT_ADD_ATTRIBUTE) e1:SetCode(EFFECT_ADD_ATTRIBUTE)
e1:SetValue(ATTRIBUTE_LIGHT) e1:SetValue(ATTRIBUTE_LIGHT)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--battle des rep --battle indes
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE) e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DESTROY_REPLACE) e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_INDESTRUCTABLE_COUNT)
e2:SetCountLimit(1) e2:SetCountLimit(1)
e2:SetTarget(c82693042.reptg) e2:SetValue(c82693042.valcon)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--search --search
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
...@@ -26,9 +28,8 @@ function c82693042.initial_effect(c) ...@@ -26,9 +28,8 @@ function c82693042.initial_effect(c)
e3:SetOperation(c82693042.thop) e3:SetOperation(c82693042.thop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c82693042.reptg(e,tp,eg,ep,ev,re,r,rp,chk) function c82693042.valcon(e,re,r,rp)
if chk==0 then return e:GetHandler():IsReason(REASON_BATTLE) end return bit.band(r,REASON_BATTLE)~=0
return true
end end
function c82693042.thcon(e,tp,eg,ep,ev,re,r,rp) function c82693042.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetSummonType()==SUMMON_TYPE_ADVANCE return e:GetHandler():GetSummonType()==SUMMON_TYPE_ADVANCE
......
--ヴィークラー
function c83392426.initial_effect(c)
--special summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(83392426,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_BATTLE_DESTROYED)
e1:SetCondition(c83392426.condition)
e1:SetTarget(c83392426.target)
e1:SetOperation(c83392426.operation)
c:RegisterEffect(e1)
end
function c83392426.condition(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsLocation(LOCATION_GRAVE) and e:GetHandler():IsReason(REASON_BATTLE)
end
function c83392426.filter(c,e,tp)
return c:IsCode(57308711) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c83392426.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c83392426.filter,tp,LOCATION_HAND+LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND+LOCATION_DECK)
end
function c83392426.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c83392426.filter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
--無抵抗の真相
function c83546647.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_BATTLE_DAMAGE)
e1:SetCondition(c83546647.condition)
e1:SetCost(c83546647.cost)
e1:SetTarget(c83546647.target)
e1:SetOperation(c83546647.activate)
e1:SetLabel(1)
c:RegisterEffect(e1)
end
function c83546647.condition(e,tp,eg,ep,ev,re,r,rp)
return eg:GetFirst():IsControler(1-tp) and ep==tp and Duel.GetAttackTarget()==nil
end
function c83546647.spfilter(c,e,tp)
return c:GetLevel()==1 and not c:IsPublic() and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
and Duel.IsExistingMatchingCard(c83546647.spfilter2,tp,LOCATION_DECK,0,1,nil,e,tp,c:GetCode())
end
function c83546647.spfilter2(c,e,tp,code)
return c:IsCode(code) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c83546647.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetLabel(0)
return true
end
function c83546647.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
if e:GetLabel()~=0 then return false end
e:SetLabel(1)
return Duel.GetLocationCount(tp,LOCATION_MZONE)>1
and Duel.IsExistingMatchingCard(c83546647.spfilter,tp,LOCATION_HAND,0,1,nil,e,tp)
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local g=Duel.SelectMatchingCard(tp,c83546647.spfilter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
Duel.ConfirmCards(1-tp,g)
Duel.ShuffleHand(tp)
Duel.SetTargetCard(g)
e:SetLabelObject(g:GetFirst())
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_HAND+LOCATION_DECK)
end
function c83546647.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<2 then return end
local tc1=e:GetLabelObject()
if not tc1:IsRelateToEffect(e) or not tc1:IsCanBeSpecialSummoned(e,0,tp,false,false) then return end
local tc2=Duel.GetFirstMatchingCard(c83546647.spfilter2,tp,LOCATION_DECK,0,nil,e,tp,tc1:GetCode())
if tc2 then
Duel.SpecialSummonStep(tc1,0,tp,tp,false,false,POS_FACEUP)
Duel.SpecialSummonStep(tc2,0,tp,tp,false,false,POS_FACEUP)
Duel.SpecialSummonComplete()
end
end
...@@ -26,10 +26,12 @@ end ...@@ -26,10 +26,12 @@ end
function c87319876.cop(e,tp,eg,ep,ev,re,r,rp) function c87319876.cop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DESTROY_REPLACE) e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_INDESTRUCTABLE_COUNT)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetTarget(c87319876.reptg) e1:SetValue(c87319876.valcon)
e1:SetReset(RESET_EVENT+0x1fe0000) e1:SetReset(RESET_EVENT+0x1fe0000)
c:GetReasonCard():RegisterEffect(e1) c:GetReasonCard():RegisterEffect(e1)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -40,10 +42,11 @@ function c87319876.cop(e,tp,eg,ep,ev,re,r,rp) ...@@ -40,10 +42,11 @@ function c87319876.cop(e,tp,eg,ep,ev,re,r,rp)
e2:SetReset(RESET_EVENT+0x1fe0000) e2:SetReset(RESET_EVENT+0x1fe0000)
c:GetReasonCard():RegisterEffect(e2) c:GetReasonCard():RegisterEffect(e2)
end end
function c87319876.reptg(e,tp,eg,ep,ev,re,r,rp,chk) function c87319876.valcon(e,re,r,rp)
if chk==0 then return e:GetHandler():IsReason(REASON_BATTLE) end if bit.band(r,REASON_BATTLE)~=0 then
e:GetHandler():RegisterFlagEffect(87319876,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_DAMAGE,0,1) e:GetHandler():RegisterFlagEffect(87319876,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_DAMAGE,0,1)
return true return true
else return false end
end end
function c87319876.adcon(e,tp,eg,ep,ev,re,r,rp) function c87319876.adcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(87319876)~=0 return e:GetHandler():GetFlagEffect(87319876)~=0
......
...@@ -22,12 +22,14 @@ function c92300891.initial_effect(c) ...@@ -22,12 +22,14 @@ function c92300891.initial_effect(c)
e3:SetCondition(c92300891.poscon) e3:SetCondition(c92300891.poscon)
e3:SetOperation(c92300891.posop) e3:SetOperation(c92300891.posop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--battle des rep --battle indes
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE) e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_DESTROY_REPLACE) e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e4:SetRange(LOCATION_MZONE)
e4:SetCode(EFFECT_INDESTRUCTABLE_COUNT)
e4:SetCountLimit(1) e4:SetCountLimit(1)
e4:SetTarget(c92300891.reptg) e4:SetValue(c92300891.valcon)
c:RegisterEffect(e4) c:RegisterEffect(e4)
end end
function c92300891.becon(e) function c92300891.becon(e)
...@@ -46,3 +48,6 @@ function c92300891.reptg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -46,3 +48,6 @@ function c92300891.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsReason(REASON_BATTLE) end if chk==0 then return e:GetHandler():IsReason(REASON_BATTLE) end
return true return true
end end
function c92300891.valcon(e,re,r,rp)
return bit.band(r,REASON_BATTLE)~=0
end
--マイン·モール --マイン·モール
function c94079037.initial_effect(c) function c94079037.initial_effect(c)
-- --battle indes
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DESTROY_REPLACE) e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_INDESTRUCTABLE_COUNT)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetTarget(c94079037.reptg) e1:SetValue(c94079037.valcon)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--draw --draw
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -26,9 +28,8 @@ function c94079037.initial_effect(c) ...@@ -26,9 +28,8 @@ function c94079037.initial_effect(c)
e3:SetValue(LOCATION_REMOVED) e3:SetValue(LOCATION_REMOVED)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c94079037.reptg(e,tp,eg,ep,ev,re,r,rp,chk) function c94079037.valcon(e,re,r,rp)
if chk==0 then return e:GetHandler():IsReason(REASON_BATTLE) end return bit.band(r,REASON_BATTLE)~=0
return true
end end
function c94079037.drcon(e,tp,eg,ep,ev,re,r,rp) function c94079037.drcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsLocation(LOCATION_GRAVE) and r==REASON_SYNCHRO return e:GetHandler():IsLocation(LOCATION_GRAVE) and r==REASON_SYNCHRO
......
--スリップ·サモン
function c94484482.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetCondition(c94484482.condition)
e1:SetTarget(c94484482.target)
e1:SetOperation(c94484482.activate)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetCondition(c94484482.condition2)
c:RegisterEffect(e2)
local e3=e1:Clone()
e3:SetCode(EVENT_FLIP_SUMMON_SUCCESS)
c:RegisterEffect(e3)
end
function c94484482.condition(e,tp,eg,ep,ev,re,r,rp)
return ep~=tp
end
function c94484482.cfilter(c,tp)
return c:GetSummonPlayer()==1-tp
end
function c94484482.condition2(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c94484482.cfilter,1,nil,tp)
end
function c94484482.spfilter(c,e,tp)
return c:IsLevelBelow(4) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c94484482.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)~=0
and Duel.IsExistingMatchingCard(c94484482.spfilter,tp,LOCATION_HAND,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end
function c94484482.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c94484482.spfilter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
local tc=g:GetFirst()
if tc and Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP_DEFENCE)~=0 then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetOperation(c94484482.retop)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
end
end
function c94484482.retop(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoHand(e:GetHandler(),nil,REASON_EFFECT)
end
--マックス·ウォリアー
function c94538053.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetCondition(c94538053.condtion)
e1:SetValue(400)
c:RegisterEffect(e1)
--addown
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(94538053,0))
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e2:SetCategory(CATEGORY_ATKCHANGE)
e2:SetCode(EVENT_BATTLE_DESTROYING)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(c94538053.atkcon)
e2:SetOperation(c94538053.atkop)
c:RegisterEffect(e2)
end
function c94538053.condtion(e)
local ph=Duel.GetCurrentPhase()
return (ph==PHASE_DAMAGE or ph==PHASE_DAMAGE_CAL)
and Duel.GetAttacker()==e:GetHandler() and Duel.GetAttackTarget()~=nil
end
function c94538053.atkcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsRelateToBattle() and e:GetHandler():IsFaceup()
end
function c94538053.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToBattle() and c:IsFaceup() then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_BASE_ATTACK)
e1:SetValue(c:GetBaseAttack()/2)
e1:SetReset(RESET_EVENT+0x1ff0000+RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_SET_BASE_DEFENCE)
e2:SetValue(c:GetBaseDefence()/2)
c:RegisterEffect(e2)
end
end
--狂植物の氾濫
function c95507060.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_ATKCHANGE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(TIMING_DAMAGE_STEP)
e1:SetCondition(c95507060.condition)
e1:SetTarget(c95507060.target)
e1:SetOperation(c95507060.activate)
c:RegisterEffect(e1)
end
function c95507060.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentPhase()~=PHASE_DAMAGE or not Duel.IsDamageCalculated()
end
function c95507060.filter(c)
return c:IsFaceup() and c:IsRace(RACE_PLANT)
end
function c95507060.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c95507060.filter,tp,LOCATION_MZONE,0,1,nil) end
end
function c95507060.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c95507060.filter,tp,LOCATION_MZONE,0,nil)
local atk=Duel.GetMatchingGroupCount(Card.IsRace,tp,LOCATION_GRAVE,0,nil,RACE_PLANT)*300
local c=e:GetHandler()
local tc=g:GetFirst()
while tc do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+RESET_END)
e1:SetValue(atk)
tc:RegisterEffect(e1)
tc=g:GetNext()
end
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetReset(RESET_PHASE+RESET_END)
e2:SetCountLimit(1)
e2:SetOperation(c95507060.desop)
Duel.RegisterEffect(e2,tp)
end
function c95507060.desop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c95507060.filter,tp,LOCATION_MZONE,0,nil)
Duel.Destroy(g,REASON_EFFECT)
end
--モルティング·エスケープ
function c95784434.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_EQUIP)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetTarget(c95784434.target)
e1:SetOperation(c95784434.operation)
c:RegisterEffect(e1)
--Equip limit
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_EQUIP_LIMIT)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetValue(c95784434.eqlimit)
c:RegisterEffect(e2)
--
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_EQUIP)
e3:SetCode(EFFECT_INDESTRUCTABLE_COUNT)
e3:SetCountLimit(1)
e3:SetValue(c95784434.valcon)
c:RegisterEffect(e3)
--atkup
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(95784434,0))
e4:SetType(EFFECT_TYPE_TRIGGER_F+EFFECT_TYPE_FIELD)
e4:SetRange(LOCATION_SZONE)
e4:SetCode(EVENT_DAMAGE_STEP_END)
e4:SetCondition(c95784434.adcon)
e4:SetOperation(c95784434.adop)
c:RegisterEffect(e4)
end
function c95784434.eqlimit(e,c)
return c:IsRace(RACE_REPTILE)
end
function c95784434.filter(c)
return c:IsFaceup() and c:IsRace(RACE_REPTILE)
end
function c95784434.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and c95784434.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c95784434.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,c95784434.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
end
function c95784434.operation(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if e:GetHandler():IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then
Duel.Equip(tp,e:GetHandler(),tc)
end
end
function c95784434.valcon(e,re,r,rp)
if bit.band(r,REASON_BATTLE)~=0 then
e:GetHandler():RegisterFlagEffect(95784434,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_DAMAGE,0,1)
return true
else return false end
end
function c95784434.adcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(95784434)~=0
end
function c95784434.adop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(300)
e1:SetReset(RESET_EVENT+0x1fe0000)
c:GetEquipTarget():RegisterEffect(e1)
end
--ダーク·リゾネーター --ダーク·リゾネーター
function c97021916.initial_effect(c) function c97021916.initial_effect(c)
--battle des rep --battle indes
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DESTROY_REPLACE) e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_INDESTRUCTABLE_COUNT)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetTarget(c97021916.reptg) e1:SetValue(c97021916.valcon)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c97021916.reptg(e,tp,eg,ep,ev,re,r,rp,chk) function c97021916.valcon(e,re,r,rp)
if chk==0 then return e:GetHandler():IsReason(REASON_BATTLE) end return bit.band(r,REASON_BATTLE)~=0
return true
end end
...@@ -282,6 +282,7 @@ EFFECT_UNRELEASEABLE_SUM =43 -- ...@@ -282,6 +282,7 @@ EFFECT_UNRELEASEABLE_SUM =43 --
EFFECT_UNRELEASEABLE_NONSUM =44 -- EFFECT_UNRELEASEABLE_NONSUM =44 --
EFFECT_DESTROY_SUBSTITUTE =45 -- EFFECT_DESTROY_SUBSTITUTE =45 --
EFFECT_CANNOT_RELEASE =46 -- EFFECT_CANNOT_RELEASE =46 --
EFFECT_INDESTRUCTABLE_COUNT =47 --
EFFECT_DESTROY_REPLACE =50 -- EFFECT_DESTROY_REPLACE =50 --
EFFECT_RELEASE_REPLACE =51 -- EFFECT_RELEASE_REPLACE =51 --
EFFECT_SEND_REPLACE =52 -- EFFECT_SEND_REPLACE =52 --
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
antialias = 2 antialias = 2
nickname = Player nickname = Player
gamename = Game gamename = Game
lastdeck = sample lastdeck = test
textfont = c:/windows/fonts/simsun.ttc 14 textfont = c:/windows/fonts/simsun.ttc 14
numfont = c:/windows/fonts/arialbd.ttf numfont = c:/windows/fonts/arialbd.ttf
serverport = 7911 serverport = 7911
......
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