float GetRange(GameStateScript.TowerType val)
    {
        switch (val)
        {
        case GameStateScript.TowerType.ALCHEMY:
            return(0);

        case GameStateScript.TowerType.BALLISTA:
            return(4);

        case GameStateScript.TowerType.CRYSTAL:
            return(4.0f);

        case GameStateScript.TowerType.FIRE:
            return(1.5f);

        case GameStateScript.TowerType.FLAMINGBALLISTA:
            return(4);


        case GameStateScript.TowerType.LASERTOWER:
            return(10);

        case GameStateScript.TowerType.LIGHT:
            return(3);

        case GameStateScript.TowerType.STEAM:
            return(3);

        case GameStateScript.TowerType.WATER:
            return(2);

        default:
            return(3);
        }
    }
 public void SetTowerType(GameStateScript.TowerType newType)
 {
     Type = newType;
 }
Exemple #3
0
    public void OnSpawn()
    {
        myAnimator = GetComponent <Animator>();

        switch (Type)
        {//Costs need to be changed in game state and in tower script
        //For animator state changes 0 crystal, 1 fire, 2 water, 3 laser, 4 steam, 5 ballista, 6 alchemy, 7 light
        case GameStateScript.TowerType.ALCHEMY:
            Damage   = 0;
            Cost     = 200;
            Range    = 0;
            FireRate = 0;
            setImage(0);
            myAnimator.SetInteger("AnimationValue", 6);
            break;

        case GameStateScript.TowerType.BALLISTA:
            Damage   = 10;
            Cost     = 200;
            Range    = 4;
            FireRate = 1;
            towerVFX = SpawnEffect(5);
            setImage(1);
            myAnimator.enabled = false;
            myAnimator.SetInteger("AnimationValue", 5);
            break;

        case GameStateScript.TowerType.CRYSTAL:
            Damage   = 0;
            Cost     = 750;
            Range    = 4.0f;
            FireRate = 0.01f;
            towerVFX = SpawnEffect(2);
            setImage(3);
            myAnimator.SetInteger("AnimationValue", 0);
            break;

        case GameStateScript.TowerType.FIRE:
            Damage   = 0;
            Cost     = 300;
            Range    = 1.5f;
            FireRate = 0.25f;
            towerVFX = SpawnEffect(0);
            setImage(4);
            myAnimator.SetInteger("AnimationValue", 1);
            break;

        case GameStateScript.TowerType.FLAMINGBALLISTA:
            Cost     = 0;
            Damage   = 10;
            Range    = 5.0f;
            FireRate = 1;
            towerVFX = SpawnEffect(5);
            setImage(5);
            myAnimator.enabled = false;
            break;

        case GameStateScript.TowerType.LASERTOWER:
            Cost     = 0;
            Damage   = 20;
            Range    = 10;
            FireRate = 0.05f;
            setImage(6);
            myAnimator.SetInteger("AnimationValue", 3);
            break;

        case GameStateScript.TowerType.LIGHT:
            Damage    = 0;
            Cost      = 500;
            Range     = 3;
            FireRate  = 0.01f;
            towerVFX  = SpawnEffect(4);
            towerVFX2 = SpawnEffect(6);
            towerVFX2.transform.position = new Vector3(towerVFX2.transform.position.x, towerVFX2.transform.position.y, -6);
            setImage(7);
            myAnimator.SetInteger("AnimationValue", 7);
            break;

        case GameStateScript.TowerType.STEAM:
            Cost     = 0;
            Damage   = 0;
            Range    = 3;
            FireRate = 1;
            towerVFX = SpawnEffect(1);
            setImage(8);
            myAnimator.SetInteger("AnimationValue", 4);
            break;

        case GameStateScript.TowerType.WATER:
            Damage   = 5;
            Cost     = 300;
            Range    = 2.5f;
            FireRate = 0.75f;
            setImage(9);
            myAnimator.SetInteger("AnimationValue", 2);
            break;

        default:
            Type     = GameStateScript.TowerType.BALLISTA;
            Damage   = 10;
            Cost     = 200;
            Range    = 4;
            FireRate = 1;
            setImage(1);
            myAnimator.enabled = false;
            myAnimator.SetInteger("AnimationValue", 5);
            break;
        }
        time   = FireRate;
        Range *= 16;
    }
 public void SetSelectedType(GameStateScript.TowerType input)
 {
     SelectedType = input;
 }
    void Combine()
    {
        bool valid = false;

        myTower.GetInputs(out InputOne, out InputTwo);

        GameStateScript.TowerType type1 = InputOne.GetComponent <TowerScript>().Type;
        GameStateScript.TowerType type2 = InputTwo.GetComponent <TowerScript>().Type;

        switch (type1)
        {
        case GameStateScript.TowerType.LIGHT:
            if (type2 == GameStateScript.TowerType.CRYSTAL)
            {
                myTower.SetTowerType(GameStateScript.TowerType.LASERTOWER);
                valid = true;
            }
            break;

        case GameStateScript.TowerType.CRYSTAL:
            if (type2 == GameStateScript.TowerType.LIGHT)
            {
                myTower.SetTowerType(GameStateScript.TowerType.LASERTOWER);
                valid = true;
            }
            break;

        case GameStateScript.TowerType.FIRE:
            if (type2 == GameStateScript.TowerType.BALLISTA)
            {
                myTower.SetTowerType(GameStateScript.TowerType.FLAMINGBALLISTA);
                valid = true;
            }
            if (type2 == GameStateScript.TowerType.WATER)
            {
                myTower.SetTowerType(GameStateScript.TowerType.STEAM);
                valid = true;
            }
            break;

        case GameStateScript.TowerType.BALLISTA:
            if (type2 == GameStateScript.TowerType.FIRE)
            {
                myTower.SetTowerType(GameStateScript.TowerType.FLAMINGBALLISTA);
                valid = true;
            }
            break;

        case GameStateScript.TowerType.WATER:
            if (type2 == GameStateScript.TowerType.FIRE)
            {
                myTower.SetTowerType(GameStateScript.TowerType.STEAM);
                valid = true;
            }
            break;

        default:
            break;
        }
        if (!valid)
        {
            myTower.Explode();
        }
        else
        {
            myTower.OnSpawn();
        }
    }