/// <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)); }
/// <summary> /// Konstruktor, der die Seltenheits-Referenztabelle setzt /// </summary> /// <param name="table">Die</param> public RarTableOrderComperator(ILootRarityTable table) { tableValues = table.Values; }
/// <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; }