public void UpdateMaps(IEnumerable <Hashtable> mapsData)
        {
            _maps = new Dictionary <string, Map>();
            foreach (var mapData in mapsData)
            {
                var id          = mapData.GetString("id");
                var portals     = new List <MapPortal>();
                var portalsData = mapData.GetArrayList("portals");
                for (var i = 0; i < portalsData.Count; i++)
                {
                    var portalData = portalsData.GetHashtable(i);

                    // Get the portal effect
                    var effect = (PortalEffect)Enum.Parse(
                        typeof(PortalEffect),
                        portalData["effect"].ToString(),
                        true);

                    // Get the portal's position
                    var positionData = portalData.GetArrayList("position");
                    var position     = new Vector3(positionData.GetFloat(0), positionData.GetFloat(1), 0);

                    // Get the positions of the cards
                    var cardPositions     = new List <Vector3>();
                    var cardPositionsData = portalData.GetArrayList("cards");
                    for (var j = 0; j < cardPositionsData.Count; j++)
                    {
                        var cardPositionData = cardPositionsData.GetArrayList(j);
                        cardPositions.Add(new Vector3(cardPositionData.GetFloat(0), cardPositionData.GetFloat(1), 0));
                    }

                    // Get the portal color
                    var colorData = portalData.GetArrayList("color");
                    var color     = new Color(colorData.GetFloat(0), colorData.GetFloat(1), colorData.GetFloat(2));

                    var deck = portalData["deck"].ToString();
                    var icon = ResourcesManager.GetSpriteForMapPortal(portalData["icon"].ToString());

                    portals.Add(new MapPortal(effect, deck, position, cardPositions, icon, color));
                }

                _maps.Add(
                    id,
                    new Map(id, portals));
            }
        }
        private void BuildModsButton()
        {
            Button modsButton = Instantiate(purgeButton);

            modsButton.transform.SetParent(purgeButton.transform.parent);
            modsButton.transform.localScale = new Vector3(1, 1, 1);
            modsButton.transform.SetSiblingIndex(4);
            modsButton.GetComponentInChildren <TextMeshProUGUI>().text = "MODS";
            foreach (var image in modsButton.GetComponentsInChildren <Image>())
            {
                if (image.name == "TokenArt")
                {
                    image.sprite = ResourcesManager.GetSpriteForAspect("knock");
                }
            }
            modsButton.onClick = new Button.ButtonClickedEvent();
            modsButton.onClick.AddListener(ShowModsPanel);
            modsButton.gameObject.SetActive(true);
        }