Esempio n. 1
0
    public bool AddItem(RPGItem itemToAdd, int amountToReach)
    {
        if (!DoYouHaveSpaceForThisItem(itemToAdd, amountToReach))
        {
            return(false);
        }

        if (itemToAdd.Stackable)
        {
            foreach (InventoryItem item in Items)
            {
                if (item.rpgItem.UniqueId != itemToAdd.UniqueId)
                {
                    continue;
                }
                else
                {
                    item.CurrentAmount += amountToReach;
                    return(true);
                }
            }
        }
        else
        {
            for (int index = 1; index <= amountToReach; index++)
            {
                AddInventoryItem(itemToAdd, 1);
            }
        }
        //FinalizeInventoryOperation(player);
        return(true);
    }
Esempio n. 2
0
    protected virtual void FillItems()
    {
        for (int x = 1; x <= ItemsCount; x++)
        {
            RPGItem sourceItem = (RPGItem)SourceItem;
            RPGItem item       = new RPGItem();
            //item.Stackable = sourceItem.Stackable;
            //item.MaximumStack = sourceItem.MaximumStack;
            item.BuyValue  = sourceItem.BuyValue;
            item.SellValue = sourceItem.SellValue;
            item.Rarity    = sourceItem.Rarity;
            //item.NumberCharges = sourceItem.NumberCharges;
            item.IconPath  = sourceItem.IconPath;
            item.AtlasName = sourceItem.AtlasName;
            //item.PrefabName = sourceItem.PrefabName;

            /*foreach(Effect effect in sourceItem.Effects)
             * {
             *      Effect e = new Effect();
             *      e.Duration = effect.Duration;
             *      e.EffectType = effect.EffectType;
             *      e.Target = effect.Target;
             *      e.Value = effect.Value;
             *      item.Effects.Add(e);
             * }*/
            //item.Categories = sourceItem.Categories;
            //item.IsCopy = true;
            //item.SourceItem = sourceItem.ID;
            //item.Categories = sourceItem.Categories;
            Items.Add(item);
        }
    }
	public void DisplayItemDetails(RPGItem item, InventoryGUIType type, BasicGUIController gui)
	{
		Enable();
		activeGUIController = gui;
		nameLabel.text = item.Name;
		descriptionLabel.text = item.Description;
		GameObject atlas = Resources.Load(item.AtlasName) as GameObject;
		icon.atlas = atlas.GetComponent<UIAtlas>();
		icon.spriteName = item.IconPath;
		for (int i = 0; i < allButtons.Length; i++) {
			allButtons[i].SetActive(false);
				}
		if(type == InventoryGUIType.quickInventory)
		{
			if(item.IsEquippable)
				EquipButton.SetActive(true);
		}
		else if(type == InventoryGUIType.Inventory)
		{
			if(item.IsEquippable)
				EquipButton.SetActive(true);
			DestroyButton.SetActive(true);
		}
		int count = 0;
		for (int i = 0; i < allButtons.Length; i++) {
			if(allButtons[i].activeSelf)
			{
				allButtons[i].transform.localPosition = new Vector3(buttonsStartPos.localPosition.x + count*buttonsGap, buttonsStartPos.localPosition.y, buttonsStartPos.localPosition.z);
				count++;
			}
		}
	}
Esempio n. 4
0
    public bool AddItem(RPGItem itemToAdd, int amountToReach)
    {
        if (!DoYouHaveSpaceForThisItem(itemToAdd, amountToReach))
            return false;

         if (itemToAdd.Stackable)
         {
         foreach(InventoryItem item in Items)
         {
             if (item.rpgItem.UniqueId != itemToAdd.UniqueId)
                continue;
            else
            {
                item.CurrentAmount += amountToReach;
                return true;
            }
         }
         }
         else
         {
         for(int index = 1; index <= amountToReach; index++)
         {
             AddInventoryItem(itemToAdd, 1);
         }
         }
         //FinalizeInventoryOperation(player);
         return true;
    }
Esempio n. 5
0
    public BuyTransaction BuyItem(RPGItem item, int Amount)
    {
        if (item.ID == 0)
        {
            return(BuyTransaction.SomeError);
        }
        //calculate price
        int price = (int)(item.SellValue * Amount);

        //currency item
        //RPGItem currencyItem = new RPGItem();
        //currencyItem = Storage.LoadById<RPGItem>(CurrencyID, new RPGItem());
        //skill affecting price put modifier here
        //check if you have enough gold
        if (!Player.Instance.Hero.CanYouAfford(price, item.BuyCurrency))
        {
            return(BuyTransaction.NotEnoughGold);
        }

        //check space in inventory
        if (!Player.Instance.Hero.Inventory.DoYouHaveSpaceForThisItem(item, Amount))
        {
            return(BuyTransaction.NotEnoughSpaceInInventory);
        }
        else
        {
            //add item to inventory
            if (item.ItemCategory == ItemType.Armor)
            {
                PreffixSolver.GiveItem(PreffixType.ARMOR, item.ID, Amount);
            }
            else
            {
                Player.Instance.Hero.Inventory.AddItem(item, Amount);
            }

            //remove currency amount from inventory
            Player.Instance.Hero.RemoveCurrency(price, item.BuyCurrency);

            //remove item from current shop collection
            foreach (ItemInWorld shopItem in ShopItems)
            {
                if (shopItem.rpgItem.UniqueId == item.UniqueId)
                {
                    shopItem.CurrentAmount = shopItem.CurrentAmount - Amount;
                    if (shopItem.CurrentAmount <= 0)
                    {
                        ShopItems.Remove(shopItem);
                    }
                    break;
                }
            }

            //add bio log info
            //player.Hero.Log.BuyItem(Player.activeNPC, Amount, item.UniqueId);
            return(BuyTransaction.OK);
        }
    }
Esempio n. 6
0
 public static bool TryGetItem(string nome, out RPGItem item)
 {
     item = ColecaoItem.Find(x => x.Nome == nome).FirstOrDefault();
     if (item == null)
     {
         return(false);
     }
     return(true);
 }
Esempio n. 7
0
	public void AddOneItem(List<InventoryItem> BaseLootItems)
	{
		//validate conditions
		//if (!CanYouLoot)
			//return;
		RPGItem item = new RPGItem();
		if(itemType == ItemType.Armor)
		{
			RPGArmor armor = Storage.LoadById<RPGArmor>(ID, new RPGArmor());
        	item = (RPGItem)armor;
		}
		else if(itemType != ItemType.Armor && itemType != ItemType.Currency)
		{
			item = Storage.LoadById<RPGItem>(ID, new RPGItem());
		}

        AddItem(item, BaseLootItems);
        //AddItem(
        
		/*if (Preffix == ItemTypeEnum.ITEM)
		{
			foreach(RPGItem item in Player.Data.Items)
			{
				if (item.ID == ID)
				{
					AddItem(item, BaseLootItems);
					return;
				}
			}
		}
		
		if (Preffix == ItemTypeEnum.WEAPON)
		{
			foreach(RPGWeapon item in Player.Data.Weapons)
			{
				if (item.ID == ID)
				{
					AddItem(item, BaseLootItems);
					return;
				}
			}
		}
		
		if (Preffix == ItemTypeEnum.ARMOR)
		{
			foreach(RPGArmor item in Player.Data.Armors)
			{
				if (item.ID == ID)
				{
					AddItem(item, BaseLootItems);
					return;
				}
			}
		}*/
	}
