public void TalkToCharacter(MapTile targetTile)
    {
        PlayerMove  player = (PlayerMove)selectedCharacter.value;
        TacticsMove other  = targetTile.currentCharacter;

        currentActionMode.value = ActionMode.NONE;
        dialogueMode.value      = (int)DialogueMode.TALK;

        FightQuote quote = null;

        for (int i = 0; i < other.talkQuotes.Count; i++)
        {
            FightQuote fq = other.talkQuotes[i];
            if (!fq.activated && (fq.triggerer == null || fq.triggerer.uuid == player.stats.charData.uuid))
            {
                quote = fq;
                break;
            }
        }

        dialogueEntry.value   = quote.quote;
        willJoin              = quote.willJoin;
        villageVisitor1.value = player.stats.charData.portraitSet;
        startDialogue.Invoke();

        if (willJoin)
        {
            SpawnData joinData = new SpawnData(other)
            {
                joiningSquad = player.squad
            };
            joiningCharacter             = mapSpawner.SpawnPlayerCharacter(joinData, false, false, false);
            joiningCharacter.currentTile = targetTile;
            other.RemoveFromList();
            Destroy(other.gameObject);
        }
    }