Commit 2387783f authored by VanillaSalt's avatar VanillaSalt

fix

parent c7b7b3ae
......@@ -2538,15 +2538,13 @@ int32 field::process_idle_command(uint16 step) {
switch(step) {
case 0: {
card* pcard;
effect_container::iterator eit;
pair<effect_container::iterator, effect_container::iterator> pr;
effect* peffect;
core.select_chains.clear();
chain newchain;
nil_event.event_code = EVENT_FREE_CHAIN;
core.to_bp = TRUE;
core.to_ep = TRUE;
if((!(core.duel_options & DUEL_ATTACK_FIRST_TURN) && infos.turn_id == 1) || infos.phase == PHASE_MAIN2 || is_player_affected_by_effect(infos.turn_player, EFFECT_CANNOT_BP))
if((!(core.duel_options & DUEL_ATTACK_FIRST_TURN) && infos.turn_id == 1) || infos.phase == PHASE_MAIN2 || is_player_affected_by_effect(infos.turn_player, EFFECT_CANNOT_BP))
core.to_bp = FALSE;
if(core.to_bp && infos.phase == PHASE_MAIN1 && is_player_affected_by_effect(infos.turn_player, EFFECT_CANNOT_EP))
core.to_ep = FALSE;
......@@ -2576,7 +2574,7 @@ int32 field::process_idle_command(uint16 step) {
returns.ivalue[0] = 7;
return FALSE;
}
pr = effects.activate_effect.equal_range(EVENT_FREE_CHAIN);
auto pr = effects.activate_effect.equal_range(EVENT_FREE_CHAIN);
for(; pr.first != pr.second; ++pr.first) {
peffect = pr.first->second;
peffect->s_range = peffect->handler->current.location;
......@@ -2594,7 +2592,7 @@ int32 field::process_idle_command(uint16 step) {
if(peffect->is_activateable(infos.turn_player, nil_event))
core.select_chains.push_back(newchain);
}
for(eit = effects.ignition_effect.begin(); eit != effects.ignition_effect.end(); ++eit) {
for(auto eit = effects.ignition_effect.begin(); eit != effects.ignition_effect.end(); ++eit) {
peffect = eit->second;
peffect->s_range = peffect->handler->current.location;
peffect->o_range = peffect->handler->current.sequence;
......@@ -2644,7 +2642,8 @@ int32 field::process_idle_command(uint16 step) {
core.repositionable_cards.clear();
for(int i = 0; i < 5; ++i) {
pcard = player[infos.turn_player].list_mzone[i];
if(pcard && ((pcard->is_position(POS_FACEUP) && pcard->is_capable_change_position(infos.turn_player)) || (pcard->is_position(POS_FACEDOWN) && pcard->is_can_be_flip_summoned(infos.turn_player))) )
if(pcard && ((pcard->is_position(POS_FACEUP+POS_FACEDOWN_ATTACK) && pcard->is_capable_change_position(infos.turn_player))
|| (pcard->is_position(POS_FACEDOWN) && pcard->is_can_be_flip_summoned(infos.turn_player))))
core.repositionable_cards.push_back(player[infos.turn_player].list_mzone[i]);
}
core.msetable_cards.clear();
......@@ -2759,6 +2758,16 @@ int32 field::process_idle_command(uint16 step) {
change_position(target, 0, infos.turn_player, POS_FACEUP_ATTACK, FALSE);
adjust_all();
add_process(PROCESSOR_POINT_EVENT, 0, 0, 0, FALSE, 0);
} else if(target->is_position(POS_FACEDOWN_ATTACK)) {
core.units.begin()->ptarget = (group*)target;
int32 positions = 0;
if(target->is_capable_change_position(infos.turn_player))
positions |= POS_FACEDOWN_DEFENCE;
if(target->is_can_be_flip_summoned(infos.turn_player))
positions |= POS_FACEUP_ATTACK;
add_process(PROCESSOR_SELECT_POSITION, 0, 0, 0, infos.turn_player + (positions << 16), target->data.code);
core.units.begin()->step = 12;
return FALSE;
} else add_process(PROCESSOR_FLIP_SUMMON, 0, 0, (group*)target, target->current.controler, 0);
target->set_status(STATUS_FORM_CHANGED, TRUE);
core.units.begin()->step = -1;
......@@ -2808,6 +2817,20 @@ int32 field::process_idle_command(uint16 step) {
core.units.begin()->step = 10;
return FALSE;
}
case 13: {
card* target = (card*)core.units.begin()->ptarget;
if(returns.ivalue[0] == POS_FACEUP_ATTACK)
add_process(PROCESSOR_FLIP_SUMMON, 0, 0, (group*)target, target->current.controler, 0);
else {
core.phase_action = TRUE;
change_position(target, 0, infos.turn_player, POS_FACEDOWN_DEFENCE, FALSE);
adjust_all();
add_process(PROCESSOR_POINT_EVENT, 0, 0, 0, FALSE, 0);
}
target->set_status(STATUS_FORM_CHANGED, TRUE);
core.units.begin()->step = -1;
return FALSE;
}
}
return TRUE;
}
......
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