Esempio n. 8
0
	public void GenerateNewInventoryItem(RPGItem item, int lvl, int amount)
	{
		rpgItem = item;
		UniqueItemId = rpgItem.UniqueId;
		if(lvl > 0)
			Level = lvl;
		else
			Level = 1;
		CurrentAmount = amount;
		isItemViewed = false;
		IsItemEquipped = false;
	}
Esempio n. 9
0
	public bool DoYouHaveSpaceForThisItem(RPGItem itemToHave, int level, int amountToReach)
    {
        if (itemToHave == null)
            return false;
        
        if(itemToHave.Stackable)
        {
            foreach(InventoryItem item in Items)
            {
                if(item.rpgItem.UniqueId == itemToHave.UniqueId && item.Level == level )
                    return true;
            }
            
            if(!IsFullInventory)
                return true;
            else
                return false;
        }
        
        else
        {
            if(maximumItems - Items.Count >= amountToReach)
                return true;
            else
                return false;
        }
        
     /*if (itemToHave.Stackable)
     {
         foreach(InventoryItem item in Items)
         {
             if (item.rpgItem.UniqueId != itemToHave.UniqueId)
                  continue;
             if (item.rpgItem.MaximumStack == item.CurrentAmount)
                 continue;
             size = item.rpgItem.MaximumStack - item.CurrentAmount;
         }
         if (size <= 0)
             return true;
         int freeSpaces = maximumItems - Items.Count;
         if (freeSpaces + itemToHave.MaximumStack > size)
             return true;
         else
             return false;
     }
     else
     {
         if (Items.Count <= maximumItems + size)
             return true;
         else
             return false;
     }*/
 	}
Esempio n. 10
0
        public string TakeRoomItemByToken(string item)
        {
            var items = _currentRoom.GetItems().Where(i => i.GetName().ToLower().Contains(item.ToLower())).ToList();

            if (items.Count > 0)
            {
                RPGItem it = (RPGItem)items.FirstOrDefault();
                _player.inventory.Add(it);
                _currentRoom.GetItems().Remove(it);
                return(string.Format("Ihr nehmt {0} {1}.", German.GetArticle(it, 4), it.GetName()));
            }
            return(string.Format("Ihr könnt kein {0} sehen!", item));
        }
Esempio n. 11
0
	public virtual void LoadItem()
	{
		if (UniqueItemId.IndexOf("ITEM") != -1)
		{
			int id = Convert.ToInt32(UniqueItemId.Replace("ITEM", string.Empty));
			rpgItem = Storage.LoadById<RPGItem>(id, new RPGItem());
		}
		if (UniqueItemId.IndexOf("ARMOR") != -1)
		{
			int id = Convert.ToInt32(UniqueItemId.Replace("ARMOR", string.Empty));
			rpgItem = Storage.LoadById<RPGArmor>(id, new RPGArmor());
		}
	}
Esempio n. 12
0
    public BuyTransaction BuyItem(RPGItem item, int Amount)
    {
        if (item.ID == 0)
            return BuyTransaction.SomeError;
        //calculate price
        int price = (int)(item.SellValue * Amount);
        //currency item
        //RPGItem currencyItem = new RPGItem();
        //currencyItem = Storage.LoadById<RPGItem>(CurrencyID, new RPGItem());
        //skill affecting price put modifier here
        //check if you have enough gold
        if (!Player.Instance.Hero.CanYouAfford(price, item.BuyCurrency))
            return BuyTransaction.NotEnoughGold;

        //check space in inventory
        if (!Player.Instance.Hero.Inventory.DoYouHaveSpaceForThisItem(item, Amount))
        {
            return BuyTransaction.NotEnoughSpaceInInventory;
        }
        else
        {
            //add item to inventory
            if(item.ItemCategory == ItemType.Armor)
            {
                PreffixSolver.GiveItem(PreffixType.ARMOR, item.ID, Amount);
            }
            else
                Player.Instance.Hero.Inventory.AddItem(item, Amount);

            //remove currency amount from inventory
            Player.Instance.Hero.RemoveCurrency(price, item.BuyCurrency);

            //remove item from current shop collection
            foreach(ItemInWorld shopItem in ShopItems)
            {
                if (shopItem.rpgItem.UniqueId == item.UniqueId)
                {
                    shopItem.CurrentAmount = shopItem.CurrentAmount - Amount;
                    if (shopItem.CurrentAmount <= 0)
                    {
                        ShopItems.Remove(shopItem);
                    }
                    break;
                }
            }

            //add bio log info
            //player.Hero.Log.BuyItem(Player.activeNPC, Amount, item.UniqueId);
            return BuyTransaction.OK;
        }
    }
Esempio n. 13
0
    protected void AddInventoryItem(RPGItem itemToAdd, int amount)
    {
        InventoryItem item = new InventoryItem();

        item.ItemInventoryIndex = GetFirstUnusedPosition();
        item.rpgItem            = itemToAdd;
        item.CurrentAmount      = amount;
        //item.CurrentDurability = itemToAdd.CurrentDurability;
        item.UniqueItemId = itemToAdd.UniqueId;
        //Debug.Log(Items.Count);
        Items.Add(item);
        //Debug.Log("item added " + itemToAdd.Name);
        //Debug.Log(Items.Count);
    }
Esempio n. 14
0
    // Use this for initialization
    void Start()
    {
        RPGItem item = RPGItemDatabase.GetItem(1);

        if (item != null)
        {
            Debug.Log(string.Format("Item ID:{0},Item Name:{1},Item Desc{2}", item.ItemID, item.itemName, item.itemDesc));
        }
        item = RPGItemDatabase.GetItem(2);
        if (item != null)
        {
            Debug.Log(string.Format("Item ID:{0},Item Name:{1},Item Desc{2}", item.ItemID, item.itemName, item.itemDesc));
        }
    }
Esempio n. 15
0
    public bool RemoveItem(int ID, string preffix, int amountToRemove)
    {
        RPGItem item = new RPGItem();

        if (preffix == PreffixType.ARMOR.ToString())
        {
            item = Storage.LoadById <RPGArmor>(ID, new RPGArmor());
        }

        if (preffix == PreffixType.ITEM.ToString())
        {
            item = Storage.LoadById <RPGItem>(ID, new RPGItem());
        }

        return(RemoveItem(item, amountToRemove));
    }
Esempio n. 16
0
    public void AddOneItem(List <ItemInWorld> BaseLootItems)
    {
        //validate conditions
        //if (!CanYouLoot)
        //return;
        RPGArmor armor = Storage.LoadById <RPGArmor>(ID, new RPGArmor());
        RPGItem  item  = (RPGItem)armor;

        AddItem(item, BaseLootItems);
        //AddItem(

        /*if (Preffix == ItemTypeEnum.ITEM)
         * {
         *      foreach(RPGItem item in Player.Data.Items)
         *      {
         *              if (item.ID == ID)
         *              {
         *                      AddItem(item, BaseLootItems);
         *                      return;
         *              }
         *      }
         * }
         *
         * if (Preffix == ItemTypeEnum.WEAPON)
         * {
         *      foreach(RPGWeapon item in Player.Data.Weapons)
         *      {
         *              if (item.ID == ID)
         *              {
         *                      AddItem(item, BaseLootItems);
         *                      return;
         *              }
         *      }
         * }
         *
         * if (Preffix == ItemTypeEnum.ARMOR)
         * {
         *      foreach(RPGArmor item in Player.Data.Armors)
         *      {
         *              if (item.ID == ID)
         *              {
         *                      AddItem(item, BaseLootItems);
         *                      return;
         *              }
         *      }
         * }*/
    }
