protected virtual void NetFuncSendDealingRequest(PackedUInt objectId) { BasePlayerCharacterEntity targetCharacterEntity = null; if (!TryGetEntityByObjectId(objectId, out targetCharacterEntity)) { gameManager.SendServerGameMessage(ConnectionId, GameMessage.Type.NotFoundCharacter); return; } if (targetCharacterEntity.DealingCharacter != null) { gameManager.SendServerGameMessage(ConnectionId, GameMessage.Type.CharacterIsInAnotherDeal); return; } if (Vector3.Distance(CacheTransform.position, targetCharacterEntity.CacheTransform.position) > gameInstance.conversationDistance) { gameManager.SendServerGameMessage(ConnectionId, GameMessage.Type.CharacterIsTooFar); return; } DealingCharacter = targetCharacterEntity; targetCharacterEntity.DealingCharacter = this; // Send receive dealing request to player DealingCharacter.RequestReceiveDealingRequest(ObjectId); }