Commit 5b4a078f authored by VanillaSalt's avatar VanillaSalt

fix

parent 2755b41d
...@@ -4365,7 +4365,6 @@ int32 field::add_chain(uint16 step) { ...@@ -4365,7 +4365,6 @@ int32 field::add_chain(uint16 step) {
phandler->set_status(STATUS_ACT_FROM_HAND, FALSE); phandler->set_status(STATUS_ACT_FROM_HAND, FALSE);
change_position(phandler, 0, phandler->current.controler, POS_FACEUP, 0); change_position(phandler, 0, phandler->current.controler, POS_FACEUP, 0);
} }
clit.flag |= CHAIN_ACTIVATING;
} }
if(phandler->current.location & (LOCATION_GRAVE | LOCATION_REMOVED)) if(phandler->current.location & (LOCATION_GRAVE | LOCATION_REMOVED))
move_card(phandler->current.controler, phandler, phandler->current.location, 0); move_card(phandler->current.controler, phandler, phandler->current.location, 0);
...@@ -4469,6 +4468,10 @@ int32 field::add_chain(uint16 step) { ...@@ -4469,6 +4468,10 @@ int32 field::add_chain(uint16 step) {
clit.evt = ch.evt; clit.evt = ch.evt;
phandler->create_relation(clit); phandler->create_relation(clit);
peffect->dec_count(playerid); peffect->dec_count(playerid);
if(!(peffect->type & EFFECT_TYPE_ACTIVATE)) {
peffect->type |= EFFECT_TYPE_ACTIVATE;
clit.flag |= CHAIN_ACTIVATING;
}
core.select_chains.clear(); core.select_chains.clear();
core.select_options.clear(); core.select_options.clear();
effect* deffect = pduel->new_effect(); effect* deffect = pduel->new_effect();
...@@ -4731,6 +4734,9 @@ int32 field::solve_chain(uint16 step, uint32 chainend_arg1, uint32 chainend_arg2 ...@@ -4731,6 +4734,9 @@ int32 field::solve_chain(uint16 step, uint32 chainend_arg1, uint32 chainend_arg2
} }
case 1: { case 1: {
effect* peffect = cait->triggering_effect; effect* peffect = cait->triggering_effect;
int32 activate = (peffect->type & EFFECT_TYPE_ACTIVATE);
if(activate && (cait->flag & CHAIN_ACTIVATING))
peffect->type &= ~EFFECT_TYPE_ACTIVATE;
if(cait->flag & CHAIN_DISABLE_ACTIVATE && is_chain_negatable(cait->chain_count)) { if(cait->flag & CHAIN_DISABLE_ACTIVATE && is_chain_negatable(cait->chain_count)) {
remove_oath_effect(peffect); remove_oath_effect(peffect);
if(peffect->is_flag(EFFECT_FLAG_COUNT_LIMIT) && (peffect->count_code & EFFECT_COUNT_CODE_OATH)) { if(peffect->is_flag(EFFECT_FLAG_COUNT_LIMIT) && (peffect->count_code & EFFECT_COUNT_CODE_OATH)) {
...@@ -4748,7 +4754,7 @@ int32 field::solve_chain(uint16 step, uint32 chainend_arg1, uint32 chainend_arg2 ...@@ -4748,7 +4754,7 @@ int32 field::solve_chain(uint16 step, uint32 chainend_arg1, uint32 chainend_arg2
break_effect(); break_effect();
core.chain_solving = TRUE; core.chain_solving = TRUE;
card* pcard = peffect->get_handler(); card* pcard = peffect->get_handler();
if((cait->flag & CHAIN_ACTIVATING) && pcard->is_has_relation(*cait)) { if(activate && pcard->is_has_relation(*cait)) {
pcard->set_status(STATUS_ACTIVATED, TRUE); pcard->set_status(STATUS_ACTIVATED, TRUE);
pcard->enable_field_effect(true); pcard->enable_field_effect(true);
if(core.duel_rule <= 2) { if(core.duel_rule <= 2) {
......
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