Esempio n. 17
0
    public bool SellItem(RPGItem item, int Amount)
    {
        if (item.ID == 0)
        {
            return(false);
        }
        //calculate price
        int price = (int)(item.SellValue * Amount);

        //remove item
        Player.Instance.Hero.Inventory.RemoveItem(item, Amount);
        //add gold
        Player.Instance.Hero.AddCurrency(price, BuyCurrencyType.Magnets);
        //add item to temp shop collection
        AddItem(item, Amount);
        return(true);
    }
Esempio n. 18
0
    private void AddItem(RPGItem item, int Amount)
    {
        foreach (ItemInWorld i in ShopItems)
        {
            if (i.rpgItem.UniqueId == item.UniqueId)
            {
                i.CurrentAmount += Amount;
                return;
            }
        }

        ItemInWorld itemInWorld = new ItemInWorld();

        itemInWorld.UniqueItemId  = item.UniqueId;
        itemInWorld.rpgItem       = item;
        itemInWorld.CurrentAmount = Amount;
        ShopItems.Add(itemInWorld);
    }
Esempio n. 19
0
    protected override void EditPart()
    {
        RPGItem s = (RPGItem)currentItem;

        /*if (s.ID > 0 && !s.IsCopy && updateMode)
         * {
         *      if (GUILayout.Button("Generater stronger versions", GUILayout.Width(400)))
         *      {
         *              generator = new ItemGenerator();
         *              generator.Calculate(s);
         *              MenuMode = MenuModeEnum.ThirdWindow;
         *      }
         * }*/

        ItemUtils.DisplayItemPart(s, Data);

        currentItem = s;
    }
Esempio n. 20
0
    protected void AddItem(RPGItem item, List <ItemInWorld> BaseLootItems)
    {
        foreach (ItemInWorld i in BaseLootItems)
        {
            if (i.rpgItem.UniqueId == item.UniqueId)
            {
                return;
            }
        }

        ItemInWorld itemInWorld = new ItemInWorld();

        itemInWorld.rpgItem      = item;
        itemInWorld.UniqueItemId = item.UniqueId;
        //if (item.Stackable)
        itemInWorld.CurrentAmount = StackAmount;
        //else
        //itemInWorld.CurrentAmount = 1;
        BaseLootItems.Add(itemInWorld);
    }
Esempio n. 21
0
        public static RPGItem GetItemForDepth(int depth)
        {
            //adapted from : https://stackoverflow.com/questions/56692/random-weighted-choice
            List <RPGItem> items = ItemCatalogue.ToList();

            double totalWeight = 0.0f;

            foreach (RPGItem item in items)
            {
                double rarity = RPGUtils.RarityByDepth(item, depth);
                totalWeight += rarity;
            }

            if (totalWeight == 0)
            {
                return new RPGItem()
                       {
                           ItemName = "Staub", Gender = Gender.MALE, ColorSns = new PlayerSense("schwach", 0.1f)
                       }
            }
            ;

            var     randomNumber = rand.NextDouble() * totalWeight;
            RPGItem result       = null;

            foreach (RPGItem item in items)
            {
                if (randomNumber < RPGUtils.RarityByDepth(item, depth))
                {
                    result = item;
                    break;
                }

                randomNumber = randomNumber - RPGUtils.RarityByDepth(item, depth);
            }

            return(new RPGItem(result));
        }
    }
Esempio n. 22
0
    public bool IsItemLoaded()
    {
        if (!string.IsNullOrEmpty(UniqueItemId) && rpgItem == null)
        {
            if (UniqueItemId.IndexOf("ITEM") != -1)
            {
                int id = Convert.ToInt32(UniqueItemId.Replace("ITEM", string.Empty));
                rpgItem = Storage.LoadById <RPGItem>(id, new RPGItem());
            }
            if (UniqueItemId.IndexOf("ARMOR") != -1)
            {
                int id = Convert.ToInt32(UniqueItemId.Replace("ARMOR", string.Empty));
                rpgItem = Storage.LoadById <RPGArmor>(id, new RPGArmor());
            }
        }

        if (rpgItem != null && !string.IsNullOrEmpty(rpgItem.Name))
        {
            //rpgItem.LoadIcon();
            return(true);
        }
        return(false);
    }
Esempio n. 23
0
    public bool IsItemLoaded()
    {
        if (!string.IsNullOrEmpty(UniqueItemId) && rpgItem == null)
         {
         if (UniqueItemId.IndexOf("ITEM") != -1)
         {
             int id = Convert.ToInt32(UniqueItemId.Replace("ITEM", string.Empty));
             rpgItem = Storage.LoadById<RPGItem>(id, new RPGItem());

         }
         if (UniqueItemId.IndexOf("ARMOR") != -1)
         {
             int id = Convert.ToInt32(UniqueItemId.Replace("ARMOR", string.Empty));
             rpgItem = Storage.LoadById<RPGArmor>(id, new RPGArmor());
         }
         }

         if (rpgItem != null && !string.IsNullOrEmpty(rpgItem.Name))
         {
         //rpgItem.LoadIcon();
         return true;
         }
         return false;
    }
	public InventoryItem FindItem(RPGItem item, int level)
	{
		if(item.ItemCategory == ItemType.Armor || item.ItemCategory == ItemType.NakedArmor)
			return ArmoryInventory.FindItem(item, level);
		else
			return MainInventory.FindItem(item, level);
	}
Esempio n. 25
0
 public bool SellItem(RPGItem item, int Amount)
 {
     if (item.ID == 0)
         return false;
     //calculate price
     int price = (int)(item.SellValue * Amount);
     //remove item
     Player.Instance.Hero.Inventory.RemoveItem(item, Amount);
     //add gold
     Player.Instance.Hero.AddCurrency(price, BuyCurrencyType.Magnets);
     //add item to temp shop collection
     AddItem(item, Amount);
     return true;
 }
