Commit c3efb49a authored by mercury233's avatar mercury233 Committed by GitHub

fix triggering player on control transfer (#535)

parent 2c30d33f
...@@ -1312,6 +1312,10 @@ int32 field::process_point_event(int16 step, int32 skip_trigger, int32 skip_free ...@@ -1312,6 +1312,10 @@ int32 field::process_point_event(int16 step, int32 skip_trigger, int32 skip_free
card* phandler = peffect->get_handler(); card* phandler = peffect->get_handler();
if(phandler->is_has_relation(*clit)) //work around: position and control should be refreshed before raising event if(phandler->is_has_relation(*clit)) //work around: position and control should be refreshed before raising event
clit->set_triggering_state(phandler); clit->set_triggering_state(phandler);
if(clit->triggering_player != phandler->current.controler && !peffect->is_flag(EFFECT_FLAG_EVENT_PLAYER)) {
clit->triggering_player = phandler->current.controler;
clit->set_triggering_state(phandler);
}
uint8 tp = clit->triggering_player; uint8 tp = clit->triggering_player;
if(check_trigger_effect(*clit) && peffect->is_chainable(tp) && peffect->is_activateable(tp, clit->evt, TRUE)) { if(check_trigger_effect(*clit) && peffect->is_chainable(tp) && peffect->is_activateable(tp, clit->evt, TRUE)) {
if(tp == core.current_player) if(tp == core.current_player)
...@@ -1369,6 +1373,10 @@ int32 field::process_point_event(int16 step, int32 skip_trigger, int32 skip_free ...@@ -1369,6 +1373,10 @@ int32 field::process_point_event(int16 step, int32 skip_trigger, int32 skip_free
clit->triggering_player = phandler->current.controler; clit->triggering_player = phandler->current.controler;
clit->set_triggering_state(phandler); clit->set_triggering_state(phandler);
} }
if(clit->triggering_player != phandler->current.controler && !peffect->is_flag(EFFECT_FLAG_EVENT_PLAYER)) {
clit->triggering_player = phandler->current.controler;
clit->set_triggering_state(phandler);
}
uint8 tp = clit->triggering_player; uint8 tp = clit->triggering_player;
if(check_nonpublic_trigger(*clit) && check_trigger_effect(*clit) if(check_nonpublic_trigger(*clit) && check_trigger_effect(*clit)
&& peffect->is_chainable(tp) && peffect->is_activateable(tp, clit->evt, TRUE) && peffect->is_chainable(tp) && peffect->is_activateable(tp, clit->evt, 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