Example #1
0
//--------- 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);
}
Example #2
0
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);
}