msg.PushNewline();
var time = NextPulseTime.Value - _timing.CurTime;
var timestring = $"{time.Minutes:00}:{time.Seconds:00}";
- msg.AddMarkup(Loc.GetString("anomaly-scanner-pulse-timer", ("time", timestring)));
+ msg.AddMarkupOrThrow(Loc.GetString("anomaly-scanner-pulse-timer", ("time", timestring)));
}
TextDisplay.SetMarkup(msg.ToMarkup());
msg.PushNewline();
if (secret != null && secret.Secret.Contains(AnomalySecretData.Behavior))
- msg.AddMarkup(Loc.GetString("anomaly-behavior-unknown"));
+ msg.AddMarkupOrThrow(Loc.GetString("anomaly-behavior-unknown"));
else
{
if (anomalyComp.CurrentBehavior != null)
if (ent.Comp.BleedAmount > ent.Comp.MaxBleedAmount / 2)
{
args.Message.PushNewline();
- args.Message.AddMarkup(Loc.GetString("bloodstream-component-profusely-bleeding", ("target", ent.Owner)));
+ args.Message.AddMarkupOrThrow(Loc.GetString("bloodstream-component-profusely-bleeding", ("target", ent.Owner)));
}
// Shows bleeding message when bleeding, but less than profusely.
else if (ent.Comp.BleedAmount > 0)
{
args.Message.PushNewline();
- args.Message.AddMarkup(Loc.GetString("bloodstream-component-bleeding", ("target", ent.Owner)));
+ args.Message.AddMarkupOrThrow(Loc.GetString("bloodstream-component-bleeding", ("target", ent.Owner)));
}
// If the mob's blood level is below the damage threshhold, the pale message is added.
if (GetBloodLevelPercentage(ent, ent) < ent.Comp.BloodlossThreshold)
{
args.Message.PushNewline();
- args.Message.AddMarkup(Loc.GetString("bloodstream-component-looks-pale", ("target", ent.Owner)));
+ args.Message.AddMarkupOrThrow(Loc.GetString("bloodstream-component-looks-pale", ("target", ent.Owner)));
}
}
private FormattedMessage GetArmorExamine(DamageModifierSet armorModifiers)
{
var msg = new FormattedMessage();
-
- msg.AddMarkup(Loc.GetString("armor-examine"));
+ msg.AddMarkupOrThrow(Loc.GetString("armor-examine"));
foreach (var coefficientArmor in armorModifiers.Coefficients)
{
msg.PushNewline();
var armorType = Loc.GetString("armor-damage-type-" + coefficientArmor.Key.ToLower());
- msg.AddMarkup(Loc.GetString("armor-coefficient-value",
+ msg.AddMarkupOrThrow(Loc.GetString("armor-coefficient-value",
("type", armorType),
("value", MathF.Round((1f - coefficientArmor.Value) * 100, 1))
));
msg.PushNewline();
var armorType = Loc.GetString("armor-damage-type-" + flatArmor.Key.ToLower());
- msg.AddMarkup(Loc.GetString("armor-reduction-value",
+ msg.AddMarkupOrThrow(Loc.GetString("armor-reduction-value",
("type", armorType),
("value", flatArmor.Value)
));
var modifier = component.IsBlocking ? component.ActiveBlockDamageModifier : component.PassiveBlockDamageModifer;
var msg = new FormattedMessage();
-
- msg.AddMarkup(Loc.GetString("blocking-fraction", ("value", MathF.Round(fraction * 100, 1))));
+ msg.AddMarkupOrThrow(Loc.GetString("blocking-fraction", ("value", MathF.Round(fraction * 100, 1))));
AppendCoefficients(modifier, msg);
foreach (var coefficient in modifiers.Coefficients)
{
msg.PushNewline();
- msg.AddMarkup(Robust.Shared.Localization.Loc.GetString("blocking-coefficient-value",
+ msg.AddMarkupOrThrow(Robust.Shared.Localization.Loc.GetString("blocking-coefficient-value",
("type", coefficient.Key),
("value", MathF.Round(coefficient.Value * 100, 1))
));
foreach (var flat in modifiers.FlatReduction)
{
msg.PushNewline();
- msg.AddMarkup(Robust.Shared.Localization.Loc.GetString("blocking-reduction-value",
+ msg.AddMarkupOrThrow(Robust.Shared.Localization.Loc.GetString("blocking-reduction-value",
("type", flat.Key),
("value", flat.Value)
));
if (solution.Volume == 0)
{
- msg.AddMarkup(Loc.GetString("scannable-solution-empty-container"));
+ msg.AddMarkupOrThrow(Loc.GetString("scannable-solution-empty-container"));
return msg;
}
- msg.AddMarkup(Loc.GetString("scannable-solution-main-text"));
+ msg.AddMarkupOrThrow(Loc.GetString("scannable-solution-main-text"));
var reagentPrototypes = solution.GetReagentPrototypes(PrototypeManager);
foreach (var (proto, quantity) in sortedReagentPrototypes)
{
msg.PushNewline();
- msg.AddMarkup(Loc.GetString("scannable-solution-chemical"
+ msg.AddMarkupOrThrow(Loc.GetString("scannable-solution-chemical"
, ("type", proto.LocalizedName)
, ("color", proto.SubstanceColor.ToHexNoAlpha())
, ("amount", quantity)));
}
msg.PushNewline();
- msg.AddMarkup(Loc.GetString("scannable-solution-temperature", ("temperature", Math.Round(solution.Temperature))));
+ msg.AddMarkupOrThrow(Loc.GetString("scannable-solution-temperature", ("temperature", Math.Round(solution.Temperature))));
return msg;
}
if (string.IsNullOrEmpty(type))
{
- msg.AddMarkup(Loc.GetString("damage-examine"));
+ msg.AddMarkupOrThrow(Loc.GetString("damage-examine"));
}
else
{
- msg.AddMarkup(Loc.GetString("damage-examine-type", ("type", type)));
+ msg.AddMarkupOrThrow(Loc.GetString("damage-examine-type", ("type", type)));
}
foreach (var damage in damageSpecifier.DamageDict)
if (damage.Value != FixedPoint2.Zero)
{
msg.PushNewline();
- msg.AddMarkup(Loc.GetString("damage-value", ("type", _prototype.Index<DamageTypePrototype>(damage.Key).LocalizedName), ("amount", damage.Value)));
+ msg.AddMarkupOrThrow(Loc.GetString("damage-value", ("type", _prototype.Index<DamageTypePrototype>(damage.Key).LocalizedName), ("amount", damage.Value)));
}
}