Example #1
0
    private void RoomReward()
    {
        if (roomIndexListArr[curIndex][0].clear)
        {
            return;
        }

        int middle = (int)System.Math.Truncate((double)(roomIndexListArr[curIndex].Count / 2));

        TileInfo info = roomIndexListArr[curIndex][middle];

        if (info.roomType == ROOMTYPE.HALLWAY)
        {
            byte[] consumItemperArr = new byte[] { 40, 40, 20 };

            int random     = Random.Range(0, 100);
            int curpercent = 0;

            for (int i = 0; i < 3; i++)
            {
                int _x = Random.Range(-3, 4);
                int _z = Random.Range(-3, 4);

                curpercent += consumItemperArr[i];

                if (random < curpercent)
                {
                    switch (i)
                    {
                    case 0:
                        consumItemperArr = new byte[] { 59, 30, 7, 3, 1 };

                        random     = Random.Range(0, 100);
                        curpercent = 0;
                        for (int x = 0; x < 5; x++)
                        {
                            _x = Random.Range(-3, 4);
                            _z = Random.Range(-3, 4);

                            curpercent += consumItemperArr[i];

                            if (random < curpercent)
                            {
                                byte _coin = 0;

                                switch (x)
                                {
                                case 0:
                                    _coin = 1;
                                    break;

                                case 1:
                                    _coin = 2;
                                    break;

                                case 2:
                                    _coin = 5;
                                    break;
                                }

                                for (int s = 0; s < _coin; s++)
                                {
                                    GameObject obj     = ResourceManager.Instance.GetDropItem(DISPOITEM.COIN);
                                    GameObject coin    = Instantiate(obj, new Vector3(info.position.x + _x, 2, info.position.y + _z), Quaternion.identity);
                                    ConsumItem conitem = coin.AddComponent <ConsumItem>();
                                    conitem.consumitem = DROPITEM.COIN;

                                    coin.transform.SetParent(roomIndexListArr[curIndex][0].obTile.transform);
                                }
                            }
                        }
                        break;

                    case 1:
                        random = Random.Range(0, 100);

                        if (random < 95)
                        {
                            GameObject obj     = ResourceManager.Instance.GetDropItem(DISPOITEM.KEY);
                            GameObject _key    = Instantiate(obj, new Vector3(info.position.x + _x, 2, info.position.y + _z), Quaternion.identity);
                            ConsumItem conitem = _key.AddComponent <ConsumItem>();
                            conitem.consumitem = DROPITEM.KEYS;

                            _key.transform.SetParent(roomIndexListArr[curIndex][0].obTile.transform);
                        }
                        else
                        {
                            GameObject obj        = ResourceManager.Instance.GetDropItem(DISPOITEM.MASTERKEY);
                            GameObject _masterkey = Instantiate(obj, new Vector3(info.position.x + _x, 2, info.position.y + _z), Quaternion.identity);
                            ConsumItem conitem    = _masterkey.AddComponent <ConsumItem>();
                            conitem.consumitem = DROPITEM.MASTERKEY;

                            _masterkey.transform.SetParent(roomIndexListArr[curIndex][0].obTile.transform);
                        }
                        break;
                    }
                }
            }
        }
    }
