public ItemEquip Equip(ItemEquip equipItem)
    {
        ItemEquipType tempType      = equipItem.itemEquipType;
        ItemEquip     itemForReturn = null;

        if (tempType == ItemEquipType.Ring)
        {
            if (!GetItemEquipData(ItemEquipType.RingLeft).IsEquiped)
            {
                tempType = ItemEquipType.RingLeft;
            }
            else
            {
                tempType = ItemEquipType.RingRight;
            }
        }

        ItemEquipedData _ItemEquipedData = GetItemEquipData(tempType);

        if (_ItemEquipedData.IsEquiped)
        {
            Destroy(slotContainer.GetChild(_ItemEquipedData.Item.indexItemInList).GetChild(0).gameObject);
            itemForReturn = _ItemEquipedData.Item;
            itemForReturn.indexItemInList = equipItem.indexItemInList;
        }
        ItemEquip newItem = equipItem.getCopy();

        newItem.indexItemInList    = GetIndexItemInList(tempType);
        _ItemEquipedData.IsEquiped = true;
        _ItemEquipedData.Item      = newItem;

        AddItemInObj(newItem, newItem.indexItemInList);
        return(itemForReturn);
    }
示例#2
0
        private void ChangeItem(Combatant character, ItemEquipType type)
        {
            if (_changingItem)
            {
                return;
            }
            _changingItem = true;

            var dialog = new ChangeItemDialog();

            dialog.Bounds = new UniRectangle(
                new UniScalar(0.5f, 0 - 100), new UniScalar(0.5f, 0 - 200),
                200, 400
                );
            var items     = new List <Item>();
            var inventory = ((SRPGGame)Game).Inventory;

            foreach (var item in inventory)
            {
                switch (type)
                {
                case ItemEquipType.Armor:
                    if (character.CanEquipArmor(item))
                    {
                        items.Add(item);
                    }
                    break;

                case ItemEquipType.Weapon:
                    if (character.CanEquipWeapon(item))
                    {
                        items.Add(item);
                    }
                    break;

                case ItemEquipType.Accessory:
                    items.Add(item);
                    break;
                }
            }
            dialog.SetItems(items);
            _characterInfoDialog.Children.Add(dialog);
            dialog.BringToFront();

            dialog.ItemSelected += i =>
            {
                inventory.Remove(i);
                inventory.Add(character.EquipItem(i));
                SetCharacter(character);
                dialog.Close();
                _changingItem = false;
            };

            dialog.ItemCancelled += () =>
            {
                dialog.Close();
                _changingItem = false;
            };
        }
示例#3
0
 public Enchantment(string enchantName, Item ingredientHerb, int quantity, ItemEquipType restrictions, RequirementType satisfiesReq)
 {
     name                   = enchantName;
     ingredient             = ingredientHerb;
     ingredientQuantity     = quantity;
     enchantSlotRestriction = restrictions;
     reqTypes               = satisfiesReq;
     GameRegistry.RegisterEnchantment(this);
 }
 private ItemEquipedData GetItemEquipData(ItemEquipType equipType)
 {
     for (int i = 0; i < itemsEquipedData.Count; i++)
     {
         if (itemsEquipedData[i].Type == equipType)
         {
             return(itemsEquipedData[i]);
         }
     }
     return(null);
 }
 private int GetIndexItemInList(ItemEquipType tempType)
 {
     for (int i = 0; i < itemEquipTypes.Length; i++)
     {
         if (itemEquipTypes[i] == tempType)
         {
             return(i);
         }
     }
     return(-1);
 }
示例#6
0
 public Item(string name, int val, RarityTypes rare, ItemEquipType itemType,
             int reqLvl, int enchants, bool sellable, int maxStacks,
             int curStacks, string description, bool canBeDropped)
 {
     _name          = name;
     _value         = val;
     _rarity        = rare;
     _requiredLevel = reqLvl;
     _canBeSold     = sellable;
     _itemType      = itemType;
     _maxStacks     = maxStacks;
     _curStacks     = curStacks;
     _description   = description;
     _canBeDropped  = canBeDropped;
 }
示例#7
0
 public Item()
 {
     _name          = "Unnamed Item";
     _value         = 100;
     _rarity        = RarityTypes.Common;
     _itemType      = ItemEquipType.Clothing;
     _requiredLevel = 0;
     _canBeSold     = true;
     _icon          = Resources.Load("Item Icons/defaultItem") as Texture2D;
     _iconPath      = "Item Icons/defaultItem";
     _maxStacks     = 1;
     _curStacks     = 1;
     _description   = "";
     _canBeDropped  = true;
 }
 public ItemEquip GetEquipItem(ItemEquipType equipType)
 {
     if (equipType == ItemEquipType.Ring)
     {
         if (GetItemEquipData(ItemEquipType.RingLeft).IsEquiped)
         {
             equipType = ItemEquipType.RingLeft;
         }
         else
         {
             equipType = ItemEquipType.RingRight;
         }
     }
     return(GetItemEquipData(equipType).Item);
 }
示例#9
0
 public Item setEquipType(ItemEquipType type)
 {
     equipType = type;
     return(this);
 }
示例#10
0
        private void ChangeItem(Combatant character, ItemEquipType type)
        {
            if (_changingItem) return;
            _changingItem = true;

            var dialog = new ChangeItemDialog();
            dialog.Bounds = new UniRectangle(
                new UniScalar(0.5f, 0 - 100), new UniScalar(0.5f, 0 - 200),
                200, 400
            );
            var items = new List<Item>();
            var inventory = ((SRPGGame) Game).Inventory;
            foreach(var item in inventory)
            {
                switch(type)
                {
                    case ItemEquipType.Armor:
                        if (character.CanEquipArmor(item)) items.Add(item);
                        break;
                    case ItemEquipType.Weapon:
                        if (character.CanEquipWeapon(item)) items.Add(item);
                        break;
                    case ItemEquipType.Accessory:
                        items.Add(item);
                        break;
                }
            }
            dialog.SetItems(items);
            _characterInfoDialog.Children.Add(dialog);
            dialog.BringToFront();

            dialog.ItemSelected += i =>
                {
                    inventory.Remove(i);
                    inventory.Add(character.EquipItem(i));
                    SetCharacter(character);
                    dialog.Close();
                    _changingItem = false;
                };

            dialog.ItemCancelled += () =>
                {
                    dialog.Close();
                    _changingItem = false;
                };
        }
示例#11
0
 public ItemEquipedData(ItemEquipType type, ItemEquip item)
 {
     this.Type = type;
     this.Item = item;
 }
示例#12
0
 public Industry setEquipType(ItemEquipType type)
 {
     industryItem.setEquipType(type);
     return(this);
 }
示例#13
0
 public EnchantmentLeech(string enchantName, Item ingredientHerb, int quantity, ItemEquipType restrictions, RequirementType satisfiesReq) : base(enchantName, ingredientHerb, quantity, restrictions, satisfiesReq)
 {
 }
示例#14
0
 public EnchantmentHaste(string enchantName, Item ingredientHerb, int quantity, ItemEquipType restrictions) : base(enchantName, ingredientHerb, quantity, restrictions, 0)
 {
 }