Esempio n. 26
0
    public static bool GiveItem(PreffixType preffix, int ID, int amount)
    {
        string uniqueId = preffix.ToString() + ID.ToString();

        switch (preffix)
        {
        case PreffixType.ARMOR:
            RPGArmor armor = Storage.LoadbyUniqueId <RPGArmor>(uniqueId, new RPGArmor());
            //armor.CurrentDurability = armor.Durability;
            if (armor.EquipmentSlotIndex == EquipmentSlots.Head)
            {
                return(Player.Instance.Hero.HeadInventory.AddItem(armor, amount));
            }
            if (armor.EquipmentSlotIndex == EquipmentSlots.Body)
            {
                return(Player.Instance.Hero.BodyInventory.AddItem(armor, amount));
            }
            if (armor.EquipmentSlotIndex == EquipmentSlots.ArmL)
            {
                return(Player.Instance.Hero.ArmLInventory.AddItem(armor, amount));
            }
            if (armor.EquipmentSlotIndex == EquipmentSlots.ArmR)
            {
                return(Player.Instance.Hero.ArmRInventory.AddItem(armor, amount));
            }
            if (armor.EquipmentSlotIndex == EquipmentSlots.Legs)
            {
                return(Player.Instance.Hero.LegsInventory.AddItem(armor, amount));
            }
            break;

        case PreffixType.ITEM:
            RPGItem item = Storage.LoadbyUniqueId <RPGItem>(uniqueId, new RPGItem());
            return(Player.Instance.Hero.Inventory.AddItem(item, amount));
            //break;

            /*case PreffixType.SKILL:
             *  if (amount == -1)
             *  {
             *      //add new skill
             *      RPGSkill skill = Storage.LoadbyUniqueId<RPGSkill>(uniqueId, new RPGSkill());
             *      skill.Value = 1;
             *      player.Hero.Skills.Add(skill);
             *  }
             *  else
             *  {
             *      foreach(RPGSkill skill in player.Hero.Skills)
             *      {
             *          if (skill.UniqueId == uniqueId)
             *          {
             *              if (skill.Value + amount > skill.Maximum)
             *                  skill.Value = skill.Maximum;
             *              else
             *                  skill.Value += amount;
             *          }
             *      }
             *  }
             *
             *  break;
             * case PreffixType.SKILLPOINT:
             *  player.Hero.SkillPoint += amount;
             *  break;
             * case PreffixType.QUEST:
             *  player.Hero.Quest.StartQuest(ID);
             *  break;
             * case PreffixType.ATTRIBUTE:
             *  if (amount == -1)
             *  {
             *      //add new skill
             *      RPGAttribute attr = Storage.LoadbyUniqueId<RPGAttribute>(uniqueId, new RPGAttribute());
             *      attr.Value = 1;
             *      player.Hero.Attributes.Add(attr);
             *  }
             *  else
             *  {
             *      foreach(RPGAttribute atr in player.Hero.Attributes)
             *      {
             *          if (atr.UniqueId == uniqueId)
             *          {
             *              if (atr.Value + amount > atr.Maximum)
             *                  atr.Value = atr.Maximum;
             *              else
             *                  atr.Value += amount;
             *          }
             *      }
             *  }
             *  break;
             * case PreffixType.ATTRIBUTEPOINT:
             *  player.Hero.AttributePoint += amount;
             *  break;
             * case PreffixType.XP:
             *  player.Hero.AddXp(amount);
             *  break;
             * case PreffixType.XPPERCENT:
             *  player.Hero.AddXpPercent(amount);
             *  break;
             * case PreffixType.REPUTATION:
             *  player.Hero.AddReputation(ID, amount);
             *  break;
             */
        }
        return(true);
    }
Esempio n. 27
0
    public bool Calculate(IItem i)
    {
        PrepareCollection(i);

        /*foreach(Effect effect in sourceItem.Effects)
         * {
         *      Effect e = new Effect();
         *      e.Duration = effect.Duration;
         *      e.EffectType = effect.EffectType;
         *      e.Target = effect.Target;
         *      e.Value = effect.Value;
         *      effects.Add(e);
         * }*/

        //ItemsCount = (MaximumLevel - sourceItem.LevelItem + 1) / Frequency;

        FillItems();

        ItemsCount--;

        /*for(int x = 0; x <= ItemsCount; x++)
         * {
         *      RPGItem rpgItem = (RPGItem)Items[x];
         *      rpgItem.LevelItem = (x + 1) * Frequency;
         * }*/

        //generating price
        if (Price)
        {
            int price = sourceItem.BuyValue;
            for (int x = 0; x <= ItemsCount; x++)
            {
                RPGItem rpgItem = (RPGItem)Items[x];

                if (PriceType == IncresingTypeEnum.Linear)
                {
                    price = price + (int)(rpgItem.BuyValue * IncreasingPrice / 100);
                }
                else
                {
                    price = (int)(price * IncreasingPrice);
                }

                rpgItem.BuyValue = price;
            }
        }

        //generating effects

        /*if (Effects)
         * {
         *      foreach(Effect effect in effects)
         *      {
         *              int tempValue = effect.Value;
         *              for(int x = 0; x <= ItemsCount; x++)
         *              {
         *                      RPGItem rpgItem = (RPGItem)Items[x];
         *
         *                      foreach(Effect e in rpgItem.Effects)
         *                      {
         *                              if (e.EffectType != effect.EffectType && e.Duration != effect.Duration && e.Target != effect.Target)
         *                                      continue;
         *                              if (EffectType == IncresingTypeEnum.Linear)
         *                                      tempValue +=  (int)(e.Value * IncreasingPrice / 100);
         *                              else
         *                                      tempValue = (int)(tempValue * IncreasingPrice);
         *                              e.Value = tempValue;
         *                      }
         *              }
         *      }
         * }*/

        //generating names
        if (UseNames)
        {
            for (int x = 0; x <= ItemsCount; x++)
            {
                RPGItem rpgItem = (RPGItem)Items[x];
                rpgItem.Name = string.Format(GeneratorConfig.WordsMask[x], GeneratorConfig.Words[x], SourceItem.Name);
            }
        }

        GenerateAnother(i);
        IsGenerated = true;
        return(true);
    }
	public void RemoveItem(RPGItem item, int level)
	{
		RemoveItem(item, level, 1);
	}
Esempio n. 29
0
 public bool AddItem(RPGItem itemToAdd)
 {
     return(AddItem(itemToAdd, 1));
 }
Esempio n. 30
0
 protected virtual void PrepareCollection(IItem i)
 {
     Items = new List<IItem>();
     SourceItem = (RPGItem)i;
     sourceItem = (RPGItem)i;
 }
Esempio n. 31
0
 public BuyTransaction BuyItem(RPGItem rpgItem)
 {
     return(BuyItem(rpgItem, 1));
 }
Esempio n. 32
0
    public bool RemoveItem(RPGItem itemToRemove, int amountToRemove)
    {
        if (itemToRemove.ID == 0)
        {
            return(true);
        }

        if (!DoYouHaveThisItem(itemToRemove.UniqueId, amountToRemove))
        {
            return(false);
        }

        /*foreach(InventoryItem item in Items)
         * {
         *  if(itemToRemove.UniqueId == itemToRemove.UniqueId)
         *  {
         *      //continue;
         *      Debug.Log("got here");
         *      if (item.CurrentAmount > amountToRemove)
         *       {
         *           item.CurrentAmount -= amountToRemove;
         *       }
         *      else
         *      {
         *          Items.Remove(item);
         *          return true;
         *      }
         *  }
         * }*/

        if (itemToRemove.Stackable)
        {
            foreach (InventoryItem item in Items)
            {
                if (item.rpgItem.UniqueId == itemToRemove.UniqueId)
                {
                    if (item.CurrentAmount > amountToRemove)
                    {
                        item.CurrentAmount -= amountToRemove;
                    }
                    else
                    {
                        Items.Remove(item);
                        return(true);
                    }
                }
            }
        }
        else
        {
            for (int x = 1; x <= amountToRemove; x++)
            {
                foreach (InventoryItem item in Items)
                {
                    if (itemToRemove.UniqueId == item.rpgItem.UniqueId && item.CurrentAmount == 1)
                    {
                        Items.Remove(item);
                        break;
                    }
                }
            }
        }
        //FinalizeInventoryOperation(player);

        return(true);
    }
Esempio n. 33
0
	protected void AddItem(RPGItem item, List<InventoryItem> BaseLootItems)
	{
		foreach(InventoryItem i in BaseLootItems)
		{
			if (i.rpgItem.UniqueId == item.UniqueId)
				return;
		}
		
		InventoryItem itemInWorld = new InventoryItem();
		itemInWorld.rpgItem = item;
		itemInWorld.UniqueItemId = item.UniqueId;
		//if (item.Stackable)
		itemInWorld.CurrentAmount = StackAmount;
		itemInWorld.Level = Level;
		//else
			//itemInWorld.CurrentAmount = 1;
		BaseLootItems.Add(itemInWorld);
	}
