/// <summary>
 /// Try to persuade the unit to join the specified faction.
 /// The unit has every right to decline if it so chooses.
 /// </summary>
 /// <param name="faction"></param>
 /// <returns><c>True</c> if the unit is persuaded,
 /// <c>false</c> otherwise.</returns>
 public virtual bool PersuadeToJoinFaction(Faction faction)
 {
     // If we haven't enlisted anywhere, just join.
     if (m_faction == null)
     {
         JoinFaction(faction);
         return true;
     }
     else // If we've already enlisted, remain loyal!
     {
         return false;
     }
 }
        protected virtual void JoinFaction(Faction faction)
        {
            m_faction = faction;

            AssumeMaterial(m_faction.GetMaterial());
        }