Example #1
0
    private void Awake()
    {
        Debug.Assert(towerDisplayTemplate, "Tower Display Template not provided");
        if (!towerDisplayTemplate)
        {
            return;
        }

        TowerBase[] towers = Resources.LoadAll <TowerBase>(TOWERS_FOLDER).OrderBy(x => x.towerCost).ToArray();


        foreach (TowerBase t in towers)
        {
            TowerDisplay display = Instantiate(towerDisplayTemplate, transform);

            {
                RadioSelect rad = display.GetComponent <RadioSelect>();

                if (rad)
                {
                    rad.additionalData = t;
                }
            }

            display.Load(t);
        }
    }
Example #2
0
        public void RendererTest()
        {
            var target = new RadioSelect();

            target.Renderer = delegate(string name, string value, ElementAttributesDictionary attributes, IEnumerable <Choice> choices)
            {
                return("Test1");
            };

            Assert.AreEqual("Test1", target.Renderer(null, null, null, null));
        }
Example #3
0
        public void RenderTest()
        {
            var target = new RadioSelect();

            target.Choices = ChoiceHelper.Range(1, 5);

            Assert.AreEqual("<ul>\n<li><label>1 <input type=\"radio\" name=\"Test1\" value=\"1\" /></label></li>\n<li><label>2 <input type=\"radio\" name=\"Test1\" value=\"2\" /></label></li>\n<li><label>3 <input type=\"radio\" name=\"Test1\" value=\"3\" /></label></li>\n<li><label>4 <input type=\"radio\" name=\"Test1\" value=\"4\" /></label></li>\n<li><label>5 <input type=\"radio\" name=\"Test1\" value=\"5\" /></label></li>\n</ul>",
                            target.Render("Test1", null));

            Assert.AreEqual("<ul>\n<li><label>1 <input type=\"radio\" name=\"Test1\" value=\"1\" /></label></li>\n<li><label>2 <input type=\"radio\" name=\"Test1\" value=\"2\" checked=\"checked\" /></label></li>\n<li><label>3 <input type=\"radio\" name=\"Test1\" value=\"3\" /></label></li>\n<li><label>4 <input type=\"radio\" name=\"Test1\" value=\"4\" /></label></li>\n<li><label>5 <input type=\"radio\" name=\"Test1\" value=\"5\" /></label></li>\n</ul>",
                            target.Render("Test1", "2"));
        }
Example #4
0
    private void Update()
    {
        if (!player)
        {
            return;
        }

        if (toolText)
        {
            toolText.text = player.GetToolName();
        }
        if (coinText)
        {
            coinText.text = string.Format(coinTextFormat, player.coins);
        }

        if (!currentTowerDisplay)
        {
            return;
        }

        if (GameManager.Instance.Phase != GamePhase.BUILD || player.destroyTool)
        {
            if (currentTowerDisplay.gameObject.activeInHierarchy)
            {
                currentTowerDisplay.gameObject.SetActive(false);
            }

            return;
        }

        RadioSelect select = RadioSelect.Controller.GetSelection("BuildMenu.SelectedTower");

        if (!select || !(select.additionalData is TowerBase))
        {
            if (currentTowerDisplay.gameObject.activeInHierarchy)
            {
                currentTowerDisplay.gameObject.SetActive(false);
            }

            return;
        }

        if (!currentTowerDisplay.gameObject.activeInHierarchy)
        {
            currentTowerDisplay.gameObject.SetActive(true);
        }

        currentTowerDisplay.Load((TowerBase)select.additionalData);
    }
Example #5
0
        public void UnRegister(string type, RadioSelect button)
        {
            if (!radioMap.ContainsKey(type))
            {
                return;
            }

            if (radioMap[type] == null)
            {
                return;
            }

            radioMap[type].Remove(button);
        }
Example #6
0
        public void Register(string type, RadioSelect button)
        {
            if (!radioMap.ContainsKey(type))
            {
                radioMap.Add(type, new HashSet <RadioSelect>());
            }

            if (radioMap[type] == null)
            {
                radioMap[type] = new HashSet <RadioSelect>();
            }

            if (radioMap[type].Any(x => x.isSelected))
            {
                button.Deselect();
            }

            radioMap[type].Add(button);
        }
