Example #1
0
    private IEnumerator PopulateBuildTowerButtons()
    {
        yield return(new WaitUntil(() => GameManager.instance.AllPlayersReady));

        for (int i = 0; i < ListManager.instance.towers.Count; i++)
        {
            var tower = ListManager.instance.towers[i];

            var buttonGameObject = Instantiate(BuildTowerButton, ButtonHolder);
            var button           = buttonGameObject.GetComponent <Button>();
            var buildTowerButton = buttonGameObject.GetComponent <BuildTowerButton>();

            _buildTowerButtons.Add(buildTowerButton);

            buildTowerButton.NameText.text     = tower.name;
            buildTowerButton.TowerImage.sprite = tower.sprite;
            buildTowerButton.CostText.text     = tower.cost.ToString();
            buildTowerButton.TowerPrefab       = tower.prefab;

            var selMan = SelectionManager.Instance;

            button.onClick.AddListener(() => _placer.PlaceTower(buildTowerButton.TowerPrefab.name,
                                                                selMan.currentlySelectedObject.transform.position + new Vector3(0, .6f, 0), selMan.currentlySelectedObject.transform.rotation));

            Debug.Log("PopulatedListOfBuildTowerButtons");
        }

        yield return(new WaitForSeconds(1));

        SetOwnership();
    }
        public TestTowerPlacerScript(TowerPlacer towerPlacer, Tower tower)
        {
            for (int y = 0; y < MapManager.LoadedMap.PermittedTowerPlacementTexture.Height / (tower.BaseRadius * 2); y++)
            {
                for (int x = 0; x < MapManager.LoadedMap.PermittedTowerPlacementTexture.Width / (tower.BaseRadius * 2); x++)
                {
                    towerPlacer.TargetTower = tower.Duplicate();
                    towerPlacer.MoveTower(new Vector2(x * tower.BaseRadius * 2, y * tower.BaseRadius * 2));
                    towerPlacer.PlaceTower();
                }
            }

            ControllerGroupId = new HashSet <int>();
        }
Example #3
0
        public void Update(float deltaTime)
        {
            if (towerPlacer.HaveTargetTower)
            {
                towerPlacer.MoveTower(camera.ScreenToWorldPoint(Mouse.GetState().Position.ToVector2()));

                if (Mouse.GetState().LeftButton == ButtonState.Pressed)
                {
                    towerPlacer.PlaceTower();
                }
                else if (Mouse.GetState().RightButton == ButtonState.Pressed)
                {
                    towerPlacer.TargetTower = null;
                }
            }
        }
Example #4
0
        public IEnumerator IndicatorPlacesTower()
        {
            GameObject baseTower = GameObject.Find("BaseTower");

            Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out RaycastHit hit, LayerMask.GetMask("Ground"));
            EventRegistry.Invoke("togglePlacer", baseTower, hit.point);
            yield return(new WaitForSeconds(0.5f));

            // Create a tower through its intended pathway
            TowerPlacer placer = GameObject.Find("PlacementIndicator(Clone)").GetComponent <TowerPlacer>();

            placer.SetTower(GameObject.Find("BaseTower"));
            placer.PlaceTower();

            yield return(new WaitForSeconds(0.5f));

            Assert.IsNotNull(GameObject.Find("BaseTower(Clone)"));
        }
Example #5
0
 public void Update(float deltaTime)
 {
     if (!MouseOverlapsUI.IsMouseOverUI() && Mouse.GetState().LeftButton == ButtonState.Pressed)
     {
         if (towerPlacer.TargetTower != null)
         {
             towerPlacer.PlaceTower();
         }
         else
         {
             SelectedTower = null;
             foreach (Tower tower in towerManager.Towers)
             {
                 if (Circle.Contains(tower.Position, tower.BaseRadius, camera.ScreenToWorldPoint(Mouse.GetState().Position.ToVector2())))
                 {
                     SelectedTower = tower;
                     break;
                 }
             }
         }
     }
 }