void talk_function::morale_chat_activity( npc &p )
{
    g->u.assign_activity( activity_id( "ACT_SOCIALIZE" ), 10000 );
    g->u.activity.str_values.push_back( p.name );
    add_msg( m_good, _( "That was a pleasant conversation with %s." ), p.disp_name() );
    g->u.add_morale( MORALE_CHAT, rng( 3, 10 ), 10, 200_minutes, 5_minutes / 2 );
}
void talk_function::assign_guard( npc &p )
{
    if( !p.is_following() ) {
        p.mission = NPC_MISSION_GUARD;
        p.set_omt_destination();
        return;
    }

    if( p.is_travelling() ) {
        if( p.has_companion_mission() ) {
            p.reset_companion_mission();
        }
    }
    p.set_attitude( NPCATT_NULL );
    p.mission = NPC_MISSION_GUARD_ALLY;
    p.chatbin.first_topic = "TALK_FRIEND_GUARD";
    p.set_omt_destination();
    cata::optional<basecamp *> bcp = overmap_buffer.find_camp( p.global_omt_location().x,
                                     p.global_omt_location().y );
    if( bcp ) {
        basecamp *temp_camp = *bcp;
        temp_camp->validate_assignees();
        if( p.rules.has_flag( ally_rule::ignore_noise ) ) {
            //~ %1$s is the NPC's translated name, %2$s is the translated faction camp name
            add_msg( _( "%1$s is assigned to %2$s" ), p.disp_name(), temp_camp->camp_name() );
        } else {
            //~ %1$s is the NPC's translated name, %2$s is the translated faction camp name
            add_msg( _( "%1$s is assigned to guard %2$s" ), p.disp_name(), temp_camp->camp_name() );
        }
    } else {
        if( p.rules.has_flag( ally_rule::ignore_noise ) ) {
            //~ %1$s is the NPC's translated name, %2$s is the pronoun for the NPC's gender
            add_msg( _( "%1$s will wait for you where %2$s is." ), p.disp_name(),
                     p.male ? _( "he" ) : _( "she" ) );
        } else {
            add_msg( _( "%s is posted as a guard." ), p.disp_name() );
        }
    }
}
void talk_function::morale_chat( npc &p )
{
    g->u.add_morale( MORALE_CHAT, rng( 3, 10 ), 10, 200_minutes, 5_minutes / 2 );
    add_msg( m_good, _( "That was a pleasant conversation with %s..." ), p.disp_name() );
}