Inheritance: MonoBehaviour
Example #1
0
    // Start is called before the first frame update
    void Start()
    {
        random = new System.Random(System.DateTime.Now.Millisecond);

        TowerPlacement = GetComponent <TowerPlacement>();
        CurrentWave    = GetComponent <WaveState>();
        TotalTime      = GetComponent <Timer>();
        TotalTime.StartTimer();


        EggDisplay.UpdateValue(MapState.EggsTotal);
        UpdateTowerTooltip();

        if (WaveConfiguration == null ||
            WaveConfiguration.Length <= 0)
        {
            Debug.LogError("No wave to start");
            return;
        }

        UITopMenu.HideAll();

        UITopMenu.ShowScore(Score);
        NextWave();

        CurrentWave.WaveCleared.AddListener(OnWaveCleared);

        UIEggLost.SetActive(false);
        UITowerLost.SetActive(false);
    }
Example #2
0
 public void DeleteInstance()
 {
     HideBaseRanges();             //On cache les emplacements rendus indisponibles par les autres tours
     towerFabric.UpdateCost();     // On reaffiche le cout de la tour
     Destroy(Instance.gameObject); //On detruit l'objet
     Instance = null;              //On met l'instance a null pour etre sur de ne pas tout casser, ca coute rien
 }
Example #3
0
    public PauseHandler pauseHandler;    //Gestionnaire de pause

    //Initialisation
    void Awake()
    {
        _Instance = this;                                    //On met a jour l'instance
        TowerPlacement.towersList = new List <GameObject>(); //On cree une nouvelle liste de tours
        playerStats = new PlayerStats(this);                 //On cree une nouvelle instance du joueur
        TowerPlacement.Initialize();                         //On retire l'instance actuelle de tour en placement, s'il en existait une
    }
 void Start()
 {
     if(inputManager == null)
     {
         inputManager = GameObject.FindGameObjectWithTag("InputManager");
     }
     towerPlacementScript = inputManager.GetComponent<TowerPlacement>();
 }
Example #5
0
 void Start()
 {
     gameManager  = GameObject.Find("Game").GetComponent <Game>();
     towerManager = GameObject.Find("Game").GetComponent <TowerManager>();
     loadTowers   = GameObject.Find("TowerPortion").GetComponent <LoadTowers>();
     myTower      = gameObject.GetComponent <Tower>();
     shadow       = gameObject.GetComponentInChildren <TowerPlacement>();
 }
    private void TowerAdd(TowerPlacement towerPlacement, SpawnTowerInfo spawnInfo)
    {
        var tower = Instantiate(spawnInfo.towerPrefab, towerPlacement.transform.position, Quaternion.identity);

        tower.transform.parent = towerParent;
        spawnInfo.towerRingBuffer.Enqueue(tower);
        tower.towerPlace = towerPlacement;
        towerPlacement.gameObject.GetComponent <WayPoint2>().isPlaceable = false;
    }
    private void TowerMove(TowerPlacement towerPlacement, SpawnTowerInfo spawnInfo)
    {
        var oldestTower = spawnInfo.towerRingBuffer.Dequeue();

        oldestTower.towerPlace.gameObject.GetComponent <WayPoint2>().isPlaceable = true;
        oldestTower.towerPlace = towerPlacement;
        towerPlacement.gameObject.GetComponent <WayPoint2>().isPlaceable = false;
        oldestTower.transform.position = towerPlacement.transform.position;
        spawnInfo.towerRingBuffer.Enqueue(oldestTower);
    }
Example #8
0
    public void ShowMenu(TowerPlacement placement)
    {
        gameObject.SetActive(true);
        missileButton.GetComponentInChildren <Text>().text = missileItem.name + "   $" + missileItem.cost;
        grenadeButton.GetComponentInChildren <Text>().text = grenadeItem.name + "   $" + grenadeItem.cost;

        missileButton.interactable = GolfCourse.instance.curMoney >= missileItem.cost;
        grenadeButton.interactable = GolfCourse.instance.curMoney >= grenadeItem.cost;
        _curPlacement = placement;
    }
Example #9
0
    //Initialisation
    void Start()
    {
#if UNITY_EDITOR
        if (Instance != null)
        {
            Debug.LogError("Une instance de Tower Placement existe deja !");
        }
#endif

        towersGO   = GameManager._Instance.towers.transform;           //On recupere l'objet regroupant les tours
        checkPlace = GetComponentInChildren <CheckPlaceIsAvailable>(); //On recupere l'objet definissant si un emplacement est disponible
        ShowBaseRanges();                                              //On affiche les emplacements rendus indisponibles par les tours
        Instance = this;
    }
 public void AddTower(TowerPlacement towerPlacement)
 {
     if (!PauseMenu.IsPaused)
     {
         var buffTower = towerSpawnList.Find(towerSlot => towerSlot.index == TowerPanel.towerNumber);
         if (buffTower.towerRingBuffer.Count < buffTower.limitOfTowers)
         {
             TowerAdd(towerPlacement, buffTower);
         }
         else
         {
             TowerMove(towerPlacement, buffTower);
         }
     }
 }
    // Use this for initialization
    void Awake()
    {
        indicator = placementIndicator.GetComponent<PlacementIndicator>();
        twrPlacementScript = inputManager.GetComponent<TowerPlacement>();

        curAvailableUnit1s = maxUnit1Number;
        curAvailableUnit2s = maxUnit2Number;
        curAvailableUnit3s = maxUnit3Number;

        unit1availableText.text = curAvailableUnit1s + " Unit 1 available";
        unit2availableText.text = curAvailableUnit2s + " Unit 2 available";
        unit3availableText.text = curAvailableUnit3s + " Unit 3 available";

        lookAtPathPoint = Vector3.zero;
    }
