public void createTower(Tower tower) { ITowerGUI gui = (ITowerGUI)Activator.CreateInstance(Type.GetType("Assets.Scripts.GUI.Towers." + tower.GetType().Name + "GUI, Assembly-CSharp")); towerGUIs.AddLast(gui); gui.createTower(tower); }
public void activateTowerInfoPanel(string towerTypeId) { if (!alwaysActiveInfoPanel) { alwaysActiveInfoPanel = false; panel_MinionInfo.SetActive(false); ITowerGUI towerGUI = TypeIdGeneratorGUI.towerGuiInst[Int32.Parse(towerTypeId)]; towerGUI.drawInfoPanelGUI(); } }
private static void onTowerDeselected() { if (!guiClicked) { if (lastSelectedTower != null) { lastSelectedTower.onTowerUnselected(); } lastSelectedTower = null; UIControllerGame.getInstance().alwaysActiveInfoPanel = false; UIControllerGame.getInstance().panel_TowerInfo.SetActive(false); } }
private static void onTowerSelected(GameObject obje) { string objName = obje.name; string boardStr = obje.name.Substring(2, objName.LastIndexOf("_") - 2); string indexStr = obje.name.Substring(objName.LastIndexOf("_") + 1); int boardId = System.Int32.Parse(boardStr); int indexOnBoard = System.Int32.Parse(indexStr); Board board = Game.getBoardById(boardId); Tower tower = board.towers[indexOnBoard]; // daha once bir kuleye tiklanmissa unselect'ini cagir. if (lastSelectedTower != null) { lastSelectedTower.onTowerUnselected(); } lastSelectedTower = (ITowerGUI)tower.tag; graphics.activateTowerInfo(lastSelectedTower); lastSelectedTower.onTowerSelected(); UIControllerGame.getInstance().alwaysActiveInfoPanel = true; }
/* // bu fonksiyonu kullanmiyoruz. MouseHandler'i kullaniyoruz. private void ingameClickHandler() { if (Input.GetKeyDown(KeyCode.Mouse0) && GUIUtility.hotControl == 0) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hitInfo; bool towerSlotClicked = false; bool towerClicked = false; bool minionClicked = false; if (Physics.Raycast(ray, out hitInfo, 1000.0f)) { GameObject obje = hitInfo.collider.gameObject; if (obje.name.StartsWith("towerSlot_")) { towerSlotClicked = true; int towerSlot = System.Int32.Parse(obje.name.Substring("towerSlot_".Length)) - 1; int boardId = System.Int32.Parse(obje.transform.parent.parent.parent.gameObject.name.Substring("board_".Length)); Board board = Game.getBoardById(boardId); if (board == PlayerMe.self.board) { if (board.towers[towerSlot] == null) { if (selectedTowerType != null) sendCreateTowerRequest(selectedTowerType, towerSlot); else { if (lastSelectedTower != null) { lastSelectedTower.onTowerUnselected(); UIControllerGame.getInstance().panel_TowerInfo.SetActive(false); } lastSelectedTower = null; } } else { if (lastSelectedTower != null) lastSelectedTower.onTowerUnselected(); lastSelectedTower = (ITowerGUI)board.towers[towerSlot].tag; activateTowerInfo(lastSelectedTower); lastSelectedTower.onTowerSelected(); selectedTowerType = null; UIControllerGame.getInstance().selectedTowerOverlayObject.SetActive(false); } //((Assets.Scripts.GUI.Interfaces.IBoardGUI) board.tag).onMouseOverTower(towerSlot); } if (lastSelectedMinion != null) { lastSelectedMinion.onMinionUnselected(); UIControllerGame.getInstance().panel_MinionInfo.SetActive(false); } lastSelectedMinion = null; } else if (obje.name.StartsWith("t_")) { minionClicked = true; try { string objName = obje.name; string boardStr = obje.name.Substring(2, objName.LastIndexOf("_") - 2); string indexStr = obje.name.Substring(objName.LastIndexOf("_") + 1); int boardId = System.Int32.Parse(boardStr); int indexOnBoard = System.Int32.Parse(indexStr); Board board = Game.getBoardById(boardId); Tower tower = board.towers[indexOnBoard]; // daha once bir kuleye tiklanmissa unselect'ini cagir. if (lastSelectedTower != null) lastSelectedTower.onTowerUnselected(); lastSelectedTower = (ITowerGUI)tower.tag; activateTowerInfo(lastSelectedTower); lastSelectedTower.onTowerSelected(); selectedTowerType = null; UIControllerGame.getInstance().selectedTowerOverlayObject.SetActive(false); } catch (UnityException e) { Debug.Log("Mouse Handler::objeNameStartsWith:t_ \t -inappropriate name: '" + obje.name +"'"); } if (lastSelectedMinion != null) { lastSelectedMinion.onMinionUnselected(); UIControllerGame.getInstance().panel_MinionInfo.SetActive(false); } lastSelectedMinion = null; } else if (obje.name.StartsWith("m_")) { minionClicked = true; try { string objName = obje.name; string instanceIDstr = obje.name.Substring(2); int instanceID = System.Int32.Parse(instanceIDstr); Minion minion = Game.getMinionById(instanceID); if(lastSelectedMinion != null) lastSelectedMinion.onMinionUnselected(); lastSelectedMinion = (IMinionGUI)minion.tag; activateMinionInfo(lastSelectedMinion); lastSelectedMinion.onMinionSelected(); } catch (UnityException e) { Debug.Log("Mouse Handler::objeNameStartsWith:m_"); } // Unselected tower if (lastSelectedTower != null) { lastSelectedTower.onTowerUnselected(); UIControllerGame.getInstance().panel_TowerInfo.SetActive(false); } lastSelectedTower = null; selectedTowerType = null; UIControllerGame.getInstance().selectedTowerOverlayObject.SetActive(false); } else { Ray rayNGUI = GameObject.Find ("NGUICamera").camera.ScreenPointToRay(Input.mousePosition); RaycastHit hitInfoNGUI; // eger ekranda bos bir yere tiklamissam if (!Physics.Raycast(rayNGUI, out hitInfoNGUI, 1000.0f)) { // 9: GUI Layer // Unselected tower if (lastSelectedTower != null) { lastSelectedTower.onTowerUnselected(); UIControllerGame.getInstance().panel_TowerInfo.SetActive(false); } lastSelectedTower = null; selectedTowerType = null; UIControllerGame.getInstance().selectedTowerOverlayObject.SetActive(false); if(lastSelectedMinion != null) { lastSelectedMinion.onMinionUnselected(); UIControllerGame.getInstance().panel_MinionInfo.SetActive(false); } lastSelectedMinion = null; } } } else // collider'i olmayan bir seye tiklamissak ya da hicbir seye tiklamamissak { if (lastSelectedTower != null) { lastSelectedTower.onTowerUnselected(); UIControllerGame.getInstance().panel_TowerInfo.SetActive(false); } lastSelectedTower = null; selectedTowerType = null; UIControllerGame.getInstance().selectedTowerOverlayObject.SetActive(false); if (lastSelectedMinion != null) { lastSelectedMinion.onMinionUnselected(); UIControllerGame.getInstance().panel_MinionInfo.SetActive(false); } lastSelectedMinion = null; } } } */ public void activateTowerInfo(ITowerGUI towerGUI) { uiControllerGame.alwaysActiveInfoPanel = true; uiControllerGame.panel_MinionInfo.SetActive(false); towerGUI.drawInfoPanelGUI(); }
private static void onTowerDeselected() { if (!guiClicked) { if (lastSelectedTower != null) lastSelectedTower.onTowerUnselected(); lastSelectedTower = null; UIControllerGame.getInstance().alwaysActiveInfoPanel = false; UIControllerGame.getInstance().panel_TowerInfo.SetActive(false); } }
private static void onTowerSelected(GameObject obje) { string objName = obje.name; string boardStr = obje.name.Substring(2, objName.LastIndexOf("_") - 2); string indexStr = obje.name.Substring(objName.LastIndexOf("_") + 1); int boardId = System.Int32.Parse(boardStr); int indexOnBoard = System.Int32.Parse(indexStr); Board board = Game.getBoardById(boardId); Tower tower = board.towers[indexOnBoard]; // daha once bir kuleye tiklanmissa unselect'ini cagir. if (lastSelectedTower != null) lastSelectedTower.onTowerUnselected(); lastSelectedTower = (ITowerGUI)tower.tag; graphics.activateTowerInfo(lastSelectedTower); lastSelectedTower.onTowerSelected(); UIControllerGame.getInstance().alwaysActiveInfoPanel = true; }
/* * // bu fonksiyonu kullanmiyoruz. MouseHandler'i kullaniyoruz. * private void ingameClickHandler() * { * if (Input.GetKeyDown(KeyCode.Mouse0) && GUIUtility.hotControl == 0) * { * Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); * RaycastHit hitInfo; * bool towerSlotClicked = false; * bool towerClicked = false; * bool minionClicked = false; * * if (Physics.Raycast(ray, out hitInfo, 1000.0f)) * { * GameObject obje = hitInfo.collider.gameObject; * * if (obje.name.StartsWith("towerSlot_")) * { * towerSlotClicked = true; * * int towerSlot = System.Int32.Parse(obje.name.Substring("towerSlot_".Length)) - 1; * int boardId = System.Int32.Parse(obje.transform.parent.parent.parent.gameObject.name.Substring("board_".Length)); * * Board board = Game.getBoardById(boardId); * if (board == PlayerMe.self.board) * { * if (board.towers[towerSlot] == null) * { * if (selectedTowerType != null) * sendCreateTowerRequest(selectedTowerType, towerSlot); * else * { * if (lastSelectedTower != null) * { * lastSelectedTower.onTowerUnselected(); * UIControllerGame.getInstance().panel_TowerInfo.SetActive(false); * } * lastSelectedTower = null; * } * } * else * { * if (lastSelectedTower != null) * lastSelectedTower.onTowerUnselected(); * * lastSelectedTower = (ITowerGUI)board.towers[towerSlot].tag; * activateTowerInfo(lastSelectedTower); * * lastSelectedTower.onTowerSelected(); * * selectedTowerType = null; * UIControllerGame.getInstance().selectedTowerOverlayObject.SetActive(false); * } * //((Assets.Scripts.GUI.Interfaces.IBoardGUI) board.tag).onMouseOverTower(towerSlot); * } * * if (lastSelectedMinion != null) * { * lastSelectedMinion.onMinionUnselected(); * UIControllerGame.getInstance().panel_MinionInfo.SetActive(false); * } * lastSelectedMinion = null; * } * else if (obje.name.StartsWith("t_")) * { * minionClicked = true; * * try * { * string objName = obje.name; * string boardStr = obje.name.Substring(2, objName.LastIndexOf("_") - 2); * string indexStr = obje.name.Substring(objName.LastIndexOf("_") + 1); * int boardId = System.Int32.Parse(boardStr); * int indexOnBoard = System.Int32.Parse(indexStr); * Board board = Game.getBoardById(boardId); * Tower tower = board.towers[indexOnBoard]; * * // daha once bir kuleye tiklanmissa unselect'ini cagir. * if (lastSelectedTower != null) * lastSelectedTower.onTowerUnselected(); * * lastSelectedTower = (ITowerGUI)tower.tag; * activateTowerInfo(lastSelectedTower); * * lastSelectedTower.onTowerSelected(); * * selectedTowerType = null; * UIControllerGame.getInstance().selectedTowerOverlayObject.SetActive(false); * } * catch (UnityException e) * { * Debug.Log("Mouse Handler::objeNameStartsWith:t_ \t -inappropriate name: '" + obje.name +"'"); * } * if (lastSelectedMinion != null) * { * lastSelectedMinion.onMinionUnselected(); * UIControllerGame.getInstance().panel_MinionInfo.SetActive(false); * } * lastSelectedMinion = null; * } * else if (obje.name.StartsWith("m_")) * { * minionClicked = true; * * try * { * string objName = obje.name; * string instanceIDstr = obje.name.Substring(2); * int instanceID = System.Int32.Parse(instanceIDstr); * Minion minion = Game.getMinionById(instanceID); * * if(lastSelectedMinion != null) * lastSelectedMinion.onMinionUnselected(); * lastSelectedMinion = (IMinionGUI)minion.tag; * * activateMinionInfo(lastSelectedMinion); * * lastSelectedMinion.onMinionSelected(); * * } * catch (UnityException e) * { * Debug.Log("Mouse Handler::objeNameStartsWith:m_"); * } * * // Unselected tower * if (lastSelectedTower != null) * { * lastSelectedTower.onTowerUnselected(); * UIControllerGame.getInstance().panel_TowerInfo.SetActive(false); * } * lastSelectedTower = null; * * selectedTowerType = null; * UIControllerGame.getInstance().selectedTowerOverlayObject.SetActive(false); * } * else * { * Ray rayNGUI = GameObject.Find ("NGUICamera").camera.ScreenPointToRay(Input.mousePosition); * RaycastHit hitInfoNGUI; * // eger ekranda bos bir yere tiklamissam * if (!Physics.Raycast(rayNGUI, out hitInfoNGUI, 1000.0f)) { // 9: GUI Layer * // Unselected tower * if (lastSelectedTower != null) * { * lastSelectedTower.onTowerUnselected(); * UIControllerGame.getInstance().panel_TowerInfo.SetActive(false); * } * lastSelectedTower = null; * selectedTowerType = null; * UIControllerGame.getInstance().selectedTowerOverlayObject.SetActive(false); * * if(lastSelectedMinion != null) * { * lastSelectedMinion.onMinionUnselected(); * UIControllerGame.getInstance().panel_MinionInfo.SetActive(false); * } * lastSelectedMinion = null; * } * } * } * else // collider'i olmayan bir seye tiklamissak ya da hicbir seye tiklamamissak * { * if (lastSelectedTower != null) * { * lastSelectedTower.onTowerUnselected(); * UIControllerGame.getInstance().panel_TowerInfo.SetActive(false); * } * lastSelectedTower = null; * selectedTowerType = null; * UIControllerGame.getInstance().selectedTowerOverlayObject.SetActive(false); * * if (lastSelectedMinion != null) * { * lastSelectedMinion.onMinionUnselected(); * UIControllerGame.getInstance().panel_MinionInfo.SetActive(false); * } * lastSelectedMinion = null; * } * } * } */ public void activateTowerInfo(ITowerGUI towerGUI) { uiControllerGame.alwaysActiveInfoPanel = true; uiControllerGame.panel_MinionInfo.SetActive(false); towerGUI.drawInfoPanelGUI(); }
public void createMinionAndTowerButtons() { var children = new System.Collections.Generic.List <GameObject>(); foreach (Transform child in createMinionTowerContainer.transform) { children.Add(child.gameObject); } children.ForEach(child => GameObject.Destroy(child)); int btnIndex = 0; button_CreateTower.SetActive(true); button_CreateMinion.SetActive(true); // sort minions order by cost List <Type> minionsSortedByCost = new List <Type>(); for (int j = 0; j < PlayerMe.availableMinionTypes.Count; j++) { if (TypeIdGeneratorGUI.minionGuiInst.ContainsKey(TypeIdGenerator.getMinionId(PlayerMe.availableMinionTypes[j]))) { minionsSortedByCost.Add(PlayerMe.availableMinionTypes[j]); } } minionsSortedByCost.Sort(delegate(Type t1, Type t2) { Minion m1 = TypeIdGenerator.getMinionClass(TypeIdGenerator.getMinionId(t1)); Minion m2 = TypeIdGenerator.getMinionClass(TypeIdGenerator.getMinionId(t2)); if (m1.getCost() < m2.getCost()) { return(-1); } else { return(1); } }); foreach (Type minionType in minionsSortedByCost) { int minionTypeId = TypeIdGenerator.getMinionId(minionType); if (TypeIdGeneratorGUI.minionGuiInst.ContainsKey(minionTypeId)) { GameObject button = (GameObject)GameObject.Instantiate(button_CreateMinion); button.transform.parent = createMinionTowerContainer.transform; button.transform.localScale = new Vector3(1, 1, 1); button.transform.localPosition = button_CreateMinion.transform.localPosition + new Vector3(50 * btnIndex, 0, 0); UIButtonMessage[] button_messages = button.GetComponents <UIButtonMessage>(); foreach (var btn_msg in button_messages) { btn_msg.parameter = minionTypeId.ToString(); } IMinionGUI minionGUI = TypeIdGeneratorGUI.minionGuiInst[minionTypeId]; minionGUI.drawCreateMinionButtonGUI(button); towerAndMinionButtons.Add(minionType, button); btnIndex++; } } // sort towers order by cost List <Type> towersSortedByCost = new List <Type>(); for (int j = 0; j < PlayerMe.availableTowerTypes.Count; j++) { if (TypeIdGeneratorGUI.towerGuiInst.ContainsKey(TypeIdGenerator.getTowerId(PlayerMe.availableTowerTypes[j]))) { towersSortedByCost.Add(PlayerMe.availableTowerTypes[j]); } } towersSortedByCost.Sort(delegate(Type t1, Type t2) { Tower m1 = TypeIdGenerator.getTowerClass(TypeIdGenerator.getTowerId(t1)); Tower m2 = TypeIdGenerator.getTowerClass(TypeIdGenerator.getTowerId(t2)); if (m1.getCost() < m2.getCost()) { return(-1); } else { return(1); } }); btnIndex = 0; foreach (Type towerType in towersSortedByCost) { int towerTypeId = TypeIdGenerator.getTowerId(towerType); if (TypeIdGeneratorGUI.towerGuiInst.ContainsKey(towerTypeId)) { GameObject button = (GameObject)GameObject.Instantiate(button_CreateTower); button.transform.parent = createMinionTowerContainer.transform; button.transform.localScale = new Vector3(1, 1, 1); button.transform.localPosition = button_CreateTower.transform.localPosition + new Vector3(50 * btnIndex, 0, 0); UIButtonMessage[] button_messages = button.GetComponents <UIButtonMessage>(); foreach (var btn_msg in button_messages) { btn_msg.parameter = towerTypeId.ToString(); } ITowerGUI towerGUI = TypeIdGeneratorGUI.towerGuiInst[towerTypeId]; towerGUI.drawCreateTowerButtonGUI(button); towerAndMinionButtons.Add(towerType, button); btnIndex++; } } button_CreateTower.SetActive(false); button_CreateMinion.SetActive(false); }
public virtual void drawInfoPanelGUI() { UIControllerGame controller = UIControllerGame.getInstance(); Tower towerTmp; if (this.tower == null) //gercek bir kule degil demek. ikonlari gostermek icin vs. tutulan dummy kule demek. { towerTmp = TypeIdGenerator.getTowerInsts(TypeIdGenerator.getTowerId(this.towerType)); } else { towerTmp = this.tower; } controller.label_TowerCost.text = towerTmp.getCost().ToString(); controller.label_TowerTitle.text = towerTmp.getName(); controller.label_TowerDescription.text = getInfo(); controller.label_TowerAttackCD.text = towerTmp.getAttackCooldown().ToString(); controller.label_TowerRange.text = (towerTmp.getRange() * 100).ToString(); controller.sprite_TowerIcon.mainTexture = childStaticTowerIcon; //remove all upgrade buttons remaining from previous var children = new List <GameObject>(); foreach (Transform child in controller.panel_UpgradeTowerContainer.transform) { children.Add(child.gameObject); } children.ForEach(child => GameObject.Destroy(child)); // eger bu cizim sadece bilgi gostermek icinse veya bu kule sana aitse upgrade'leri ekle if (this.tower == null || this.tower.board == PlayerMe.self.board) { var i = 0; foreach (TowerNode node in TypeIdGenerator.getTowerNodeInsts(towerType).children) { if (UserMe.unlockedTowers[TypeIdGenerator.getTowerId(node.towerType)]) { Tower child = TypeIdGenerator.getTowerInsts(TypeIdGenerator.getTowerId(node.towerType)); ITowerGUI childGUI = TypeIdGeneratorGUI.towerGuiInst[TypeIdGenerator.getTowerId(node.towerType)]; GameObject button = (GameObject)GameObject.Instantiate(controller.button_UpgradeTowerSample); button.transform.parent = controller.panel_UpgradeTowerContainer.transform; button.transform.localScale = new Vector3(1, 1, 1); button.transform.localPosition = controller.button_UpgradeTowerSample.transform.localPosition + new Vector3(60 * i, 0, 0); button.GetComponentsInChildren <UIButtonMessage>(true)[0].parameter = TypeIdGenerator.getTowerId(towerType).ToString() + " " + TypeIdGenerator.getTowerId(node.towerType).ToString(); button.GetComponentsInChildren <UILabel>(true)[0].text = child.getCost().ToString(); button.GetComponentsInChildren <Tooltiper>(true)[0].text = childGUI.getUpgradeInfo(); childGUI.drawCreateTowerButtonGUI(button); if (child.getCost() > PlayerMe.cash) { button.GetComponentsInChildren <UISlicedSprite>(true)[0].color = Color.red; } button.SetActive(true); i++; } } } controller.panel_TowerInfo.SetActive(true); }