Example #1
0
        /// <summary>
        ///
        /// </summary>
        public override void Update()
        {
            int am = GunBox.Instance.CurrertAM;
            ColorStringBuilder colorStringBuilder = new ColorStringBuilder();

            colorStringBuilder.ForeColor = Color.Blue;
            colorStringBuilder.AppendString("AM: ");

            if (am > 0)
            {
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < am; i++)
                {
                    sb.Append('>');
                }
                colorStringBuilder.ForeColor = Color.Green;
                colorStringBuilder.AppendString(sb.ToString());
            }
            else
            {
                colorStringBuilder.ForeColor = Color.Red;
                colorStringBuilder.AppendString("EMPTY");
                //这里展示了组件化的好处(坏处)如何找一个要找的物体

                /*
                 * Gunbox.Instance 获取Gunbox这个脚本的引用.这个脚本有一个单例引用
                 * .GetComponent<ListBox>() 获取这个物体上的ListBox组件
                 * .CurrentItem 组件当前正在被选区的对象
                 * .GetComponent<Renderer>() 由于更改颜色是一个组件本身不提供的功能,这个功能位于同一物体的Renderer组件中
                 * .SetForeColor(Color.Red); 调用这个子物体的Renderer组件完成变色
                 * 这是一个其他的例子
                 * GunBox.Instanse..GetComponent<ListBox>().CurrentItem.GetComponent<Gun>().AM = 0;
                 */
                GunBox.Instance.GetComponent <ListBox>().CurrentItem.GetComponent <Renderer>().SetForeColor(Color.Red);
            }
            textBox.Labels[2].Rendering(colorStringBuilder.ToRenderer());
        }
Example #2
0
        /// <summary>
        /// 刷新,根据所有数据刷新显示,这个排版方式虽然还可以,但是过于不优雅了.
        /// 日后需要从引擎层面加以改善,目前是notepad排版,然后用这个拼
        /// </summary>
        public void Refresh(Character character)
        {
            ColorStringBuilder sb = new ColorStringBuilder();

            sb.AppendString("-[", DefaultColor);
            sb.AppendString(CharUtils.SubStr(character.ClassName, 2), Color.Blue);
            sb.AppendString("][", DefaultColor);
            sb.AppendString(CharUtils.SubStr(character.CharacterName, 12), Color.DarkCyan);
            sb.AppendString("]-[HP]", DefaultColor);
            string hp = "[ " + CharUtils.ParseNum(character.HP, 4) + "/" + CharUtils.ParseNum(character.MaxHP, 4) + "]";

            sb.AppendString(hp);

            if (character.Buffs.Count > 0)
            {
                sb.AppendString("-[", DefaultColor);
                sb.AppendString(character.Buffs[0].Icon);
            }
            #region 略 太丑了
            if (character.Buffs.Count > 1)
            {
                sb.AppendString("][", DefaultColor);
                sb.AppendString(character.Buffs[1].Icon);
            }
            if (character.Buffs.Count > 2)
            {
                sb.AppendString("][", DefaultColor);
                sb.AppendString(character.Buffs[2].Icon);
            }
            if (character.Buffs.Count > 3)
            {
                sb.AppendString("] -[", DefaultColor);
                sb.AppendString(character.Buffs[3].Icon);
            }
            if (character.Buffs.Count > 4)
            {
                sb.AppendString("][", DefaultColor);
                sb.AppendString(character.Buffs[4].Icon);
            }
            #endregion
            if (character.Buffs.Count > 5)
            {
                sb.AppendString("][", DefaultColor);
                sb.AppendString(character.Buffs[5].Icon);
                sb.AppendString("] ", DefaultColor);
            }

            labelCom.Rendering(sb.ToRenderer());

            progressBar.MaxValue = character.MaxHP;
            progressBar.Value    = character.HP;
        }