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); }
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++; } } }
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; }
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); } }
public static bool TryGetItem(string nome, out RPGItem item) { item = ColecaoItem.Find(x => x.Nome == nome).FirstOrDefault(); if (item == null) { return(false); } return(true); }
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; } } }*/ }
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; }
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; }*/ }
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)); }
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()); } }
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; } }
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); }
// 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)); } }
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)); }
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; * } * } * }*/ }
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); }
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); }
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; }
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); }
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)); } }
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 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); }
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; }
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); }
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); }
public bool AddItem(RPGItem itemToAdd) { return(AddItem(itemToAdd, 1)); }
protected virtual void PrepareCollection(IItem i) { Items = new List<IItem>(); SourceItem = (RPGItem)i; sourceItem = (RPGItem)i; }
public BuyTransaction BuyItem(RPGItem rpgItem) { return(BuyItem(rpgItem, 1)); }
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); }
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); }
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); }
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); }
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; }
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); }
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; } }
public bool AddItem(RPGItem itemToAdd) { return AddItem(itemToAdd, 1); }
protected virtual void PrepareCollection(IItem i) { Items = new List <IItem>(); SourceItem = (RPGItem)i; sourceItem = (RPGItem)i; }
/*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(); }
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; * }*/ }
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); }
/*protected override void AditionalSwitch() { if (MenuMode == MenuModeEnum.ThirdWindow) { GenerateStrongerItem(); } }*/ protected override void StartNewIItem() { currentItem = new RPGItem(); }
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; }
public BuyTransaction BuyItem(RPGItem rpgItem) { return BuyItem(rpgItem, 1); }
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)); } }
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); }
public bool RemoveItem(RPGItem itemToRemove) { return RemoveItem(itemToRemove, 1); }
/*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(); }
public bool SellItem(RPGItem item) { return(SellItem(item, 1)); }
public bool RemoveItem(RPGItem itemToRemove) { return(RemoveItem(itemToRemove, 1)); }
/*protected override void AditionalSwitch() * { * if (MenuMode == MenuModeEnum.ThirdWindow) * { * GenerateStrongerItem(); * } * }*/ protected override void StartNewIItem() { currentItem = new RPGItem(); }