Exemplo n.º 1
0
        protected override void DrawHP()
        {
            CharConsole.PrintString(6, 6, "         ");
            var currentHP     = CurrentChar.CurrentHP;
            var percentage    = currentHP / CurrentChar.Stats.GetTotalStat(BaseStat.HP);
            var colour        = new TCODColor((float)(120d * percentage), 1f, 1f);
            var colourControl = CharConsole.GetColorControlString(colour);

            CharConsole.PrintString(14, 6, "{0}{1}{2}", TCODAlignment.RightAlignment, colourControl,
                                    RHelper.SanitizeNumber(currentHP), CharConsole.GetStopControl());
        }
Exemplo n.º 2
0
        public override void Run()
        {
            var fetchCount   = 5;
            var printedLines = 0;

            do
            {
                _logConsole.Clear();
                var redControl   = _logConsole.GetColorControlString(TCODColor.red);
                var greenControl = _logConsole.GetColorControlString(TCODColor.green);
                var stopControl  = _logConsole.GetStopControl();

                _logConsole.PrintString(1, 1, "{0}Battlelog:{1}", redControl, stopControl);
                _logConsole.DrawBorder();

                var log = _log.GetLastEntries(fetchCount);
                printedLines = 0;

                foreach (var logEntry in log)
                {
                    _logBuilder.Clear();
                    var printArea = new Rectangle(_logArea.X, _logArea.Y + printedLines, _logArea.Width,
                                                  _logArea.Height - printedLines);
                    if (logEntry.IsCustomMessage)
                    {
                        _logBuilder.Append(logEntry.CustomMessage).AppendNewLine().AppendNewLine();
                        printedLines += _logConsole.PrintString(printArea, _logBuilder.ToString());
                        continue;
                    }

                    _logBuilder.AppendFormat("{0}{1}{2} uses {3} on {4}{5}{6}",
                                             logEntry.CasterIsEnemy ? redControl : greenControl, logEntry.CasterName, stopControl,
                                             logEntry.SpellName, logEntry.ReceiverIsEnemy ? redControl : greenControl,
                                             logEntry.SelfCast ? "self" : logEntry.ReceiverName, stopControl);

                    if (logEntry.AttackDodged)
                    {
                        _logBuilder.Append(" but the attack was dodged");
                    }
                    else
                    {
                        _logBuilder.Append(logEntry.WasHealed ? " healing for " : " dealing ")
                        .Append(logEntry.WasHealed ? greenControl : redControl)
                        .Append(logEntry.Value <= 0d ? "no" : RHelper.SanitizeNumber(logEntry.Value))
                        .Append(stopControl)
                        .Append(logEntry.WasHealed ? " healing" : " damage");
                    }

                    if (logEntry.AttackBlocked)
                    {
                        _logBuilder.Append(" (blocked)");
                    }

                    if (logEntry.WasAfflicted)
                    {
                        _logBuilder.Append(" and inflicting ")
                        .Append(logEntry.AfflictedBy);
                    }

                    _logBuilder.Append("!");

                    if (logEntry.Fatal)
                    {
                        _logBuilder.AppendNewLine()
                        .AppendNewLine()
                        .Append(logEntry.ReceiverName)
                        .AppendNewLine(" dies!");
                    }

                    _logBuilder.AppendNewLine();
                    printedLines += _logConsole.PrintString(printArea, _logBuilder.ToString());
                }
                --fetchCount;
            } while (printedLines > MaxLogLines);
            _root.Blit(_logConsole, _logConsole.Bounds, _position.X, _position.Y);
        }
Exemplo n.º 3
0
        public void DrawStats(ICharacter character, IRConsole targetConsole = null)
        {
            var target = targetConsole ?? RootConsole;

            Clear();
            SetupStatics();
            PrintString(35, 1, string.Format("Level: {0}", character.CurrentLevel), TCODAlignment.RightAlignment);
            PrintString(23, 30, character.Stats.EVAType == EVAType.Dodge ? "Dodge" : "Block");
            PrintString(4, 2, character.Name);
            PrintString(4, 5, character.Race);

            var stats      = character.Stats;
            var statFormat = new StringBuilder();

            statFormat.AppendFormat("{0} / {1}\n", RHelper.SanitizeNumber(character.CurrentHP),
                                    RHelper.SanitizeNumber(stats.GetTotalStat(BaseStat.HP)));
            statFormat.AppendFormat("{0} / {1}\n", character.CurrentMP, 200);

            var statStrengthFormat = new StringBuilder();
            var hpPercentage       = (float)(character.CurrentHP / stats.GetTotalStat(BaseStat.HP));
            var mpPercentage       = (float)(character.CurrentMP / 200d);

            //var stopControl2 = GetColorControlString(TCODColor.white);
            //var stopControl = TCODConsole.getColorControlString(8); // \b
            var stopControl = GetStopControl();

            statStrengthFormat.AppendFormat("{0}{1}%%{2}\n",
                                            GetColorControlString(new TCODColor(120f * hpPercentage, 1f, 1f)),
                                            (hpPercentage * 100d).ToString("F0"), stopControl);

            statStrengthFormat.AppendFormat("{0}{1}%%{2}\n",
                                            GetColorControlString(new TCODColor(205f * mpPercentage, 1f, 1f)),
                                            (mpPercentage * 100d).ToString("F0"), stopControl);

            for (var stat = Stat.AD; stat <= Stat.CHA; ++stat)
            {
                statFormat.AppendFormat("{0}\n", RHelper.SanitizeNumber(stats.GetTotalStat(stat)));
                statStrengthFormat.AppendFormat("{0}{1}%%{2}\n", GetColor(stats, stat),
                                                (stats[stat][StatType.BattleMod] * 100d).ToString("F0"), stopControl);
            }

            PrintString(StatRectangle, statFormat.ToString().TrimEnd());
            PrintString(StatStrengthRect, statStrengthFormat.ToString().TrimEnd());

            var masteryFormat         = new StringBuilder();
            var masteryStrengthFormat = new StringBuilder();

            for (var stat = Stat.FIR; stat <= Stat.LGT; ++stat)
            {
                masteryFormat.AppendFormat("{0}\n", (int)stats.GetTotalStat(stat));
                masteryStrengthFormat.AppendFormat("{0}{1}%%{2}\n",
                                                   GetColor(stats, stat), (int)(stats[stat][StatType.BattleMod] * 100d), stopControl);
            }

            PrintString(MasteryRect, masteryFormat.ToString().TrimEnd());
            PrintString(MasteryStrengthRect, masteryStrengthFormat.ToString().TrimEnd());

            var resiFormat         = new StringBuilder();
            var resiStrengthFormat = new StringBuilder();

            for (var stat = Stat.PSN; stat <= Stat.SIL; ++stat)
            {
                if (stat == Stat.SLW || stat == Stat.STD)
                {
                    continue;
                }

                resiFormat.AppendFormat("{0}\n", (int)stats.GetTotalStat(stat));
                resiStrengthFormat.AppendFormat("{0}{1}%%{2}\n", GetColor(stats, stat),
                                                (int)(stats[stat][StatType.BattleMod] * 100d), stopControl);
            }

            PrintString(ResiRect, resiFormat.ToString().TrimEnd());
            PrintString(ResiStrengthRect, resiStrengthFormat.ToString().TrimEnd());

            target.Blit(this, Bounds, _position.X, _position.Y);
        }