Example #1
0
 private void Awake()
 {
     if (buffItem == null)
     {
         buffItem = GetComponentInParent <BuffItem>();
     }
 }
Example #2
0
    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);
        }
    }
Example #3
0
        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();
    }
Example #5
0
        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);
        }
Example #6
0
        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);
        }
Example #7
0
 //public
 public BuffEffect(Protomsg.BuffDatas buffdata, UnityEntity parent)
 {
     Data         = buffdata;
     TypeID       = buffdata.TypeID;
     BIdata       = ExcelManager.Instance.GetBuffIM().GetBIByID(buffdata.TypeID);
     ParentEntity = parent;
     Init();
 }
Example #8
0
 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
 }
Example #9
0
    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 = "";
    }
Example #10
0
    /// <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;
    }
Example #11
0
 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("버프 아이템");
         }
     }
 }
Example #12
0
    // 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;
    }
Example #13
0
    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);
    }
Example #14
0
    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";
            }
        }
    }
Example #15
0
    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);
    }
Example #16
0
    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);
        //    }

        //}
    }
Example #17
0
    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);
    }
Example #18
0
    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);
    }
Example #19
0
	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;
				}
			}
		}
	}
Example #20
0
    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;
        }
    }
Example #21
0
    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);
            }
        }
    }
Example #22
0
    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));
 }