Esempio n. 34
0
        private async Task <bool> EquiparItemAsync(CommandContext ctx, RPGJogador usuario, RPGItem item)
        {
            if (item.ProficienciaNivelRequisito != 1)
            {
                usuario.Proficiencias.TryGetValue(item.Proficiencia, out RPGProficiencia proff);
                if (proff.Pontos >= item.ProficienciaNivelRequisito)
                {
                    usuario.EquiparItem(item);
                    return(true);
                }
                else
                {
                    await ctx.RespondAsync($"Você precisa de {item.ProficienciaNivelRequisito} pontos em {item.Proficiencia.ToString()} para usar [{item.Nome}] {ctx.User.Mention}!".Bold());

                    return(false);
                }
            }
            usuario.EquiparItem(item);
            return(true);
        }
Esempio n. 35
0
    private void AddItem(RPGItem item, int Amount)
    {
        foreach(ItemInWorld i in ShopItems)
        {
            if (i.rpgItem.UniqueId == item.UniqueId)
            {
                i.CurrentAmount += Amount;
                return;
            }
        }

        ItemInWorld itemInWorld = new ItemInWorld();
        itemInWorld.UniqueItemId = item.UniqueId;
        itemInWorld.rpgItem = item;
        itemInWorld.CurrentAmount = Amount;
        ShopItems.Add(itemInWorld);
    }
Esempio n. 36
0
 public bool SellItem(RPGItem item)
 {
     return SellItem(item, 1);
 }
	public bool DoYouHaveSpaceForThisItem(RPGItem item, int level, int amount)
	{
		if(item.ItemCategory == ItemType.Armor)
		{
			if(ArmoryInventory.DoYouHaveSpaceForThisItem(item, level, amount))
				return true;
		}
		else
		{
			if(MainInventory.DoYouHaveSpaceForThisItem(item, level, amount))
				return true;
		}

		return false;
	}
Esempio n. 38
0
    protected virtual void FillItems()
    {
        for(int x = 1; x <= ItemsCount; x++)
        {
            RPGItem sourceItem = (RPGItem)SourceItem;
            RPGItem item = new RPGItem();
            //item.Stackable = sourceItem.Stackable;
            //item.MaximumStack = sourceItem.MaximumStack;
            item.BuyValue = sourceItem.BuyValue;
            item.SellValue = sourceItem.SellValue;
            item.Rarity = sourceItem.Rarity;
            //item.NumberCharges = sourceItem.NumberCharges;
            item.IconPath = sourceItem.IconPath;
            item.AtlasName = sourceItem.AtlasName;
            //item.PrefabName = sourceItem.PrefabName;

            /*foreach(Effect effect in sourceItem.Effects)
            {
                Effect e = new Effect();
                e.Duration = effect.Duration;
                e.EffectType = effect.EffectType;
                e.Target = effect.Target;
                e.Value = effect.Value;
                item.Effects.Add(e);
            }*/
            //item.Categories = sourceItem.Categories;
            //item.IsCopy = true;
            //item.SourceItem = sourceItem.ID;
            //item.Categories = sourceItem.Categories;
            Items.Add(item);
        }
    }
	public void AddItem(RPGItem item, int level)
	{
		AddItem(item, level, 1);
	}
Esempio n. 40
0
    public bool RemoveItem(RPGItem itemToRemove, int amountToRemove)
    {
        if (itemToRemove.ID == 0)
         return true;

         if (!DoYouHaveThisItem(itemToRemove.UniqueId, amountToRemove))
         return false;

        /*foreach(InventoryItem item in Items)
        {
            if(itemToRemove.UniqueId == itemToRemove.UniqueId)
            {
                //continue;
                Debug.Log("got here");
                if (item.CurrentAmount > amountToRemove)
                 {
                     item.CurrentAmount -= amountToRemove;
                 }
                else
                {
                    Items.Remove(item);
                    return true;
                }
            }
        }*/

         if (itemToRemove.Stackable)
         {
         foreach(InventoryItem item in Items)
         {
             if (item.rpgItem.UniqueId == itemToRemove.UniqueId)
                {
                     if (item.CurrentAmount > amountToRemove)
                     {
                         item.CurrentAmount -= amountToRemove;
                     }
                     else
                     {
                         Items.Remove(item);
                         return true;
                     }
                }
         }
         }
         else
         {
         for(int x = 1; x <= amountToRemove; x ++)
         {
             foreach(InventoryItem item in Items)
             {
                 if (itemToRemove.UniqueId == item.rpgItem.UniqueId && item.CurrentAmount == 1)
                 {
                     Items.Remove(item);
                     break;
                 }
             }
         }
         }
        //FinalizeInventoryOperation(player);

         return true;
    }
	public void RemoveItem(RPGItem item, int level, int amount)
	{
		if(item.ItemCategory == ItemType.Armor)
		{
			ArmoryInventory.RemoveItem(item, level, amount);
			hasArmorChange = true;
		}
		else if(item.ItemCategory == ItemType.NakedArmor)
		{
			NakedArmorInventory.RemoveItem(item, level, amount);
			hasNakedArmorChange = true;
		}
		else
		{
			MainInventory.RemoveItem(item, level, amount);
			hasItemChange = true;
		}
    }
Esempio n. 42
0
 public bool AddItem(RPGItem itemToAdd)
 {
     return AddItem(itemToAdd, 1);
 }
Esempio n. 43
0
 protected virtual void PrepareCollection(IItem i)
 {
     Items      = new List <IItem>();
     SourceItem = (RPGItem)i;
     sourceItem = (RPGItem)i;
 }