Example #2
0
    private void SpawnConsumItem()
    {
        byte[] consumItemperArr;

        int random     = Random.Range(0, 100);
        int curpercent = 0;

        if (random < 40)
        {
            random = Random.Range(0, 100);

            for (int i = 0; i < 3; i++)
            {
                consumItemperArr = new byte[] { 50, 30, 20 };

                curpercent += consumItemperArr[i];

                if (random < curpercent)
                {
                    switch (i)
                    {
                    case 0:
                        consumItemperArr = new byte[] { 89, 7, 4 };

                        random     = Random.Range(0, 100);
                        curpercent = 0;

                        for (int x = 0; x < 3; x++)
                        {
                            curpercent += consumItemperArr[i];

                            if (random < curpercent)
                            {
                                byte _coin = 0;

                                switch (x)
                                {
                                case 0:
                                    _coin = 1;
                                    break;

                                case 1:
                                    _coin = 2;
                                    break;

                                case 2:
                                    _coin = 5;
                                    break;
                                }

                                for (int _x = 0; _x < _coin; _x++)
                                {
                                    GameObject obj     = ResourceManager.Instance.GetDropItem(DISPOITEM.COIN);
                                    GameObject coin    = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity);
                                    ConsumItem conitem = coin.AddComponent <ConsumItem>();
                                    conitem.consumitem = DROPITEM.COIN;
                                }

                                return;
                            }
                        }
                        return;

                    case 1:
                        random = Random.Range(0, 100);

                        if (random < 99)
                        {
                            GameObject obj     = ResourceManager.Instance.GetDropItem(DISPOITEM.KEY);
                            GameObject _key    = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity);
                            ConsumItem conitem = _key.AddComponent <ConsumItem>();
                            conitem.consumitem = DROPITEM.KEYS;
                        }
                        else
                        {
                            GameObject obj        = ResourceManager.Instance.GetDropItem(DISPOITEM.MASTERKEY);
                            GameObject _masterkey = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity);
                            ConsumItem conitem    = _masterkey.AddComponent <ConsumItem>();
                            conitem.consumitem = DROPITEM.MASTERKEY;
                        }
                        return;

                    case 2:
                        consumItemperArr = new byte[] { 89, 7, 4 };

                        random     = Random.Range(0, 100);
                        curpercent = 0;

                        for (int y = 0; y < 3; y++)
                        {
                            curpercent += consumItemperArr[i];

                            if (random < curpercent)
                            {
                                byte _bean = 0;

                                switch (y)
                                {
                                case 0:
                                    _bean = 1;
                                    break;

                                case 1:
                                    _bean = 2;
                                    break;

                                case 2:
                                    _bean = 5;
                                    break;
                                }

                                for (int _y = 0; _y < _bean; _y++)
                                {
                                    GameObject obj     = ResourceManager.Instance.GetDropItem(DISPOITEM.BEAN);
                                    GameObject coin    = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity);
                                    ConsumItem conitem = coin.AddComponent <ConsumItem>();
                                    conitem.consumitem = DROPITEM.BEANS;
                                }
                            }
                        }
                        return;
                    }
                }
            }
        }
    }
Example #3
0
    private void GetSkillInput()
    {
        if (Input.GetKey(ScenesManager.Instance.optionInfo.run) && ScenesManager.Instance.CheckScene() != "Lobby" && stat.hp > 10)
        {
            if (stat.stamina > 0)
            {
                stat.stamina -= Time.deltaTime;
                stat.speed    = stat.runspeed;
            }
            else
            {
                stat.stamina = 0;
                stat.speed   = 1;
            }
        }
        else
        {
            if (stat.hp > 10)
            {
                stat.speed = 1;
            }
            else
            {
                stat.speed = 0.5f;
            }


            if (stat.stamina <= 20)
            {
                stat.stamina += Time.deltaTime / 3;
            }
            else
            {
                stat.stamina = 20;
            }
        }

        float _itemrecharge = (float)stat.curItemStack / (float)stat.curItemMax;

        if (Input.GetKeyDown(ScenesManager.Instance.optionInfo.recharge) && _itemrecharge >= 1)
        {
            GameObject[] effects = Resources.LoadAll <GameObject>("Effect/");
            stat.curItemStack = 0;

            switch (stat.curItemIndex)
            {
            case 1:
                anim.SetTrigger("Fire");

                GameObject areaskill = Instantiate(curItemSkill, new Vector3(transform.position.x, transform.position.y + 0.2f, transform.position.z), Quaternion.identity);
                areaskill.transform.SetParent(transform);
                WideAreaSkill wide = areaskill.GetComponent <WideAreaSkill>();
                wide.SetSkillPreset("Monster", 20, 3f);

                stopAllMove = true;
                Invoke("InvincibleOff", 2.1f);
                break;

            case 2:
                GameObject butterfly = Instantiate(effects[10], transform.position, Quaternion.identity);
                butterfly.transform.SetParent(transform);

                if (stat.hp + 3 <= stat.maxHp)
                {
                    stat.hp += 3;
                }
                else
                {
                    stat.hp = stat.maxHp;
                }

                if (stat.mentality + 2 <= stat.maxMentality)
                {
                    stat.mentality += 2;
                }
                else
                {
                    stat.mentality = stat.maxMentality;
                }
                break;

            case 3:
                GameObject perfume = Instantiate(effects[11], transform.position, Quaternion.identity);
                perfume.transform.SetParent(transform);

                StartCoroutine(SkillPerfume(0, 5));
                break;

            case 4:
                GameObject magicwallet = Instantiate(effects[12], transform.position, Quaternion.identity);
                magicwallet.transform.SetParent(transform);

                for (int i = 0; i < Random.Range(1, 6); i++)
                {
                    int x = Random.Range(-3, 4);
                    int z = Random.Range(-3, 4);

                    GameObject obj     = ResourceManager.Instance.GetDropItem(DISPOITEM.COIN);
                    GameObject coin    = Instantiate(obj, new Vector3(transform.position.x + x, 2, transform.position.z + z), Quaternion.identity);
                    ConsumItem conitem = coin.AddComponent <ConsumItem>();
                    conitem.consumitem = DROPITEM.COIN;
                }
                break;

            case 5:
                GameObject raindow = Instantiate(effects[13], transform.position, Quaternion.identity);
                raindow.transform.SetParent(transform);

                if (stat.hp + 10 <= stat.maxHp)
                {
                    stat.hp += 10;
                }
                else
                {
                    stat.hp = stat.maxHp;
                }

                if (stat.mentality + 5 <= stat.maxMentality)
                {
                    stat.mentality += 5;
                }
                else
                {
                    stat.mentality = stat.maxMentality;
                }
                break;

            case 6:
                anim.SetTrigger("Lightning");

                GameObject lightning = Instantiate(effects[14], new Vector3(transform.position.x, 5, transform.position.z), transform.rotation);
                lightning.transform.SetParent(transform);

                GameObject[] Monsters = GameObject.FindGameObjectsWithTag("Monster");

                for (int i = 0; i < Monsters.Length; i++)
                {
                    Monsters[i].GetComponent <Monster>().MonGetDamage(5);
                }
                break;
            }
        }

        if (Input.GetKeyDown(ScenesManager.Instance.optionInfo.disposable) && stat.curDispoItemIndex != 255)
        {
            Debug.Log("일회용 아이템 사용!");

            if (_itemrecharge != 1)
            {
                switch (stat.curDispoItemIndex)
                {
                case 1:
                    stat.curItemStack      = stat.curItemMax;
                    stat.curDispoItemIndex = 255;
                    break;
                }
            }
        }
    }
