public static void PrintItemSet(FLD_SalvageItemSet table, Indenter sb) { if (table.RSC_ID != 0) { sb.AppendLine($"{GetTBoxType(table.RSC_ID)} treasure box<br/>"); } if (table.goldMin != 0) { sb.AppendLine($"{table.goldMin} - {table.goldMax} Gold<br/>"); } if (table.randitmPopMin == table.randitmPopMax) { sb.AppendLine($"{table.randitmPopMin} Items<br/>"); } else { sb.AppendLine($"{table.randitmPopMin} - {table.randitmPopMax} Items<br/>"); } sb.AppendLine("<br/>"); sb.AppendLine("</td></tr>"); for (int i = 0; i < 8; i++) { if (table._itmID[i] == null) { continue; } string itemName = GetItemName(table._itmID[i]); sb.AppendLine($"<tr><td>{itemName}</td><td>{table._itmPer[i] / 100.0:P}</td></tr>"); } sb.DecreaseAndAppendLine("</table>"); }
public void Create() { var coll = new FLD_SalvageItemSet[3]; var treasure = new FLD_SalvageItemSet[3]; { FLD_SalvageItemSet[] collTables = SalvageTable._ColleTable; int[] collPer = SalvageTable._ColleTablePercent.Select(x => (int)x).ToArray(); double decayMult = 1.0; double skillPercent = SkillLevel * 0.01; double skillMod = skillPercent * SkillEffectColl + 1; for (int i = 0; i < 3; i++) { double c = ButtonLevel * (ButtonEffect * 0.01) + skillMod * decayMult; if (c < Rand.NextDouble()) { break; } coll[i] = collTables.ChooseRandom(Rand, collPer); decayMult = DecayRateColl * .01 * decayMult; } } { FLD_SalvageItemSet[] treasureTables = SalvageTable._TresureTable; int[] treasurePer = SalvageTable._TresureTablePercent.Select(x => (int)x).ToArray(); ushort tBoxHit = SalvageTable.TresureBoxHit; double decayMult = 1.0; double skillPercent = SkillLevel * 0.01; double skillMod = skillPercent * SkillEffectTBox + tBoxHit * .0001; for (int i = 0; i < 3; i++) { double c = ButtonLevel * (ButtonEffect * 0.01) + skillMod * decayMult; if (c < Rand.NextDouble()) { break; } treasure[i] = treasureTables.ChooseRandom(Rand, treasurePer); decayMult = DecayRateTBox * .01 * decayMult; } } }