Ejemplo n.º 1
0
 /// <summary>
 /// Deserializes xml markup from file into an LootTable object
 /// </summary>
 /// <param name="fileName">string xml file to load and deserialize</param>
 /// <param name="obj">Output LootTable object</param>
 /// <param name="exception">output Exception value if deserialize failed</param>
 /// <returns>true if this Serializer can deserialize the object; otherwise, false</returns>
 public static bool LoadFromFile(string fileName, out LootTable obj, out Exception exception)
 {
     exception = null;
     obj       = default(LootTable);
     try
     {
         obj = LoadFromFile(fileName);
         return(true);
     }
     catch (Exception ex)
     {
         exception = ex;
         return(false);
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Deserializes workflow markup into an LootTable object
 /// </summary>
 /// <param name="input">string workflow markup to deserialize</param>
 /// <param name="obj">Output LootTable object</param>
 /// <param name="exception">output Exception value if deserialize failed</param>
 /// <returns>true if this Serializer can deserialize the object; otherwise, false</returns>
 public static bool Deserialize(string input, out LootTable obj, out Exception exception)
 {
     exception = null;
     obj       = default(LootTable);
     try
     {
         obj = Deserialize(input);
         return(true);
     }
     catch (Exception ex)
     {
         exception = ex;
         return(false);
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Calculate drops from a specific loot table.
        /// </summary>
        /// <param name="table">The table to be evaluated.</param>
        /// <returns>Loot structure containing Xp/Gold/List of items to be awarded.</returns>
        public static Loot CalculateTable(Xml.LootTable table)
        {
            var tableLoot = new Loot(0, 0);

            if (table.Gold != null)
            {
                if (table.Gold.Max != 0)
                {
                    tableLoot.Gold += RollBetween(table.Gold.Min, table.Gold.Max);
                }
                else
                {
                    tableLoot.Gold += table.Gold.Min;
                }
                GameLog.SpawnInfo("Processing loot: added {Gold} gp", tableLoot.Gold);
            }
            if (table.Xp != null)
            {
                if (table.Xp.Max != 0)
                {
                    tableLoot.Xp += RollBetween(table.Xp.Min, table.Xp.Max);
                }
                else
                {
                    tableLoot.Xp += table.Xp.Min;
                }
                GameLog.SpawnInfo("Processing loot: added {Xp} xp", tableLoot.Xp);
            }
            // Handle items now
            if (table.Items != null)
            {
                foreach (var itemlist in table.Items)
                {
                    tableLoot.Items.AddRange(CalculateItems(itemlist));
                }
            }
            else
            {
                GameLog.SpawnWarning("Loot table is null!");
            }
            return(tableLoot);
        }
Ejemplo n.º 4
0
        public static bool LoadFromFile(string fileName, out LootTable obj)
        {
            Exception exception = null;

            return(LoadFromFile(fileName, out obj, out exception));
        }
Ejemplo n.º 5
0
        public static bool Deserialize(string input, out LootTable obj)
        {
            Exception exception = null;

            return(Deserialize(input, out obj, out exception));
        }