Example #4
0
    private void SpawnHealItem()
    {
        byte[] consumItemperArr;

        int random     = Random.Range(0, 100);
        int curpercent = 0;

        if (random < 10)
        {
            random = Random.Range(0, 100);

            for (int i = 0; i < 3; i++)
            {
                consumItemperArr = new byte[] { 45, 45, 10 };

                curpercent += consumItemperArr[i];

                if (random < curpercent)
                {
                    switch (i)
                    {
                    case 0:
                        random = Random.Range(0, 100);

                        for (int _x = 0; _x < 3; _x++)
                        {
                            consumItemperArr = new byte[] { 75, 25, 10 };

                            curpercent += consumItemperArr[i];

                            if (random < curpercent)
                            {
                                GameObject obj = ResourceManager.Instance.GetDropItem(DISPOITEM.HP);

                                switch (i)
                                {
                                case 0:
                                    GameObject s  = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity);
                                    ConsumItem _s = s.AddComponent <ConsumItem>();
                                    _s.consumitem = DROPITEM.HPS;
                                    return;

                                case 1:
                                    GameObject m  = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity);
                                    ConsumItem _m = m.AddComponent <ConsumItem>();
                                    _m.consumitem = DROPITEM.HPM;
                                    return;

                                case 2:
                                    GameObject l  = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity);
                                    ConsumItem _l = l.AddComponent <ConsumItem>();
                                    _l.consumitem = DROPITEM.HPL;
                                    return;
                                }
                            }
                        }
                        break;

                    case 1:
                        random = Random.Range(0, 100);

                        for (int _x = 0; _x < 3; _x++)
                        {
                            consumItemperArr = new byte[] { 75, 25, 10 };

                            curpercent += consumItemperArr[i];

                            if (random < curpercent)
                            {
                                GameObject obj = ResourceManager.Instance.GetDropItem(DISPOITEM.MENTAL);

                                switch (i)
                                {
                                case 0:
                                    GameObject s  = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity);
                                    ConsumItem _s = s.AddComponent <ConsumItem>();
                                    _s.consumitem = DROPITEM.MENTALS;
                                    return;

                                case 1:
                                    GameObject m  = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity);
                                    ConsumItem _m = m.AddComponent <ConsumItem>();
                                    _m.consumitem = DROPITEM.MENTALM;
                                    return;

                                case 2:
                                    GameObject l  = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity);
                                    ConsumItem _l = l.AddComponent <ConsumItem>();
                                    _l.consumitem = DROPITEM.MENTALL;
                                    return;
                                }
                            }
                        }
                        break;

                    case 2:
                        random = Random.Range(0, 100);

                        for (int _x = 0; _x < 3; _x++)
                        {
                            consumItemperArr = new byte[] { 80, 16, 4 };

                            curpercent += consumItemperArr[i];

                            if (random < curpercent)
                            {
                                GameObject obj = ResourceManager.Instance.GetDropItem(DISPOITEM.HEALALL);

                                switch (i)
                                {
                                case 0:
                                    GameObject s  = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity);
                                    ConsumItem _s = s.AddComponent <ConsumItem>();
                                    _s.consumitem = DROPITEM.TOTALHEALS;
                                    return;

                                case 1:
                                    GameObject m  = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity);
                                    ConsumItem _m = m.AddComponent <ConsumItem>();
                                    _m.consumitem = DROPITEM.TOTALHEALM;
                                    return;

                                case 2:
                                    GameObject l  = Instantiate(obj, new Vector3(transform.position.x, 2, transform.position.z), Quaternion.identity);
                                    ConsumItem _l = l.AddComponent <ConsumItem>();
                                    _l.consumitem = DROPITEM.TOTALHEALL;
                                    return;
                                }
                            }
                        }
                        break;
                    }
                }
            }
        }
    }
