Commit 1aa16784 authored by argon.sun's avatar argon.sun

hints

parent e991cff9
...@@ -91,6 +91,7 @@ public: ...@@ -91,6 +91,7 @@ public:
std::set<ClientCard*> cardTarget; std::set<ClientCard*> cardTarget;
std::set<ClientCard*> ownerTarget; std::set<ClientCard*> ownerTarget;
std::map<int, int> counters; std::map<int, int> counters;
std::map<int, int> desc_hints;
wchar_t atkstring[16]; wchar_t atkstring[16];
wchar_t defstring[16]; wchar_t defstring[16];
wchar_t lvstring[16]; wchar_t lvstring[16];
......
...@@ -106,7 +106,7 @@ public: ...@@ -106,7 +106,7 @@ public:
ClientCard* clicked_card; ClientCard* clicked_card;
ClientCard* command_card; ClientCard* command_card;
int list_command; int list_command;
wchar_t formatBuffer[256]; wchar_t formatBuffer[2048];
virtual bool OnEvent(const irr::SEvent& event); virtual bool OnEvent(const irr::SEvent& event);
void GetHoverField(int x, int y); void GetHoverField(int x, int y);
......
...@@ -1891,7 +1891,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -1891,7 +1891,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
for (int i = 0; i < pcard->overlayed.size(); ++i) for (int i = 0; i < pcard->overlayed.size(); ++i)
mainGame->dField.MoveCard(pcard->overlayed[i], 10); mainGame->dField.MoveCard(pcard->overlayed[i], 10);
mainGame->gMutex.Unlock(); mainGame->gMutex.Unlock();
mainGame->WaitFrameSignal(5); mainGame->WaitFrameSignal(10);
} }
if (cl == 0x2) { if (cl == 0x2) {
mainGame->gMutex.Lock(); mainGame->gMutex.Lock();
...@@ -2161,6 +2161,10 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -2161,6 +2161,10 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
if(mainGame->dInfo.isReplay && mainGame->dInfo.isReplaySkiping) if(mainGame->dInfo.isReplay && mainGame->dInfo.isReplaySkiping)
return true; return true;
ClientCard* pcard = mainGame->dField.GetCard(pcc, pcl, pcs, subs); ClientCard* pcard = mainGame->dField.GetCard(pcc, pcl, pcs, subs);
if(pcard->code != code) {
pcard->code = code;
mainGame->dField.MoveCard(pcard, 10);
}
mainGame->showcardcode = code; mainGame->showcardcode = code;
mainGame->showcarddif = 0; mainGame->showcarddif = 0;
mainGame->showcard = 1; mainGame->showcard = 1;
...@@ -2813,22 +2817,30 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -2813,22 +2817,30 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
ClientCard* pcard = mainGame->dField.GetCard(c, l, s); ClientCard* pcard = mainGame->dField.GetCard(c, l, s);
if(!pcard) if(!pcard)
return true; return true;
pcard->cHint = chtype; if(chtype == CHINT_DESC_ADD) {
pcard->chValue = value; pcard->desc_hints[value]++;
if(chtype == CHINT_TURN) { } else if(chtype == CHINT_DESC_REMOVE) {
if(value == 0) pcard->desc_hints[value]--;
return true; if(pcard->desc_hints[value] == 0)
if(mainGame->dInfo.isReplay && mainGame->dInfo.isReplaySkiping) pcard->desc_hints.erase(value);
return true; } else {
if(pcard->location & LOCATION_ONFIELD) pcard->cHint = chtype;
pcard->is_highlighting = true; pcard->chValue = value;
mainGame->showcardcode = pcard->code; if(chtype == CHINT_TURN) {
mainGame->showcarddif = 0; if(value == 0)
mainGame->showcardp = value - 1; return true;
mainGame->showcard = 6; if(mainGame->dInfo.isReplay && mainGame->dInfo.isReplaySkiping)
mainGame->WaitFrameSignal(30); return true;
pcard->is_highlighting = false; if(pcard->location & LOCATION_ONFIELD)
mainGame->showcard = 0; pcard->is_highlighting = true;
mainGame->showcardcode = pcard->code;
mainGame->showcarddif = 0;
mainGame->showcardp = value - 1;
mainGame->showcard = 6;
mainGame->WaitFrameSignal(30);
pcard->is_highlighting = false;
mainGame->showcard = 0;
}
} }
return true; return true;
} }
......
...@@ -1362,8 +1362,10 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1362,8 +1362,10 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
myswprintf(formatBuffer, L"\n%ls%ls", dataManager.GetSysString(214), dataManager.FormatAttribute(mcard->chValue)); myswprintf(formatBuffer, L"\n%ls%ls", dataManager.GetSysString(214), dataManager.FormatAttribute(mcard->chValue));
else if(mcard->cHint == CHINT_NUMBER) else if(mcard->cHint == CHINT_NUMBER)
myswprintf(formatBuffer, L"\n%ls%d", dataManager.GetSysString(215), mcard->chValue); myswprintf(formatBuffer, L"\n%ls%d", dataManager.GetSysString(215), mcard->chValue);
else if(mcard->cHint == CHINT_DESC) str.append(formatBuffer);
myswprintf(formatBuffer, L"\n%ls", dataManager.GetDesc(mcard->chValue)); }
for(auto iter = mcard->desc_hints.begin(); iter != mcard->desc_hints.end(); ++iter) {
myswprintf(formatBuffer, L"\n*%ls", dataManager.GetDesc(iter->first));
str.append(formatBuffer); str.append(formatBuffer);
} }
} else { } else {
...@@ -1390,8 +1392,10 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1390,8 +1392,10 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
myswprintf(formatBuffer, L"\n%ls%ls", dataManager.GetSysString(214), dataManager.FormatAttribute(mcard->chValue)); myswprintf(formatBuffer, L"\n%ls%ls", dataManager.GetSysString(214), dataManager.FormatAttribute(mcard->chValue));
else if(mcard->cHint == CHINT_NUMBER) else if(mcard->cHint == CHINT_NUMBER)
myswprintf(formatBuffer, L"\n%ls%d", dataManager.GetSysString(215), mcard->chValue); myswprintf(formatBuffer, L"\n%ls%d", dataManager.GetSysString(215), mcard->chValue);
else if(mcard->cHint == CHINT_DESC) str.append(formatBuffer);
myswprintf(formatBuffer, L"\n%ls", dataManager.GetDesc(mcard->chValue)); }
for(auto iter = mcard->desc_hints.begin(); iter != mcard->desc_hints.end(); ++iter) {
myswprintf(formatBuffer, L"\n*%ls", dataManager.GetDesc(iter->first));
str.append(formatBuffer); str.append(formatBuffer);
} }
} }
......
...@@ -783,7 +783,7 @@ int32 card::add_effect(effect* peffect) { ...@@ -783,7 +783,7 @@ int32 card::add_effect(effect* peffect) {
if(peffect->flag & EFFECT_FLAG_CLIENT_HINT) { if(peffect->flag & EFFECT_FLAG_CLIENT_HINT) {
pduel->write_buffer8(MSG_CARD_HINT); pduel->write_buffer8(MSG_CARD_HINT);
pduel->write_buffer32(get_info_location()); pduel->write_buffer32(get_info_location());
pduel->write_buffer8(CHINT_DESC); pduel->write_buffer8(CHINT_DESC_ADD);
pduel->write_buffer32(peffect->description); pduel->write_buffer32(peffect->description);
} }
return peffect->id; return peffect->id;
...@@ -842,8 +842,8 @@ void card::remove_effect(effect* peffect, effect_container::iterator it) { ...@@ -842,8 +842,8 @@ void card::remove_effect(effect* peffect, effect_container::iterator it) {
if(peffect->flag & EFFECT_FLAG_CLIENT_HINT) { if(peffect->flag & EFFECT_FLAG_CLIENT_HINT) {
pduel->write_buffer8(MSG_CARD_HINT); pduel->write_buffer8(MSG_CARD_HINT);
pduel->write_buffer32(get_info_location()); pduel->write_buffer32(get_info_location());
pduel->write_buffer8(CHINT_DESC); pduel->write_buffer8(CHINT_DESC_REMOVE);
pduel->write_buffer32(0); pduel->write_buffer32(peffect->description);
} }
pduel->game_field->core.reseted_effects.insert(peffect); pduel->game_field->core.reseted_effects.insert(peffect);
} }
......
...@@ -484,6 +484,7 @@ public: ...@@ -484,6 +484,7 @@ public:
//Chain Info //Chain Info
#define CHAIN_DISABLE_ACTIVATE 0x01 #define CHAIN_DISABLE_ACTIVATE 0x01
#define CHAIN_DISABLE_EFFECT 0x02 #define CHAIN_DISABLE_EFFECT 0x02
#define CHAIN_HAND_EFFECT 0x04
#define CHAININFO_CHAIN_COUNT 0x01 #define CHAININFO_CHAIN_COUNT 0x01
#define CHAININFO_TRIGGERING_EFFECT 0x02 #define CHAININFO_TRIGGERING_EFFECT 0x02
#define CHAININFO_TRIGGERING_PLAYER 0x04 #define CHAININFO_TRIGGERING_PLAYER 0x04
...@@ -656,7 +657,8 @@ public: ...@@ -656,7 +657,8 @@ public:
#define CHINT_RACE 3 #define CHINT_RACE 3
#define CHINT_ATTRIBUTE 4 #define CHINT_ATTRIBUTE 4
#define CHINT_NUMBER 5 #define CHINT_NUMBER 5
#define CHINT_DESC 6 #define CHINT_DESC_ADD 6
#define CHINT_DESC_REMOVE 7
//Messages //Messages
#define MSG_RETRY 1 #define MSG_RETRY 1
#define MSG_HINT 2 #define MSG_HINT 2
......
...@@ -1843,7 +1843,7 @@ int32 scriptlib::card_set_hint(lua_State *L) { ...@@ -1843,7 +1843,7 @@ int32 scriptlib::card_set_hint(lua_State *L) {
duel* pduel = pcard->pduel; duel* pduel = pcard->pduel;
uint32 type = lua_tointeger(L, 2); uint32 type = lua_tointeger(L, 2);
uint32 value = lua_tointeger(L, 3); uint32 value = lua_tointeger(L, 3);
if(type > CHINT_DESC) if(type >= CHINT_DESC_ADD)
return 0; return 0;
pduel->write_buffer8(MSG_CARD_HINT); pduel->write_buffer8(MSG_CARD_HINT);
pduel->write_buffer32(pcard->get_info_location()); pduel->write_buffer32(pcard->get_info_location());
......
...@@ -3918,14 +3918,15 @@ int32 field::add_chain(uint16 step) { ...@@ -3918,14 +3918,15 @@ int32 field::add_chain(uint16 step) {
case 1: { case 1: {
chain_list::iterator clit = core.new_chains.begin(); chain_list::iterator clit = core.new_chains.begin();
effect* peffect = clit->triggering_effect; effect* peffect = clit->triggering_effect;
card* phandler = peffect->handler;
if(peffect->type & EFFECT_TYPE_ACTIVATE) { if(peffect->type & EFFECT_TYPE_ACTIVATE) {
clit->triggering_controler = peffect->handler->current.controler; clit->triggering_controler = phandler->current.controler;
clit->triggering_location = peffect->handler->current.location; clit->triggering_location = phandler->current.location;
clit->triggering_sequence = peffect->handler->current.sequence; clit->triggering_sequence = phandler->current.sequence;
} }
pduel->write_buffer8(MSG_CHAINING); pduel->write_buffer8(MSG_CHAINING);
pduel->write_buffer32(peffect->handler->data.code); pduel->write_buffer32(phandler->data.code);
pduel->write_buffer32(peffect->handler->get_info_location()); pduel->write_buffer32(phandler->get_info_location());
pduel->write_buffer8(clit->triggering_controler); pduel->write_buffer8(clit->triggering_controler);
pduel->write_buffer8(clit->triggering_location); pduel->write_buffer8(clit->triggering_location);
pduel->write_buffer8(clit->triggering_sequence); pduel->write_buffer8(clit->triggering_sequence);
...@@ -3937,13 +3938,13 @@ int32 field::add_chain(uint16 step) { ...@@ -3937,13 +3938,13 @@ int32 field::add_chain(uint16 step) {
core.chain_limit = 0; core.chain_limit = 0;
} }
effect* deffect; effect* deffect;
if(!(peffect->flag & EFFECT_FLAG_FIELD_ONLY) && (deffect = peffect->handler->is_affected_by_effect(EFFECT_DISABLE_EFFECT))) { if(!(peffect->flag & EFFECT_FLAG_FIELD_ONLY) && (deffect = phandler->is_affected_by_effect(EFFECT_DISABLE_EFFECT))) {
effect* negeff = pduel->new_effect(); effect* negeff = pduel->new_effect();
negeff->owner = deffect->owner; negeff->owner = deffect->owner;
negeff->type = EFFECT_TYPE_SINGLE; negeff->type = EFFECT_TYPE_SINGLE;
negeff->code = EFFECT_DISABLE_CHAIN; negeff->code = EFFECT_DISABLE_CHAIN;
negeff->reset_flag = RESET_CHAIN | RESET_EVENT | deffect->get_value(); negeff->reset_flag = RESET_CHAIN | RESET_EVENT | deffect->get_value();
peffect->handler->add_effect(negeff); phandler->add_effect(negeff);
} }
clit->triggering_effect->card_type = peffect->handler->get_type(); clit->triggering_effect->card_type = peffect->handler->get_type();
if((clit->triggering_effect->card_type & 0x5) == 0x5) if((clit->triggering_effect->card_type & 0x5) == 0x5)
...@@ -3955,8 +3956,10 @@ int32 field::add_chain(uint16 step) { ...@@ -3955,8 +3956,10 @@ int32 field::add_chain(uint16 step) {
clit->disable_reason = 0; clit->disable_reason = 0;
clit->disable_player = PLAYER_NONE; clit->disable_player = PLAYER_NONE;
clit->replace_op = 0; clit->replace_op = 0;
if((phandler->current.location == LOCATION_HAND))
clit->flag |= CHAIN_HAND_EFFECT;
core.current_chain.push_back(*clit); core.current_chain.push_back(*clit);
//triggered events which are not caused by RaiseEvent create relation with the handler // triggered events which are not caused by RaiseEvent create relation with the handler
if(!(peffect->flag & EFFECT_FLAG_FIELD_ONLY) && (!(peffect->type & 0x2a0) || (peffect->code & EVENT_PHASE) == EVENT_PHASE)) { if(!(peffect->flag & EFFECT_FLAG_FIELD_ONLY) && (!(peffect->type & 0x2a0) || (peffect->code & EVENT_PHASE) == EVENT_PHASE)) {
peffect->handler->create_relation(peffect); peffect->handler->create_relation(peffect);
} }
...@@ -3980,10 +3983,9 @@ int32 field::add_chain(uint16 step) { ...@@ -3980,10 +3983,9 @@ int32 field::add_chain(uint16 step) {
break_effect(); break_effect();
chain_array::iterator clit = --(core.current_chain.end()); chain_array::iterator clit = --(core.current_chain.end());
effect* peffect = clit->triggering_effect; effect* peffect = clit->triggering_effect;
card_set::iterator cit;
if(clit->target_cards && clit->target_cards->container.size()) { if(clit->target_cards && clit->target_cards->container.size()) {
if(clit->triggering_effect->flag & EFFECT_FLAG_CARD_TARGET) { if(clit->triggering_effect->flag & EFFECT_FLAG_CARD_TARGET) {
for(cit = clit->target_cards->container.begin(); cit != clit->target_cards->container.end(); ++cit) for(auto cit = clit->target_cards->container.begin(); cit != clit->target_cards->container.end(); ++cit)
raise_single_event(*cit, 0, EVENT_BECOME_TARGET, clit->triggering_effect, 0, clit->triggering_player, 0, clit->chain_count); raise_single_event(*cit, 0, EVENT_BECOME_TARGET, clit->triggering_effect, 0, clit->triggering_player, 0, clit->chain_count);
process_single_event(); process_single_event();
if(clit->target_cards->container.size()) if(clit->target_cards->container.size())
...@@ -4013,13 +4015,12 @@ int32 field::add_chain(uint16 step) { ...@@ -4013,13 +4015,12 @@ int32 field::add_chain(uint16 step) {
int32 field::sort_chain(uint16 step, uint8 tp) { int32 field::sort_chain(uint16 step, uint8 tp) {
switch(step) { switch(step) {
case 0: { case 0: {
chain_list::iterator clit;
core.select_cards.clear(); core.select_cards.clear();
if(tp) if(tp)
for(clit = core.tpchain.begin(); clit != core.tpchain.end(); ++clit) for(auto clit = core.tpchain.begin(); clit != core.tpchain.end(); ++clit)
core.select_cards.push_back(clit->triggering_effect->handler); core.select_cards.push_back(clit->triggering_effect->handler);
else else
for(clit = core.ntpchain.begin(); clit != core.ntpchain.end(); ++clit) for(auto clit = core.ntpchain.begin(); clit != core.ntpchain.end(); ++clit)
core.select_cards.push_back(clit->triggering_effect->handler); core.select_cards.push_back(clit->triggering_effect->handler);
add_process(PROCESSOR_SORT_CARD, 0, 0, 0, tp ? infos.turn_player : (1 - infos.turn_player), 1); add_process(PROCESSOR_SORT_CARD, 0, 0, 0, tp ? infos.turn_player : (1 - infos.turn_player), 1);
return FALSE; return FALSE;
...@@ -4124,8 +4125,7 @@ int32 field::solve_chain(uint16 step, uint32 skip_new) { ...@@ -4124,8 +4125,7 @@ int32 field::solve_chain(uint16 step, uint32 skip_new) {
core.units.begin()->step = 9; core.units.begin()->step = 9;
return FALSE; return FALSE;
} }
oath_effects::iterator oeit; for(auto oeit = effects.oath.begin(); oeit != effects.oath.end(); ++oeit)
for(oeit = effects.oath.begin(); oeit != effects.oath.end(); ++oeit)
if(oeit->second == peffect) if(oeit->second == peffect)
oeit->second = 0; oeit->second = 0;
break_effect(); break_effect();
...@@ -4200,6 +4200,8 @@ int32 field::solve_chain(uint16 step, uint32 skip_new) { ...@@ -4200,6 +4200,8 @@ int32 field::solve_chain(uint16 step, uint32 skip_new) {
} }
case 10: { case 10: {
card* pcard = cait->triggering_effect->handler; card* pcard = cait->triggering_effect->handler;
if((cait->flag & CHAIN_HAND_EFFECT) && !pcard->is_status(STATUS_IS_PUBLIC) && (pcard->current.location == LOCATION_HAND))
shuffle(pcard->current.controler, LOCATION_HAND);
if(cait->target_cards && cait->target_cards->container.size()) { if(cait->target_cards && cait->target_cards->container.size()) {
for(auto cit = cait->target_cards->container.begin(); cit != cait->target_cards->container.end(); ++cit) for(auto cit = cait->target_cards->container.begin(); cit != cait->target_cards->container.end(); ++cit)
(*cit)->release_relation(cait->triggering_effect); (*cit)->release_relation(cait->triggering_effect);
......
...@@ -30,8 +30,6 @@ end ...@@ -30,8 +30,6 @@ end
function c10178757.target(e,tp,eg,ep,ev,re,r,rp,chk) function c10178757.target(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 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c10178757.operation(e,tp,eg,ep,ev,re,r,rp) function c10178757.operation(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -27,8 +27,6 @@ end ...@@ -27,8 +27,6 @@ end
function c15475415.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c15475415.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,1,tp,false,false) end and e:GetHandler():IsCanBeSpecialSummoned(e,1,tp,false,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c15475415.spop(e,tp,eg,ep,ev,re,r,rp) function c15475415.spop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -21,8 +21,6 @@ function c19665973.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -21,8 +21,6 @@ function c19665973.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
Duel.ConfirmCards(1-tp,c)
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end end
function c19665973.operation(e,tp,eg,ep,ev,re,r,rp) function c19665973.operation(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -23,7 +23,7 @@ function c20838380.initial_effect(c) ...@@ -23,7 +23,7 @@ function c20838380.initial_effect(c)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c20838380.cfilter(c,tp) function c20838380.cfilter(c,tp)
return c:IsControler(tp) and c:IsRace(RACE_FISH+RACE_SEASERPENT+RACE_AQUA) return c:IsFaceup() and c:IsControler(tp) and c:IsRace(RACE_FISH+RACE_SEASERPENT+RACE_AQUA)
end end
function c20838380.spcon(e,tp,eg,ep,ev,re,r,rp) function c20838380.spcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c20838380.cfilter,1,nil,tp) return eg:IsExists(c20838380.cfilter,1,nil,tp)
...@@ -31,8 +31,6 @@ end ...@@ -31,8 +31,6 @@ end
function c20838380.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c20838380.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 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c20838380.spop(e,tp,eg,ep,ev,re,r,rp) function c20838380.spop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -59,8 +59,6 @@ function c20951752.sumcost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -59,8 +59,6 @@ function c20951752.sumcost(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function c20951752.sumtg(e,tp,eg,ep,ev,re,r,rp,chk) function c20951752.sumtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end if chk==0 then return e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c20951752.sumop(e,tp,eg,ep,ev,re,r,rp) function c20951752.sumop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -82,8 +82,6 @@ end ...@@ -82,8 +82,6 @@ end
function c24857466.hsptg(e,tp,eg,ep,ev,re,r,rp,chk) function c24857466.hsptg(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 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetTargetParam(e:GetLabel()) Duel.SetTargetParam(e:GetLabel())
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
......
...@@ -33,8 +33,6 @@ end ...@@ -33,8 +33,6 @@ end
function c25484449.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c25484449.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 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c25484449.spop(e,tp,eg,ep,ev,re,r,rp) function c25484449.spop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -49,8 +49,6 @@ end ...@@ -49,8 +49,6 @@ end
function c27769400.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c27769400.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 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c27769400.spop(e,tp,eg,ep,ev,re,r,rp) function c27769400.spop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -19,8 +19,7 @@ function c293542.initial_effect(c) ...@@ -19,8 +19,7 @@ function c293542.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c293542.cfilter(c) function c293542.cfilter(c)
local lv=c:GetLevel() return c:IsFaceup() and c:IsLevelBelow(4)
return lv>0 and lv<=4
end end
function c293542.spcon(e,tp,eg,ep,ev,re,r,rp) function c293542.spcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c293542.cfilter,1,nil) return eg:IsExists(c293542.cfilter,1,nil)
...@@ -28,8 +27,6 @@ end ...@@ -28,8 +27,6 @@ end
function c293542.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c293542.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 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c293542.spop(e,tp,eg,ep,ev,re,r,rp) function c293542.spop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -15,8 +15,6 @@ function c29905795.tg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -15,8 +15,6 @@ function c29905795.tg(e,tp,eg,ep,ev,re,r,rp,chk)
and Duel.IsExistingMatchingCard(Card.IsSetCard,tp,LOCATION_HAND,0,1,e:GetHandler(),0x35) and Duel.IsExistingMatchingCard(Card.IsSetCard,tp,LOCATION_HAND,0,1,e:GetHandler(),0x35)
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c29905795.op(e,tp,eg,ep,ev,re,r,rp) function c29905795.op(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -23,7 +23,8 @@ function c30492798.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -23,7 +23,8 @@ function c30492798.operation(e,tp,eg,ep,ev,re,r,rp)
--immune --immune
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e1:SetDescription(aux.Stringid(30492798,0))
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_CLIENT_HINT)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_IMMUNE_EFFECT) e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetReset(RESET_EVENT+0x1fe0000) e1:SetReset(RESET_EVENT+0x1fe0000)
......
...@@ -13,8 +13,6 @@ end ...@@ -13,8 +13,6 @@ end
function c30915572.sptarget(e,tp,eg,ep,ev,re,r,rp,chk) function c30915572.sptarget(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>0 if chk==0 then return Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>0
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_DECKDES,nil,0,tp,1) Duel.SetOperationInfo(0,CATEGORY_DECKDES,nil,0,tp,1)
end end
function c30915572.spoperation(e,tp,eg,ep,ev,re,r,rp,c) function c30915572.spoperation(e,tp,eg,ep,ev,re,r,rp,c)
......
...@@ -22,8 +22,6 @@ end ...@@ -22,8 +22,6 @@ end
function c3167573.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c3167573.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 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c3167573.spop(e,tp,eg,ep,ev,re,r,rp) function c3167573.spop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -58,8 +58,6 @@ end ...@@ -58,8 +58,6 @@ end
function c31930787.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c31930787.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,true,true) end and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,true,true) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c31930787.spop(e,tp,eg,ep,ev,re,r,rp) function c31930787.spop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -60,8 +60,6 @@ end ...@@ -60,8 +60,6 @@ end
function c33776734.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c33776734.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFlagEffect(tp,33776734)==0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.GetFlagEffect(tp,33776734)==0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
Duel.RegisterFlagEffect(tp,33776734,RESET_CHAIN,0,0) Duel.RegisterFlagEffect(tp,33776734,RESET_CHAIN,0,0)
end end
......
...@@ -22,6 +22,8 @@ function c34358408.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -22,6 +22,8 @@ function c34358408.operation(e,tp,eg,ep,ev,re,r,rp)
if rc:GetFlagEffect(34358408)==0 then if rc:GetFlagEffect(34358408)==0 then
--draw --draw
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetDescription(aux.Stringid(34358408,0))
e1:SetProperty(EFFECT_FLAG_CLIENT_HINT)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_BATTLE_DESTROYING) e1:SetCode(EVENT_BATTLE_DESTROYING)
e1:SetOperation(c34358408.drawop) e1:SetOperation(c34358408.drawop)
......
...@@ -42,8 +42,6 @@ function c38109772.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -42,8 +42,6 @@ function c38109772.target(e,tp,eg,ep,ev,re,r,rp,chk)
local ct=e:GetLabelObject():FilterCount(Card.IsLocation,nil,LOCATION_MZONE) local ct=e:GetLabelObject():FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
return Duel.GetLocationCount(tp,LOCATION_MZONE)>-ct and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) return Duel.GetLocationCount(tp,LOCATION_MZONE)>-ct and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,eg,1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,eg,1,0,0)
end end
function c38109772.operation(e,tp,eg,ep,ev,re,r,rp) function c38109772.operation(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -21,8 +21,6 @@ end ...@@ -21,8 +21,6 @@ end
function c39439590.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c39439590.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 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c39439590.spop(e,tp,eg,ep,ev,re,r,rp) function c39439590.spop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -22,6 +22,8 @@ function c4141820.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -22,6 +22,8 @@ function c4141820.operation(e,tp,eg,ep,ev,re,r,rp)
if rc:GetFlagEffect(4141820)==0 then if rc:GetFlagEffect(4141820)==0 then
--draw --draw
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetDescription(aux.Stringid(4141820,0))
e1:SetProperty(EFFECT_FLAG_CLIENT_HINT)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_BATTLE_DAMAGE) e1:SetCode(EVENT_BATTLE_DAMAGE)
e1:SetOperation(c4141820.hdop) e1:SetOperation(c4141820.hdop)
......
...@@ -18,8 +18,6 @@ end ...@@ -18,8 +18,6 @@ end
function c44125452.target(e,tp,eg,ep,ev,re,r,rp,chk) function c44125452.target(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 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c44125452.operation(e,tp,eg,ep,ev,re,r,rp) function c44125452.operation(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -44,8 +44,6 @@ end ...@@ -44,8 +44,6 @@ end
function c44330098.sumtg(e,tp,eg,ep,ev,re,r,rp,chk) function c44330098.sumtg(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 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c44330098.sumop(e,tp,eg,ep,ev,re,r,rp) function c44330098.sumop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -63,8 +63,6 @@ end ...@@ -63,8 +63,6 @@ end
function c4545683.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c4545683.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,true,true) end and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,true,true) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c4545683.spop(e,tp,eg,ep,ev,re,r,rp) function c4545683.spop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -45,10 +45,6 @@ function c46668237.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -45,10 +45,6 @@ function c46668237.condition(e,tp,eg,ep,ev,re,r,rp)
end end
function c46668237.cost(e,tp,eg,ep,ev,re,r,rp,chk) function c46668237.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLPCost(tp,1000) end if chk==0 then return Duel.CheckLPCost(tp,1000) end
if e:GetHandler():IsLocation(LOCATION_HAND) then
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
end
Duel.PayLPCost(tp,1000) Duel.PayLPCost(tp,1000)
end end
function c46668237.target(e,tp,eg,ep,ev,re,r,rp,chk) function c46668237.target(e,tp,eg,ep,ev,re,r,rp,chk)
......
...@@ -26,9 +26,6 @@ function c47826112.cfilter(c) ...@@ -26,9 +26,6 @@ function c47826112.cfilter(c)
end end
function c47826112.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function c47826112.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckReleaseGroup(tp,c47826112.cfilter,3,nil) end if chk==0 then return Duel.CheckReleaseGroup(tp,c47826112.cfilter,3,nil) end
if e:GetHandler():IsLocation(LOCATION_HAND) then
Duel.ConfirmCards(1-tp,e:GetHandler())
end
local g=Duel.SelectReleaseGroup(tp,c47826112.cfilter,3,3,nil) local g=Duel.SelectReleaseGroup(tp,c47826112.cfilter,3,3,nil)
Duel.Release(g,REASON_COST) Duel.Release(g,REASON_COST)
end end
......
--オレイカルコスの結界
function c48179391.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCost(c48179391.actcost)
e1:SetTarget(c48179391.acttg)
e1:SetOperation(c48179391.actop)
c:RegisterEffect(e1)
--spsummon limit
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetRange(LOCATION_SZONE)
e2:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(1,0)
e2:SetTarget(c48179391.sumlimit)
c:RegisterEffect(e2)
--
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetRange(LOCATION_SZONE)
e3:SetCode(EFFECT_UPDATE_ATTACK)
e3:SetTargetRange(LOCATION_MZONE,0)
e3:SetValue(500)
c:RegisterEffect(e3)
--
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e4:SetRange(LOCATION_SZONE)
e4:SetCode(EFFECT_INDESTRUCTABLE_COUNT)
e4:SetCountLimit(1)
e4:SetValue(c48179391.valcon)
c:RegisterEffect(e4)
--
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD)
e5:SetRange(LOCATION_SZONE)
e5:SetCode(EFFECT_CANNOT_BE_BATTLE_TARGET)
e5:SetTargetRange(LOCATION_MZONE,0)
e5:SetCondition(c48179391.atkcon)
e5:SetTarget(c48179391.atktg)
e5:SetValue(1)
c:RegisterEffect(e5)
end
function c48179391.actcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFlagEffect(tp,48179391)==0 end
Duel.RegisterFlagEffect(tp,48179391,0,0,0)
end
function c48179391.desfilter(c)
return bit.band(c:GetSummonType(),SUMMON_TYPE_SPECIAL)~=0 and c:IsDestructable()
end
function c48179391.acttg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local g=Duel.GetMatchingGroup(c48179391.desfilter,tp,LOCATION_MZONE,0,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
end
function c48179391.actop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
local g=Duel.GetMatchingGroup(c48179391.desfilter,tp,LOCATION_MZONE,0,nil)
if g:GetCount()>0 then
Duel.Destroy(g,REASON_EFFECT)
end
end
function c48179391.sumlimit(e,c,sump,sumtype,sumpos,targetp)
return c:IsLocation(LOCATION_EXTRA)
end
function c48179391.valcon(e,re,r,rp)
return bit.band(r,REASON_EFFECT)~=0
end
function c48179391.atkcon(e)
return Duel.IsExistingMatchingCard(Card.IsPosition,e:GetHandlerPlayer(),LOCATION_MZONE,0,2,nil,POS_FACEUP_ATTACK)
end
function c48179391.atkfilter(c,atk)
return c:IsFaceup() and c:GetAttack()<atk
end
function c48179391.atktg(e,c)
return not Duel.IsExistingMatchingCard(c48179391.atkfilter,e:GetHandlerPlayer(),LOCATION_MZONE,0,1,c,c:GetAttack())
end
...@@ -25,20 +25,16 @@ function c48934760.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -25,20 +25,16 @@ function c48934760.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(48934760,0)) Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(48934760,0))
local tc=Duel.SelectMatchingCard(tp,c48934760.filter,tp,LOCATION_DECK,0,1,1,nil,tp):GetFirst() local tc=Duel.SelectMatchingCard(tp,c48934760.filter,tp,LOCATION_DECK,0,1,1,nil,tp):GetFirst()
if tc then if tc then
local op=tc:GetActivateEffect():GetOperation()
if Duel.GetFieldCard(tp,LOCATION_SZONE,5)~=nil then if Duel.GetFieldCard(tp,LOCATION_SZONE,5)~=nil then
Duel.Destroy(Duel.GetFieldCard(tp,LOCATION_SZONE,5),REASON_RULE) Duel.Destroy(Duel.GetFieldCard(tp,LOCATION_SZONE,5),REASON_RULE)
Duel.BreakEffect() Duel.BreakEffect()
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
if op then op(e,tp,eg,ep,ev,re,r,rp) end
elseif Duel.GetFieldCard(1-tp,LOCATION_SZONE,5)~=nil elseif Duel.GetFieldCard(1-tp,LOCATION_SZONE,5)~=nil
and Duel.GetFieldCard(1-tp,LOCATION_SZONE,5):IsFaceup() then and Duel.GetFieldCard(1-tp,LOCATION_SZONE,5):IsFaceup() then
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
if op then op(e,tp,eg,ep,ev,re,r,rp) end
Duel.Destroy(Duel.GetFieldCard(1-tp,LOCATION_SZONE,5),REASON_RULE) Duel.Destroy(Duel.GetFieldCard(1-tp,LOCATION_SZONE,5),REASON_RULE)
else else
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
if op then op(e,tp,eg,ep,ev,re,r,rp) end
end end
end end
end end
...@@ -28,10 +28,6 @@ end ...@@ -28,10 +28,6 @@ end
function c49879995.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c49879995.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 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
if e:GetHandler():IsLocation(LOCATION_HAND) then
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c49879995.spop(e,tp,eg,ep,ev,re,r,rp) function c49879995.spop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -20,8 +20,6 @@ end ...@@ -20,8 +20,6 @@ end
function c50702124.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c50702124.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,true,false) end and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,true,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c50702124.spop(e,tp,eg,ep,ev,re,r,rp) function c50702124.spop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -31,8 +31,6 @@ end ...@@ -31,8 +31,6 @@ end
function c53855409.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c53855409.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 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c53855409.spop(e,tp,eg,ep,ev,re,r,rp) function c53855409.spop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -18,8 +18,6 @@ function c54161401.spcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -18,8 +18,6 @@ function c54161401.spcon(e,tp,eg,ep,ev,re,r,rp)
end end
function c54161401.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function c54161401.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDiscardDeckAsCost(tp,1) end if chk==0 then return Duel.IsPlayerCanDiscardDeckAsCost(tp,1) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.DiscardDeck(tp,1,REASON_COST) Duel.DiscardDeck(tp,1,REASON_COST)
end end
function c54161401.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c54161401.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
......
...@@ -25,8 +25,6 @@ function c55277252.tg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -25,8 +25,6 @@ function c55277252.tg(e,tp,eg,ep,ev,re,r,rp,chk)
and Duel.IsExistingMatchingCard(Card.IsSetCard,tp,LOCATION_HAND,0,1,e:GetHandler(),0x35) and Duel.IsExistingMatchingCard(Card.IsSetCard,tp,LOCATION_HAND,0,1,e:GetHandler(),0x35)
and e:GetHandler():IsCanBeSpecialSummoned(e,1,tp,false,false) and e:GetHandler():IsCanBeSpecialSummoned(e,1,tp,false,false)
end end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c55277252.op(e,tp,eg,ep,ev,re,r,rp) function c55277252.op(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -49,8 +49,6 @@ end ...@@ -49,8 +49,6 @@ end
function c60417395.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function c60417395.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c60417395.cfilter1,tp,LOCATION_MZONE,0,1,nil) if chk==0 then return Duel.IsExistingMatchingCard(c60417395.cfilter1,tp,LOCATION_MZONE,0,1,nil)
and Duel.IsExistingMatchingCard(c60417395.cfilter2,tp,LOCATION_HAND,0,1,e:GetHandler()) end and Duel.IsExistingMatchingCard(c60417395.cfilter2,tp,LOCATION_HAND,0,1,e:GetHandler()) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g1=Duel.SelectMatchingCard(tp,c60417395.cfilter1,tp,LOCATION_MZONE,0,1,1,nil) local g1=Duel.SelectMatchingCard(tp,c60417395.cfilter1,tp,LOCATION_MZONE,0,1,1,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
......
...@@ -16,7 +16,6 @@ function c64034255.cfilter(c) ...@@ -16,7 +16,6 @@ function c64034255.cfilter(c)
end end
function c64034255.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function c64034255.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c64034255.cfilter,tp,LOCATION_MZONE,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c64034255.cfilter,tp,LOCATION_MZONE,0,1,nil) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g=Duel.SelectMatchingCard(tp,c64034255.cfilter,tp,LOCATION_MZONE,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,c64034255.cfilter,tp,LOCATION_MZONE,0,1,1,nil)
if g:GetFirst():IsAttribute(ATTRIBUTE_WIND) then e:SetLabel(1) else e:SetLabel(0) end if g:GetFirst():IsAttribute(ATTRIBUTE_WIND) then e:SetLabel(1) else e:SetLabel(0) end
......
...@@ -58,8 +58,6 @@ end ...@@ -58,8 +58,6 @@ end
function c65282484.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c65282484.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>-1 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>-1
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c65282484.spop(e,tp,eg,ep,ev,re,r,rp) function c65282484.spop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -47,8 +47,6 @@ function c65303664.rfiletr(c) ...@@ -47,8 +47,6 @@ function c65303664.rfiletr(c)
end end
function c65303664.cost(e,tp,eg,ep,ev,re,r,rp,chk) function c65303664.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c65303664.rfiletr,tp,LOCATION_GRAVE,0,2,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c65303664.rfiletr,tp,LOCATION_GRAVE,0,2,nil) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,c65303664.rfiletr,tp,LOCATION_GRAVE,0,2,2,nil) local g=Duel.SelectMatchingCard(tp,c65303664.rfiletr,tp,LOCATION_GRAVE,0,2,2,nil)
Duel.Remove(g,POS_FACEUP,REASON_COST) Duel.Remove(g,POS_FACEUP,REASON_COST)
......
...@@ -62,8 +62,6 @@ end ...@@ -62,8 +62,6 @@ end
function c68140974.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c68140974.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,true,true) end and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,true,true) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c68140974.spop(e,tp,eg,ep,ev,re,r,rp) function c68140974.spop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -46,8 +46,6 @@ end ...@@ -46,8 +46,6 @@ end
function c7634581.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c7634581.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,true,false) end and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,true,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c7634581.spop(e,tp,eg,ep,ev,re,r,rp) function c7634581.spop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -22,6 +22,8 @@ function c77153811.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -22,6 +22,8 @@ function c77153811.operation(e,tp,eg,ep,ev,re,r,rp)
if rc:GetFlagEffect(77153811)==0 then if rc:GetFlagEffect(77153811)==0 then
--cannot special summon --cannot special summon
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetDescription(aux.Stringid(77153811,0))
e1:SetProperty(EFFECT_FLAG_CLIENT_HINT)
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_SZONE) e1:SetRange(LOCATION_SZONE)
e1:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE) e1:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
......
...@@ -30,7 +30,6 @@ function c86585274.spcost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -30,7 +30,6 @@ function c86585274.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c86585274.cffilter,tp,LOCATION_HAND,0,3,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c86585274.cffilter,tp,LOCATION_HAND,0,3,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local g=Duel.SelectMatchingCard(tp,c86585274.cffilter,tp,LOCATION_HAND,0,3,3,nil) local g=Duel.SelectMatchingCard(tp,c86585274.cffilter,tp,LOCATION_HAND,0,3,3,nil)
g:AddCard(e:GetHandler())
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
Duel.ShuffleHand(tp) Duel.ShuffleHand(tp)
end end
......
...@@ -18,8 +18,6 @@ end ...@@ -18,8 +18,6 @@ end
function c87774234.target(e,tp,eg,ep,ev,re,r,rp,chk) function c87774234.target(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 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c87774234.operation(e,tp,eg,ep,ev,re,r,rp) function c87774234.operation(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -22,11 +22,12 @@ function c8903700.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -22,11 +22,12 @@ function c8903700.operation(e,tp,eg,ep,ev,re,r,rp)
if rc:GetFlagEffect(8903700)==0 then if rc:GetFlagEffect(8903700)==0 then
--cannot special summon --cannot special summon
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetDescription(aux.Stringid(8903700,0))
e1:SetProperty(EFFECT_FLAG_CLIENT_HINT+EFFECT_FLAG_PLAYER_TARGET)
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON) e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetReset(RESET_EVENT+0x1fe0000) e1:SetReset(RESET_EVENT+0x1fe0000)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetAbsoluteRange(rp,0,1) e1:SetAbsoluteRange(rp,0,1)
rc:RegisterEffect(e1) rc:RegisterEffect(e1)
rc:RegisterFlagEffect(8903700,RESET_EVENT+0x1fe0000,0,1) rc:RegisterFlagEffect(8903700,RESET_EVENT+0x1fe0000,0,1)
......
...@@ -21,8 +21,6 @@ end ...@@ -21,8 +21,6 @@ end
function c98437424.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c98437424.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 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c98437424.spop(e,tp,eg,ep,ev,re,r,rp) function c98437424.spop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -59,8 +59,6 @@ end ...@@ -59,8 +59,6 @@ end
function c98777036.sumtg(e,tp,eg,ep,ev,re,r,rp,chk) function c98777036.sumtg(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 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.ShuffleHand(tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c98777036.sumop(e,tp,eg,ep,ev,re,r,rp) function c98777036.sumop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -33,7 +33,6 @@ function c99177923.sptg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -33,7 +33,6 @@ function c99177923.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.ConfirmCards(1-tp,e:GetHandler())
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end end
function c99177923.spop(e,tp,eg,ep,ev,re,r,rp) function c99177923.spop(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -157,7 +157,7 @@ function Auxiliary.AddSynchroProcedure2(c,f1,f2) ...@@ -157,7 +157,7 @@ function Auxiliary.AddSynchroProcedure2(c,f1,f2)
e1:SetValue(SUMMON_TYPE_SYNCHRO) e1:SetValue(SUMMON_TYPE_SYNCHRO)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function Auxiliary.AddXyzProcedure(c,f,ct,alterf,desc) function Auxiliary.AddXyzProcedure(c,f,ct,alterf,desc,maxct)
if c.xyz_filter==nil then if c.xyz_filter==nil then
local code=c:GetOriginalCode() local code=c:GetOriginalCode()
local mt=_G["c" .. code] local mt=_G["c" .. code]
...@@ -169,17 +169,18 @@ function Auxiliary.AddXyzProcedure(c,f,ct,alterf,desc) ...@@ -169,17 +169,18 @@ function Auxiliary.AddXyzProcedure(c,f,ct,alterf,desc)
e1:SetCode(EFFECT_SPSUMMON_PROC) e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE) e1:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e1:SetRange(LOCATION_EXTRA) e1:SetRange(LOCATION_EXTRA)
if not maxct then maxct=ct end
if alterf then if alterf then
e1:SetCondition(Auxiliary.XyzCondition2(f,ct,alterf,desc)) e1:SetCondition(Auxiliary.XyzCondition2(f,ct,maxct,alterf,desc))
e1:SetOperation(Auxiliary.XyzOperation2(f,ct,alterf,desc)) e1:SetOperation(Auxiliary.XyzOperation2(f,ct,maxct,alterf,desc))
else else
e1:SetCondition(Auxiliary.XyzCondition(f,ct)) e1:SetCondition(Auxiliary.XyzCondition(f,ct,maxct))
e1:SetOperation(Auxiliary.XyzOperation(f,ct)) e1:SetOperation(Auxiliary.XyzOperation(f,ct,maxct))
end end
e1:SetValue(SUMMON_TYPE_XYZ) e1:SetValue(SUMMON_TYPE_XYZ)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function Auxiliary.XyzCondition(f,minc) function Auxiliary.XyzCondition(f,minc,maxc)
--og: use special material --og: use special material
return function(e,c,og) return function(e,c,og)
if c==nil then return true end if c==nil then return true end
...@@ -194,7 +195,7 @@ function Auxiliary.XyzCondition(f,minc) ...@@ -194,7 +195,7 @@ function Auxiliary.XyzCondition(f,minc)
end end
end end
end end
function Auxiliary.XyzOperation(f,minc) function Auxiliary.XyzOperation(f,minc,maxc)
return function(e,tp,eg,ep,ev,re,r,rp,c,og) return function(e,tp,eg,ep,ev,re,r,rp,c,og)
if og then if og then
c:SetMaterial(og) c:SetMaterial(og)
...@@ -202,13 +203,13 @@ function Auxiliary.XyzOperation(f,minc) ...@@ -202,13 +203,13 @@ function Auxiliary.XyzOperation(f,minc)
else else
local g=Duel.GetXyzMaterial(c) local g=Duel.GetXyzMaterial(c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
local mg=g:FilterSelect(tp,f,minc,minc,nil) local mg=g:FilterSelect(tp,f,minc,maxc,nil)
c:SetMaterial(mg) c:SetMaterial(mg)
Duel.Overlay(c,mg) Duel.Overlay(c,mg)
end end
end end
end end
function Auxiliary.XyzCondition2(f,minc,alterf,desc) function Auxiliary.XyzCondition2(f,minc,maxc,alterf,desc)
return function(e,c,og) return function(e,c,og)
if c==nil then return true end if c==nil then return true end
local ft=Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE) local ft=Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE)
...@@ -223,7 +224,7 @@ function Auxiliary.XyzCondition2(f,minc,alterf,desc) ...@@ -223,7 +224,7 @@ function Auxiliary.XyzCondition2(f,minc,alterf,desc)
end end
end end
end end
function Auxiliary.XyzOperation2(f,minc,alterf,desc) function Auxiliary.XyzOperation2(f,minc,maxc,alterf,desc)
return function(e,tp,eg,ep,ev,re,r,rp,c,og) return function(e,tp,eg,ep,ev,re,r,rp,c,og)
if og then if og then
c:SetMaterial(og) c:SetMaterial(og)
...@@ -244,7 +245,7 @@ function Auxiliary.XyzOperation2(f,minc,alterf,desc) ...@@ -244,7 +245,7 @@ function Auxiliary.XyzOperation2(f,minc,alterf,desc)
Duel.Overlay(c,mg) Duel.Overlay(c,mg)
c:SetMaterial(mg) c:SetMaterial(mg)
else else
local mg=g:FilterSelect(tp,f,minc,minc,nil) local mg=g:FilterSelect(tp,f,minc,maxc,nil)
c:SetMaterial(mg) c:SetMaterial(mg)
Duel.Overlay(c,mg) Duel.Overlay(c,mg)
end end
......
...@@ -5,7 +5,7 @@ antialias = 2 ...@@ -5,7 +5,7 @@ antialias = 2
errorlog = 1 errorlog = 1
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