Commit 3029cff6 authored by mercury233's avatar mercury233
parents f3fb923b f87e6689
...@@ -1231,6 +1231,8 @@ void field::remove_oath_effect(effect* reason_effect) { ...@@ -1231,6 +1231,8 @@ void field::remove_oath_effect(effect* reason_effect) {
void field::reset_phase(uint32 phase) { void field::reset_phase(uint32 phase) {
for(auto eit = effects.pheff.begin(); eit != effects.pheff.end();) { for(auto eit = effects.pheff.begin(); eit != effects.pheff.end();) {
auto rm = eit++; auto rm = eit++;
if((*rm)->code == EFFECT_SET_CONTROL)
continue;
if((*rm)->reset(phase, RESET_PHASE)) { if((*rm)->reset(phase, RESET_PHASE)) {
if((*rm)->is_flag(EFFECT_FLAG_FIELD_ONLY)) if((*rm)->is_flag(EFFECT_FLAG_FIELD_ONLY))
remove_effect((*rm)); remove_effect((*rm));
......
...@@ -1683,6 +1683,8 @@ int32 field::process_point_event(int16 step, int32 skip_trigger, int32 skip_free ...@@ -1683,6 +1683,8 @@ int32 field::process_point_event(int16 step, int32 skip_trigger, int32 skip_free
for (auto clit = core.new_fchain_s.begin(); clit != core.new_fchain_s.end(); ) { for (auto clit = core.new_fchain_s.begin(); clit != core.new_fchain_s.end(); ) {
effect* peffect = clit->triggering_effect; effect* peffect = clit->triggering_effect;
card* phandler = peffect->get_handler(); card* phandler = peffect->get_handler();
if(phandler->is_has_relation(*clit))
clit->set_triggering_place(phandler);
uint8 tp = clit->triggering_player; uint8 tp = clit->triggering_player;
bool act = true; bool act = true;
if(!peffect->is_flag(EFFECT_FLAG_FIELD_ONLY) if(!peffect->is_flag(EFFECT_FLAG_FIELD_ONLY)
...@@ -1746,6 +1748,8 @@ int32 field::process_point_event(int16 step, int32 skip_trigger, int32 skip_free ...@@ -1746,6 +1748,8 @@ int32 field::process_point_event(int16 step, int32 skip_trigger, int32 skip_free
for (auto clit = core.new_ochain_s.begin(); clit != core.new_ochain_s.end(); ) { for (auto clit = core.new_ochain_s.begin(); clit != core.new_ochain_s.end(); ) {
effect* peffect = clit->triggering_effect; effect* peffect = clit->triggering_effect;
card* phandler = peffect->get_handler(); card* phandler = peffect->get_handler();
if(phandler->is_has_relation(*clit))
clit->set_triggering_place(phandler);
if(!peffect->is_flag(EFFECT_FLAG_FIELD_ONLY) && (peffect->type & EFFECT_TYPE_FIELD) if(!peffect->is_flag(EFFECT_FLAG_FIELD_ONLY) && (peffect->type & EFFECT_TYPE_FIELD)
&& (peffect->range & LOCATION_HAND) && phandler->current.location == LOCATION_HAND) { && (peffect->range & LOCATION_HAND) && phandler->current.location == LOCATION_HAND) {
if(!phandler->is_has_relation(*clit)) if(!phandler->is_has_relation(*clit))
...@@ -4009,8 +4013,6 @@ int32 field::process_turn(uint16 step, uint8 turn_player) { ...@@ -4009,8 +4013,6 @@ int32 field::process_turn(uint16 step, uint8 turn_player) {
tag_swap(turn_player); tag_swap(turn_player);
if(is_player_affected_by_effect(infos.turn_player, EFFECT_SKIP_TURN)) { if(is_player_affected_by_effect(infos.turn_player, EFFECT_SKIP_TURN)) {
core.units.begin()->step = 17; core.units.begin()->step = 17;
reset_phase(PHASE_DRAW);
reset_phase(PHASE_STANDBY);
reset_phase(PHASE_END); reset_phase(PHASE_END);
adjust_all(); adjust_all();
return FALSE; return FALSE;
......
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