public void SetupHack(int safeSize, string newSecurityType) { mapGrid.gameObject.SetActive(false); hackDeck = FindObjectOfType <HackDeck>(); hackDiscard = FindObjectOfType <HackDiscard>(); allHackCards = FindObjectOfType <AllHackCards>(); List <int> cardIds = new List <int>(); if (trapType == MapObject.TrapTypes.ParalysisAgent) { // Paralysis Agent Trap: Blocks arm and leg mods List <Item.ItemTypes> blockedItemTypes = new List <Item.ItemTypes> { Item.ItemTypes.Arm, Item.ItemTypes.Leg }; cardIds.AddRange(runner.GetLoadout().GetAllCardIds(blockedItemTypes)); } else if (trapType == MapObject.TrapTypes.ConcussiveBlast) { List <Item.ItemTypes> blockedItemTypes = new List <Item.ItemTypes> { Item.ItemTypes.Head, Item.ItemTypes.Exoskeleton }; cardIds.AddRange(runner.GetLoadout().GetAllCardIds(blockedItemTypes)); } else { cardIds.AddRange(runner.GetLoadout().GetAllCardIds()); } // Block Hacker cards if faraday cage if (trapType != MapObject.TrapTypes.FaradayCage) { cardIds.AddRange(hacker.GetHackerLoadout().GetCardIds()); } cardIds.AddRange(FindObjectOfType <MapData>().GetTemporaryCardIds()); // Create a deck from here, but for now we use nonsense cards LogAllCardIds(cardIds); List <HackCard> cards = GetCardsByIds(cardIds); hackDeck.SetDeckPrefabs(cards); hackDeck.ShuffleDeck(); hackDeck.SetTopCard(); securityType = newSecurityType; hackSecurityUI = FindObjectOfType <HackSecurityUI>(); SetupPointHolders(); this.safeZoneSize = safeSize; SetupSafeSquares(); SetupAbilityButtons(); SetupPassiveAbilities(); }