Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
 protected virtual string MissingSlotsText()
 {
     return($"Your request seems to be missing some information. Expected slots are: {RequiredSlots.JoinStringList()}.");
 }
Exemplo n.º 3
0
 protected override SkillResponse GetResponseInternal(Dictionary <string, Slot> slots)
 {
     return(Tell($"Slot value: {slots[RequiredSlots.ElementAt(0)].Value}"));
 }