/// <summary> /// Creates the inventory item from object and reference. /// </summary> /// <returns>The inventory item from object and reference.</returns> /// <param name="fertigkeitRef">Fertigkeit reference.</param> /// <param name="fertObject">Fert object.</param> /// <typeparam name="U">The 1st type parameter.</typeparam> private InventoryItem CreateInventoryItemFromObjectAndRef <U>(U fertigkeitRef, IFertigkeit fertObject) where U : ILernplan { var item = new InventoryItem(fertigkeitRef.id, fertObject.name, fertigkeitRef.val, fertigkeitRef.cost, fertObject.typ); item.SetDependency(fertObject.Dependency); //Für Waffen und Fachkenntnisse kann es Abhängigkeiten geben return(item); }
/// <summary> /// Gets the I fertigkeit from reference. /// </summary> /// <returns>The I fertigkeit from reference.</returns> /// <param name="charakterFertigkeit">Charakter fertigkeit.</param> /// <param name="fertigkeiten">Fertigkeiten.</param> /// <typeparam name="U">The 1st type parameter.</typeparam> /// <typeparam name="T">The 2nd type parameter.</typeparam> private IFertigkeit GetIFertigkeitFromRef <U, T>(U charakterFertigkeit, List <T> fertigkeiten) where U : ILernplan where T : IFertigkeit { int fertId = charakterFertigkeit.id; IFertigkeit fertObject = ObjectXMLHelper.GetMidgardObjectById <T>(fertigkeiten, fertId); return(fertObject); }
/// <summary> /// Gets the relevant fertigkeit. /// </summary> /// <returns>The relevant fertigkeit.</returns> /// <param name="charakterFertigkeit">Charakter fertigkeit.</param> /// <param name="fertigkeiten">Fertigkeiten.</param> /// <param name="leBonus">If set to <c>true</c> le bonus.</param> /// <param name="leMalus">If set to <c>true</c> le malus.</param> /// <typeparam name="U">The 1st type parameter.</typeparam> /// <typeparam name="T">The 2nd type parameter.</typeparam> public List <InventoryItem> GetRelevantFertigkeit <U, T>(List <U> charakterFertigkeit, List <T> fertigkeiten) where U : ILernplan where T : IFertigkeit { listItems = new List <InventoryItem> (); foreach (var fertigkeitRef in charakterFertigkeit) { modifyForTrinken(fertigkeitRef); //1 Filter.... IFertigkeit fertObject = GetIFertigkeitFromRef(fertigkeitRef, fertigkeiten); List <LENEValue> listRestriktionenLE = GetRestriktionen(fertObject.Leiteigenschaft); List <LENEValue> listRestriktionenNE = GetRestriktionen(fertObject.Nebeneigenschaft); leOk = CheckRelevanceFertigkeit(listRestriktionenLE); //Hier eventull noch kleiner Bug, weil nicht ganze List durchlaufen neOk = CheckRelevanceFertigkeit(listRestriktionenNE); //Fachkenntnis kann zur Liste gefügt werden, falls Bedingungen erfüllt sind AddToInventoryList(fertigkeitRef, fertObject, listRestriktionenLE); } return(listItems); }
/// <summary> /// Adds to inventory list. /// </summary> /// <param name="fertigkeitRef">Fertigkeit reference.</param> /// <param name="fertObject">Fert object.</param> /// <param name="listRestriktionenLE">List restriktionen L.</param> /// <typeparam name="U">The 1st type parameter.</typeparam> private void AddToInventoryList <U>(U fertigkeitRef, IFertigkeit fertObject, List <LENEValue> listRestriktionenLE) where U : ILernplan { if (IsLeitAndNebenEigenschaftOk()) { InventoryItem item = CreateInventoryItemFromObjectAndRef(fertigkeitRef, fertObject); if (IsLeitEigenschaftBonus()) { AddLEBonus(item, listRestriktionenLE); } listItems.Add(item); } if (IsUngelernteFertigkeit()) //nur bei ungelernte Fertigkeiten { InventoryItem item = CreateInventoryItemFromObjectAndRef(fertigkeitRef, fertObject); SubLEBonus(item, listRestriktionenLE); //Füge der Liste hinzu listItems.Add(item); } }