Commit 04362c80 authored by VanillaSalt's avatar VanillaSalt

fix

parent 7fb46ee7
...@@ -2115,12 +2115,11 @@ int32 field::get_attack_target(card* pcard, card_vector* v, uint8 chain_attack) ...@@ -2115,12 +2115,11 @@ int32 field::get_attack_target(card* pcard, card_vector* v, uint8 chain_attack)
std::set<uint32> idset; std::set<uint32> idset;
for(int32 i = 0; i < eset.size(); ++i) for(int32 i = 0; i < eset.size(); ++i)
idset.insert(eset[i]->label); idset.insert(eset[i]->label);
if(idset.size()==1 && only_be_attack.size() == 1 && only_be_attack.front()->fieldid_r == *idset.begin()) if(idset.size() == 1 && only_be_attack.size() == 1 && only_be_attack.front()->fieldid_r == *idset.begin())
pv = &only_be_attack; pv = &only_be_attack;
else else
return atype; return atype;
} } else if(pcard->is_affected_by_effect(EFFECT_ONLY_ATTACK_MONSTER)) {
else if(pcard->is_affected_by_effect(EFFECT_ONLY_ATTACK_MONSTER)) {
atype = 2; atype = 2;
if(only_be_attack.size() == 1) if(only_be_attack.size() == 1)
pv = &only_be_attack; pv = &only_be_attack;
......
...@@ -2839,9 +2839,9 @@ int32 field::process_battle_command(uint16 step) { ...@@ -2839,9 +2839,9 @@ int32 field::process_battle_command(uint16 step) {
uint8 chain_attack = FALSE; uint8 chain_attack = FALSE;
if(core.chain_attack && core.chain_attacker_id == pcard->fieldid) if(core.chain_attack && core.chain_attacker_id == pcard->fieldid)
chain_attack = TRUE; chain_attack = TRUE;
core.select_cards.clear(); card_vector cv;
get_attack_target(pcard, &core.select_cards, chain_attack); get_attack_target(pcard, &cv, chain_attack);
if(core.select_cards.size() == 0 && pcard->direct_attackable == 0) if(cv.size() == 0 && pcard->direct_attackable == 0)
continue; continue;
core.attackable_cards.push_back(pcard); core.attackable_cards.push_back(pcard);
if(pcard->is_affected_by_effect(EFFECT_FIRST_ATTACK)) if(pcard->is_affected_by_effect(EFFECT_FIRST_ATTACK))
...@@ -2953,7 +2953,6 @@ int32 field::process_battle_command(uint16 step) { ...@@ -2953,7 +2953,6 @@ int32 field::process_battle_command(uint16 step) {
core.attack_player = FALSE; core.attack_player = FALSE;
core.select_cards.clear(); core.select_cards.clear();
auto atype = get_attack_target(core.attacker, &core.select_cards, core.chain_attack); auto atype = get_attack_target(core.attacker, &core.select_cards, core.chain_attack);
core.units.begin()->arg2 = (ptr)core.select_cards.size();
// direct attack // direct attack
if(core.attacker->direct_attackable) { if(core.attacker->direct_attackable) {
if(core.select_cards.size() == 0) { if(core.select_cards.size() == 0) {
...@@ -3149,7 +3148,9 @@ int32 field::process_battle_command(uint16 step) { ...@@ -3149,7 +3148,9 @@ int32 field::process_battle_command(uint16 step) {
return FALSE; return FALSE;
} }
// attack canceled // attack canceled
if(!core.units.begin()->arg2 && !core.attacker->direct_attackable) { card_vector cv;
get_attack_target(core.attacker, &cv, core.chain_attack);
if(!cv.size() && !core.attacker->direct_attackable) {
core.chain_attack = FALSE; core.chain_attack = FALSE;
core.units.begin()->step = -1; core.units.begin()->step = -1;
reset_phase(PHASE_DAMAGE); reset_phase(PHASE_DAMAGE);
......
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