/// <summary>
 /// Generiert aus dem uu. variablen normalen Loot-Objekt (<see cref="ILootable{T}"/>) einen Loot container, der die sonstigen Werte übernimmt
 /// </summary>
 /// <param name="item">Das normale Loot-Objekt</param>
 /// <param name="representationString">Optionaler <see cref="string"/> für benutzerdefinierte Repräsentation in ToString()</param>
 public LootObjectContainer(ILootable <T> item, string representationString = null)
 {
     innerItem       = item.Item;
     containerName   = item.Name;
     containerRarity = item.Rarity;
     containerType   = item.Type;
     rarityTable     = item.rarTable;
     rep             = representationString;
 }
        /// <summary>
        /// Setzt alle Lootingrelevanten Eigenschaften
        /// </summary>
        /// <param name="name">Name</param>
        /// <param name="rar">Seltenheit</param>
        /// <param name="type">Typ</param>
        /// <param name="table">Seltenheits-Referenztabelle</param>
        /// <returns>Sich selbst (also in einer Zeile erstellbar und initialisierbar)</returns>
        public LootObjectContainer <T> SetProps(string name, int rar, string type, ILootRarityTable table)
        {
            containerName   = name;
            containerRarity = rar;
            containerType   = type;
            rarityTable     = table;

            return(this);
        }
        /// <summary>
        /// Konstruktor, der die Sletneheits-Referenztabelle, den inneren Algorithmus und die benutzerdfinierten erlaubten Seltenheiten setzt
        /// </summary>
        /// <param name="table">Die Seltenheits-Referenztabelle</param>
        /// <param name="innerLooting">Der innere Algorithmus</param>
        /// <param name="allowedRarityNames">Die benutzerdifinierten erlaubten Seltenheiten</param>
        public PR_PartionLoot(ILootRarityTable table, TLooter innerLooting, string[] allowedRarityNames)
        {
            lastLootingAlgorithm = innerLooting;
            allowedRarityNames   = allowedRarityNames.DoWith(s => Array.Sort(s, new RarTableOrderComperator(table)));
            List <string> allowedNames  = new List <string>();
            List <int>    allowedRanges = new List <int>();
            int           counter       = 0;

            for (int i = 0; i < table.Values.Length; i++)
            {
                if (allowedRarityNames.Contains(table.Values[i]))
                {
                    counter += table.Chain.Intervalls[i].Range;
                    allowedRanges.Add(counter);
                    allowedNames.Add(table.Values[i]);
                }
            }
            rarTable = new DynamicRarityTable(allowedNames.ToArray(), new IntervallChain(allowedRanges.ToArray(), startValue: 0));
        }
Esempio n. 4
0
 /// <summary>
 /// Konstruktor, der die Seltenheits-Referenztabelle setzt
 /// </summary>
 /// <param name="table">Die</param>
 public RarTableOrderComperator(ILootRarityTable table)
 {
     tableValues = table.Values;
 }
Esempio n. 5
0
 /// <summary>
 /// Konstruktor, der die Loot-Funktion und die Seltenheits-Refernztabelle setzt
 /// </summary>
 /// <param name="function">Die Loot-Funktion</param>
 /// <param name="table">Die Seltenheits-Referenztabelle</param>
 /// <param name="representation">Optionaler <see cref="string"/> für benutzerdefinierte Repräsentation in ToString()</param>
 public PP_Function(Func <string> function, ILootRarityTable table, string representation = null)
     : base(function, table, representation)
 {
 }
 /// <summary>
 /// Konstruktor, der das Loot.Item und die Seltenheits-Referenztabelle setzt
 /// </summary>
 /// <param name="item">Das Loot-Item</param>
 /// <param name="_rarityTable">Die Seltenheits-Referenztabelle</param>
 /// <param name="representationString">Optionaler <see cref="string"/> für benutzerdefinierte Repräsentation in ToString()</param>
 public LootObjectContainer(T item, ILootRarityTable _rarityTable, string representationString = null)
 {
     innerItem   = item;
     rarityTable = _rarityTable;
     rep         = representationString;
 }
 /// <summary>
 /// Konstruktor, der die Sletneheits-Referenztabelle und den inneren Algorithmus  setzt
 /// </summary>
 /// <param name="table">Die Seltenheits-Referenztabelle</param>
 /// <param name="innerLooting">Der innere Algorithmus</param>
 public PR_PartionLoot(ILootRarityTable table, TLooter innerLooting)
 {
     lastLootingAlgorithm = innerLooting;
     rarTable             = table;
 }
 /// <summary>
 /// Konstruktor, der die Loot-Funktion und die Seltenheits-Refernztabelle setzt
 /// </summary>
 /// <param name="func">Die Loot-Funktion</param>
 /// <param name="_rarityTable">Die Seltenheits-Referenztabelle</param>
 /// <param name="representationString">Optionaler <see cref="string"/> für benutzerdefinierte Repräsentation in ToString()</param>
 public LootFunctionContainer(Func <T> func, ILootRarityTable _rarityTable, string representationString = null)
 {
     innerFunction = func;
     rarityTable   = _rarityTable;
     rep           = representationString;
 }
 /// <summary>
 /// Konstruktor, der den Namen des Items und die Seltenheits-Referenztabelle setzt
 /// </summary>
 /// <param name="_name">Der Name</param>
 /// <param name="_table">Die Seltenheit</param>
 public BasePP_StringItem(string _name, ILootRarityTable _table)
 {
     name        = _name;
     rarityTable = _table;
 }
 /// <summary>
 /// Konstruktor der die Seltenheits-Referenztabelle setzt
 /// </summary>
 /// <param name="table">Die Refernztabelle</param>
 public BasePP_StringItem(ILootRarityTable table)
 {
     rarityTable = table;
 }