Esempio n. 44
0
	/*public static void AddEquipmentSlot(RPGEquipmentSlot slot, List<RPGEquipmentSlot> slots)
	{
		List<IItem> items = new List<IItem>();
		
		foreach(IItem item in slots)
			items.Add((IItem)item);
		
		slot.ID = EditorUtils.IntPopup(slot.ID, items, "Eq slot ID", 200, FieldTypeEnum.BeginningOnly);
	}*/
	
	/*public static void AddWeapon(RPGWeapon weapon)
	{
		EditorUtils.Separator();
		
		EditorGUILayout.Separator();
		EditorGUILayout.BeginHorizontal();
		
		EditorGUILayout.PrefixLabel("Melee / range");
		weapon.Attack = (WeaponCombatSkillType)EditorGUILayout.EnumPopup(weapon.Attack ,GUILayout.Width(100));
		
		EditorGUILayout.EndHorizontal();
		
		EditorGUILayout.Separator();
		EditorGUILayout.BeginHorizontal();
		
		EditorGUILayout.PrefixLabel("Minimum dmg");
		weapon.MinimumDmg = EditorGUILayout.IntField(weapon.MinimumDmg ,GUILayout.Width(100));
		
		EditorGUILayout.PrefixLabel("Maximum dmg");
		weapon.MaximumDmg = EditorGUILayout.IntField(weapon.MaximumDmg ,GUILayout.Width(100));
		EditorGUILayout.EndHorizontal();
		
		EditorGUILayout.Separator();
		EditorGUILayout.BeginHorizontal();
		
		EditorGUILayout.PrefixLabel("Attack speed");
		weapon.AttackSpeed = EditorGUILayout.FloatField(weapon.AttackSpeed ,GUILayout.Width(100));
		EditorGUILayout.EndHorizontal();
		
		EditorGUILayout.Separator();
		EditorGUILayout.BeginHorizontal();
		
		EditorGUILayout.PrefixLabel("Minimum range");
		weapon.MinimumRange = EditorGUILayout.IntField(weapon.MinimumRange ,GUILayout.Width(100));
		
		EditorGUILayout.PrefixLabel("Maximum range");
		weapon.MaximumRange = EditorGUILayout.IntField(weapon.MaximumRange ,GUILayout.Width(100));
		EditorGUILayout.EndHorizontal();
		
		EditorGUILayout.Separator();
		EditorGUILayout.BeginHorizontal();
		
		EditorGUILayout.PrefixLabel("Is ammo");
		weapon.IsAmmo = EditorGUILayout.Toggle(weapon.IsAmmo ,GUILayout.Width(100));
		EditorGUILayout.EndHorizontal();
		
		EditorGUILayout.Separator();
		EditorGUILayout.BeginHorizontal();
		
		EditorGUILayout.PrefixLabel("Need ammo");
		weapon.NeedAmmo = EditorGUILayout.Toggle(weapon.NeedAmmo ,GUILayout.Width(100));
		EditorGUILayout.EndHorizontal();
		
		EditorGUILayout.Separator();
		EditorGUILayout.BeginHorizontal();
		
		EditorGUILayout.PrefixLabel("Weapon type");
		weapon.WeaponType = (WeaponCategoryType)EditorGUILayout.EnumPopup(weapon.WeaponType ,GUILayout.Width(100));
		EditorGUILayout.EndHorizontal();
	}*/
	
	public static void ItemGenerator(RPGItem item, ItemGenerator generator)
	{
		
		EditorGUILayout.Separator();
		EditorGUILayout.BeginHorizontal();
		EditorGUILayout.PrefixLabel("Lvl increase");
		
		generator.Frequency = EditorGUILayout.IntSlider(generator.Frequency,1,20,  GUILayout.Width(100));
		if (GUILayout.Button("Generate", GUILayout.Width(200)))
		{
			generator.Calculate(item);
		}
		EditorGUILayout.EndHorizontal();
		
		
		EditorGUILayout.Separator();
		EditorGUILayout.BeginHorizontal();
		
		EditorGUILayout.PrefixLabel("Use adjective");
		generator.UseNames = EditorGUILayout.Toggle(generator.UseNames, GUILayout.Width(300));
		EditorGUILayout.EndHorizontal();	
		
		
		EditorGUILayout.Separator();
		EditorGUILayout.BeginHorizontal();
			
		EditorGUILayout.LabelField("Names", generator.GetNames);
		EditorGUILayout.EndHorizontal();
		
		EditorGUILayout.Separator();
		EditorGUILayout.BeginHorizontal();
		
		EditorGUILayout.PrefixLabel("Increasing price");
		generator.Price = EditorGUILayout.Toggle(generator.Price, GUILayout.Width(100));
		if (generator.Price)
		{
			generator.PriceType = (IncresingTypeEnum)EditorGUILayout.EnumPopup(generator.PriceType, GUILayout.Width(100));
		
			EditorGUILayout.PrefixLabel("amount");
			generator.IncreasingPrice = EditorGUILayout.FloatField(generator.IncreasingPrice, GUILayout.Width(100));
		}
		EditorGUILayout.EndHorizontal();
		
		EditorGUILayout.Separator();
		EditorGUILayout.BeginHorizontal();
		EditorGUILayout.LabelField("Prices", generator.GetPrices);
		EditorGUILayout.EndHorizontal();
		
		EditorGUILayout.Separator();
		EditorGUILayout.BeginHorizontal();
		
		EditorGUILayout.PrefixLabel("Increasing effect");
		generator.Effects = EditorGUILayout.Toggle(generator.Effects, GUILayout.Width(100));
		if (generator.Effects)
		{
			generator.EffectType = (IncresingTypeEnum)EditorGUILayout.EnumPopup(generator.EffectType, GUILayout.Width(100));
		
			EditorGUILayout.PrefixLabel("amount");
			generator.IncreasingEffect = EditorGUILayout.FloatField(generator.IncreasingEffect, GUILayout.Width(100));
		}
		EditorGUILayout.EndHorizontal();
	}
Esempio n. 45
0
    public bool DoYouHaveSpaceForThisItem(RPGItem itemToHave, int amountToReach)
    {
        if (itemToHave == null)
        {
            return(false);
        }

        if (itemToHave.Stackable)
        {
            foreach (InventoryItem item in Items)
            {
                if (item.rpgItem.UniqueId != itemToHave.UniqueId)
                {
                    continue;
                }
                else
                {
                    return(true);
                }
            }

            if (!IsFullInventory)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }

        else
        {
            if (maximumItems - Items.Count >= amountToReach)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }

        /*if (itemToHave.Stackable)
         * {
         *  foreach(InventoryItem item in Items)
         *  {
         *      if (item.rpgItem.UniqueId != itemToHave.UniqueId)
         *           continue;
         *      if (item.rpgItem.MaximumStack == item.CurrentAmount)
         *          continue;
         *      size = item.rpgItem.MaximumStack - item.CurrentAmount;
         *  }
         *  if (size <= 0)
         *      return true;
         *  int freeSpaces = maximumItems - Items.Count;
         *  if (freeSpaces + itemToHave.MaximumStack > size)
         *      return true;
         *  else
         *      return false;
         * }
         * else
         * {
         *  if (Items.Count <= maximumItems + size)
         *      return true;
         *  else
         *      return false;
         * }*/
    }
Esempio n. 46
0
    public bool RemoveItem(int ID, string preffix, int amountToRemove)
    {
        RPGItem item = new RPGItem();

         if (preffix == PreffixType.ARMOR.ToString())
         item = Storage.LoadById<RPGArmor>(ID, new RPGArmor());

         if (preffix == PreffixType.ITEM.ToString())
         item = Storage.LoadById<RPGItem>(ID, new RPGItem());

        return RemoveItem(item, amountToRemove);
    }
Esempio n. 47
0
	/*protected override void AditionalSwitch()
	{
		if (MenuMode ==  MenuModeEnum.ThirdWindow)
		{
			GenerateStrongerItem();
		}
	}*/
	
	protected override void StartNewIItem()
	{
		currentItem = new RPGItem();
	}
