Commit 4c56d879 authored by argon.sun's avatar argon.sun

fix

parent 84996eee
...@@ -2721,6 +2721,7 @@ int32 field::send_to(uint16 step, group * targets, effect * reason_effect, uint3 ...@@ -2721,6 +2721,7 @@ int32 field::send_to(uint16 step, group * targets, effect * reason_effect, uint3
pcard->fieldid = infos.field_id++; pcard->fieldid = infos.field_id++;
pcard->reset(RESET_LEAVE, RESET_EVENT); pcard->reset(RESET_LEAVE, RESET_EVENT);
remove_card(pcard); remove_card(pcard);
leave.insert(pcard);
continue; continue;
} }
if(dest == LOCATION_GRAVE) { if(dest == LOCATION_GRAVE) {
...@@ -2829,22 +2830,23 @@ int32 field::send_to(uint16 step, group * targets, effect * reason_effect, uint3 ...@@ -2829,22 +2830,23 @@ int32 field::send_to(uint16 step, group * targets, effect * reason_effect, uint3
equipings.insert(equipc); equipings.insert(equipc);
} }
} }
if(pcard->data.type & TYPE_TOKEN) if(!(pcard->data.type & TYPE_TOKEN)) {
continue; pcard->enable_field_effect(TRUE);
pcard->enable_field_effect(TRUE); if(nloc == LOCATION_HAND) {
if(nloc == LOCATION_HAND) { tohand.insert(pcard);
tohand.insert(pcard); pcard->reset(RESET_TOHAND, RESET_EVENT);
pcard->reset(RESET_TOHAND, RESET_EVENT); raise_single_event(*cit, 0, EVENT_TO_HAND, pcard->current.reason_effect, pcard->current.reason, pcard->current.reason_player, 0, 0);
raise_single_event(*cit, 0, EVENT_TO_HAND, pcard->current.reason_effect, pcard->current.reason, pcard->current.reason_player, 0, 0); } else if(nloc == LOCATION_DECK || nloc == LOCATION_EXTRA) {
} else if(nloc == LOCATION_DECK || nloc == LOCATION_EXTRA) { todeck.insert(pcard);
todeck.insert(pcard); pcard->reset(RESET_TODECK, RESET_EVENT);
pcard->reset(RESET_TODECK, RESET_EVENT); raise_single_event(*cit, 0, EVENT_TO_DECK, pcard->current.reason_effect, pcard->current.reason, pcard->current.reason_player, 0, 0);
raise_single_event(*cit, 0, EVENT_TO_DECK, pcard->current.reason_effect, pcard->current.reason, pcard->current.reason_player, 0, 0); } else if(nloc == LOCATION_GRAVE) {
} else if(nloc == LOCATION_GRAVE) { tograve.insert(pcard);
tograve.insert(pcard); pcard->reset(RESET_TOGRAVE, RESET_EVENT);
pcard->reset(RESET_TOGRAVE, RESET_EVENT); raise_single_event(*cit, 0, EVENT_TO_GRAVE, pcard->current.reason_effect, pcard->current.reason, pcard->current.reason_player, 0, 0);
raise_single_event(*cit, 0, EVENT_TO_GRAVE, pcard->current.reason_effect, pcard->current.reason, pcard->current.reason_player, 0, 0); }
} else if(nloc == LOCATION_REMOVED) { }
if(nloc == LOCATION_REMOVED || ((pcard->data.type & TYPE_TOKEN) && ((pcard->operation_param >> 8) & 0xff) == LOCATION_REMOVED)) {
remove.insert(pcard); remove.insert(pcard);
if(pcard->current.reason & REASON_TEMPORARY) if(pcard->current.reason & REASON_TEMPORARY)
pcard->reset(RESET_TEMP_REMOVE, RESET_EVENT); pcard->reset(RESET_TEMP_REMOVE, RESET_EVENT);
......
...@@ -11,7 +11,7 @@ function c1475311.initial_effect(c) ...@@ -11,7 +11,7 @@ function c1475311.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c1475311.target(e,tp,eg,ep,ev,re,r,rp,chk) function c1475311.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,2) end if chk==0 then return not Duel.IsPlayerAffectedByEffect(tp,30459350) and Duel.IsPlayerCanDraw(tp,2) end
Duel.SetTargetPlayer(tp) Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(2) Duel.SetTargetParam(2)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2) Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2)
......
...@@ -13,4 +13,12 @@ function c30459350.initial_effect(c) ...@@ -13,4 +13,12 @@ function c30459350.initial_effect(c)
e2:SetRange(LOCATION_SZONE) e2:SetRange(LOCATION_SZONE)
e2:SetProperty(EFFECT_FLAG_IGNORE_RANGE+EFFECT_FLAG_SET_AVAILABLE) e2:SetProperty(EFFECT_FLAG_IGNORE_RANGE+EFFECT_FLAG_SET_AVAILABLE)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(30459350)
e3:SetRange(LOCATION_SZONE)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetTargetRange(1,1)
c:RegisterEffect(e3)
end end
...@@ -11,7 +11,7 @@ function c40465719.initial_effect(c) ...@@ -11,7 +11,7 @@ function c40465719.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c40465719.target(e,tp,eg,ep,ev,re,r,rp,chk) function c40465719.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,2) end if chk==0 then return not Duel.IsPlayerAffectedByEffect(tp,30459350) and Duel.IsPlayerCanDraw(tp,2) end
Duel.SetTargetPlayer(tp) Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(2) Duel.SetTargetParam(2)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2) Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2)
......
...@@ -18,12 +18,8 @@ function c72710085.initial_effect(c) ...@@ -18,12 +18,8 @@ function c72710085.initial_effect(c)
e2:SetOperation(c72710085.tgop) e2:SetOperation(c72710085.tgop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c72710085.cfilter(c)
return not c:IsType(TYPE_TOKEN)
end
function c72710085.tgcon(e,tp,eg,ep,ev,re,r,rp) function c72710085.tgcon(e,tp,eg,ep,ev,re,r,rp)
local g=eg:Filter(c72710085.cfilter,nil) return eg:GetCount()==1 and eg:GetFirst():IsPreviousLocation(LOCATION_GRAVE) and eg:GetFirst():IsControler(tp)
return g:GetCount()==1 and g:GetFirst():IsPreviousLocation(LOCATION_GRAVE) and g:GetFirst():IsControler(tp)
end end
function c72710085.tgcost(e,tp,eg,ep,ev,re,r,rp,chk) function c72710085.tgcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFlagEffect(tp,72710085)==0 end if chk==0 then return Duel.GetFlagEffect(tp,72710085)==0 end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment