public MapNode BuildNode(int domainId, string name, string description, Vector2 pos)
    {
        NodeDomainData domainData = GetDomainData(domainId);

        if (domainData == null)
        {
            return(null);
        }

        GameObject spawnObject = Instantiate(basePrefab, new Vector3(pos.x, pos.y, -4), Quaternion.identity) as GameObject;
        MapNode    spawnNode   = spawnObject.GetComponent <MapNode>();

        // translate node by setting attributes
        spawnNode.displayName        = name;
        spawnNode.displayDescription = description;
        spawnNode.domainData         = domainData;
        spawnNode.name = _mappedNodeCounts[domainId] + "-" + domainData.name.ToLower();

        // prefab specific data
        SpriteRenderer r = spawnNode.GetComponent <SpriteRenderer>();

        r.sprite = domainData.sprite;

        _mappedNodeCounts[domainId]++;

        return(spawnNode);
    }
    public void UpdateCard(MapNode node)
    {
        ClearCard();

        headerCanvasGroup.alpha = 1;
        bodyCanvasGroup.alpha   = 1;

        NodeDomainData domainData = node.domainData;

        UpdateHeader(domainData.icon, node.displayName, node.displayDescription);
        UpdateBody(node.displayQuestDescription);
    }