public EquipedItem(string id, int lvl, RPGArmor armor) { UniqueItemId = id; Level = lvl; equipSlot = armor.EquipmentSlotIndex; rpgArmor = armor; }
public void LoadItem() { if (UniqueItemId.IndexOf("ARMOR") != -1) { //int id = Convert.ToInt32(UniqueItemId.Replace("ARMOR", string.Empty)); rpgArmor = Storage.LoadbyUniqueId<RPGArmor>(UniqueItemId, new RPGArmor()); } }
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 void UpdateInfoPanel() { if (SelectedInventory.Items[CurrentSelectedItemIndex].IsItemUsable) { UseButton.SetActive(true); DestroyButton.SetActive(true); } else { UseButton.SetActive(false); } if (SelectedInventory.Items[CurrentSelectedItemIndex].IsItemEquippable) { if (!SelectedInventory.Items[CurrentSelectedItemIndex].IsItemEquipped) { EquipButton.SetActive(true); DestroyButton.SetActive(true); } else { EquipButton.SetActive(false); DestroyButton.SetActive(false); } RPGArmor armor = (RPGArmor)SelectedInventory.Items[CurrentSelectedItemIndex].rpgItem; if (armor.HasAbility) { //ItemSkillSprite.enabled = true; //ItemSkillSprite.spriteName = armor.AbilityIconPath; ItemSkillDescriptionLabel.enabled = true; ItemSkillDescriptionLabel.text = armor.AbilityString; } } else { EquipButton.SetActive(false); } ItemNameLabel.enabled = true; ItemNameLabel.text = SelectedInventory.Items[CurrentSelectedItemIndex].rpgItem.Name; ItemDescriptionLabel.enabled = true; ItemDescriptionLabel.text = SelectedInventory.Items[CurrentSelectedItemIndex].rpgItem.Description; }
protected override void EditPart() { RPGArmor s = (RPGArmor)currentItem; /*if (s.ID > 0 && !s.IsCopy && updateMode) * { * if (GUILayout.Button("Generater stronger versions", GUILayout.Width(400))) * { * generator = new ArmorGenerator(); * generator.Calculate(s); * MenuMode = MenuModeEnum.ThirdWindow; * } * }*/ EditorUtils.Separator(); s.ArmorClassValue = EditorUtils.IntField(s.ArmorClassValue, "Armor value"); EditorGUILayout.PrefixLabel("has ability?"); s.HasAbility = EditorGUILayout.Toggle(s.HasAbility, GUILayout.Width(300)); //s.AbilityIconPath = EditorUtils.TextField(s.AbilityIconPath, "ability icon path"); s.AbilityIconPath = EditorGUILayout.TextField(s.AbilityIconPath, GUILayout.Width(500)); s.AbilityString = EditorGUILayout.TextField(s.AbilityString, GUILayout.Width(1000)); ItemUtils.DisplayItemPart(s, Data); ItemUtils.AddEquiped(s, Data); //EditorUtils.Label("Effects on hit"); //EffectUtils.EffectsEditor(s.EffectsOnHit, Data, EffectTypeUsage.ArmorTakeHit); //EditorUtils.Separator(); currentItem = s; }
protected override void FillItems() { for (int x = 1; x <= ItemsCount; x++) { RPGArmor sourceItem = (RPGArmor)SourceItem; RPGArmor item = new RPGArmor(); //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; //item.Durability = sourceItem.Durability; //item.CurrentDurability = sourceItem.Durability; /*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; item.ArmorClassValue = sourceItem.ArmorClassValue; item.EquipmentSlotIndex = sourceItem.EquipmentSlotIndex; //item.WornEffects = sourceItem.WornEffects; //item.Conditions = sourceItem.Conditions; Items.Add(item); } }
protected override void FillItems () { for(int x = 1; x <= ItemsCount; x++) { RPGArmor sourceItem = (RPGArmor)SourceItem; RPGArmor item = new RPGArmor(); //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; //item.Durability = sourceItem.Durability; //item.CurrentDurability = sourceItem.Durability; /*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; //item.ArmorClassValue = sourceItem.ArmorClassValue; item.EquipmentSlotIndex = sourceItem.EquipmentSlotIndex; //item.WornEffects = sourceItem.WornEffects; //item.Conditions = sourceItem.Conditions; Items.Add(item); } }
protected override void GenerateAnother(IItem i) { RPGArmor armor = (RPGArmor)i; //generating weapon damage if (ArmorClassValue) { int amor = armor.ArmorClassValue; for (int x = 0; x <= ItemsCount; x++) { RPGArmor w = (RPGArmor)Items[x]; if (ArmorIncreasingDamageType == IncresingTypeEnum.Linear) { amor = amor + (int)(w.ArmorClassValue * ArmorAmount / 100); } else { amor = (int)(amor * ArmorAmount); } w.ArmorClassValue = amor; } } }
/*private List<EquipedItem> GetUnequipingItems(RPGEquipmentSlot slot) * { * List<RPGEquipmentSlot> slotsID = new List<RPGEquipmentSlot>(); * slotsID.Add(slot); * return GetUnequipingItems(slotsID); * }*/ /*private EquipedItem GetUnequipingItems(EquipmentSlots slot) * { * EquipedItem item = new EquipedItem(); * * foreach(EquipedItem equiped in Items) * { * foreach(RPGEquipmentSlot es in equiped.Slots) * { * if (es.UniqueId == newEquipmentID.UniqueId) * items.Add(equiped); * } * } * } * }*/ // Unequip one item /*public bool UnEquipItem(RPGEquipmentSlot equipmentSlot, Player player) * { * List<EquipedItem> dropingItems = GetUnequipingItems(equipmentSlot); * PlayerEquip.itemsToUnequip = dropingItems; * //only if items doest not remain in inventory * if (!player.Hero.Settings.EquipedItemInInventory) * { * foreach(EquipedItem e in dropingItems) * { * player.Hero.Inventory.AddItem(e.rpgItem, player); * } * } * RemoveItem(dropingItems); * * return true; * }*/ // Remove item from all collections /*private void RemoveItem(EquipedItem dropingItem) * { * foreach(EquipedItem e in Items) * { * if (e == eq) * { * Items.Remove(e); * break; * } * } * } * } * }*/ /*private void SetWeapon(RPGWeapon weapon) * { * if (weapon.IsAmmo) * return; * Weapon = weapon; * NeedAmmo = weapon.NeedAmmo; * }*/ public bool EquipItem(InventoryItem item) { EquipedItem equiped = new EquipedItem(); //equiped.CurrentAmount = item.CurrentAmount; //equiped.CurrentDurability = item.CurrentDurability; equiped.UniqueItemId = item.UniqueItemId; equiped.rpgItem = item.rpgItem; //equiped.rpgItem.LoadIcon(); //get equipment slots RPGArmor e = (RPGArmor)equiped.rpgItem; equiped.Slot = e.EquipmentSlotIndex; if (!e.CanYouEquip()) { //TODO display error message return(false); } //if equipment slot is used /*if (IsEquipmentSlotUsed(equiped.Slot)) * { * List<EquipedItem> dropingItems = GetUnequipingItems(equiped.Slot); * //only if items does not remain in inventory * if (!player.Hero.Settings.EquipedItemInInventory) * { * foreach(EquipedItem equip in dropingItems) * { * player.Hero.Inventory.AddItem(equip.rpgItem, player); * } * } * //remove dropping items from equip * RemoveItem(dropingItems); * PlayerEquip.itemsToUnequip = dropingItems; * }*/ //if(IsEquipmentSlotUsed(equiped.Slot)) switch (equiped.Slot) { case EquipmentSlots.Head: if (IsEquipmentSlotUsed(EquipmentSlots.Head)) { Player.Instance.Hero.HeadInventory.UnequipItem(EquippedHead); } EquippedHead = equiped; Player.Instance.avatar.EquipBodyPart(e.FBXName, EquipmentSlots.Head); break; case EquipmentSlots.Body: if (IsEquipmentSlotUsed(EquipmentSlots.Body)) { Player.Instance.Hero.BodyInventory.UnequipItem(EquippedBody); } EquippedBody = equiped; Player.Instance.avatar.EquipBodyPart(e.FBXName, EquipmentSlots.Body); break; case EquipmentSlots.ArmL: if (IsEquipmentSlotUsed(EquipmentSlots.ArmL)) { Player.Instance.Hero.ArmLInventory.UnequipItem(EquippedArmL); } EquippedArmL = equiped; Player.Instance.avatar.EquipBodyPart(e.FBXName, EquipmentSlots.ArmL); break; case EquipmentSlots.ArmR: if (IsEquipmentSlotUsed(EquipmentSlots.ArmR)) { Player.Instance.Hero.ArmRInventory.UnequipItem(EquippedArmR); } EquippedArmR = equiped; Player.Instance.avatar.EquipBodyPart(e.FBXName, EquipmentSlots.ArmR); break; case EquipmentSlots.Legs: if (IsEquipmentSlotUsed(EquipmentSlots.Legs)) { Player.Instance.Hero.LegsInventory.UnequipItem(EquippedLegs); } EquippedLegs = equiped; Player.Instance.avatar.EquipBodyPart(e.FBXName, EquipmentSlots.Legs); break; } //Items.Add(equiped); return(true); }
/*protected override void AditionalSwitch() * { * if (MenuMode == MenuModeEnum.ThirdWindow) * { * GenerateStrongerItem(); * } * }*/ protected override void StartNewIItem() { currentItem = new RPGArmor(); }
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); }
/*protected override void AditionalSwitch() { if (MenuMode == MenuModeEnum.ThirdWindow) { GenerateStrongerItem(); } }*/ protected override void StartNewIItem() { currentItem = new RPGArmor(); }
/*private List<EquipedItem> GetUnequipingItems(RPGEquipmentSlot slot) { List<RPGEquipmentSlot> slotsID = new List<RPGEquipmentSlot>(); slotsID.Add(slot); return GetUnequipingItems(slotsID); }*/ /*private EquipedItem GetUnequipingItems(EquipmentSlots slot) { EquipedItem item = new EquipedItem(); foreach(EquipedItem equiped in Items) { foreach(RPGEquipmentSlot es in equiped.Slots) { if (es.UniqueId == newEquipmentID.UniqueId) items.Add(equiped); } } } }*/ // Unequip one item /*public bool UnEquipItem(RPGEquipmentSlot equipmentSlot, Player player) { List<EquipedItem> dropingItems = GetUnequipingItems(equipmentSlot); PlayerEquip.itemsToUnequip = dropingItems; //only if items doest not remain in inventory if (!player.Hero.Settings.EquipedItemInInventory) { foreach(EquipedItem e in dropingItems) { player.Hero.Inventory.AddItem(e.rpgItem, player); } } RemoveItem(dropingItems); return true; }*/ // Remove item from all collections /*private void RemoveItem(EquipedItem dropingItem) { foreach(EquipedItem e in Items) { if (e == eq) { Items.Remove(e); break; } } } } }*/ /*private void SetWeapon(RPGWeapon weapon) { if (weapon.IsAmmo) return; Weapon = weapon; NeedAmmo = weapon.NeedAmmo; }*/ public bool EquipItem(RPGArmor armor, int level) { /*EquipedItem equiped = new EquipedItem() ; //equiped.CurrentAmount = item.CurrentAmount; //equiped.CurrentDurability = item.CurrentDurability; equiped.UniqueItemId = item.UniqueItemId; equiped.rpgItem = (RPGArmor)item.rpgItem; //equiped.rpgItem.LoadIcon(); //get equipment slots RPGArmor e = (RPGArmor)equiped.rpgItem; equiped.Slot = e.EquipmentSlotIndex; */ //if equipment slot is used /*if (IsEquipmentSlotUsed(equiped.Slot)) { List<EquipedItem> dropingItems = GetUnequipingItems(equiped.Slot); //only if items does not remain in inventory if (!player.Hero.Settings.EquipedItemInInventory) { foreach(EquipedItem equip in dropingItems) { player.Hero.Inventory.AddItem(equip.rpgItem, player); } } //remove dropping items from equip RemoveItem(dropingItems); PlayerEquip.itemsToUnequip = dropingItems; }*/ //if(IsEquipmentSlotUsed(equiped.Slot)) EquipedItem e = new EquipedItem(armor.UniqueId, level, armor); if(armor.armorStatsSets.Count >0) { PlayerManager.Instance.Hero.profile.AddArmorStats(armor.armorStatsSets[Mathf.Min(armor.armorStatsSets.Count, e.Level)-1]); } //e.UniqueItemId = armor.UniqueId; //e.rpgArmor = armor; //e.Level = level; switch (e.rpgArmor.EquipmentSlotIndex) { case EquipmentSlots.Face: if(IsEquipmentSlotUsed(EquipmentSlots.Face)) UnequipItem(EquippedFace); //PlayerManager.Instance.Hero.ArmoryInventory.UnequipItem(EquippedFace.UniqueItemId, EquippedFace.Level); EquippedFace = e; if(PlayerManager.Instance.avatar != null) { PlayerManager.Instance.avatar.EquipBodyPart(e.rpgArmor.FBXName[Mathf.Min(e.Level, e.rpgArmor.FBXName.Count) - 1], EquipmentSlots.Face); PlayerManager.Instance.avatarStatus.UpdatePortrait(EquippedFace.rpgArmor.headPortraitPath); } break; case EquipmentSlots.Head: if(IsEquipmentSlotUsed(EquipmentSlots.Head)) UnequipItem(EquippedHead); //PlayerManager.Instance.Hero.ArmoryInventory.UnequipItem(EquippedHead.UniqueItemId, EquippedHead.Level); EquippedHead = e; if(PlayerManager.Instance.avatar != null) { PlayerManager.Instance.avatar.EquipBodyPart(e.rpgArmor.FBXName[Mathf.Min(e.Level, e.rpgArmor.FBXName.Count) - 1], EquipmentSlots.Head); PlayerManager.Instance.avatarStatus.UpdatePortrait(EquippedHead.rpgArmor.headPortraitPath); } break; case EquipmentSlots.Body: if(IsEquipmentSlotUsed(EquipmentSlots.Body)) UnequipItem(EquippedBody); //PlayerManager.Instance.Hero.ArmoryInventory.UnequipItem(EquippedBody.UniqueItemId, EquippedBody.Level); EquippedBody = e; if(PlayerManager.Instance.avatar != null) PlayerManager.Instance.avatar.EquipBodyPart(e.rpgArmor.FBXName[Mathf.Min(e.Level, e.rpgArmor.FBXName.Count) - 1], EquipmentSlots.Body); break; case EquipmentSlots.ArmL: if(IsEquipmentSlotUsed(EquipmentSlots.ArmL)) UnequipItem(EquippedArmL); //PlayerManager.Instance.Hero.ArmoryInventory.UnequipItem(EquippedArmL.UniqueItemId, EquippedArmL.Level); EquippedArmL = e; if(PlayerManager.Instance.avatar != null) PlayerManager.Instance.avatar.EquipBodyPart(e.rpgArmor.FBXName[Mathf.Min(e.Level, e.rpgArmor.FBXName.Count) - 1], EquipmentSlots.ArmL); break; case EquipmentSlots.ArmR: if(IsEquipmentSlotUsed(EquipmentSlots.ArmR)) UnequipItem(EquippedArmR); //PlayerManager.Instance.Hero.ArmoryInventory.UnequipItem(EquippedArmR.UniqueItemId, EquippedArmR.Level); EquippedArmR = e; if(PlayerManager.Instance.avatar != null) PlayerManager.Instance.avatar.EquipBodyPart(e.rpgArmor.FBXName[Mathf.Min(e.Level, e.rpgArmor.FBXName.Count) - 1], EquipmentSlots.ArmR); break; case EquipmentSlots.Legs: if(IsEquipmentSlotUsed(EquipmentSlots.Legs)) //PlayerManager.Instance.Hero.ArmoryInventory.UnequipItem(EquippedLegs.UniqueItemId, EquippedLegs.Level); UnequipItem(EquippedLegs); EquippedLegs = e; if(PlayerManager.Instance.avatar != null) PlayerManager.Instance.avatar.EquipBodyPart(e.rpgArmor.FBXName[Mathf.Min(e.Level, e.rpgArmor.FBXName.Count) - 1], EquipmentSlots.Legs); break; } //onEquipItem(e.UniqueItemId, e.Level, (int)e.rpgArmor.EquipmentSlotIndex); //PlayerManager.Instance.Hero.profile.UpdateEquippedItems(equippedItems); //Items.Add(equiped); return true; }