public WorldObject CreateWieldedTreasure(TreasureWielded item) { var wo = WorldObjectFactory.CreateNewWorldObject(item.WeenieClassId); if (wo == null) { return(null); } if (item.PaletteId > 0) { wo.PaletteTemplate = (int)item.PaletteId; } if (item.Shade > 0) { wo.Shade = item.Shade; } if (item.StackSize > 0) { var stackSize = item.StackSize; var hasVariance = item.StackSizeVariance > 0; if (hasVariance) { var minStack = (int)Math.Max(Math.Round(item.StackSize * item.StackSizeVariance), 1); var maxStack = item.StackSize; stackSize = ThreadSafeRandom.Next(minStack, maxStack); } wo.SetStackSize(stackSize); } return(wo); }
public static TreasureWielded ConvertToACE(this Seg3_TreasureTable.WieldedTreasure input, uint treasureType) { var result = new TreasureWielded { TreasureType = treasureType, WeenieClassId = input.WeenieClassId, PaletteId = input.PaletteId, Unknown1 = input.Unknown1, Shade = input.Shade, StackSize = input.StackSize, StackSizeVariance = input.StackSizeVariance, Probability = input.Probability, Unknown3 = input.Unknown3, Unknown4 = input.Unknown4, Unknown5 = input.Unknown5, SetStart = input.SetStart, HasSubSet = input.HasSubSet, ContinuesPreviousSet = input.ContinuesPreviousSet, Unknown9 = input.Unknown9, Unknown10 = input.Unknown10, Unknown11 = input.Unknown11, Unknown12 = input.Unknown12 }; return(result); }
/// <summary> /// Default is formed from: input.TreasureType.ToString("00000") /// </summary> public string GetDefaultFileName(TreasureWielded input) { string fileName = input.TreasureType.ToString("00000"); fileName = IllegalInFileName.Replace(fileName, "_"); fileName += ".sql"; return(fileName); }
public WorldObject CreateWieldedTreasure(TreasureWielded item) { var wo = WorldObjectFactory.CreateNewWorldObject(item.WeenieClassId); if (wo == null) { return(null); } if (item.PaletteId > 0) { wo.PaletteTemplate = (int)item.PaletteId; } if (item.Shade > 0) { wo.Shade = item.Shade; } if (item.StackSize > 0) { // fix lugians only having 1 rock? if (wo.Name.Equals("Rock") && item.StackSize == 1 && item.StackSizeVariance == 0) { item.StackSize = 10; item.StackSizeVariance = 0.1f; } var stackSize = item.StackSize; var hasVariance = item.StackSizeVariance > 0; if (hasVariance) { var minStack = (int)Math.Max(Math.Round(item.StackSize * item.StackSizeVariance), 1); var maxStack = item.StackSize; stackSize = ThreadSafeRandom.Next(minStack, maxStack); } wo.SetStackSize(stackSize); } return(wo); }
/// <summary> /// Converts GDLE -> ACE wielded treasure table /// </summary> public static bool TryConvert(Models.WieldedTreasureTable input, out List <TreasureWielded> results) { try { results = new List <TreasureWielded>(); foreach (var entry in input.Value) { var result = new TreasureWielded(); result.TreasureType = input.Key; result.ContinuesPreviousSet = entry.ContinuesPreviousSet; result.HasSubSet = entry.HasSubSet; result.PaletteId = entry.PaletteId; result.Probability = entry.Probability; result.SetStart = entry.SetStart; result.Shade = entry.Shade; result.StackSize = entry.StackSize; result.StackSizeVariance = entry.StackSizeVariance; result.Unknown1 = entry.Unknown1; result.Unknown10 = entry.Unknown10; result.Unknown11 = entry.Unknown11; result.Unknown12 = entry.Unknown12; result.Unknown3 = entry.Unknown3; result.Unknown4 = entry.Unknown4; result.Unknown5 = entry.Unknown5; result.Unknown9 = entry.Unknown9; result.WeenieClassId = entry.WeenieClassId; results.Add(result); } return(true); } catch { results = null; return(false); } }
protected string GetValueForTreasureDID(TreasureWielded item) { string treasure = ""; treasure += Environment.NewLine + $" Wield "; if (item.StackSize > 1) { treasure += $"{item.StackSize}x "; } treasure += $"{WeenieNames[item.WeenieClassId]} ({item.WeenieClassId})"; if (item.PaletteId > 0) { treasure += $" | Palette: {Enum.GetName(typeof(PaletteTemplate), item.PaletteId)} ({item.PaletteId})"; } if (item.Shade > 0) { treasure += $" | Shade: {item.Shade}"; } treasure += $" | Probability: {item.Probability * 100}%"; return(treasure); }
public static Dictionary <uint, List <TreasureWielded> > GetIDToWieldList(string filename) { var records = ReadCSV(filename); var results = new Dictionary <uint, List <TreasureWielded> >(); for (var i = 0; i < records.Count; i++) { var record = records[i]; // uint TreasureType // uint WeenieClassId // uint PaletteId // float Shade // int StackSize // float Probability if (record.Length != 6) { Console.WriteLine($"Failed to parse line {i + 1} in {filename}: expected 6 fields in {string.Join(",", record)}"); continue; } if (!uint.TryParse(record[0], out var id)) { Console.WriteLine($"Failed to parse line {i + 1} in {filename}: {record[0]} is not an unsigned int"); continue; } if (!uint.TryParse(record[1], out var wcid)) { Console.WriteLine($"Failed to parse line {i + 1} in {filename}: {record[1]} is not an unsigned int"); continue; } if (!uint.TryParse(record[2], out var palette)) { Console.WriteLine($"Failed to parse line {i + 1} in {filename}: {record[2]} is not an unsigned int"); continue; } if (!float.TryParse(record[3], out var shade)) { Console.WriteLine($"Failed to parse line {i + 1} in {filename}: {record[3]} is not a decimal"); continue; } if (!int.TryParse(record[4], out var stacksize)) { Console.WriteLine($"Failed to parse line {i + 1} in {filename}: {record[4]} is not a number"); continue; } if (!float.TryParse(record[5], out var probability)) { Console.WriteLine($"Failed to parse line {i + 1} in {filename}: {record[5]} is not a decimal"); continue; } if (!results.TryGetValue(id, out var list)) { list = new List <TreasureWielded>(); results.Add(id, list); } var treasure = new TreasureWielded(); treasure.TreasureType = id; treasure.WeenieClassId = wcid; treasure.PaletteId = palette; treasure.Shade = shade; treasure.StackSize = stacksize; treasure.Probability = probability; list.Add(treasure); } return(results); }
public TreasureWieldedNode(List <TreasureWielded> items, int idx) { Item = items[idx]; }