protected virtual void StopDealing()
 {
     if (CoCharacter == null)
     {
         ClearDealingData();
         return;
     }
     // Set dealing state/data for co player character entity
     CoCharacter.ClearDealingData();
     CoCharacter.CoCharacter = null;
     // Set dealing state/data for player character entity
     ClearDealingData();
     CoCharacter = null;
 }
 protected virtual void NetFuncAcceptDealingRequest()
 {
     if (CoCharacter == null)
     {
         GameManager.SendServerGameMessage(ConnectionId, GameMessage.Type.CannotAcceptDealingRequest);
         StopDealing();
         return;
     }
     if (Vector3.Distance(CacheTransform.position, CoCharacter.CacheTransform.position) > GameInstance.conversationDistance)
     {
         GameManager.SendServerGameMessage(ConnectionId, GameMessage.Type.CharacterIsTooFar);
         StopDealing();
         return;
     }
     // Set dealing state/data for co player character entity
     CoCharacter.ClearDealingData();
     CoCharacter.DealingState = DealingState.Dealing;
     CoCharacter.RequestAcceptedDealingRequest(ObjectId);
     // Set dealing state/data for player character entity
     ClearDealingData();
     DealingState = DealingState.Dealing;
     RequestAcceptedDealingRequest(CoCharacter.ObjectId);
 }