private void ScoreboardStrip_UpdateMoneyText(On.RoR2.UI.ScoreboardStrip.orig_UpdateMoneyText orig, ScoreboardStrip self) { var master = self.GetFieldValue <CharacterMaster>("master"); if (master?.inventory is null) { return; } var tierCountMap = Utils.GetTierCounts(master.inventory); var tierCountMapFiltered = tierCountMap.Where(kv => kv.Value > 0); var itemCount = tierCountMap.Sum(kv => kv.Value); StringBuilder sb = new StringBuilder(); if (itemCount > 0) { sb.Append($"<nobr><color=#FFF>{itemCount} "); sb.Append("["); foreach (var pair in tierCountMapFiltered) { string tierCount = pair.Value.ToString().Colorize(Utils.TierToHexString(pair.Key)); sb.Append($"{tierCount}"); sb.Append(" "); } if (sb[sb.Length - 1] == ' ') { sb[sb.Length - 1] = ']'; } sb.Append("</color></nobr>\n<nobr>"); } sb.Append($"${master.money}</nobr>"); self.moneyText.text = sb.ToString(); self.moneyText.overflowMode = TMPro.TextOverflowModes.Overflow; }
internal void ScoreboardStrip_Update(On.RoR2.UI.ScoreboardStrip.orig_Update orig, ScoreboardStrip self) { orig(self); if (self.master && self.master.inventory) { BetterUI.sharedStringBuilder.Clear(); BetterUI.sharedStringBuilder.Append(Util.GetBestMasterName(self.master)); BetterUI.sharedStringBuilder.Append("\n<#F8FC97>"); BetterUI.sharedStringBuilder.Append(self.master.money); BetterUI.sharedStringBuilder.Append("</color>"); self.nameLabel.text = BetterUI.sharedStringBuilder.ToString(); BetterUI.sharedStringBuilder.Clear(); BetterUI.sharedStringBuilder.Append("<#FFFFFF>"); if (mod.config.ItemCountersShowItemSum.Value) { itemSum = 0; foreach (var tier in mod.config.ItemCountersItemSumTiers) { itemSum += self.master.inventory.GetTotalItemCountOfTier(tier); } BetterUI.sharedStringBuilder.Append(itemSum); if (mod.config.ItemCountersShowItemScore.Value) { BetterUI.sharedStringBuilder.Append(" | "); } } if (mod.config.ItemCountersShowItemScore.Value) { itemScore = 0; foreach (var item in self.master.inventory.itemAcquisitionOrder) { int value; itemScore += mod.config.ItemCountersItemScores.TryGetValue(ItemCatalog.GetItemDef(item).nameToken, out value) ? value * self.master.inventory.GetItemCount(item) : 0; } BetterUI.sharedStringBuilder.Append(itemScore); } if (mod.config.ItemCountersShowItemsByTier.Value) { BetterUI.sharedStringBuilder.Append("\n"); foreach (var tier in mod.config.ItemCountersItemsByTierOrder) { BetterUI.sharedStringBuilder.Append(" <#"); BetterUI.sharedStringBuilder.Append(tierColorMap[(int)tier]); BetterUI.sharedStringBuilder.Append(">"); BetterUI.sharedStringBuilder.Append(self.master.inventory.GetTotalItemCountOfTier(tier)); BetterUI.sharedStringBuilder.Append("</color>"); } } BetterUI.sharedStringBuilder.Append("</color>"); self.moneyText.text = BetterUI.sharedStringBuilder.ToString(); } }
private void ScoreboardStrip_SetMaster(On.RoR2.UI.ScoreboardStrip.orig_SetMaster orig, ScoreboardStrip self, CharacterMaster newMaster) { orig(self, newMaster); self.moneyText.GetComponent <LayoutElement>().preferredWidth = 200f; }
internal void ScoreboardStrip_SetMaster(On.RoR2.UI.ScoreboardStrip.orig_SetMaster orig, ScoreboardStrip self, CharacterMaster master) { orig(self, master); self.nameLabel.lineSpacing = -20; self.nameLabel.overflowMode = TMPro.TextOverflowModes.Truncate; self.nameLabel.enableWordWrapping = false; self.moneyText.overflowMode = TMPro.TextOverflowModes.Overflow; }