Ejemplo n.º 1
0
        private void OnTriggerStay(Collider other)
        {
            if (other.gameObject.CompareTag("TrapSquare"))
            {
                trapUI.UpdateTrapUIDetails(trapState, trapGnomeOn, selectedTrap);

                if (other.gameObject.GetComponent <TrapPlacementArea>() && !currentTrapLocation)
                {
                    currentTrapLocation = other.gameObject.GetComponent <TrapPlacementArea>();
                    trapGnomeOn         = currentTrapLocation.currentTrap;
                }

                // check to if there is a trap here...
                // if not allow the user to place a trap here....
                if (currentTrapLocation && !other.gameObject.GetComponent <TrapPlacementArea>().hasTrap)
                {
                    trapState = TrapStates.PlaceTrap;
                }
                else if (currentTrapLocation && other.gameObject.GetComponent <TrapPlacementArea>().hasTrap)
                {
                    // else allow the user to pickup what is there.
                    trapState = TrapStates.PickupTrap;
                }

                // updates the trap location
                if (trapGnomeOn != currentTrapLocation.currentTrap)
                {
                    trapGnomeOn = currentTrapLocation.currentTrap;
                }
            }
        }
Ejemplo n.º 2
0
 public void Start()
 {
     TrapLevelUpPannel    = FindObjectOfType <UiManager>();
     PlayerGameObject     = GameObject.FindWithTag("Player");
     _gameManager         = GameManager.instance;
     MainCanvasGameObject = GameObject.FindWithTag("MainCanvas");
     Terrain = Terrain.activeTerrain;
     ActualSelectedTrapTypes = TrapTypes.None;
 }
