Commit 9cfdf43c authored by VanillaSalt's avatar VanillaSalt

fix

parent 2125d814
...@@ -146,17 +146,6 @@ void field::add_card(uint8 playerid, card* pcard, uint8 location, uint8 sequence ...@@ -146,17 +146,6 @@ void field::add_card(uint8 playerid, card* pcard, uint8 location, uint8 sequence
return; return;
if (!is_location_useable(playerid, location, sequence)) if (!is_location_useable(playerid, location, sequence))
return; return;
if ((pcard->data.type & (TYPE_FUSION | TYPE_SYNCHRO | TYPE_XYZ)) && (location == LOCATION_HAND || location == LOCATION_DECK)) {
location = LOCATION_EXTRA;
pcard->operation_param = (pcard->operation_param & 0x00ffffff) | (POS_FACEDOWN_DEFENCE << 24);
}
if ((pcard->data.type & TYPE_PENDULUM) && (location == LOCATION_GRAVE)
&& !pcard->is_affected_by_effect(EFFECT_CANNOT_TO_DECK) && is_player_can_send_to_deck(playerid, pcard)
&& (((pcard->previous.location == LOCATION_MZONE) && !pcard->is_status(STATUS_SUMMON_DISABLED))
|| ((pcard->previous.location == LOCATION_SZONE) && !pcard->is_status(STATUS_ACTIVATE_DISABLED)))) {
location = LOCATION_EXTRA;
pcard->operation_param = (pcard->operation_param & 0x00ffffff) | (POS_FACEUP_DEFENCE << 24);
}
pcard->current.controler = playerid; pcard->current.controler = playerid;
pcard->current.location = location; pcard->current.location = location;
switch (location) { switch (location) {
...@@ -364,8 +353,20 @@ void field::move_card(uint8 playerid, card* pcard, uint8 location, uint8 sequenc ...@@ -364,8 +353,20 @@ void field::move_card(uint8 playerid, card* pcard, uint8 location, uint8 sequenc
} }
return; return;
} }
} else } else {
if((pcard->data.type & (TYPE_FUSION | TYPE_SYNCHRO | TYPE_XYZ)) && (location & (LOCATION_HAND | LOCATION_DECK))) {
location = LOCATION_EXTRA;
pcard->operation_param = (pcard->operation_param & 0x00ffffff) | (POS_FACEDOWN_DEFENCE << 24);
}
if((pcard->data.type & TYPE_PENDULUM) && (location == LOCATION_GRAVE)
&& !pcard->is_affected_by_effect(EFFECT_CANNOT_TO_DECK) && is_player_can_send_to_deck(playerid, pcard)
&& (((pcard->current.location == LOCATION_MZONE) && !pcard->is_status(STATUS_SUMMON_DISABLED))
|| ((pcard->current.location == LOCATION_SZONE) && !pcard->is_status(STATUS_ACTIVATE_DISABLED)))) {
location = LOCATION_EXTRA;
pcard->operation_param = (pcard->operation_param & 0x00ffffff) | (POS_FACEUP_DEFENCE << 24);
}
remove_card(pcard); remove_card(pcard);
}
} }
add_card(playerid, pcard, location, sequence); add_card(playerid, pcard, location, sequence);
} }
......
...@@ -2737,7 +2737,7 @@ int32 field::destroy(uint16 step, group * targets, effect * reason_effect, uint3 ...@@ -2737,7 +2737,7 @@ int32 field::destroy(uint16 step, group * targets, effect * reason_effect, uint3
auto pr = effects.continuous_effect.equal_range(EFFECT_SEND_REPLACE); auto pr = effects.continuous_effect.equal_range(EFFECT_SEND_REPLACE);
for (; pr.first != pr.second; ++pr.first) for (; pr.first != pr.second; ++pr.first)
add_process(PROCESSOR_OPERATION_REPLACE, 5, pr.first->second, sendtargets, 0, 0); add_process(PROCESSOR_OPERATION_REPLACE, 5, pr.first->second, sendtargets, 0, 0);
add_process(PROCESSOR_SENDTO, 1, reason_effect, sendtargets, reason + REASON_DESTROY, reason_player); add_process(PROCESSOR_SENDTO, 1, reason_effect, sendtargets, reason | REASON_DESTROY, reason_player);
return FALSE; return FALSE;
} }
case 5: { case 5: {
...@@ -2919,7 +2919,7 @@ int32 field::release(uint16 step, group * targets, effect * reason_effect, uint3 ...@@ -2919,7 +2919,7 @@ int32 field::release(uint16 step, group * targets, effect * reason_effect, uint3
auto pr = effects.continuous_effect.equal_range(EFFECT_SEND_REPLACE); auto pr = effects.continuous_effect.equal_range(EFFECT_SEND_REPLACE);
for (; pr.first != pr.second; ++pr.first) for (; pr.first != pr.second; ++pr.first)
add_process(PROCESSOR_OPERATION_REPLACE, 5, pr.first->second, sendtargets, 0, 0); add_process(PROCESSOR_OPERATION_REPLACE, 5, pr.first->second, sendtargets, 0, 0);
add_process(PROCESSOR_SENDTO, 1, reason_effect, sendtargets, reason + REASON_RELEASE, reason_player); add_process(PROCESSOR_SENDTO, 1, reason_effect, sendtargets, reason | REASON_RELEASE, reason_player);
return FALSE; return FALSE;
} }
case 4: { case 4: {
......
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