Example #5
0
    private void CheckDropItem(Collider other)
    {
        ConsumItem _consumitem = other.GetComponent <ConsumItem>();

        switch (_consumitem.consumitem)
        {
        case DROPITEM.COIN:
            if (stat.coin < 100)
            {
                stat.coin++;
            }
            break;

        case DROPITEM.KEYS:
            if (stat.roomKeys < 100)
            {
                stat.roomKeys++;
            }
            break;

        case DROPITEM.MASTERKEY:
            stat.roomKeys = 100;
            break;

        case DROPITEM.BEANS:
            if (stat.beans < 100)
            {
                stat.beans++;
            }
            break;

        case DROPITEM.HPS:
            if (stat.hp + 3 <= stat.maxHp)
            {
                stat.hp += 3;
            }
            else
            {
                stat.hp = stat.maxHp;
            }

            break;

        case DROPITEM.HPM:
            if (stat.hp + 5 <= stat.maxHp)
            {
                stat.hp += 5;
            }
            else
            {
                stat.hp = stat.maxHp;
            }
            break;

        case DROPITEM.HPL:
            if (stat.hp + 10 <= stat.maxHp)
            {
                stat.hp += 10;
            }
            else
            {
                stat.hp = stat.maxHp;
            }
            break;

        case DROPITEM.MENTALS:
            if (stat.mentality + 0.5f <= stat.maxMentality)
            {
                stat.mentality += 0.5f;
            }
            else
            {
                stat.mentality = stat.maxMentality;
            }
            break;

        case DROPITEM.MENTALM:
            if (stat.mentality + 1.0f <= stat.maxMentality)
            {
                stat.mentality += 1.0f;
            }
            else
            {
                stat.mentality = stat.maxMentality;
            }
            break;

        case DROPITEM.MENTALL:
            if (stat.mentality + 5.0f <= stat.maxMentality)
            {
                stat.mentality += 5.0f;
            }
            else
            {
                stat.mentality = stat.maxMentality;
            }
            break;

        case DROPITEM.TOTALHEALS:
            if (stat.hp + 3 <= stat.maxHp)
            {
                stat.hp += 3;
            }
            else
            {
                stat.hp = stat.maxHp;
            }

            if (stat.mentality + 1.0f <= stat.maxMentality)
            {
                stat.mentality += 1.0f;
            }
            else
            {
                stat.mentality = stat.maxMentality;
            }

            break;

        case DROPITEM.TOTALHEALM:
            if (stat.hp + 5 <= stat.maxHp)
            {
                stat.hp += 5;
            }
            else
            {
                stat.hp = stat.maxHp;
            }

            if (stat.mentality + 3.0f <= stat.maxMentality)
            {
                stat.mentality += 3.0f;
            }
            else
            {
                stat.mentality = stat.maxMentality;
            }

            break;

        case DROPITEM.TOTALHEALL:
            if (stat.hp + 20 <= stat.maxHp)
            {
                stat.hp += 20;
            }
            else
            {
                stat.hp = stat.maxHp;
            }

            if (stat.mentality + 10.0f <= stat.maxMentality)
            {
                stat.mentality += 10.0f;
            }
            else
            {
                stat.mentality = stat.maxMentality;
            }
            break;
        }

        byte[] arr = new byte[] { 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 2, 2, 2 };

        GameObject[] effects = Resources.LoadAll <GameObject>("Effect/");

        GameObject effect = Instantiate(effects[arr[(byte)_consumitem.consumitem]], transform.position, Quaternion.identity);

        effect.transform.SetParent(transform);
        Destroy(effect, 2.5f);
        Destroy(other.gameObject);
    }