Example #12
0
    // Use this for initialization
    void Start()
    {
        TDTutorial = GameObject.FindGameObjectWithTag("TDTutorial");
        GUIManager.MatchTutorial = GameObject.FindGameObjectWithTag("MatchTutorial");
        GUIManager.TDTutorial.SetActive(false);

        towerPlacement = GameObject.Find("Managers").GetComponent <TowerPlacement> ();
        spawn          = GameObject.Find("Spawn").GetComponent <spawner>();
        instance       = this;
        sWidth         = Screen.width / 100;
        sHeight        = Screen.height / 100;

        endTutorial = true;
        endTDFlag   = false;

        GameEventManager.GameOver  += GameOver;
        GameEventManager.GameStart += GameStart;

        lives = 20;
        textStyle.fontSize = 22;
        gameOver           = false;
    }
Example #13
0
    private void Start()
    {
        _instance = this;
        Grid      = new Grid(128, 128, new Vector2Int(-64, -64));
        grassTilemap.CompressBounds();

        for (int x = -grassTilemap.cellBounds.size.x; x < grassTilemap.cellBounds.size.x; ++x)
        {
            for (int y = -grassTilemap.cellBounds.size.y; y < grassTilemap.cellBounds.size.y; ++y)
            {
                TileBase tile = grassTilemap.GetTile(new Vector3Int(x, y, 0));
                if (tile != null)
                {
                    Grid.GetCell(x, y).occupied = false;
                }
                else
                {
                    Grid.GetCell(x, y).occupied = true;
                }
            }
        }
    }
Example #14
0
    CheckPlaceIsAvailable checkPlace;           //Objet verifiant si un emplacement est disponible

    //Intialisation au lancement de la partie
    public static void Initialize()
    {
        Instance = null;
    }
Example #15
0
    //Fonction appellee lorsque le joueur confirme
    public void ConfirmChoice()
    {
        if (TowerPlacement.Instance != null)
        {
            TowerPlacement.Instance.DeleteInstance();
            return;
        }
        else
        {
            DisplayCancelText();
        }

        GameObject     tower          = Instantiate(towerPrefab);                      //On cree une nouvelle tour
        TowerPlacement towerPlacement = tower.GetComponent <TowerPlacement>();         //On recupere l'objet gerant le placement d'une tour

        SpriteRenderer[] renderers = tower.GetComponentsInChildren <SpriteRenderer>(); //On recupere les differents affichages

        towerPlacement.towerFabric = this;                                             // On rappel la fabrique a la nouvelle instance

        foreach (SpriteRenderer renderer in renderers)
        {
            switch (renderer.name)
            {
            case "Base":     //On met l'affichage de la base a jour
                renderer.sprite           = baseImage.sprite;
                towerPlacement.baseSprite = baseImage.sprite;
                break;

            case "Weapon":     //On met l'affichage de l'arme a jour
                renderer.sprite             = weaponImage.sprite;
                towerPlacement.weaponSprite = weaponImage.sprite;
                break;
            }
        }
        towerPlacement.baseType   = currentBasePick;   //On communique a l'objet le type de base choisi
        towerPlacement.weaponType = currentWeaponPick; //On communique a l'objet le type d'arme choisi
        towerPlacement.SetCost(cost);                  //On definit le cout de la tour a placer

        //On ajoute un affichage de la portee de la tour
        RangeIndicator rangeIndicator = Instantiate(towerRangeIndicator, towerPlacement.transform).GetComponent <RangeIndicator>();
        float          range;

        switch (currentWeaponPick) //On recupere la portee en fonction du type d'arme
        {
        case WeaponType.Balliste:
            range = GameBalance.Ballista.range;
            break;

        case WeaponType.Mortier:
            range = GameBalance.Mortar.range;
            break;

        default:
            Debug.LogError("Arme inexistante !");
            return;
        }
        rangeIndicator.SetRange(range);              //On met a jour la portee a afficher
        rangeIndicator.SetSelected(true);            //On active l'affichage de la portee

        PlaySoundOnEvent.Instance.PlayTowerForged(); //On joue le son de forge de tour
    }
Example #16
0
 private void Start()
 {
     towerPlacement = FindObjectOfType <TowerPlacement>();
 }