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); } }
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)); }
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")); }
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); }
public void UnRegister(string type, RadioSelect button) { if (!radioMap.ContainsKey(type)) { return; } if (radioMap[type] == null) { return; } radioMap[type].Remove(button); }
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); }
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); } } }
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); }
public void RadioSelectConstructorTest() { var target = new RadioSelect(); // Pass }
public void IdForLabelTest() { var target = new RadioSelect(); Assert.AreEqual("Test1_0", target.IdForLabel("Test1")); }