Example #7
0
    private void Update()
    {
        tick++;

        if (tick - tickPinged > 2 || playerInside)
        {
            return;
        }

        if (GameManager.Instance?.Phase != GamePhase.BUILD)
        {
            return;
        }
        if (!player.destroyTool && this.tower)
        {
            return;
        }

        RadioSelect select = RadioSelect.Controller.GetSelection("BuildMenu.SelectedTower");

        GameObject tower = null;
        int        cost  = 0;

        if (player.destroyTool && this.tower)
        {
            tower = this.tower.gameObject;
        }
        else if (!player.destroyTool && select && select.additionalData is TowerBase)
        {
            tower = (select.additionalData as TowerBase).gameObject;
            cost  = (select.additionalData as TowerBase).towerCost;
        }

        if (!tower)
        {
            return;
        }

        Material mat = player.destroyTool ? destroyOutline : buildOutline;

        if (cost > player.coins && cantBuildOutline)
        {
            mat = cantBuildOutline;
        }
        if (!player.destroyTool && EnemySpawner.CalculateAI(parent, coords.y, coords) == null)
        {
            mat = cantBuildOutline;
        }

        Debug.Assert(mat, "No material specified on " + name);

        foreach (MeshRenderer render in tower.GetComponentsInChildren <MeshRenderer>())
        {
            if (!render.enabled)
            {
                continue;
            }
            MeshFilter filter = render.GetComponent <MeshFilter>();

            if (filter)
            {
                Vector3    position = render.transform.position;
                Quaternion rotation = render.transform.rotation;
                Vector3    scale    = render.transform.lossyScale;

                if (!player.destroyTool)
                {
                    scale.Scale(transform.lossyScale);
                    position.Scale(scale);

                    position = transform.position + position;
                    rotation = transform.rotation * rotation;
                }

                Matrix4x4 matrix = Matrix4x4.TRS(position, rotation, scale + Vector3.one * 0.01F);
                Graphics.DrawMesh(filter.sharedMesh, matrix, mat, gameObject.layer);
            }
        }
    }
Example #8
0
    private bool BuildUpdate()
    {
        if (Input.GetKeyDown(KeyCode.Return))
        {
            GameManager.Instance.EnterCombatPhase();
            return(false);
        }

        if (player.GetButtonDown("Toggle Build Menu"))
        {
            buildScreenUp = !buildScreenUp;
            GameManager.Instance.requireCursor = buildScreenUp;

            buildMenu.SetActive(buildScreenUp);
            return(true);
        }

        if (buildScreenUp)
        {
            return(true);
        }

        if (player.GetButtonDown("Next Weapon/Tool") || player.GetButtonDown("Previous Weapon/Tool"))
        {
            destroyTool = !destroyTool;
            UpdateEffect();
            UpdateAnimator();
        }


        if (player.GetButtonDown("Build"))
        {
            if (destroyTool)
            {
                HexTile tile = EyeLaser.Instance.SelectedTile;

                if (tile)
                {
                    coins += Mathf.RoundToInt(tile.DestroyTower() * .85F);
                }
            }
            else
            {
                RadioSelect selection = RadioSelect.Controller.GetSelection("BuildMenu.SelectedTower");

                if (selection)
                {
                    Debug.Assert(selection.additionalData is TowerBase, "Selection data of " + selection + "is of wrong type: " + selection.additionalData?.GetType());

                    HexTile tile = EyeLaser.Instance.SelectedTile;

                    if (tile)
                    {
                        TowerBase tower = selection.additionalData as TowerBase;

                        if (coins >= tower.towerCost && tile.BuildTower(selection.additionalData as TowerBase))
                        {
                            coins -= tower.towerCost;
                        }
                    }
                }
            }
        }

        return(false);
    }
Example #9
0
 public void RadioSelectConstructorTest()
 {
     var target = new RadioSelect();
     // Pass
 }
Example #10
0
        public void IdForLabelTest()
        {
            var target = new RadioSelect();

            Assert.AreEqual("Test1_0", target.IdForLabel("Test1"));
        }