private void Awake() { if (buffItem == null) { buffItem = GetComponentInParent <BuffItem>(); } }
private void BuyBufScrollItem(int itemIndex, GameObject itemUseSet) { //보조 마법 BuffItem item = (BuffItem)StateManager.Instance.buffScrollItems[itemIndex]; if (StateManager.Instance.playGold >= item.Price) { if (BufscrollNum[itemIndex] == 0) { itemUseNameText.text = "이 름: " + item.Name; itemUseExplainText.text = "설 명: " + item.Explain; itemUseImage.GetComponent <Image>().sprite = (Sprite)Resources.Load(item.Image, typeof(Sprite)); itemUseSet = Instantiate(itemUseSetObj) as GameObject; itemUseSet.transform.SetParent(buffUseGrid.transform); itemUseSet.transform.localScale = new Vector3(1, 1, 1); itemUseSet.name = "Buff" + itemIndex; BufScrollBag[itemIndex] = itemUseSet; } StateManager.Instance.playGold -= item.Price; BufscrollNum[itemIndex]++; BufScrollPoolSet[itemIndex].transform.FindChild("Scrollcnt").GetComponent <Text>().text = "보 유 갯 수:" + BufscrollNum[itemIndex] + " 개"; BufScrollBag[itemIndex].transform.FindChild("ScrollUseCut").GetComponent <Text>().text = "보 유" + "\n" + BufscrollNum[itemIndex] + " 개"; } else { popClose.SetActive(true); } }
private void OnBuffItemChanged(BuffItem item, int dataIndex) { int num = 0; string text = null; int num2 = 0; foreach (KeyValuePair <string, int> current in this.buffs) { if (num == dataIndex) { text = current.Key; num2 = current.Value; } num++; } if (text == null) { return; } BuffVo buff = this.m_Player.buffManager.GetBuff(text); item.name = text; item.SetTexture(buff.data.config.buff_icon); item.SetType(buff.data.DataType.GainType); item.SetMaskActive(!buff.IsPermanent()); if (num2 >= 1) { item.SetLayer(num2.ToString()); } }
public void ConsumeItem(BuffItem item) { // TODO verify and notify that item is removed buffs.Remove(item); InventoryUpdated(); }
public static BuffItem[] CreateBuffItemArrayWithExcel(string filePath) { //获得表数据 int columnNum = 0, rowNum = 0; DataRowCollection collect = ReadExcel(filePath, ref columnNum, ref rowNum); //根据excel的定义,第二行开始才是数据 BuffItem[] array = new BuffItem[rowNum - 1]; for (int i = 1; i < rowNum; i++) { BuffItem item = new BuffItem(); //解析每列的数据 item.TypeID = int.Parse(collect[i][0].ToString()); item.BodyEffect = collect[i][2].ToString(); item.FootEffect = collect[i][3].ToString(); item.Enable = int.Parse(collect[i][4].ToString()); item.HeadEffect = collect[i][5].ToString(); item.TopBarEffect = collect[i][6].ToString(); item.RenderColor = int.Parse(collect[i][7].ToString()); item.OutEffect = collect[i][8].ToString(); item.NativeTopBarEffect = collect[i][9].ToString(); item.HandsEffect = collect[i][10].ToString(); item.FootsEffect = collect[i][11].ToString(); item.MaterialEffect = collect[i][12].ToString(); item.ModeEnable = int.Parse(collect[i][13].ToString()); item.IconPath = collect[i][14].ToString(); item.IconTimeEnable = int.Parse(collect[i][15].ToString()); item.IsShowControl = int.Parse(collect[i][16].ToString()); array[i - 1] = item; } return(array); }
private void OnPassiveItemChanged(BuffItem item, int dataIndex) { string text = this.passive_skills[dataIndex]; SysSkillMainVo skillData = SkillUtility.GetSkillData(text, -1, -1); item.name = text; item.SetTexture(skillData.skill_icon); }
//public public BuffEffect(Protomsg.BuffDatas buffdata, UnityEntity parent) { Data = buffdata; TypeID = buffdata.TypeID; BIdata = ExcelManager.Instance.GetBuffIM().GetBIByID(buffdata.TypeID); ParentEntity = parent; Init(); }
private void Start() { item = transform.Find("Item"); // The gameobject under which the consumable will be instantiated buffItem = LevelManager.instance.GetComponent <LootManager>().RandomItem(); // Get a random item itemModel = Instantiate(buffItem.item); // Instantiate in game world itemModel.transform.parent = item; // Set parent itemModel.transform.position = item.position; // Set position startY = item.position.y; // Set y coordinate }
public void UseSocket(int inventorySlot) { int slotOfSocket = FindInventorySpot(pickedUpItemIdentifier); BuffItem item = player.Inventory[inventorySlot] as BuffItem; bool addedSocket = false; if (item != null) { if (item.Sockets - item.UsedSockets > 0) { if (item.UsedSockets > 0) { SocketItem socket = player.Inventory[slotOfSocket] as SocketItem; //Add all buffs from socket to the first socket in slot for easier tooltipping etc foreach (AttributeBuff att in socket.AttribBuffs) { item.EquippedSockets[0].AddAttribModifier(att); } foreach (VitalBuff vit in socket.VitalBuffs) { item.EquippedSockets[0].AddVitalModifier(vit); } socket.RemoveAllBuffs(); item.EquippedSockets.Add(socket); item.UsedSockets += 1; addedSocket = true; } else { item.EquippedSockets.Add(player.Inventory[slotOfSocket] as SocketItem); item.UsedSockets += 1; addedSocket = true; } } else { Debug.Log("No socket space!"); } } else { Debug.Log("Can't add sockets to this item!"); } if (addedSocket) { player.Inventory.RemoveAt(slotOfSocket); } itemIsPickedUp = false; itemIsForUse = false; pickedUpItemIdentifier = ""; }
/// <summary> /// Pickup item /// </summary> /// <param name="buffItem">item</param> public virtual void AddPickupItem(BuffItem buffItem) { buffItems.Add(buffItem); health += buffItem.healthIncrease; moveSpeed *= buffItem.speedIncrease; for (int i = 0; i < coolDowns.Length; i++) { coolDowns[i] *= buffItem.cooldownDecrease; } damageModifier += buffItem.damageIncrease; }
public void BuffScrollBtn() { for (int i = 0; i < bScroll.Count; i++) { if (gameObject.name == "Buff" + i) { BuffItem item = (BuffItem)bScroll[i]; StateManager.Instance.useItemNum = i; StateManager.Instance.useItemBool = true; StateManager.Instance.useItemName = "Buff"; StateManager.Instance.buffUse = true; Debug.Log("버프 아이템"); } } }
// Update is called once per frame void Update() { // trimming to reduced list buffs = player.buffs; currentSize = buffs.Count; storedBuffs.Clear(); for (int i = 0; i < buffs.Count; i++) { string name = buffs[i].BuffName; if (!storedBuffs.ContainsKey(name)) { storedBuffs.Add(name, buffs[i]); } else { storedBuffs.Remove(name); storedBuffs.Add(name, buffs[i]); } } // storedBuffs => objects int l = 0; if (currentSize != previousSize) //clear list { foreach (GameObject obj in storedBuffsObjects) { Image img = storedBuffsObjects[l].GetComponent <Image>(); BuffItem bi = storedBuffsObjects[l].GetComponent <BuffItem>(); bi.buff = null; img.sprite = null; img.color = new Color(0, 0, 0, 0); l++; } } l = 0; foreach (KeyValuePair <string, TimedBuff> pair in storedBuffs) { BuffItem bi = storedBuffsObjects[l].GetComponent <BuffItem>(); bi.buff = pair.Value; Image img = storedBuffsObjects[l].GetComponent <Image>(); img.color = Color.white; img.sprite = bi.buff.icon; l++; } previousSize = currentSize; }
private void _setupBufScroll(int itemIndex) { BuffItem item = (BuffItem)StateManager.Instance.buffScrollItems[itemIndex]; itemPriceText.GetComponent <Text>().text = item.Price.ToString() + "\n" + "골 드"; itemNameText.GetComponent <Text>().text = "이 름: " + item.Name; itemExplainText.GetComponent <Text>().text = "설 명: " + item.Explain; itemImage.GetComponent <Image>().sprite = (Sprite)Resources.Load(item.Image, typeof(Sprite)); BufScrollPoolSet[itemIndex] = Instantiate(itemPool) as GameObject; BufScrollPoolSet[itemIndex].transform.SetParent(itemGrid.transform); BufScrollPoolSet[itemIndex].transform.localScale = new Vector3(1, 1, 1); BufScrollPoolSet[itemIndex].name = "BuffScroll" + (itemIndex + 1); BufScrollPoolSet[itemIndex].GetComponent <Button>().onClick.AddListener(delegate { onClockBufScroll(itemIndex); }); BufScrollPoolSet[itemIndex].SetActive(false); }
private void OnHoverBuff(PointerEventData data) { BuffItem item = data.pointerCurrentRaycast.gameObject.GetComponent <BuffItem>(); if (item.buff != null) { toolTip.SetActive(true); toolTip.transform.position = data.pointerCurrentRaycast.gameObject.transform.position - new Vector3(100, -50); Text txt = toolTip.transform.GetChild(0).GetComponent <Text>(); txt.text = item.buff.BuffName; Text txt2 = toolTip.transform.GetChild(1).GetComponent <Text>(); foreach (Stat stat in item.buff.Stats) { string value = Stat.GetStatString(stat); txt2.text += stat.Name + ": " + value + "\n"; } } }
public void UseItem(BuffItem item) { if (item.target == BuffItem.Target.Self) { if (item.consumable && item.healthUp > 0f) { ChangeHealth(item.healthUp); } } else { if (item.consumable && item.hitUp < 0f) { enemyController.ChangeHitChance(item.hitUp); } } myStats.ConsumeItem(item); }
public void lord() { itemUseNameText = itemUseName.GetComponent <Text>(); itemUseExplainText = itemUseExplain.GetComponent <Text>(); for (int i = 0; i < StateManager.Instance.potionNum.Length; i++) { StateManager.Instance.potionNum[i] = PlayerPrefs.GetInt("potion" + (i + 1).ToString(), 0); PotionItem item = (PotionItem)StateManager.Instance.potionItems[i]; if (StateManager.Instance.potionNum[i] > 0) { itemUseNameText.text = "이 름: " + item.Name; itemUseExplainText.text = "설 명: " + item.Explain; itemUseImage.GetComponent <Image>().sprite = (Sprite)Resources.Load(item.Image, typeof(Sprite)); GameObject itemUseSet = Instantiate(itemUseSetObj) as GameObject; itemUseSet.transform.SetParent(itemUseGrid.transform); itemUseSet.transform.localScale = new Vector3(1, 1, 1); itemUseSet.name = "Potion" + i; StateManager.Instance.potionItemBag[i] = itemUseSet; StateManager.Instance.potionItemBag[i].transform.FindChild("ScrollUseCut").GetComponent <Text>().text = "보 유" + "\n" + StateManager.Instance.potionNum[i] + " 개"; } } for (int i = 0; i < StateManager.Instance.SkscrollNum.Length; i++) { StateManager.Instance.SkscrollNum[i] = PlayerPrefs.GetInt("skill" + (i + 1).ToString(), 0); SkillItem item = (SkillItem)StateManager.Instance.skillScrollItems[i]; if (StateManager.Instance.SkscrollNum[i] > 0) { itemUseNameText.text = "이 름: " + item.Name; itemUseExplainText.text = "설 명: " + item.Explain; itemUseImage.GetComponent <Image>().sprite = (Sprite)Resources.Load(item.Image, typeof(Sprite)); GameObject itemUseSet = Instantiate(itemUseSetObj) as GameObject; itemUseSet.transform.SetParent(skillUseGrid.transform); itemUseSet.transform.localScale = new Vector3(1, 1, 1); itemUseSet.name = "Skill" + i; StateManager.Instance.SkScrollBag[i] = itemUseSet; StateManager.Instance.SkScrollBag[i].transform.FindChild("ScrollUseCut").GetComponent <Text>().text = "보 유" + "\n" + StateManager.Instance.SkscrollNum[i] + " 개"; } } for (int i = 0; i < StateManager.Instance.MgscrollNum.Length; i++) { StateManager.Instance.MgscrollNum[i] = PlayerPrefs.GetInt("magic" + (i + 1).ToString(), 0); MagicItem item = (MagicItem)StateManager.Instance.magicScrollItems[i]; if (StateManager.Instance.MgscrollNum[i] > 0) { itemUseNameText.text = "이 름: " + item.Name; itemUseExplainText.text = "설 명: " + item.Explain; itemUseImage.GetComponent <Image>().sprite = (Sprite)Resources.Load(item.Image, typeof(Sprite)); GameObject itemUseSet = Instantiate(itemUseSetObj) as GameObject; itemUseSet.transform.SetParent(magicUseGrid.transform); itemUseSet.transform.localScale = new Vector3(1, 1, 1); itemUseSet.name = "Magic" + i; StateManager.Instance.MgScrollBag[i] = itemUseSet; StateManager.Instance.MgScrollBag[i].transform.FindChild("ScrollUseCut").GetComponent <Text>().text = "보 유" + "\n" + StateManager.Instance.MgscrollNum[i] + " 개"; } } for (int i = 0; i < StateManager.Instance.BufscrollNum.Length; i++) { StateManager.Instance.BufscrollNum[i] = PlayerPrefs.GetInt("buff" + (i + 1).ToString(), 0); BuffItem item = (BuffItem)StateManager.Instance.buffScrollItems[i]; if (StateManager.Instance.BufscrollNum[i] > 0) { itemUseNameText.text = "이 름: " + item.Name; itemUseExplainText.text = "설 명: " + item.Explain; itemUseImage.GetComponent <Image>().sprite = (Sprite)Resources.Load(item.Image, typeof(Sprite)); GameObject itemUseSet = Instantiate(itemUseSetObj) as GameObject; itemUseSet.transform.SetParent(magicUseGrid.transform); itemUseSet.transform.localScale = new Vector3(1, 1, 1); itemUseSet.name = "Buff" + i; StateManager.Instance.BufScrollBag[i] = itemUseSet; StateManager.Instance.BufScrollBag[i].transform.FindChild("ScrollUseCut").GetComponent <Text>().text = "보 유" + "\n" + StateManager.Instance.BufscrollNum[i] + " 개"; } } StateManager.Instance.playUseAtk = PlayerPrefs.GetInt("playUseAtk"); StateManager.Instance.playUseDef = PlayerPrefs.GetInt("playUseDef"); //StateManager.Instance.playUseSpd = PlayerPrefs.GetFloat("playUseSpd"); StateManager.Instance.wUse = PlayerPrefs.GetInt("wUse"); StateManager.Instance.aUse = PlayerPrefs.GetInt("aUse"); //StateManager.Instance.bUse = PlayerPrefs.GetInt("bUse"); StateManager.Instance.weaponDurability[StateManager.Instance.wUse] = PlayerPrefs.GetInt("weaponDurability"); if (StateManager.Instance.playUseAtk != 0) { if (StateManager.Instance.playUseAtk.Equals(5)) { Weapon(0); } if (StateManager.Instance.playUseAtk.Equals(8)) { Weapon(1); } if (StateManager.Instance.playUseAtk.Equals(10)) { Weapon(2); } if (StateManager.Instance.playUseAtk.Equals(20)) { Weapon(3); } if (StateManager.Instance.playUseAtk.Equals(30)) { Weapon(4); } if (StateManager.Instance.playUseAtk.Equals(500)) { Weapon(5); } } if (StateManager.Instance.playDef != 0) { if (StateManager.Instance.playUseDef.Equals(5)) { Armor(0); } if (StateManager.Instance.playUseDef.Equals(10)) { Armor(1); } if (StateManager.Instance.playUseDef.Equals(20)) { Armor(2); } if (StateManager.Instance.playUseDef.Equals(15)) { Armor(3); } if (StateManager.Instance.playUseDef.Equals(25)) { Armor(4); } if (StateManager.Instance.playUseDef.Equals(50)) { Armor(5); } if (StateManager.Instance.playUseDef.Equals(150)) { Armor(6); } } //if (StateManager.Instance.playSpd != 0) //{ // if (StateManager.Instance.playUseSpd.Equals(0.5)) // { // Boots(0); // } // if (StateManager.Instance.playUseSpd.Equals(1.5)) // { // Boots(1); // } // if (StateManager.Instance.playUseSpd.Equals(2)) // { // Boots(2); // } // if (StateManager.Instance.playUseSpd.Equals(3)) // { // Boots(3); // } // if (StateManager.Instance.playUseSpd.Equals(4.5)) // { // Boots(4); // } // if (StateManager.Instance.playSpd.Equals(6)) // { // Boots(5); // } //} }
public static Item AddRandomBuff(BuffItem item, float rarityMod) { //first do basic randomizing of whether to even add buff int randomnum = Random.Range(1, 100 + 1); //bools bool _addingProc = false; bool _addingDmgType = false; bool _addingSockets = false; //initalise buffToAdd string[] buffToAdd = new string[] {}; if (randomnum < 91) { //check item type if (item.ItemType == ItemEquipType.Weapon) { int rnd = Random.Range(0, 100 + 1); if (rnd < 61) { buffToAdd = new string[] { "critchance", "critdmg", "dmgtype", "proc", "sockets" }; } else { buffToAdd = new string[] { "maxdmg", "dmgvar", "attackspeed", "statbuff" }; } } else if (item.ItemType == ItemEquipType.Clothing) { int rnd = Random.Range(0, 100 + 1); if (rnd < 31) { buffToAdd = new string[] { "movespeed", "sockets", "blockdamage" }; } else { buffToAdd = new string[] { "statbuff" }; } } } if (randomnum < 91) { string buffAdding = buffToAdd[Random.Range(0, buffToAdd.Length)]; switch (buffAdding) { case "critchance": if (!critChanceAdded) { (item as Weapon).CritChance = Random.Range(0.005f, 0.0036f) * rarityMod * levelOfChest; critChanceAdded = true; } else { AddRandomBuff(item, rarityMod); } break; case "critdmg": if (!critDmgAdded) { (item as Weapon).CritDamage += Random.Range(0.1f, 1.3f) * rarityMod; critDmgAdded = true; } else { AddRandomBuff(item, rarityMod); } break; case "dmgtype": if (!dmgAdded) { _addingDmgType = true; dmgAdded = true; } else { AddRandomBuff(item, rarityMod); } break; case "proc": if (!procAdded) { _addingProc = true; procAdded = true; } else { AddRandomBuff(item, rarityMod); } break; case "maxdmg": (item as Weapon).MaxDamage += (int)((Random.Range(1.0f, 8.0f + 0.1f) * levelOfChest * rarityMod)); break; case "dmgvar": (item as Weapon).DmgVariance += Random.Range(0.0005f, 0.0021f) * levelOfChest * rarityMod; break; case "attackspeed": (item as Weapon).AttackSpeed += Random.Range(0.1f, 0.23f) * rarityMod; break; case "statbuff": AddRandomStatBuff(item, rarityMod); break; case "movespeed": if (!moveSpeedAdded) { if ((item as Armor).Slot == EquipmentSlot.Boots) { (item as Armor).MoveSpeedBuff += Random.Range(0.03f, 0.04f + 0.001f) * rarityMod; moveSpeedAdded = true; } else { moveSpeedAdded = true; AddRandomBuff(item, rarityMod); } } else { AddRandomBuff(item, rarityMod); } break; case "armor": (item as Armor).ArmorAmt += (int)(Random.Range(1.0f, 3.0f + 0.1f) * levelOfChest * rarityMod); break; case "block damage": (item as Armor).ChanceToBlock += Random.Range(0.01f, 0.03f) * rarityMod; (item as Armor).DamageBlocked += (int)(Random.Range(2.5f, 10.0f + 0.1f) * levelOfChest * rarityMod); break; case "vitalregen": break; case "sockets": if (!socketsAdded) { _addingSockets = true; socketsAdded = true; } else { AddRandomBuff(item, rarityMod); } break; } } if (_addingProc) { AddProc(item, rarityMod); } if (_addingDmgType) { AddDmgType(item, rarityMod); } if (_addingSockets) { AddSockets(item, rarityMod); } return(item); }
public static Item AddRandomStatBuff(BuffItem item, float rarityMod) { //initialise new empty string string[] attVitToAdd = new string[] {}; //check item type if (item.ItemType == ItemEquipType.Weapon) { attVitToAdd = new string[] { "str", "vit", "dex", "int" }; } else { attVitToAdd = new string[] { "str", "vit", "dex", "int", "hp", "mp", "energy" }; } //depending on itemType generate what attrib or vital to add to string attVitAdding = attVitToAdd[Random.Range(0, attVitToAdd.Length)]; //generate amount to add to attrib/vital , then scale it int amountToAdd = (int)(Random.Range(1.0f, 2.0f + 0.1f) * levelOfChest * rarityMod); //finally add the stat buff switch (attVitAdding) { case "str": item.AddAttribModifier(new AttributeBuff { attribute = AttributeName.Strength, amount = amountToAdd }); break; case "vit": item.AddAttribModifier(new AttributeBuff { attribute = AttributeName.Vitality, amount = amountToAdd }); break; case "dex": item.AddAttribModifier(new AttributeBuff { attribute = AttributeName.Dexterity, amount = amountToAdd }); break; case "int": item.AddAttribModifier(new AttributeBuff { attribute = AttributeName.Intelligence, amount = amountToAdd }); break; case "hp": item.AddVitalModifier(new VitalBuff { vital = VitalName.Health, amount = amountToAdd * 75 }); break; case "mp": item.AddVitalModifier(new VitalBuff { vital = VitalName.Mana, amount = amountToAdd * 25 }); break; case "energy": item.AddVitalModifier(new VitalBuff { vital = VitalName.Energy, amount = amountToAdd * 25 }); break; } return(item); }
void LoadAllItems(){ playerNew.Inventory = new List<Item>(); playerNew.Stash = new List<Item>(); //Get the data var data = PlayerPrefs.GetString(SaveLoadSlot+"Player_InventoryItems"); //If not blank then load it if(!String.IsNullOrEmpty(data)) { //Binary formatter for loading back var b = new BinaryFormatter(); //Create a memory stream with the data var m = new MemoryStream(Convert.FromBase64String(data)); //Load back the scores playerNew.Inventory = b.Deserialize(m) as List<Item>; } //Player_StashItems data = PlayerPrefs.GetString(SaveLoadSlot+"Player_StashItems"); if(!String.IsNullOrEmpty(data)) { var b = new BinaryFormatter(); var m = new MemoryStream(Convert.FromBase64String(data)); playerNew.Stash = b.Deserialize(m) as List<Item>; } data = PlayerPrefs.GetString(SaveLoadSlot+"Player_EquipedWeapon",""); if(!String.IsNullOrEmpty(data)) { var b = new BinaryFormatter(); var m = new MemoryStream(Convert.FromBase64String(data)); playerNew.EquipedWeapon = b.Deserialize(m) as Weapon; } data = PlayerPrefs.GetString(SaveLoadSlot+"Player_EquipedArmorBack"); if(!String.IsNullOrEmpty(data)) { var b = new BinaryFormatter(); var m = new MemoryStream(Convert.FromBase64String(data)); playerNew.EquipedArmorBack = b.Deserialize(m) as Armor; } data = PlayerPrefs.GetString(SaveLoadSlot+"Player_EquipedArmorChest"); if(!String.IsNullOrEmpty(data)) { var b = new BinaryFormatter(); var m = new MemoryStream(Convert.FromBase64String(data)); playerNew.EquipedArmorChest = b.Deserialize(m) as Armor; } data = PlayerPrefs.GetString(SaveLoadSlot+"Player_EquipedArmorFeet"); if(!String.IsNullOrEmpty(data)) { var b = new BinaryFormatter(); var m = new MemoryStream(Convert.FromBase64String(data)); playerNew.EquipedArmorFeet = b.Deserialize(m) as Armor; } data = PlayerPrefs.GetString(SaveLoadSlot+"Player_EquipedArmorGloves"); if(!String.IsNullOrEmpty(data)) { var b = new BinaryFormatter(); var m = new MemoryStream(Convert.FromBase64String(data)); playerNew.EquipedArmorGloves = b.Deserialize(m) as Armor; } data = PlayerPrefs.GetString(SaveLoadSlot+"Player_EquipedArmorHead"); if(!String.IsNullOrEmpty(data)) { var b = new BinaryFormatter(); var m = new MemoryStream(Convert.FromBase64String(data)); playerNew.EquipedArmorHead = b.Deserialize(m) as Armor; } data = PlayerPrefs.GetString(SaveLoadSlot+"Player_EquipedArmorLegs"); if(!String.IsNullOrEmpty(data)) { var b = new BinaryFormatter(); var m = new MemoryStream(Convert.FromBase64String(data)); playerNew.EquipedArmorLegs = b.Deserialize(m) as Armor; } //Reload icons List<Item> AllItems = new List<Item>(); AllItems.AddRange (playerNew.AllEquippedItems()); AllItems.AddRange (playerNew.Inventory); AllItems.AddRange (playerNew.Stash); foreach(Item i in AllItems){ if(i != null){ i.Icon = Resources.Load (i.IconPath) as Texture2D; } BuffItem b = i as BuffItem; if(b != null){ foreach(SocketItem s in b.EquippedSockets){ s.Icon = Resources.Load (s.IconPath) as Texture2D; } } } }
private void GetScrollItem(int itemIndex, GameObject itemUseSet) { int itemNum = Random.Range(0, 4); switch (itemIndex) { case 1: //스킬 var sItem = (SkillItem)StateManager.Instance.skillScrollItems[itemNum]; if (StateManager.Instance.SkscrollNum[itemNum] == 0) { itemUseNameText.text = "이 름: " + sItem.Name; itemUseExplainText.text = "설 명: " + sItem.Explain; itemUseImage.GetComponent <Image>().sprite = (Sprite)Resources.Load(sItem.Image, typeof(Sprite)); itemUseSet = Instantiate(itemUseSetObj) as GameObject; itemUseSet.transform.SetParent(skillUseGrid.transform); itemUseSet.transform.localScale = new Vector3(1, 1, 1); itemUseSet.name = "Skill" + itemNum; StateManager.Instance.SkScrollBag[itemNum] = itemUseSet; } StateManager.Instance.SkscrollNum[itemNum]++; StateManager.Instance.SkScrollBag[itemNum].transform.FindChild("ScrollUseCut").GetComponent <Text>().text = "보 유" + "\n" + StateManager.Instance.SkscrollNum[itemNum] + " 개"; if (cBoxOpen.activeSelf.Equals(false)) { StartCoroutine(findObj(6, 0, sItem.Name + "\n 스 크 롤 을 발 견 ")); } else if (cBoxOpen.activeSelf.Equals(true)) { getItemText.text = "획득 아이템 \n: " + sItem.Name; getItem.GetComponent <Image>().sprite = (Sprite)Resources.Load(sItem.Image, typeof(Sprite)); } break; case 2: if (cBoxOpen.activeSelf.Equals(false)) { StartCoroutine(findObj(6, 0, "스 크 롤 이 \n오 래 되 서 부 서 짐")); } else if (cBoxOpen.activeSelf.Equals(true)) { getItemText.text = "획득 아이템 \n: 없 음"; } //스크롤이 오래되서 부서짐 break; case 3: MagicItem mItem = (MagicItem)StateManager.Instance.magicScrollItems[itemNum]; if (StateManager.Instance.MgscrollNum[itemNum] == 0) { itemUseNameText.text = "이 름: " + mItem.Name; itemUseExplainText.text = "설 명: " + mItem.Explain; itemUseImage.GetComponent <Image>().sprite = (Sprite)Resources.Load(mItem.Image, typeof(Sprite)); itemUseSet = Instantiate(itemUseSetObj) as GameObject; itemUseSet.transform.SetParent(skillUseGrid.transform); itemUseSet.transform.localScale = new Vector3(1, 1, 1); itemUseSet.name = "Magic" + itemNum; StateManager.Instance.MgScrollBag[itemNum] = itemUseSet; } StateManager.Instance.MgscrollNum[itemNum]++; StateManager.Instance.MgScrollBag[itemNum].transform.FindChild("ScrollUseCut").GetComponent <Text>().text = "보 유" + "\n" + StateManager.Instance.MgscrollNum[itemNum] + " 개"; if (cBoxOpen.activeSelf.Equals(false)) { StartCoroutine(findObj(6, 0, mItem.Name + "\n 스 크 롤 을 발 견 ")); } else if (cBoxOpen.activeSelf.Equals(true)) { getItemText.text = "획득 아이템 \n: " + mItem.Name; getItem.GetComponent <Image>().sprite = (Sprite)Resources.Load(mItem.Image, typeof(Sprite)); } break; case 4: //스크롤이 오래되서 부서짐 if (cBoxOpen.activeSelf.Equals(false)) { StartCoroutine(findObj(6, 0, "스 크 롤 이 \n오 래 되 서 부 서 짐")); } else if (cBoxOpen.activeSelf.Equals(true)) { getItemText.text = "획득 아이템 \n: 없 음"; } break; case 5: BuffItem bItem = (BuffItem)StateManager.Instance.buffScrollItems[itemNum]; if (StateManager.Instance.BufscrollNum[itemNum] == 0) { itemUseNameText.text = "이 름: " + bItem.Name; itemUseExplainText.text = "설 명: " + bItem.Explain; itemUseImage.GetComponent <Image>().sprite = (Sprite)Resources.Load(bItem.Image, typeof(Sprite)); itemUseSet = Instantiate(itemUseSetObj) as GameObject; itemUseSet.transform.SetParent(skillUseGrid.transform); itemUseSet.transform.localScale = new Vector3(1, 1, 1); itemUseSet.name = "Buff" + itemNum; StateManager.Instance.BufScrollBag[itemNum] = itemUseSet; } StateManager.Instance.BufscrollNum[itemNum]++; StateManager.Instance.BufScrollBag[itemNum].transform.FindChild("ScrollUseCut").GetComponent <Text>().text = "보 유" + "\n" + StateManager.Instance.BufscrollNum[itemNum] + " 개"; if (cBoxOpen.activeSelf.Equals(false)) { StartCoroutine(findObj(6, 0, bItem.Name + "\n 스 크 롤 을 발 견 ")); } else if (cBoxOpen.activeSelf.Equals(true)) { getItemText.text = "획득 아이템 \n: " + bItem.Name; getItem.GetComponent <Image>().sprite = (Sprite)Resources.Load(bItem.Image, typeof(Sprite)); } break; case 6: //깨진 포션병을 발견 if (cBoxOpen.activeSelf.Equals(false)) { StartCoroutine(findObj(7, 0, "깨 진 포 션 병 을 발 견")); } else if (cBoxOpen.activeSelf.Equals(true)) { getItemText.text = "획득 아이템 \n: 없 음"; } break; case 7: if (itemNum == 1) { itemNum = 0; } //포션 PotionItem item = (PotionItem)StateManager.Instance.potionItems[itemNum]; if (StateManager.Instance.potionNum[itemNum] == 0) { itemUseNameText.text = "이 름: " + item.Name; itemUseExplainText.text = "설 명: " + item.Explain; itemUseImage.GetComponent <Image>().sprite = (Sprite)Resources.Load(item.Image, typeof(Sprite)); itemUseSet = Instantiate(itemUseSetObj) as GameObject; itemUseSet.transform.SetParent(itemUseGrid.transform); itemUseSet.transform.localScale = new Vector3(1, 1, 1); itemUseSet.name = "Potion" + itemNum; StateManager.Instance.potionItemBag[itemNum] = itemUseSet; } StateManager.Instance.potionNum[itemNum]++; StateManager.Instance.potionItemBag[itemNum].transform.FindChild("ScrollUseCut").GetComponent <Text>().text = "보 유" + "\n" + StateManager.Instance.potionNum[itemNum] + " 개"; if (cBoxOpen.activeSelf.Equals(false)) { StartCoroutine(findObj(7, 0, item.Name + "\n 포 션 을 발 견 ")); } else if (cBoxOpen.activeSelf.Equals(true)) { getItemText.text = "획득 아이템 \n: " + item.Name; getItem.GetComponent <Image>().sprite = (Sprite)Resources.Load(item.Image, typeof(Sprite)); } break; } }
void LoadAssetfromJson() { StateManager.Instance.potionItems = new ArrayList(); StateManager.Instance.skillScrollItems = new ArrayList(); StateManager.Instance.magicScrollItems = new ArrayList(); StateManager.Instance.buffScrollItems = new ArrayList(); Hashtable itemTable = (Hashtable)HMJson.objectFromJsonString(textAsset.text); foreach (String itemName in itemTable.Keys) { itemInfosP = (ArrayList)itemTable["potion"]; //포션 ArrayList itemInfosS = (ArrayList)itemTable["skillScroll"]; //기술 ArrayList itemInfosM = (ArrayList)itemTable["magicScroll"]; //마법 ArrayList itemInfosB = (ArrayList)itemTable["buffScroll"]; //보조 ArrayList //Debug.Log("[Item " + itemName + "]" + "\n"); foreach (Hashtable itemInfo in itemInfosP) { String name = (String)itemInfo["name"]; String price = (String)itemInfo["price"]; String upPoint = (String)itemInfo["up"]; String image = (String)itemInfo["potionImage"]; String explain = (String)itemInfo["Explain"]; PotionItem potionItem = new PotionItem(); potionItem.Name = name; potionItem.Price = Int32.Parse(price); potionItem.UpPoint = Int32.Parse(upPoint); potionItem.Image = image; potionItem.Explain = explain; StateManager.Instance.potionItems.Add(potionItem); } foreach (Hashtable itemInfo in itemInfosS) { String name = (String)itemInfo["name"]; String price = (String)itemInfo["price"]; String atkPoint = (String)itemInfo["atk"]; String specialAbility = (String)itemInfo["specialAbility"]; String image = (String)itemInfo["skillScrollImage"]; String explain = (String)itemInfo["Explain"]; SkillItem skillItem = new SkillItem(); skillItem.Name = name; skillItem.Price = Int32.Parse(price); skillItem.AttackUpPoint = float.Parse(atkPoint); skillItem.SpecialAbility = float.Parse(specialAbility); skillItem.Image = image; skillItem.Explain = explain; StateManager.Instance.skillScrollItems.Add(skillItem); } foreach (Hashtable itemInfo in itemInfosM) { String name = (String)itemInfo["name"]; String price = (String)itemInfo["price"]; String atkPoint = (String)itemInfo["atk"]; String spdDown = (String)itemInfo["spdDown"]; String atkDown = (String)itemInfo["atkDown"]; String image = (String)itemInfo["magicScrollImage"]; String explain = (String)itemInfo["Explain"]; MagicItem magicItem = new MagicItem(); magicItem.Name = name; magicItem.Price = Int32.Parse(price); magicItem.AttactPoint = float.Parse(atkPoint); magicItem.AtkDownPoint = float.Parse(atkDown); magicItem.SpdDownPoint = float.Parse(spdDown); magicItem.Image = image; magicItem.Explain = explain; StateManager.Instance.magicScrollItems.Add(magicItem); } foreach (Hashtable itemInfo in itemInfosB) { String name = (String)itemInfo["name"]; String price = (String)itemInfo["price"]; String HpUp_Mul = (String)itemInfo["hpUp_Mul"]; String AtkUp = (String)itemInfo["atkUp"]; String DefUp = (String)itemInfo["defUp"]; String SpdUp = (String)itemInfo["spdUp"]; String DefDown = (String)itemInfo["defDown"]; String Restoration = (String)itemInfo["restoration"]; String image = (String)itemInfo["buffScrollImage"]; String explain = (String)itemInfo["Explain"]; BuffItem buffItem = new BuffItem(); buffItem.Name = name; buffItem.Price = Int32.Parse(price); buffItem.HpUp_Mul = float.Parse(HpUp_Mul); buffItem.AtkUp = float.Parse(AtkUp); buffItem.DefUp = float.Parse(DefUp); buffItem.SpdUp = float.Parse(SpdUp); buffItem.DefDown = float.Parse(DefDown); buffItem.Restoration = Int32.Parse(Restoration); buffItem.Image = image; buffItem.Explain = explain; StateManager.Instance.buffScrollItems.Add(buffItem); } } }
public void UpdateStats() { ResetStats(); List <Item> EquippedItems = AllEquippedItems(); foreach (Item item in EquippedItems) { if (item != null) { BuffItem equippedItem = item as BuffItem; if (equippedItem.EquippedSockets.Count > 0) { foreach (AttributeBuff ab in equippedItem.EquippedSockets[0].AttribBuffs) { if (ab.attribute == AttributeName.Vitality) { VitEquipValue += ab.amount; } else if (ab.attribute == AttributeName.Strength) { StrEquipValue += ab.amount; } else if (ab.attribute == AttributeName.Dexterity) { DexEquipValue += ab.amount; } else if (ab.attribute == AttributeName.Intelligence) { IntEquipValue += ab.amount; } } foreach (VitalBuff vb in equippedItem.EquippedSockets[0].VitalBuffs) { if (vb.vital == VitalName.Health) { HealthFromAttr += vb.amount; } else if (vb.vital == VitalName.Mana) { ManaFromAttr += vb.amount; } else if (vb.vital == VitalName.Energy) { EnergyFromAttr += vb.amount; } } } if (item.ItemType == ItemEquipType.Clothing) { Armor equippedArmor = item as Armor; PlayerArmor += equippedArmor.ArmorAmt; PlayerChanceToBlock += equippedArmor.ChanceToBlock; PlayerDamageBlocked += equippedArmor.DamageBlocked; PlayerMoveSpeedBuff += equippedArmor.MoveSpeedBuff; } if (equippedItem.ItemType == ItemEquipType.Weapon) { Weapon equippedWep = equippedItem as Weapon; MaxDamage += equippedWep.MaxDamage; DmgVariance = equippedWep.DmgVariance; //replace AttackSpeed = equippedWep.AttackSpeed; //replace CritDamage += equippedWep.CritDamage; //additive, always 2.0 } foreach (AttributeBuff ab in equippedItem.AttribBuffs) { if (ab.attribute == AttributeName.Vitality) { VitEquipValue += ab.amount; } else if (ab.attribute == AttributeName.Strength) { StrEquipValue += ab.amount; } else if (ab.attribute == AttributeName.Dexterity) { DexEquipValue += ab.amount; } else if (ab.attribute == AttributeName.Intelligence) { IntEquipValue += ab.amount; } } foreach (VitalBuff vb in equippedItem.VitalBuffs) { if (vb.vital == VitalName.Health) { HealthFromAttr += vb.amount; } else if (vb.vital == VitalName.Mana) { ManaFromAttr += vb.amount; } else if (vb.vital == VitalName.Energy) { EnergyFromAttr += vb.amount; } } } } foreach (Attribute att in _attributes) { if (att.Name == "Strength") { att.EquipValue = StrEquipValue; } else if (att.Name == "Vitality") { att.EquipValue = VitEquipValue; } else if (att.Name == "Dexterity") { att.EquipValue = DexEquipValue; } else if (att.Name == "Intelligence") { att.EquipValue = IntEquipValue; } att.RecalculateValue(); } ScaleStats(); }
public void AddBuff(BuffItem item) { buffs.Add(item); InventoryUpdated(); }
public bool HasBuff(BuffItem item) { return(buffs.Contains(item)); }