コード例 #1
0
ファイル: FightView.cs プロジェクト: sooncat/ProjectRougeLike
    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);
    }
コード例 #2
0
ファイル: FightView.cs プロジェクト: sooncat/ProjectRougeLike
    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);
    }
コード例 #3
0
ファイル: StageView.cs プロジェクト: sooncat/ProjectRougeLike
    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);
    }
コード例 #4
0
    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);
    }
コード例 #5
0
        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);
            }
        }
コード例 #6
0
        /// <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);
            }
        }
コード例 #7
0
    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);
    }