public static String getRanksExplanation(PlayerCharacter pc, Skill sk) { StringBuilder sb = new StringBuilder(100); boolean needComma = false; for (PCClass pcc : pc.getSkillRankClasses(sk)) { if (needComma) { sb.append(", "); } sb.append(pcc == null ? "None" : pcc.getKeyName()); sb.append(':'); Double rank = pc.getSkillRankForClass(sk, pcc); sb.append(rank == null ? 0 : rank); needComma = true; } double bonus = SkillRankControl.getSkillRankBonusTo(pc, sk); if (bonus != 0d) { if (sb.length() > 0) { sb.append("; "); } sb.append("Skillrank bonus "); sb.append(NumberFormat.getNumberInstance().format(bonus)); } return sb.toString(); }