@@ -1719,21 +1719,22 @@ Results<uint64_t> play(Field* fd)
17191719 assert (false );
17201720 break ;
17211721 }
1722- }
1723- if (__builtin_expect (fd->end , false )) { break ; }
1724- // Evaluate skill Allegiance
1725- for (CardStatus * status : fd->tap ->assaults .m_indirect )
1726- {
1727- unsigned allegiance_value = status->skill (allegiance);
1728- if (allegiance_value > 0 && status->m_card ->m_faction == played_card->m_faction )
1722+ // Evaluate skill Allegiance
1723+ for (CardStatus * status : fd->tap ->assaults .m_indirect )
17291724 {
1730- _DEBUG_MSG (1 , " %s activates Allegiance %u\n " , status_description (status).c_str (), allegiance_value);
1731- if (! status->m_sundered )
1732- { status->m_attack += allegiance_value; }
1733- status->m_max_hp += allegiance_value;
1734- status->m_hp += allegiance_value;
1725+ unsigned allegiance_value = status->skill (allegiance);
1726+ assert (status->m_card );
1727+ if (allegiance_value > 0 && status->m_hp > 0 && status->m_card ->m_faction == played_card->m_faction )
1728+ {
1729+ _DEBUG_MSG (1 , " %s activates Allegiance %u\n " , status_description (status).c_str (), allegiance_value);
1730+ if (! status->m_sundered )
1731+ { status->m_attack += allegiance_value; }
1732+ status->m_max_hp += allegiance_value;
1733+ status->m_hp += allegiance_value;
1734+ }
17351735 }
17361736 }
1737+ if (__builtin_expect (fd->end , false )) { break ; }
17371738
17381739 // Evaluate Heroism BGE skills
17391740 if (fd->bg_effects .count (heroism))
0 commit comments