Esempio n. 48
0
    public static void DisplayItemPart(RPGItem item, MainWindowEditor Data)
    {
        if (string.IsNullOrEmpty(item.IconPath))
        {
            item.IconPath = string.Empty;
        }

        if (string.IsNullOrEmpty(item.AtlasName))
        {
            item.AtlasName = string.Empty;
        }
        //if (string.IsNullOrEmpty(item.PrefabName))
        //	item.PrefabName = string.Empty;

        //if (item.LevelItem == 0)
        //	item.LevelItem = 1;

        //List<RPGItemCategory> itemCategories = Storage.Load<RPGItemCategory>(new RPGItemCategory());

        EditorUtils.Separator();

        EditorUtils.Label("General item info");

        item.IconPath = EditorUtils.TextField(item.IconPath, "Icon name");

        item.AtlasName = EditorUtils.TextField(item.AtlasName, "Atlas name");

        //item.PrefabName = EditorUtils.TextField(item.PrefabName, "Prefab name");


        /*item.Stackable = EditorUtils.Toggle(item.Stackable, "Stack", 100,FieldTypeEnum.BeginningOnly);
         * if (item.Stackable)
         * {
         *      item.MaximumStack = EditorUtils.IntField(item.MaximumStack, "Stack amount", 100,FieldTypeEnum.Middle);
         * }*/
        //EditorGUILayout.EndHorizontal();

        //item.Destroyable = EditorUtils.Toggle(item.Destroyable, "Destroyable");

        //item.Droppable = EditorUtils.Toggle(item.Droppable, "Droppable");

        EditorGUILayout.Separator();
        EditorGUILayout.BeginHorizontal();

        //item.LevelItem = EditorGUILayout.IntSlider(item.LevelItem, -1, GlobalSettings.MaxLevel,GUILayout.Width(300));
        EditorGUILayout.EndHorizontal();

        item.BuyValue  = EditorUtils.IntField(item.BuyValue, "buy Value");
        item.SellValue = EditorUtils.IntField(item.SellValue, "sell value");

        EditorGUILayout.Separator();
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.PrefixLabel("Rarity");

        item.Rarity = (RarityType)EditorGUILayout.EnumPopup(item.Rarity, GUILayout.Width(300));

        EditorGUILayout.PrefixLabel("Item Type");

        item.ItemCategory = (ItemType)EditorGUILayout.EnumPopup(item.ItemCategory, GUILayout.Width(300));

        EditorGUILayout.EndHorizontal();

        EditorUtils.Separator();

        /*if (GUILayout.Button("Add item category", GUILayout.Width(350)))
         * {
         *      RPGItemCategory itemCateogry = new RPGItemCategory();
         *      item.Categories.Add(itemCateogry);
         * }
         * foreach(RPGItemCategory itemCategory in item.Categories)
         * {
         *      AddItemCategory(itemCategory, itemCategories);
         *
         *      if (GUILayout.Button("Remove", GUILayout.Width(100)))
         *      {
         *              item.Categories.Remove(itemCategory);
         *              break;
         *      }
         *
         *      EditorGUILayout.EndHorizontal();
         * }*/

        //EditorUtils.Separator();

        EditorGUILayout.Separator();
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.PrefixLabel("Usable");

        item.IsUsable = EditorGUILayout.Toggle(item.IsUsable, GUILayout.Width(300));
        EditorGUILayout.EndHorizontal();
        if (item.IsUsable)
        {
            AddUsableItem(item, Data);
        }
    }
	public void LoadItemRarity(RPGItem item)
	{
		for (int i = 0; i < rarityColors.Length; i++) {
			if(rarityColors[i].rarity == item.Rarity)
			{
				tile.color = rarityColors[i].tintColor;
				return;
			}
		}
		tile.color = Color.white;
	}
Esempio n. 50
0
 public BuyTransaction BuyItem(RPGItem rpgItem)
 {
     return BuyItem(rpgItem, 1);
 }
Esempio n. 51
0
	public static void DisplayItemPart(RPGItem item, MainWindowEditor Data)
	{
		if (string.IsNullOrEmpty(item.IconPath))
			item.IconPath = string.Empty;
		
        if (string.IsNullOrEmpty(item.AtlasName))
            item.AtlasName = string.Empty;
		//if (string.IsNullOrEmpty(item.PrefabName))
		//	item.PrefabName = string.Empty;
		
		//if (item.LevelItem == 0)
		//	item.LevelItem = 1;
		
		//List<RPGItemCategory> itemCategories = Storage.Load<RPGItemCategory>(new RPGItemCategory());
		
		EditorUtils.Separator();
		
		EditorUtils.Label("General item info");
		
		item.IconPath = EditorUtils.TextField(item.IconPath, "Icon name");
        
        item.AtlasName = EditorUtils.TextField(item.AtlasName, "Atlas name");
		
		//item.PrefabName = EditorUtils.TextField(item.PrefabName, "Prefab name");
		
		
		/*item.Stackable = EditorUtils.Toggle(item.Stackable, "Stack", 100,FieldTypeEnum.BeginningOnly);
		if (item.Stackable)
		{
			item.MaximumStack = EditorUtils.IntField(item.MaximumStack, "Stack amount", 100,FieldTypeEnum.Middle);
		}*/
		//EditorGUILayout.EndHorizontal();
		
		//item.Destroyable = EditorUtils.Toggle(item.Destroyable, "Destroyable");
		
		//item.Droppable = EditorUtils.Toggle(item.Droppable, "Droppable");
		
		EditorGUILayout.Separator();
		EditorGUILayout.BeginHorizontal();
		
		//item.LevelItem = EditorGUILayout.IntSlider(item.LevelItem, -1, GlobalSettings.MaxLevel,GUILayout.Width(300));
		EditorGUILayout.EndHorizontal();
		
		item.BuyValue = EditorUtils.IntField(item.BuyValue, "buy Value");
        item.SellValue = EditorUtils.IntField(item.SellValue, "sell value");
		item.BuyCurrency = (BuyCurrencyType)EditorGUILayout.EnumPopup(item.BuyCurrency, GUILayout.Width(300));
		EditorGUILayout.Separator();
		EditorGUILayout.BeginHorizontal();
		EditorGUILayout.PrefixLabel("Rarity");
		
		item.Rarity = (RarityType)EditorGUILayout.EnumPopup(item.Rarity ,GUILayout.Width(300));
        
        EditorGUILayout.PrefixLabel("Item Type");
        
        item.ItemCategory = (ItemType)EditorGUILayout.EnumPopup(item.ItemCategory , GUILayout.Width(300));
        
		EditorGUILayout.EndHorizontal();
		
		EditorUtils.Separator();
		
		/*if (GUILayout.Button("Add item category", GUILayout.Width(350)))
		{
			RPGItemCategory itemCateogry = new RPGItemCategory();
			item.Categories.Add(itemCateogry);
		}
		foreach(RPGItemCategory itemCategory in item.Categories)
		{
			AddItemCategory(itemCategory, itemCategories);
			
			if (GUILayout.Button("Remove", GUILayout.Width(100)))
			{
				item.Categories.Remove(itemCategory);
				break;
			}
			
			EditorGUILayout.EndHorizontal();
		}*/
		
		//EditorUtils.Separator();
		
		EditorGUILayout.Separator();
		EditorGUILayout.BeginHorizontal();
		EditorGUILayout.PrefixLabel("Stackable");
		item.Stackable = EditorGUILayout.Toggle(item.Stackable ,GUILayout.Width(50));
		EditorGUILayout.PrefixLabel("Upgradeable");
		item.IsUpgradeable = EditorGUILayout.Toggle(item.IsUpgradeable ,GUILayout.Width(50));
		EditorGUILayout.PrefixLabel("Usable");
		item.IsUsable = EditorGUILayout.Toggle(item.IsUsable ,GUILayout.Width(50));
		EditorGUILayout.PrefixLabel("Equippable");
		item.IsEquippable = EditorGUILayout.Toggle(item.IsEquippable ,GUILayout.Width(50));
		EditorGUILayout.PrefixLabel("limited use?");
		item.isLimitedUse = EditorGUILayout.Toggle(item.isLimitedUse ,GUILayout.Width(50));
		EditorGUILayout.EndHorizontal();
		if (item.IsUsable)
		{
			AddUsableItem(item, Data);
		}
		if(item.IsEquippable)
		{
			EditorUtils.Label("Equiped slot");
			item.EquipmentSlotIndex = (EquipmentSlots)EditorGUILayout.EnumPopup(item.EquipmentSlotIndex ,GUILayout.Width(300));
		}
	}
