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()); }
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); }
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); }