//--------- Begin of function FirmMonster::assign_unit ---------// // // Mobilized defender units are assigned back to the firm. // void FirmMonster::assign_unit(int unitRecno) { Unit* unitPtr = unit_array[unitRecno]; UnitInfo* unitInfo = unit_res[unitPtr->unit_id]; err_when( !unitInfo->is_monster ); switch( unitPtr->rank_id ) { case RANK_KING: set_king(unitPtr->get_monster_id(), unitPtr->skill.combat_level); break; case RANK_GENERAL: add_general(unitRecno); break; case RANK_SOLDIER: add_soldier(unitPtr->leader_unit_recno); break; } //--------- the unit disappear in firm -----// unit_array.disappear_in_firm(unitRecno); }
void ManagerBase::notifyFixMaster(const ClaimMaster& cm) { Message m(MsgType::FixMaster); auto msg = m.get<FixMasterMsg>(); msg->set_seat(cm.seat); msg->set_card(cm.card.value()); msg->set_pair(cm.pair); msg->set_king(cm.king.value()); notify(&m); }