void OnShowWin(object p1, object p2) { List <Item> items = (List <Item>)p1; Transform content = _winNode.GetRef("Content"); content.DestroyChildren(); foreach (Item item in items) { GameObject newNodeObj = Instantiate(_modelNode.GetNode("RewardItem").gameObject, content); UINode newNode = newNodeObj.GetComponent <UINode>(); Image bg = newNode.GetRef("Bg").GetComponent <Image>(); bg.sprite = GameResSys.Instance.GetFrame(item.Lv.Value); Image icon = newNode.GetRef("Icon").GetComponent <Image>(); icon.sprite = GameResSys.Instance.GetItem(item.Icon); Text itemName = newNode.GetRef("Name").GetComponent <Text>(); itemName.text = item.Name; if (item.Count.Value > 1) { itemName.text = item.Name + " * " + item.Count.Value; } Text itemDes = newNode.GetRef("Des").GetComponent <Text>(); itemDes.text = item.Description; newNodeObj.SetActive(true); } _winNode.gameObject.SetActive(true); }
public override void InitUI(UINode rootNode) { base.InitUI(rootNode); _attBtn = rootNode.GetRef("AttackBtn"); _attBtn.GetComponent <Button>().onClick.AddListener(OnAttackBtnClicked); _skillBtn = rootNode.GetRef("SkillBtn"); _skillBtn.GetComponent <Button>().onClick.AddListener(OnSkillBtnClicked); _skillBtn.gameObject.AddComponent <ImageGray>().Gray = true; _petBtn = rootNode.GetRef("PetBtn"); _petBtn.GetComponent <Button>().onClick.AddListener(OnPetBtnClicked); _petBtn.gameObject.AddComponent <ImageGray>().Gray = true; _rootNode = rootNode; _rootNode.gameObject.SetActive(false); _enemyNode = rootNode.GetNode("Enemy"); GameObject enemyHurt = _enemyNode.GetRef("Hurt").gameObject; enemyHurt.SetActive(false); GameObject enemySupply = _enemyNode.GetRef("Supply").gameObject; enemySupply.SetActive(false); _modelNode = rootNode.GetNode("Models"); _heroNodeRoot = rootNode.GetRef("HeroRoot"); _itemNodeRoot = rootNode.GetRef("ItemsContent"); _winNode = rootNode.GetNode("Win"); _winNode.GetRef("Button").GetComponent <Button>().onClick.AddListener(OnWinConfirmed); _loseNode = rootNode.GetNode("Lose"); _loseNode.GetRef("Button").GetComponent <Button>().onClick.AddListener(OnLoseConfirmed); ShowItemDes(string.Empty, null); EventSys.Instance.AddHander(ViewEvent.CreateFightView, OnCreateFightView); EventSys.Instance.AddHander(ViewEvent.SetSelectedHero, OnChangeHero); EventSys.Instance.AddHander(ViewEvent.FightUpdateRound, OnUpdateRound); EventSys.Instance.AddHander(ViewEvent.FightUpdateEnemyState, OnUpdateEnemy); EventSys.Instance.AddHander(ViewEvent.FightShowWin, OnShowWin); EventSys.Instance.AddHander(ViewEvent.FightHeroAttack, OnHeroAttack); EventSys.Instance.AddHander(ViewEvent.FightHeroHpSupply, OnHeroHpSupply); EventSys.Instance.AddHander(ViewEvent.FightHeroMpSupply, OnHeroMpSupply); EventSys.Instance.AddHander(ViewEvent.FightShowLose, OnShowLose); EventSys.Instance.AddHander(ViewEvent.FightWinReturnToStage, OnFinish); EventSys.Instance.AddHander(ViewEvent.FightChangeTurn, OnChangeTurn); EventSys.Instance.AddHander(ViewEvent.FightEnemyAttack, OnEnemyAttack); EventSys.Instance.AddHander(ViewEvent.FightUpdateHeroState, OnUpdateHero); EventSys.Instance.AddHander(ViewEvent.FightUpdateAllHeroState, OnUpdateAllHero); EventSys.Instance.AddHander(ViewEvent.FightLoseReturnToStage, OnFinish); EventSys.Instance.AddHander(ViewEvent.FightShowTipNotSupportYet, ShowTipNotSupportYet); EventSys.Instance.AddHander(ViewEvent.FightShowItemDes, ShowItemDes); }
void InitStageUi(UINode rootNode) { _stageNode = rootNode.GetNode("Stage"); _stageCanvas = _stageNode.GetComponent <Canvas>(); Button btnExit = _stageNode.GetRef("ButtonExit").GetComponent <Button>(); btnExit.onClick.AddListener(OnBtnExitClicked); _modelNode = _stageNode.GetNode("Models"); _stageNodeModel = _modelNode.GetNode("Node_model").gameObject; _heroNodeModel = _modelNode.GetNode("HeroNode_model").gameObject; _lineModel = _modelNode.GetNode("Slider_model").gameObject; _layerNameModel = _modelNode.GetRef("LayerName_model").gameObject; _heroShowModel = _modelNode.GetNode("HeroShow_model").gameObject; _stageScrollContent = _stageNode.GetNode("Content"); _stageNodeRootTrans = _stageScrollContent.GetRef("Stage").transform; _stageLineRootTrans = _stageScrollContent.GetRef("Line").transform; _stageLayerRootTrans = _stageScrollContent.GetRef("LayerNames").transform; Button btnReady = _stageNode.GetRef("ButtonReady").GetComponent <Button>(); btnReady.onClick.AddListener(OnBtnReadyClicked); _stageNode.GetRef("HeroShowtList").gameObject.SetActive(true); _stageNode.GetRef("HeroShowtList").gameObject.SetActive(false); _warning = _stageNode.GetNode("Warning"); DelayAction da = _warning.gameObject.AddComponent <DelayAction>(); da.DelaySecond = 1; da.DAction = () => { _warning.gameObject.SetActive(false); }; _warning.gameObject.SetActive(false); _dialog = _stageNode.GetNode("Dialog"); _dialog.GetRef("Button").GetComponent <Button>().onClick.AddListener(() => { EventSys.Instance.AddEvent(InputEvent.FightExit); }); _dialog.gameObject.SetActive(false); _winNode = _stageNode.GetNode("Win"); _winNode.GetRef("Button").GetComponent <Button>().onClick.AddListener(() => { EventSys.Instance.AddEvent(InputEvent.FightExit); }); _winNode.gameObject.SetActive(false); }
public override void InitUI(UINode rootNode) { base.InitUI(rootNode); _rewardNode = rootNode.GetComponent <UINode>(); _getBtn = _rewardNode.GetRef("Get").GetComponent <Button>(); _getBtn.onClick.AddListener(GetReward); _getBtn.gameObject.SetActive(false); _exitBtn = _rewardNode.GetRef("Confirm").GetComponent <Button>(); _exitBtn.onClick.AddListener(HideRewardView); _exitBtn.gameObject.SetActive(false); _models = rootNode.GetNode("Models"); _rewardNode.gameObject.SetActive(false); EventSys.Instance.AddHander(ViewEvent.ShowNodeRewardDetails, ShowNodeReward); EventSys.Instance.AddHander(ViewEvent.ShowNodeRewardGet, GetNodeReward); }
public static void WalkTree(ParseTreeNode Node) { //TODO: Pass UIScene into this so it can be filled with the correct elements. if (Node.AstNode != null) { AstNode ANode = (AstNode)Node.AstNode; switch (Node.AstNode.ToString()) { case "DefineImage": Console.WriteLine("DefineImage: " + ANode.ChildNodes[0].ToString()); break; case "SetSharedProperties": SetSharedPropsNode SharedPropertiesNode = (SetSharedPropsNode)UINode.GetNode(ANode); Console.Write("SetSharedProperties: "); if (SharedPropertiesNode.StringTable != null) { Console.WriteLine("StringTable: " + SharedPropertiesNode.StringTable); } break; case "DefineString": Console.WriteLine("DefineString: " + ANode.ChildNodes[0].ToString()); break; } } foreach (ParseTreeNode Child in Node.ChildNodes) { WalkTree(Child); } }
/// <summary> /// Walks a generated AST (Abstract Syntax Tree) and creates the elements of this UIScreen. /// </summary> /// <param name="State">A ParserState instance.</param> /// <param name="node">The root node of the AST.</param> private void WalkTree(UIParser.ParserState State, AstNode node, ref ParseResult Result) { NodeType NType = (NodeType)Enum.Parse(typeof(NodeType), node.ToString(), true); switch (NType) { case NodeType.DefineImage: //Defines an image and loads a texture for it. DefineImageNode ImgNode = (DefineImageNode)UINode.GetNode(node); UIImage Img = new UIImage(ImgNode, m_Screen); Result.Elements.Add(ImgNode.Name, Img); break; case NodeType.DefineString: //Defines a string with a name. DefineStringNode StrNode = (DefineStringNode)UINode.GetNode(node); Result.Strings.Add(StrNode.Name, StringManager.StrTable(State.CurrentStringTable)[StrNode.StrIndex]); break; case NodeType.AddButton: //Defines a button. AddButtonNode ButtonNode = (AddButtonNode)UINode.GetNode(node); UIButton Btn = new UIButton(ButtonNode, Result, m_Screen); Result.Elements.Add(ButtonNode.Name, Btn); break; case NodeType.AddText: AddTextNode TextNode = (AddTextNode)UINode.GetNode(node); UILabel Lbl = new UILabel(TextNode, Result, m_Screen); Result.Elements.Add(TextNode.Name, Lbl); break; case NodeType.AddTextEdit: AddTextEditNode TextEditNode = (AddTextEditNode)UINode.GetNode(node); UITextEdit2 Txt = new UITextEdit2(TextEditNode, State, m_Screen); Result.Elements.Add(TextEditNode.Name, Txt); break; case NodeType.AddSlider: AddSliderNode SliderNode = (AddSliderNode)UINode.GetNode(node); UISlider Slider = new UISlider(SliderNode, State, m_Screen); Result.Elements.Add(SliderNode.Name, Slider); break; case NodeType.SetSharedProperties: //Assigns a bunch of shared properties to declarations following the statement. State.InSharedPropertiesGroup = true; SetSharedPropsNode SharedPropsNode = (SetSharedPropsNode)UINode.GetNode(node); if (SharedPropsNode.StringTable != null) { State.CurrentStringTable = (int)SharedPropsNode.StringTable; } if (SharedPropsNode.ControlPosition != null) { State.Position[0] = SharedPropsNode.ControlPosition.Numbers[0]; State.Position[1] = SharedPropsNode.ControlPosition.Numbers[1]; break; } if (SharedPropsNode.Color != null) { State.Color = new Color(); State.Color.R = (byte)SharedPropsNode.Color.Numbers[0]; State.Color.G = (byte)SharedPropsNode.Color.Numbers[1]; State.Color.B = (byte)SharedPropsNode.Color.Numbers[2]; } if (SharedPropsNode.TextColor != null) { State.TextColor = new Color(); State.TextColor.R = (byte)SharedPropsNode.TextColor.Numbers[0]; State.TextColor.G = (byte)SharedPropsNode.TextColor.Numbers[1]; State.TextColor.B = (byte)SharedPropsNode.TextColor.Numbers[2]; } if (SharedPropsNode.TextColorSelected != null) { State.TextColorSelected = new Color(); State.TextColorSelected.R = (byte)SharedPropsNode.TextColorSelected.Numbers[0]; State.TextColorSelected.G = (byte)SharedPropsNode.TextColorSelected.Numbers[1]; State.TextColorSelected.B = (byte)SharedPropsNode.TextColorSelected.Numbers[2]; } if (SharedPropsNode.TextColorHighlighted != null) { State.TextColorHighlighted = new Color(); State.TextColorHighlighted.R = (byte)SharedPropsNode.TextColorHighlighted.Numbers[0]; State.TextColorHighlighted.G = (byte)SharedPropsNode.TextColorHighlighted.Numbers[1]; State.TextColorHighlighted.B = (byte)SharedPropsNode.TextColorHighlighted.Numbers[2]; } if (SharedPropsNode.TextColorDisabled != null) { State.TextColorDisabled = new Color(); State.TextColorDisabled.R = (byte)SharedPropsNode.TextColorDisabled.Numbers[0]; State.TextColorDisabled.G = (byte)SharedPropsNode.TextColorDisabled.Numbers[1]; State.TextColorDisabled.B = (byte)SharedPropsNode.TextColorDisabled.Numbers[2]; } if (SharedPropsNode.BackColor != null) { State.BackColor = new Color(); State.BackColor.R = (byte)SharedPropsNode.BackColor.Numbers[0]; State.BackColor.G = (byte)SharedPropsNode.BackColor.Numbers[1]; State.BackColor.B = (byte)SharedPropsNode.BackColor.Numbers[2]; } if (SharedPropsNode.CursorColor != null) { State.CursorColor = new Color(); State.CursorColor.R = (byte)SharedPropsNode.CursorColor.Numbers[0]; State.CursorColor.G = (byte)SharedPropsNode.CursorColor.Numbers[1]; State.CursorColor.B = (byte)SharedPropsNode.CursorColor.Numbers[2]; } if (SharedPropsNode.TextButton) { State.TextButton = true; } if (SharedPropsNode.Opaque != null) { State.IsOpaque = (SharedPropsNode.Opaque == 1) ? true : false; } if (SharedPropsNode.Transparent != null) { State.IsTransparent = (SharedPropsNode.Transparent == 1) ? true : false; } if (SharedPropsNode.Alignment != null) { State.Alignment = (int)SharedPropsNode.Alignment; } if (SharedPropsNode.Image != "") { State.Image = SharedPropsNode.Image; } if (SharedPropsNode.Tooltip != "") { State.Tooltip = SharedPropsNode.Tooltip; } if (SharedPropsNode.Text != "") { State.Caption = SharedPropsNode.Text; } if (SharedPropsNode.Size != null) { State.Size = new Vector2(SharedPropsNode.Size.Numbers[0], SharedPropsNode.Size.Numbers[1]); } if (SharedPropsNode.Orientation != null) { State.Orientation = (int)SharedPropsNode.Orientation; } if (SharedPropsNode.Font != null) { State.Font = (int)SharedPropsNode.Font; } if (SharedPropsNode.Opaque != null) { State.Opaque = (int)SharedPropsNode.Opaque; } break; case NodeType.SetControlProperties: //Sets a bunch of properties to a specified control. SetControlPropsNode ControlPropsNode = (SetControlPropsNode)UINode.GetNode(node); UIControl Ctrl = new UIControl(ControlPropsNode, m_Screen, State); Result.Controls.Add(ControlPropsNode.Control, Ctrl); if (State.InSharedPropertiesGroup) { UIElement Test = new UIElement(m_Screen, null); //Script implicitly created an object... :\ if (!Result.Elements.TryGetValue(ControlPropsNode.Control, out Test)) { Result.Elements.Add(ControlPropsNode.Control, new UIElement(m_Screen, null)); if (Ctrl.Image != null) { Result.Elements[ControlPropsNode.Control].Image = new UIImage(Ctrl.Image); } Result.Elements[ControlPropsNode.Control].Position = Ctrl.Position; } } break; case NodeType.End: State.InSharedPropertiesGroup = false; State.Image = ""; //Reset State.TextButton = false; //Reset State.Color = new Color(); State.Caption = ""; State.Size = new Vector2(0, 0); State.Alignment = 0; State.Font = 0; //TODO: Reset more? break; } foreach (AstNode child in node.ChildNodes) { WalkTree(State, child, ref Result); } }
void CreateReward(Reward reward) { UINode itemNode = _models.GetNode("Item_model"); Transform scTrans = _rewardNode.GetRef("Content"); reward.ConditionData.Sort(); foreach (Reward.Condition cItem in reward.ConditionData) { if (!string.IsNullOrEmpty(cItem.Express)) { //show condition UINode conditionNode = _models.GetNode("Condition_model"); GameObject conditionObj = Instantiate(conditionNode.gameObject, scTrans); UINode cNode = conditionObj.GetComponent <UINode>(); Dictionary <int, BaseDataInfo> res = ConfigDataMgr.Instance.GetData <PropertyDesTableData>(); string showExpress = ""; string showVal = ""; foreach (KeyValuePair <int, BaseDataInfo> pair in res) { PDesDataInfo info = (PDesDataInfo)pair.Value; if (info.PropertyName.Equals(cItem.Express)) { showExpress = info.Description; for (int i = 0; i < info.Values.Count; i++) { if (cItem.Val.Equals(info.Values[i])) { showVal = info.ValueDes[i]; break; } } } } cNode.GetRef("Condition").GetComponent <Text>().text = "如果<color=#4040DC>" + showExpress + "=" + showVal + "</color>"; } foreach (Item item in cItem.Rewards) { GameObject newNodeObj = Instantiate(itemNode.gameObject, scTrans); //newNodeObj.transform.SetParent(scTrans); UINode newNode = newNodeObj.GetComponent <UINode>(); Image bg = newNode.GetRef("Bg").GetComponent <Image>(); bg.sprite = GameResSys.Instance.GetFrame(item.Lv.Value); Image icon = newNode.GetRef("Icon").GetComponent <Image>(); icon.sprite = GameResSys.Instance.GetItem(item.Icon); Text itemName = newNode.GetRef("Name").GetComponent <Text>(); itemName.text = item.Name; if (item.Count.Value > 1) { itemName.text = item.Name + " * " + item.Count.Value; } Text itemDes = newNode.GetRef("Des").GetComponent <Text>(); itemDes.text = item.Description; newNodeObj.SetActive(true); } } itemNode.gameObject.SetActive(false); _rewardNode.GetRef("Scroll View").GetComponent <ScrollRect>().ScrollToTop(); _rewardNode.gameObject.SetActive(true); }