public AbstractTrapBehaviour GetTrapOfType(TrapType trapType)
    {
        var selectedTrapGo = AllTraps.FirstOrDefault(x => x.TrapType == trapType);

        selectedTrapGo.Model = TrapModel.GetTrapModelInfo(trapType);

        return(selectedTrapGo);
    }
    public void CreateNewTrap(TrapType trapType)
    {
        var trapTemplate = trapsManager.GetTrapOfType(trapType);

        var newTrapGo = GameObject.Instantiate(trapTemplate);

        //this.CurrentTrap = newTrapGo;

        newTrapGo.SetTrapPlace(this);

        newTrapGo.Model = TrapModel.GetTrapModelInfo(trapType);

        TrapMenuGUI.StartClosingCurrentGui();

        Debug.Log("Building " + trapType);

        GetComponentInChildren <SpriteRenderer>().gameObject.SetActive(false);

        var particle = GetComponentInChildren <ParticleSystem>(true);

        particle.gameObject.SetActive(true);
        var particleMain = particle.main;

        switch (newTrapGo.Model.AttackType)
        {
        case TrapAttackType.Fear:
            particleMain.startColor = new ParticleSystem.MinMaxGradient(new Color(110f / 255f, 18f / 255f, 223f / 255f));
            break;

        case TrapAttackType.Light:
            particleMain.startColor = new ParticleSystem.MinMaxGradient(new Color(224f / 255f, 248f / 255f, 5f / 255f));
            break;

        case TrapAttackType.Chaos:
            particleMain.startColor = new ParticleSystem.MinMaxGradient(new Color(51f / 255f, 135f / 255f, 44f / 255f));
            break;

        case TrapAttackType.Poison:
            particleMain.startColor = new ParticleSystem.MinMaxGradient(new Color(55f / 255f, 165f / 255f, 165f / 255f));
            break;

        default:
            throw new ArgumentOutOfRangeException();
        }
    }
    public void CreateNewTrap(TrapType trapType)
    {
        var toCreateTrap = TrapModel.GetTrapModelInfo(trapType);

        Money -= toCreateTrap.MoneyCost;
    }
    public bool CanCreateTrap(TrapType trapType)
    {
        var toCreateTrap = TrapModel.GetTrapModelInfo(trapType);

        return(Money >= toCreateTrap.MoneyCost);
    }