public ItemDataDto(ContextManager manager, Guid?selectedGuid) { if (selectedGuid.HasValue) { SelectedItem = manager.Get <ItemBase>(selectedGuid.Value); SpecialMaterial = SelectedItem.Material != null ? SelectedItem.Material.ID : (Guid?)null; RequiredSlots = SelectedItem.RequiresSlots == null ? null : SelectedItem.RequiresSlots.Select(x => (int)x.Requirement).ToArray(); if (RequiredSlots != null && RequiredSlots.Count(x => x == 12) == 2) { for (int i = 0; i < RequiredSlots.Length; i++) { if (RequiredSlots[i] == 12) { RequiredSlots[i] = -1; break; } } } GrantedSlots = SelectedItem.HasSlots == null ? null : SelectedItem.HasSlots.Select(x => (int)x.Requirement).ToArray(); DamageString = SelectedItem.Damage == null ? null : SelectedItem.Damage.Amount.ToString(); DamageType = SelectedItem.Damage == null ? (DamageType?)null : SelectedItem.Damage.Type; EnchantetBonuses = SelectedItem.EnchanmentsBonuses == null ? null : SelectedItem.EnchanmentsBonuses.Select(x => x.ID).ToArray(); EnchantetSpecialAbilities = SelectedItem.EnchanmentAbilities == null ? null : SelectedItem.EnchanmentAbilities.Select(x => x.ID).ToArray(); RequiresSpecialAbilities = SelectedItem.RequiresAbility == null ? null : SelectedItem.RequiresAbility.Select(x => x.SpecialAbilityGuid).ToArray(); } Data = new List <ElementId>(manager.GetAll <ItemBase>().OrderBy(x => x.Name)); Materials = new List <ElementId>(manager.GetAll <ItemMaterial>().OrderBy(x => x.Name)); Bonuses = new List <ElementId>(manager.GetAll <Bonus>().OrderBy(x => x.Name)); SpecialAbilities = new List <ElementId>(manager.GetAll <SpecialAbility>().OrderBy(x => x.Name)); }
protected virtual string MissingSlotsText() { return($"Your request seems to be missing some information. Expected slots are: {RequiredSlots.JoinStringList()}."); }
protected override SkillResponse GetResponseInternal(Dictionary <string, Slot> slots) { return(Tell($"Slot value: {slots[RequiredSlots.ElementAt(0)].Value}")); }