Esempio n. 52
0
	private void AddItem(RPGItem item, int Amount)
	{
		foreach(InventoryItem i in ShopItems)
		{
			if (i.rpgItem.UniqueId == item.UniqueId)
            {
                i.CurrentAmount += Amount;
				return;
            }
		}
		
		InventoryItem itemInWorld = new InventoryItem();
		itemInWorld.UniqueItemId = item.UniqueId;
		itemInWorld.rpgItem = item;
		itemInWorld.CurrentAmount = Amount;
		itemInWorld.IsItemEquipped = false;
		ShopItems.Add(itemInWorld);
	}
Esempio n. 53
0
 public bool RemoveItem(RPGItem itemToRemove)
 {
     return RemoveItem(itemToRemove, 1);
 }
Esempio n. 54
0
    /*public static void AddEquipmentSlot(RPGEquipmentSlot slot, List<RPGEquipmentSlot> slots)
     * {
     *      List<IItem> items = new List<IItem>();
     *
     *      foreach(IItem item in slots)
     *              items.Add((IItem)item);
     *
     *      slot.ID = EditorUtils.IntPopup(slot.ID, items, "Eq slot ID", 200, FieldTypeEnum.BeginningOnly);
     * }*/

    /*public static void AddWeapon(RPGWeapon weapon)
     * {
     *      EditorUtils.Separator();
     *
     *      EditorGUILayout.Separator();
     *      EditorGUILayout.BeginHorizontal();
     *
     *      EditorGUILayout.PrefixLabel("Melee / range");
     *      weapon.Attack = (WeaponCombatSkillType)EditorGUILayout.EnumPopup(weapon.Attack ,GUILayout.Width(100));
     *
     *      EditorGUILayout.EndHorizontal();
     *
     *      EditorGUILayout.Separator();
     *      EditorGUILayout.BeginHorizontal();
     *
     *      EditorGUILayout.PrefixLabel("Minimum dmg");
     *      weapon.MinimumDmg = EditorGUILayout.IntField(weapon.MinimumDmg ,GUILayout.Width(100));
     *
     *      EditorGUILayout.PrefixLabel("Maximum dmg");
     *      weapon.MaximumDmg = EditorGUILayout.IntField(weapon.MaximumDmg ,GUILayout.Width(100));
     *      EditorGUILayout.EndHorizontal();
     *
     *      EditorGUILayout.Separator();
     *      EditorGUILayout.BeginHorizontal();
     *
     *      EditorGUILayout.PrefixLabel("Attack speed");
     *      weapon.AttackSpeed = EditorGUILayout.FloatField(weapon.AttackSpeed ,GUILayout.Width(100));
     *      EditorGUILayout.EndHorizontal();
     *
     *      EditorGUILayout.Separator();
     *      EditorGUILayout.BeginHorizontal();
     *
     *      EditorGUILayout.PrefixLabel("Minimum range");
     *      weapon.MinimumRange = EditorGUILayout.IntField(weapon.MinimumRange ,GUILayout.Width(100));
     *
     *      EditorGUILayout.PrefixLabel("Maximum range");
     *      weapon.MaximumRange = EditorGUILayout.IntField(weapon.MaximumRange ,GUILayout.Width(100));
     *      EditorGUILayout.EndHorizontal();
     *
     *      EditorGUILayout.Separator();
     *      EditorGUILayout.BeginHorizontal();
     *
     *      EditorGUILayout.PrefixLabel("Is ammo");
     *      weapon.IsAmmo = EditorGUILayout.Toggle(weapon.IsAmmo ,GUILayout.Width(100));
     *      EditorGUILayout.EndHorizontal();
     *
     *      EditorGUILayout.Separator();
     *      EditorGUILayout.BeginHorizontal();
     *
     *      EditorGUILayout.PrefixLabel("Need ammo");
     *      weapon.NeedAmmo = EditorGUILayout.Toggle(weapon.NeedAmmo ,GUILayout.Width(100));
     *      EditorGUILayout.EndHorizontal();
     *
     *      EditorGUILayout.Separator();
     *      EditorGUILayout.BeginHorizontal();
     *
     *      EditorGUILayout.PrefixLabel("Weapon type");
     *      weapon.WeaponType = (WeaponCategoryType)EditorGUILayout.EnumPopup(weapon.WeaponType ,GUILayout.Width(100));
     *      EditorGUILayout.EndHorizontal();
     * }*/

    public static void ItemGenerator(RPGItem item, ItemGenerator generator)
    {
        EditorGUILayout.Separator();
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.PrefixLabel("Lvl increase");

        generator.Frequency = EditorGUILayout.IntSlider(generator.Frequency, 1, 20, GUILayout.Width(100));
        if (GUILayout.Button("Generate", GUILayout.Width(200)))
        {
            generator.Calculate(item);
        }
        EditorGUILayout.EndHorizontal();


        EditorGUILayout.Separator();
        EditorGUILayout.BeginHorizontal();

        EditorGUILayout.PrefixLabel("Use adjective");
        generator.UseNames = EditorGUILayout.Toggle(generator.UseNames, GUILayout.Width(300));
        EditorGUILayout.EndHorizontal();


        EditorGUILayout.Separator();
        EditorGUILayout.BeginHorizontal();

        EditorGUILayout.LabelField("Names", generator.GetNames);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.Separator();
        EditorGUILayout.BeginHorizontal();

        EditorGUILayout.PrefixLabel("Increasing price");
        generator.Price = EditorGUILayout.Toggle(generator.Price, GUILayout.Width(100));
        if (generator.Price)
        {
            generator.PriceType = (IncresingTypeEnum)EditorGUILayout.EnumPopup(generator.PriceType, GUILayout.Width(100));

            EditorGUILayout.PrefixLabel("amount");
            generator.IncreasingPrice = EditorGUILayout.FloatField(generator.IncreasingPrice, GUILayout.Width(100));
        }
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.Separator();
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Prices", generator.GetPrices);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.Separator();
        EditorGUILayout.BeginHorizontal();

        EditorGUILayout.PrefixLabel("Increasing effect");
        generator.Effects = EditorGUILayout.Toggle(generator.Effects, GUILayout.Width(100));
        if (generator.Effects)
        {
            generator.EffectType = (IncresingTypeEnum)EditorGUILayout.EnumPopup(generator.EffectType, GUILayout.Width(100));

            EditorGUILayout.PrefixLabel("amount");
            generator.IncreasingEffect = EditorGUILayout.FloatField(generator.IncreasingEffect, GUILayout.Width(100));
        }
        EditorGUILayout.EndHorizontal();
    }
Esempio n. 55
0
 protected void AddInventoryItem(RPGItem itemToAdd, int amount)
 {
     InventoryItem item = new InventoryItem();
      item.ItemInventoryIndex = GetFirstUnusedPosition();
      item.rpgItem = itemToAdd;
      item.CurrentAmount = amount;
      //item.CurrentDurability = itemToAdd.CurrentDurability;
      item.UniqueItemId = itemToAdd.UniqueId;
     //Debug.Log(Items.Count);
      Items.Add(item);
     //Debug.Log("item added " + itemToAdd.Name);
     //Debug.Log(Items.Count);
 }
Esempio n. 56
0
 public bool SellItem(RPGItem item)
 {
     return(SellItem(item, 1));
 }
Esempio n. 57
0
 public bool RemoveItem(RPGItem itemToRemove)
 {
     return(RemoveItem(itemToRemove, 1));
 }
Esempio n. 58
0
    /*protected override void AditionalSwitch()
     * {
     *      if (MenuMode ==  MenuModeEnum.ThirdWindow)
     *      {
     *              GenerateStrongerItem();
     *      }
     * }*/

    protected override void StartNewIItem()
    {
        currentItem = new RPGItem();
    }