public void Initialize() { obj.SetActive(true); int random = Random.Range(0, 4); UIAtlas totalAtlas = new UIAtlas(); switch (random) { case 0: group = Global.Group.northern; avatar_group.spriteName = "player_faction_northern_realms"; group_label.text = "北方领域"; deck_realms.spriteName = "board_deck_northern_realms"; totalAtlas = GameController.GetInstance().atlas[0]; break; case 1: group = Global.Group.nilfgaardian; avatar_group.spriteName = "player_faction_northern_nilfgaard"; group_label.text = "尼弗迦德"; deck_realms.spriteName = "board_deck_nilfgaard"; totalAtlas = GameController.GetInstance().atlas[1]; break; case 2: group = Global.Group.monster; avatar_group.spriteName = "player_faction_northern_no_mans_land"; group_label.text = "怪兽"; deck_realms.spriteName = "board_deck_no_mans_land"; totalAtlas = GameController.GetInstance().atlas[2]; break; case 3: group = Global.Group.scoiatael; avatar_group.spriteName = "player_faction_scoiatael"; group_label.text = "松鼠党"; deck_realms.spriteName = "board_deck_scoiatael"; totalAtlas = GameController.GetInstance().atlas[3]; break; } XmlDocument xml = new XmlDocument(); xml.Load(Global.enemyPath); XmlElement root = xml.DocumentElement; XmlNode xmlNode = root.SelectSingleNode(string.Format("/root/{0}", group)); int name = 0; XmlNodeList leaderList = xmlNode.SelectSingleNode("leader").ChildNodes; XmlNode leaderNode = leaderList[Random.Range(0, leaderList.Count)]; GameObject leaderObject = LeaderController.GetInstance().obj[1]; UISprite leaderSprite = leaderObject.GetComponent <UISprite>(); leaderSprite.atlas = totalAtlas; leaderSprite.spriteName = leaderNode.Attributes["sprite"].Value; leaderObject.AddComponent(System.Type.GetType(leaderNode.Attributes["behavior"].Value)); XmlNodeList special = xmlNode.SelectSingleNode("special").ChildNodes; foreach (XmlNode cardNode in special) { for (int i = 0; i < int.Parse(cardNode.Attributes["max"].Value); i++) { GameObject cardObject = Instantiate(GameController.GetInstance().cardPerfab, grids[0]); cardObject.name = name.ToString(); name++; UISprite cardSprite = cardObject.GetComponent <UISprite>(); cardSprite.atlas = GameController.GetInstance().atlas[4]; cardSprite.spriteName = cardNode.Attributes["sprite"].Value; CardProperty cardProperty = cardObject.GetComponent <CardProperty>(); cardProperty.line = (Global.Line)System.Enum.Parse(typeof(Global.Line), cardNode.Attributes["line"].Value); cardProperty.effect = (Global.Effect)System.Enum.Parse(typeof(Global.Effect), cardNode.Attributes["effect"].Value); cardProperty.gold = bool.Parse(cardNode.Attributes["gold"].Value); cardProperty.power = int.Parse(cardNode.Attributes["power"].Value); } } XmlNodeList monster = xmlNode.SelectSingleNode("monster").ChildNodes; foreach (XmlNode cardNode in monster) { for (int i = 0; i < int.Parse(cardNode.Attributes["max"].Value); i++) { GameObject cardObject = Instantiate(GameController.GetInstance().cardPerfab, grids[0]); cardObject.name = name.ToString(); name++; UISprite cardSprite = cardObject.GetComponent <UISprite>(); cardSprite.atlas = totalAtlas; cardSprite.spriteName = cardNode.Attributes["sprite"].Value; CardProperty cardProperty = cardObject.GetComponent <CardProperty>(); cardProperty.line = (Global.Line)System.Enum.Parse(typeof(Global.Line), cardNode.Attributes["line"].Value); cardProperty.effect = (Global.Effect)System.Enum.Parse(typeof(Global.Effect), cardNode.Attributes["effect"].Value); cardProperty.gold = bool.Parse(cardNode.Attributes["gold"].Value); cardProperty.power = int.Parse(cardNode.Attributes["power"].Value); } } XmlNodeList neutral = xmlNode.SelectSingleNode("neutral").ChildNodes; foreach (XmlNode cardNode in neutral) { for (int i = 0; i < int.Parse(cardNode.Attributes["max"].Value); i++) { GameObject cardObject = Instantiate(GameController.GetInstance().cardPerfab, grids[0]); cardObject.name = name.ToString(); name++; UISprite cardSprite = cardObject.GetComponent <UISprite>(); cardSprite.atlas = GameController.GetInstance().atlas[4]; cardSprite.spriteName = cardNode.Attributes["sprite"].Value; CardProperty cardProperty = cardObject.GetComponent <CardProperty>(); cardProperty.line = (Global.Line)System.Enum.Parse(typeof(Global.Line), cardNode.Attributes["line"].Value); cardProperty.effect = (Global.Effect)System.Enum.Parse(typeof(Global.Effect), cardNode.Attributes["effect"].Value); cardProperty.gold = bool.Parse(cardNode.Attributes["gold"].Value); cardProperty.power = int.Parse(cardNode.Attributes["power"].Value); } } DrawCards(10); Number(); }
public void OnClick() { transform.parent.gameObject.SetActive(false); GameController.GetInstance().Initialize(name); }
public void Show(ShowBehavior behavior, Transform showGrid, bool repeat) { showBehavior = behavior; popupList.items.Clear(); popupList.AddItem("近战"); popupList.AddItem("远程"); popupList.AddItem("攻城"); OKButton.onClick.Clear(); returnButton.onClick.Clear(); EventDelegate.Add(returnButton.onClick, () => Hide()); if (!repeat) { BlackShow.GetInstance().Show(true); PlayerController.GetInstance().obj.SetActive(false); EnemyController.GetInstance().obj.SetActive(false); obj.SetActive(true); } switch (showBehavior) { case ShowBehavior.draw: label.text = "请选择要打出的牌"; goto default; case ShowBehavior.show: label.text = "显示卡牌"; goto default; case ShowBehavior.leader: label.text = "领导牌"; PlayerLeaderBehavior leaderBehavior = LeaderController.GetInstance().obj[0].GetComponent <PlayerLeaderBehavior>(); messageLabel.text = leaderBehavior.message; messageLabel.gameObject.SetActive(true); popupList.gameObject.SetActive(false); OKButton.gameObject.SetActive(true); OKButton.GetComponent <UIButton>().isEnabled = leaderBehavior.IsEnabled; EventDelegate.Add(OKButton.onClick, () => leaderBehavior.Play()); break; case ShowBehavior.replace: label.text = string.Format("请选择要替换的牌 {0}/2", replaceInt); EventDelegate.Add(returnButton.onClick, () => GameController.GetInstance().StartGame()); goto default; case ShowBehavior.nurse: label.text = "从墓地中打出卡牌"; totalGrid = showGrid; messageLabel.gameObject.SetActive(false); popupList.gameObject.SetActive(false); OKButton.gameObject.SetActive(false); EventDelegate.Add(returnButton.onClick, () => CoroutineManager.GetInstance().AddTask(EnemyController.GetInstance().Play(EnemyController.GetInstance().grids[1]))); break; case ShowBehavior.dummy: label.text = "请选择要替换的牌"; messageLabel.gameObject.SetActive(false); popupList.gameObject.SetActive(true); OKButton.gameObject.SetActive(false); break; case ShowBehavior.warhorn: label.text = "战争号角"; messageLabel.gameObject.SetActive(false); popupList.gameObject.SetActive(true); OKButton.gameObject.SetActive(true); OKButton.GetComponent <UIButton>().isEnabled = true; EventDelegate.Add(OKButton.onClick, () => WarhornController.GetInstance().Warhorn()); break; case ShowBehavior.agile: label.text = "请选择出牌的排"; messageLabel.gameObject.SetActive(false); popupList.gameObject.SetActive(true); popupList.items.Remove("攻城"); OKButton.gameObject.SetActive(true); OKButton.GetComponent <UIButton>().isEnabled = true; EventDelegate.Add(OKButton.onClick, () => AgileController.GetInstance().Agile()); break; default: totalGrid = showGrid; messageLabel.gameObject.SetActive(false); popupList.gameObject.SetActive(false); OKButton.gameObject.SetActive(false); break; } if (repeat) { grid.DestroyChildren(); } for (int i = 0; i < showGrid.childCount; i++) { GameObject cardObject = Instantiate(showGrid.GetChild(i).gameObject, grid); UISprite sprite = cardObject.GetComponent <UISprite>(); sprite.width = 250; sprite.height = 450; UIButton cardButton = cardObject.GetComponent <UIButton>(); switch (showBehavior) { case ShowBehavior.draw: EventDelegate.Add(cardButton.onClick, () => cardObject.GetComponent <CardBehavior>().Play()); cardButton.enabled = true; break; case ShowBehavior.show: cardButton.enabled = false; break; case ShowBehavior.replace: EventDelegate.Add(cardButton.onClick, () => cardObject.GetComponent <CardBehavior>().Replace()); cardButton.enabled = true; break; case ShowBehavior.nurse: EventDelegate.Add(cardButton.onClick, () => cardObject.GetComponent <CardBehavior>().Play()); cardButton.enabled = true; break; case ShowBehavior.dummy: EventDelegate.Add(cardButton.onClick, () => cardObject.GetComponent <CardBehavior>().Dummy()); cardButton.enabled = true; break; case ShowBehavior.warhorn: cardButton.enabled = false; break; case ShowBehavior.agile: cardButton.enabled = false; break; } cardObject.GetComponent <UIDragScrollView>().scrollView = scrollView; cardObject.GetComponent <BoxCollider>().size = new Vector3(250, 450, 1); } grid.GetComponent <UIGrid>().Reposition(); }
// Use this for initialization void Start() { button.isEnabled = transform.parent.GetComponent <UIButton>().isEnabled; GameController.GetInstance().offensive = true; }