Exemple #1
0
        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);
        }
Exemple #5
0
        /// <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);
            }
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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];
 }