Ejemplo n.º 3
0
 void OnDisable()
 {
     IsInTrapCreationMode    = false;
     ActualSelectedTrapTypes = TrapTypes.None;
     TargetedTrap            = null;
     if (ActualTrap != null)
     {
         Destroy(ActualTrap.TrapPrefab);
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Creates An Instance Of 'Trap'
        /// </summary>
        /// <param name="type">Sets The Type Of The Trap</param>
        /// <param name="row">Sets The Row Of The Trap</param>
        /// <param name="column">Sets The Column Of The Trap</param>
        public Trap(TrapTypes type, int row, int column)
        {
            Type      = type;
            maxDamage = (int)Type;

            Row    = row;
            Column = column;

            fallenInto = false;
        }
Ejemplo n.º 5
0
    public static int RequestUpgradeAmount(UpgradeType _Utype, TrapTypes _trapTypes)
    {
        switch (_trapTypes)
        {
        case TrapTypes.trap1:

            switch (_Utype)
            {
            case UpgradeType.CatchSuccessChance:
                return(Trap1Success);

            case UpgradeType.CatchCoolDown:
                return(Trap1CoolDown);

            case UpgradeType.CatchRaduis:
                return(Trap1Raduis);
            }

            break;

        case TrapTypes.trap2:

            switch (_Utype)
            {
            case UpgradeType.CatchSuccessChance:
                return(Trap2Success);

            case UpgradeType.CatchCoolDown:
                return(Trap2CoolDown);

            case UpgradeType.CatchRaduis:
                return(Trap2Raduis);
            }

            break;

        case TrapTypes.trap3:

            switch (_Utype)
            {
            case UpgradeType.CatchSuccessChance:
                return(Trap3Success);

            case UpgradeType.CatchCoolDown:
                return(Trap3CoolDown);

            case UpgradeType.CatchRaduis:
                return(Trap3Raduis);
            }

            break;
        }

        return(0);
    }
Ejemplo n.º 6
0
 /// <summary>
 /// TEMP - toggles the trap type selected, gonna make controls for this soon, but this is good for debugging on UI
 /// </summary>
 public void ToggleTrapType()
 {
     if (selectedTrap.Equals(TrapTypes.Cable))
     {
         selectedTrap = TrapTypes.BBQ;
     }
     else
     {
         selectedTrap = TrapTypes.Cable;
     }
 }
Ejemplo n.º 7
0
 private void OnTriggerExit(Collider other)
 {
     // resets the current trap and gnome state on exit
     if (other.gameObject.CompareTag("TrapSquare"))
     {
         trapState           = TrapStates.NoTraps;
         currentTrapLocation = null;
         trapGnomeOn         = TrapTypes.None;
         trapUI.HideTrapUI();
     }
 }
Ejemplo n.º 8
0
 public void UpdateUi(TrapTypes trapTypes)
 {
     if (SelectedTrapType != TrapTypes.None)
     {
         transform.GetChild((int)SelectedTrapType).GetComponent <SelectionElement>().Unselect();
     }
     if (trapTypes != TrapTypes.None)
     {
         transform.GetChild((int)trapTypes).GetComponent <SelectionElement>().Select();
     }
     SelectedTrapType = trapTypes;
 }
Ejemplo n.º 9
0
 private void OnTriggerEnter(Collider other)
 {
     // sets up the trap square if the user is on one
     if (other.gameObject.CompareTag("TrapSquare"))
     {
         if (other.gameObject.GetComponent <TrapPlacementArea>())
         {
             currentTrapLocation = other.gameObject.GetComponent <TrapPlacementArea>();
             trapGnomeOn         = currentTrapLocation.currentTrap;
             trapUI.UpdateTrapUIDetails(trapState, trapGnomeOn, selectedTrap);
             trapUI.DisplayTrapUI(currentTrapLocation.transform.GetChild(0).transform);
         }
     }
 }
Ejemplo n.º 10
0
        /// <summary>
        /// Updates the trap UI
        /// </summary>
        /// <param name="state">The state of the trap</param>
        /// <param name="type">The type of trap on the trap currently</param>
        /// <param name="userTrap">The trap type the user has active</param>
        public void UpdateTrapUIDetails(TrapStates state, TrapTypes type, TrapTypes userTrap)
        {
            if (state.Equals(TrapStates.PlaceTrap))
            {
                prefabInstance.GetComponentsInChildren <Text>()[0].text = "Place " + userTrap.ToString() + " Trap";
            }
            else if (state.Equals(TrapStates.PickupTrap))
            {
                prefabInstance.GetComponentsInChildren <Text>()[0].text = "Pickup " + type.ToString() + " Trap";
            }

            prefabInstance.GetComponentsInChildren <Text>()[1].text = userTrap.ToString() + " Trap Selected";

            if (isGamepad)
            {
                if (state.Equals(TrapStates.PlaceTrap))
                {
                    prefabInstance.GetComponentsInChildren <Text>()[2].text = controllerPlace;
                }
                else if (state.Equals(TrapStates.PickupTrap))
                {
                    prefabInstance.GetComponentsInChildren <Text>()[2].text = controllerPickup;
                }

                prefabInstance.GetComponentsInChildren <Text>()[3].text = controllerToggle;
            }
            else
            {
                if (state.Equals(TrapStates.PlaceTrap))
                {
                    prefabInstance.GetComponentsInChildren <Text>()[2].text = keyboardPlace;
                }
                else if (state.Equals(TrapStates.PickupTrap))
                {
                    prefabInstance.GetComponentsInChildren <Text>()[2].text = keyboardPickup;
                }

                prefabInstance.GetComponentsInChildren <Text>()[3].text = keyboardToggle;
            }
        }
Ejemplo n.º 11
0
        private void Update()
        {
            if (input.Gnome.UseTrap.phase.Equals(InputActionPhase.Performed) && canUseInput)
            {
                if (!trapState.Equals(TrapStates.PickupTrap) && trapState.Equals(TrapStates.PlaceTrap))
                {
                    // place trap down in area.
                    switch (selectedTrap)
                    {
                    case TrapTypes.None:
                        break;

                    case TrapTypes.Cable:

                        if (cableTraps > 0)
                        {
                            PlaceTrap();
                            currentTrapLocation.hasTrap     = true;
                            currentTrapLocation.currentTrap = TrapTypes.Cable;
                            cableTraps  -= 1;
                            cablePlaced += 1;
                        }

                        break;

                    case TrapTypes.BBQ:

                        if (bbqTrays > 0)
                        {
                            PlaceTrap();
                            currentTrapLocation.hasTrap     = true;
                            currentTrapLocation.currentTrap = TrapTypes.BBQ;
                            bbqTrays  -= 1;
                            bbqPlaced += 1;
                        }

                        break;

                    default:
                        break;
                    }
                }
                else if (trapState.Equals(TrapStates.PickupTrap) && !trapState.Equals(TrapStates.PlaceTrap))
                {
                    // pick up trap in area.
                    switch (trapGnomeOn)
                    {
                    case TrapTypes.None:
                        break;

                    case TrapTypes.Cable:

                        PickupTrap();
                        currentTrapLocation.hasTrap     = false;
                        currentTrapLocation.currentTrap = TrapTypes.None;
                        cableTraps  += 1;
                        cablePlaced -= 1;

                        break;

                    case TrapTypes.BBQ:

                        PickupTrap();
                        currentTrapLocation.hasTrap     = false;
                        currentTrapLocation.currentTrap = TrapTypes.None;
                        bbqTrays  += 1;
                        bbqPlaced -= 1;

                        break;

                    default:
                        break;
                    }
                }

                // input delay
                StartCoroutine(InputDelay());
            }


            // toggle selected trap
            if (input.Gnome.ToggleTrap.phase == InputActionPhase.Performed)
            {
                if (canUseToggle)
                {
                    if (selectedTrap.Equals(TrapTypes.Cable))
                    {
                        selectedTrap = TrapTypes.BBQ;
                    }
                    else
                    {
                        selectedTrap = TrapTypes.Cable;
                    }

                    StartCoroutine(InputToggleDelay());
                }
            }
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Starts A New Level, Resets The Necessary Variables For Each One
        /// And Randomizes a New Position For The Player, For The Exit,
        /// For The Map And For Each Trap in 'trapList'
        /// </summary>
        public void StartNewLevel()
        {
            Player.hasMap = false;
            // Level Difficulty
            currentLevelDifficulty = currentLevel + Board.Difficulty;

            // Number Of Traps (According To Cells and Level Difficulty)
            numberOfTraps = numberOfCells * currentLevelDifficulty / 25;

            // Cap The Number Of Traps Per Level According To Grid Size
            if (numberOfTraps > Convert.ToInt32(numberOfCells * 0.75))
            {
                numberOfTraps = Convert.ToInt32(numberOfCells * 0.75);
            }

            numberOfWeapons =
                Convert.ToInt32(numberOfCells / (currentLevelDifficulty / 1.5));

            if (numberOfWeapons < Convert.ToInt32(numberOfCells * 0.10))
            {
                Console.Clear();
                Console.WriteLine("REACHED WEAPONS CAP");
                Console.ReadLine();
                numberOfWeapons = Convert.ToInt32(numberOfCells * 0.10);
            }

            numberOfFood =
                Convert.ToInt32(numberOfCells / (currentLevelDifficulty / 2.5));

            if (numberOfFood < Convert.ToInt32(numberOfCells * 0.15))
            {
                Console.Clear();
                Console.WriteLine("REACHED FOOD CAP");
                Console.ReadLine();
                numberOfFood = Convert.ToInt32(numberOfCells * 0.15);
            }

            CellList.Clear();
            trapList.Clear();
            weaponList.Clear();
            foodList.Clear();

            // Create Cell's According To Grid Size
            for (int i = 0; i < Board.Rows; i++)
            {
                for (int j = 0; j < Board.Columns; j++)
                {
                    CellList.Add(new Cell(i, j));
                }
            }

            Random random = new Random();

            // Sets Player's Beginning Position (Cell)
            Player.position = new Position(random.Next(Board.Rows), 0);

            // Sets Exit's Position (Cell)
            exit = new Position(random.Next(Board.Rows), Board.Columns - 1);

            // Sets Map's Position (Cell)
            map = new Position(exit.Row, exit.Column);
            while (map.Row == exit.Row && map.Column == exit.Column)
            {
                map = new Position(random.Next(Board.Rows),
                                   random.Next(Board.Columns));
            }

            // Creates Array With Possible 'TrapTypes'
            Array trapTypes = Enum.GetValues(typeof(TrapTypes));

            for (int i = 0; i < numberOfTraps; i++)
            {
                int row    = 0;
                int column = 0;

                // Sets Trap Type (Randomly)
                TrapTypes randomType =
                    (TrapTypes)trapTypes.GetValue
                        (random.Next(trapTypes.Length));

                bool validPosition = false;

                // Loops Until Trap's Position Is Valid
                while (!validPosition)
                {
                    // Sets Trap's Position (Cell)
                    row    = random.Next(Board.Rows);
                    column = random.Next(Board.Columns);

                    // Restricts Trap's Position
                    if (row == exit.Row && column == exit.Column)
                    {
                        continue;
                    }
                    else if (row == Player.position.Row &&
                             column == Player.position.Column)
                    {
                        continue;
                    }

                    else
                    {
                        validPosition = true;
                    }
                }
                // Adds Trap To 'trapList'
                trapList.Add(new Trap(randomType, row, column));
            }


            // Creates Array With Possible 'weaponTypes'
            Array weaponTypes = Enum.GetValues(
                typeof(PossibleItems.weaponTypes));

            for (int i = 0; i < numberOfWeapons; i++)
            {
                Weapon newWeapon;

                int row    = 0;
                int column = 0;

                // Sets Weapon Type (Randomly)
                PossibleItems.weaponTypes randomType =
                    (PossibleItems.weaponTypes)weaponTypes.GetValue(
                        random.Next(weaponTypes.Length));

                switch (randomType)
                {
                case PossibleItems.weaponTypes.LongClaw:
                    newWeapon = new Weapon("LongClaw", 14, 0.8f, 6);
                    break;

                case PossibleItems.weaponTypes.Ryno:
                    newWeapon = new Weapon("Ryno", 16, 0.7f, 8);
                    break;

                case PossibleItems.weaponTypes.LightSaber:
                    newWeapon = new Weapon("Light Saber", 18, 0.9f, 5);
                    break;

                case PossibleItems.weaponTypes.BladesOfChaos:
                    newWeapon = new Weapon(
                        "Blades Of Chaos", 20, 0.9f, 12);
                    break;

                case PossibleItems.weaponTypes.Mjolnir:
                    newWeapon = new Weapon("Mjolnir", 25, 0.6f, 30);
                    break;

                case PossibleItems.weaponTypes.InfinityGauntlet:
                    newWeapon = new Weapon(
                        "Infinity Gauntlet", 35, 0.4f, 10);
                    break;

                default:
                    newWeapon = new Weapon("", 0, 0, 0);
                    break;
                }

                bool validPosition = false;

                // Loops Until Weapon's Position Is Valid
                while (!validPosition)
                {
                    // Sets Weapon's Position (Cell)
                    row    = random.Next(Board.Rows);
                    column = random.Next(Board.Columns);

                    // Restricts Weapon's Position
                    if (row == exit.Row && column == exit.Column)
                    {
                        continue;
                    }
                    else if (row == Player.position.Row &&
                             column == Player.position.Column)
                    {
                        continue;
                    }

                    else
                    {
                        validPosition = true;
                    }
                }

                // Sets New Position For The Weapon
                newWeapon.Position.Row    = row;
                newWeapon.Position.Column = column;

                // Adds Weapon To 'weaponList'
                weaponList.Add(newWeapon);
            }

            // Creates Array With Possible 'foodTypes'
            Array foodTypes = Enum.GetValues(typeof(PossibleItems.foodTypes));

            for (int i = 0; i < numberOfFood; i++)
            {
                Food newFood;

                int row    = 0;
                int column = 0;

                // Sets Food Type (Randomly)
                PossibleItems.foodTypes randomType =
                    (PossibleItems.foodTypes)weaponTypes.GetValue(
                        random.Next(foodTypes.Length));

                switch (randomType)
                {
                case PossibleItems.foodTypes.SliceOfCheese:
                    newFood = new Food("Slice of Cheese", 2, 0.1f);
                    break;

                case PossibleItems.foodTypes.BigMac:
                    newFood = new Food("Big Mac", 5, 0.4f);
                    break;

                case PossibleItems.foodTypes.Ratatouille:
                    newFood = new Food("Ratatouille", 18, 0.7f);
                    break;

                case PossibleItems.foodTypes.Pasta:
                    newFood = new Food("Pasta", 6, 0.9f);
                    break;

                case PossibleItems.foodTypes.BucketOfChicken:
                    newFood = new Food("Bucket of Chicken", 9, 0.5f);
                    break;

                default:
                    newFood = new Food("", 0, 0);
                    break;
                }

                bool validPosition = false;

                // Loops Until Food's Position Is Valid
                while (!validPosition)
                {
                    // Sets Food's Position (Cell)
                    row    = random.Next(Board.Rows);
                    column = random.Next(Board.Columns);

                    // Restricts Foods's Position
                    if (row == exit.Row && column == exit.Column)
                    {
                        continue;
                    }
                    else if (row == Player.position.Row &&
                             column == Player.position.Column)
                    {
                        continue;
                    }

                    else
                    {
                        validPosition = true;
                    }
                }

                // Sets New Position For The Food
                newFood.Position.Row    = row;
                newFood.Position.Column = column;

                // Adds Weapon To 'weaponList'
                foodList.Add(newFood);
            }
        }
Ejemplo n.º 13
0
        public void Update()
        {
            if (_gameManager.IsTheSunAwakeAndTheBirdAreSinging)
            {
                if (Input.GetKey("1"))
                {
                    IsInTrapCreationMode = true;
                    UpdateUi(TrapTypes.NeedleTrap);
                }
                if (Input.GetKey("2"))
                {
                    IsInTrapCreationMode = true;
                    UpdateUi(TrapTypes.BaitTrap);
                }
                if (Input.GetKey("3"))
                {
                    IsInTrapCreationMode = true;
                    UpdateUi(TrapTypes.MudTrap);
                }
                if (Input.GetKey("4"))
                {
                    IsInTrapCreationMode = true;
                    UpdateUi(TrapTypes.LandmineTrap);
                }
            }
            else
            {
                IsInTrapCreationMode    = false;
                ActualSelectedTrapTypes = TrapTypes.None;
                Debug.Log(TargetedTrap);
                TargetedTrap = null;
                Debug.Log(TargetedTrap);

                if (ActualTrap != null)
                {
                    Destroy(ActualTrap.TrapPrefab);
                }
            }
            if (IsInTrapCreationMode)
            {   //  hackfix : avoid allowing traps then put in pause
                TutorialOpen.instance.OpenTutorial(GameVariables.Tutorials.traps);
            }
            if (IsInTrapCreationMode)
            {
                TargetedTrap = null;
                if (SelectedTrapType != ActualSelectedTrapTypes)
                {
                    if (ActualTrap != null)
                    {
                        Destroy(ActualTrap.TrapPrefab);
                    }
                    CreateTrapPrevu();
                    ActualSelectedTrapTypes = SelectedTrapType;
                }
                Vector3 cursorPosition = GetCursorPosition();
                var     normalizedPos  = new Vector2(Mathf.InverseLerp(0f, Terrain.terrainData.size.x, cursorPosition.x),
                                                     Mathf.InverseLerp(0, Terrain.terrainData.size.z, cursorPosition.z));
                ActualTrap.TrapPrefab.transform.rotation = Quaternion.LookRotation(Terrain.terrainData.GetInterpolatedNormal(normalizedPos.x, normalizedPos.y), Terrain.terrainData.GetInterpolatedNormal(normalizedPos.x, normalizedPos.y));
                ActualTrap.TrapPrefab.transform.position = cursorPosition;

                if (Input.GetMouseButtonDown(0) && GameManager.instance.SpendGold(ActualTrap.UpgradeCosts[0]))
                {
                    CreateTrap();
                }
                if (Input.GetMouseButtonDown(1))
                {
                    IsInTrapCreationMode = false;
                    UpdateUi(TrapTypes.None);
                    ActualSelectedTrapTypes = TrapTypes.None;
                    Destroy(ActualTrap.TrapPrefab);
                }
            }
            else if (IsTargetable() && _gameManager.IsTheSunAwakeAndTheBirdAreSinging)
            {
                if (Input.GetMouseButtonDown(0))
                {
                    TargetedTrap.LevelUp();
                }
                if (Input.GetMouseButtonDown(1))
                {
                    var cl = TargetedTrap;
                    TargetedTrap = null;
                    cl.Destroy();
                }
            }
        }
Ejemplo n.º 14
0
        private void OnTriggerEnter(Collider col)
        {
            // Trap collisions
            if (col.gameObject.GetComponent <Trap>())
            {
                var colTrapComponent = col.GetComponent <Trap>();

                //direction towards the col
                var colliderWithoutZ = new Vector3(colTrapComponent.GetColliderCenterPosition().x, colTrapComponent.GetColliderCenterPosition().y, 0);
                var playerWithoutZ   = new Vector3(playerMovement.GetColliderCenterPosition().x, playerMovement.GetColliderCenterPosition().y, 0);
                //Vector3 toCollider = (col.transform.position - playerMovement.GetColliderCenterPosition()).normalized;
                Vector3 toCollider = colliderWithoutZ - playerWithoutZ;

                RaycastHit hit;
                if (Physics.Raycast(playerMovement.GetColliderCenterPosition(), toCollider, out hit))
                {
                    if (debug)
                    {
                        Debug.DrawRay(playerMovement.GetColliderCenterPosition(), toCollider, Color.blue, 1.0f);
                    }

                    // Contact point info
                    Vector3 contactPoint       = hit.point;
                    Vector3 contactPointNormal = hit.normal;
                    // Get trap infos
                    TrapConfig trapConfig = col.gameObject.GetComponent <Trap>().GetTrapConfig();
                    TrapTypes  trapType   = trapConfig.GetTrapType();

                    //*** Damage ***//
                    // Instant kill or trap damage
                    if (trapConfig.IsInstantKill())
                    {
                        playerHealth.TakeDamage(playerHealth.GetCurrentHealth());
                    }
                    else
                    {
                        playerHealth.TakeDamage(trapConfig.GetTrapDamage());
                    }

                    //*** Knockback ***//
                    //Freeze player for a time && Push him on the opposite side
                    if (trapConfig.IsKockbackEnabled())
                    {
                        playerMovement.Knockback(trapConfig.GetHitKnockbackTime(), trapConfig.GetKnockbackForceX(), trapConfig.GetKnockbackForceY(), contactPointNormal);
                    }

                    //*** Collision effect ***//
                    SpawnTrapCollisionParticleByContact(contactPoint, contactPointNormal, trapConfig);
                    SpawnTrapHitParticle(trapConfig);

                    //*** Player Hit effect ***//


                    //***TRAPS SPECIFIC LOGIC***// Call trap-specific code
                    switch (trapType)
                    {
                        #region VOID
                    case TrapTypes.Void:

                        break;
                        #endregion

                        #region FIRE
                    case TrapTypes.Fire:

                        break;
                        #endregion

                        #region SPIKES
                    case TrapTypes.Spikes:

                        break;
                        #endregion

                        #region LASER
                    case TrapTypes.Laser:

                        break;

                        #endregion
                    default:
                        break;
                    }
                }
            }
        }
Ejemplo n.º 15
0
 public Trap(TrapTypes trapType, string infoText, string pathToImage)
     : base(infoText, pathToImage)
 {
     this.trapType = trapType;
 }
Ejemplo n.º 16
0
    private void SetupTrap()
    {
        TrapTypes[] potentialTrapTypes =
        {
            TrapTypes.ConcussiveBlast,
            TrapTypes.DirectDamage,
            TrapTypes.ElectrifiedZone,
            TrapTypes.EMP,
            TrapTypes.FaradayCage,
            TrapTypes.MalwareInjection,
            TrapTypes.NerveGas,
            TrapTypes.NeurotoxinCloud,
            TrapTypes.ParalysisAgent,
            TrapTypes.RustAgent,
            TrapTypes.Spam
        };
        trapType = potentialTrapTypes[Random.Range(0, potentialTrapTypes.Length)];
        switch (trapType)
        {
        case TrapTypes.ConcussiveBlast:
            trapName        = "Concussive Blast";
            trapDescription = "On this Location: Block use of Head and Exoskeleton cards";
            break;

        case TrapTypes.DirectDamage:
            // Deal 15% damage
            CharacterData runner       = FindObjectOfType <MapData>().GetRunner();
            float         maxHealth    = runner.GetMaximumHealth();
            int           damageToTake = Mathf.FloorToInt(maxHealth * 0.2f);
            if (damageToTake < 1)
            {
                damageToTake = 1;
            }
            trapAmount = damageToTake;
            trapName   = "Trap";

            trapDescription = "Took " + trapAmount.ToString() + " damage.";
            break;

        case TrapTypes.ElectrifiedZone:
            trapName        = "Electrified Zone";
            trapAmount      = 3;
            trapDescription = "Take " + trapAmount + " Damage. Every time you move onto this location, take " + trapAmount + " damage";
            break;

        case TrapTypes.EMP:
            trapName        = "EMP";
            trapAmount      = 30;
            trapDescription = "On this location: Your Cyber and Tech cards have a " + trapAmount + "% chance to fizzle";
            break;

        case TrapTypes.FaradayCage:
            trapName        = "Faraday Cage";
            trapDescription = "On this location: Block use of Hacker cards";
            break;

        case TrapTypes.MalwareInjection:
            trapName        = "Malware Injection";
            trapAmount      = 5;
            trapDescription = "Add " + trapAmount + " Malware cards to your deck. These cards are destroyed when used";
            break;

        case TrapTypes.NerveGas:
            trapName        = "Nerve Gas";
            trapAmount      = 30;
            trapDescription = "On this location: Your Bio cards have a " + trapAmount + "% chance to fizzle";
            break;

        case TrapTypes.NeurotoxinCloud:
            trapName        = "Neurotoxin Cloud";
            trapAmount      = 1;
            trapDescription = "Take " + trapAmount + " Damage. During combat on this location: Take " + trapAmount + " Damage at the start of each of your turns";
            break;

        case TrapTypes.ParalysisAgent:
            trapName        = "Paralysis Agent";
            trapDescription = "On this location: Block use of Arm and Leg cards";
            break;

        case TrapTypes.RustAgent:
            trapName        = "Rust Agent";
            trapAmount      = 30;
            trapDescription = "On this location: Your Mech cards have a " + trapAmount + "% chance to fizzle";
            break;

        case TrapTypes.Spam:
            trapName        = "Spam";
            trapAmount      = 1;
            trapDescription = "Add " + trapAmount + " Spam card to your deck";
            break;
        }
    }