示例#1
0
        private void PrintBar(string name, int y, StatBlock stats, int statID)
        {
            var str    = $"{name} ({stats.Cur(statID)}/{stats.Max(statID)})";
            var width  = Data.Size.X;
            var offset = (width - str.Length) / 2;

            var p       = stats.Perc(statID);
            var fgColor = Color.White;// (p > 0.8) ? Color.Green : (p > 0.5) ? Color.Yellow : (p > 0.2) ? Color.Orange : Color.Red;

            for (int x = 0; x < width; x++)
            {
                var bgColor = (x <= p * width + 0.5) ? Color.Red : Color.Black;

                var ascii = (x >= offset && x < str.Length + offset) ? str[x - offset] : ' ';
                Data[new Vec(x, y)] = new Symbol {
                    Ascii = ascii, BackgroundColor = bgColor, TextColor = fgColor
                };
            }
        }
示例#2
0
        public void BarValues()
        {
            var sb = new StatBlock(10, 0, 0);

            Assert.AreEqual(sb.Cur(0), 10);
            Assert.AreEqual(sb.Max(0), 10);
            Assert.AreEqual(sb.Perc(0), 1f);

            /*
             * sb.TakeDamage( -= 5;
             * Assert.AreEqual(sb.Cur(0), 5);
             * Assert.AreEqual(sb.Max, 10);
             * Assert.AreEqual(sb.Perc, 0.5f);
             *
             * b.Current += 15;
             * Assert.AreEqual(sb.Current, 10);
             * Assert.AreEqual(sb.Max, 10);
             * Assert.AreEqual(sb.Perc, 1f);
             *
             * b.Max = 15;
             * Assert.AreEqual(sb.Current, 10);
             * Assert.AreEqual(sb.Max, 15);
             *
             * b.Max = 5;
             * Assert.AreEqual(b.Current, 5);
             * Assert.AreEqual(b.Max, 5);
             * Assert.AreEqual(b.Perc, 1f);
             *
             * b.Max = 10;
             * Assert.AreEqual(b.Current, 5);
             * Assert.AreEqual(b.Max, 10);
             * Assert.AreEqual(b.Perc, 0.5f);
             *
             * b.Current -= 20;
             * Assert.AreEqual(b.Current, 0);
             * Assert.AreEqual(b.Max, 10);
             * Assert.AreEqual(b.Perc, 0f);
             */
        }