protected override void SetType()
        {
            switch (_rndType)
            {
            case 1:
                _type = ItemWeaponType.OneHandedSword;
                break;

            case 2:
                _type = ItemWeaponType.Bow;
                break;

            case 3:
                _type = ItemWeaponType.Dagger;
                break;

            case 4:
                _type = ItemWeaponType.Staff;
                break;

            case 5:
                _type = ItemWeaponType.Shield;
                break;

            default:
                _type = ItemWeaponType.Wand;
                break;
            }
        }
Example #2
0
    public void ChangeWeaponType(ItemWeaponType.WeaponType weaponType)
    {
        string weaponString = ItemWeaponType.GetWeaponTypeString(weaponType);

        if (weaponType == weapons.weaponType)
        {
            SetPowerupText(weaponString + " Improved");
            weapons.LevelUpType();
            return;
        }

        weapons.DeleteAll();
        Weapon w = Resources.Load <Weapon>("Prefabs/Weapon");
        Weapon cw;

        float weaponDistance = w.transform.localPosition.x;

        weapons.SetWeaponType(weaponType);
        SetPowerupText(weaponString + " Equipped");

        switch (weaponType)
        {
        default:
        case ItemWeaponType.WeaponType.SINGLE:
            cw = Instantiate(w, this.transform);
            cw.FireCooldown = 0.4f;
            cw.PowerUsage   = 5f;
            weapons.Add(cw);
            break;

        case ItemWeaponType.WeaponType.FORK:
            Vector2 vf = Vector2.one * .707f * weaponDistance;                     //normalized vector * weaponDistance
            cw = Instantiate(w, this.transform);
            cw.transform.localPosition = new Vector3(vf.y, cw.transform.localPosition.y, vf.x);
            cw.FireCooldown            = 0.5f;
            cw.PowerUsage = 4f;
            weapons.Add(cw);

            vf.Scale(new Vector2(-1, 1));
            cw = Instantiate(w, this.transform);
            cw.transform.localPosition = new Vector3(vf.y, cw.transform.localPosition.y, vf.x);
            cw.FireCooldown            = 0.5f;
            cw.PowerUsage = 4f;
            weapons.Add(cw);
            break;

        case ItemWeaponType.WeaponType.FRONTBACK:
            cw = Instantiate(w, this.transform);
            cw.FireCooldown = 0.6f;
            cw.PowerUsage   = 4f;
            weapons.Add(cw);

            cw = Instantiate(w, this.transform);
            cw.transform.localPosition = new Vector3(-weaponDistance, w.transform.localPosition.y, w.transform.localPosition.z);
            cw.FireCooldown            = 0.6f;
            cw.PowerUsage = 4f;
            weapons.Add(cw);
            break;

        case ItemWeaponType.WeaponType.RING:
            for (int i = 0; i < 360; i += 60)
            {
                cw = Instantiate(w, this.transform);
                Vector2 v = AngleToVector(i).normalized *weaponDistance;
                cw.transform.localPosition = new Vector3(v.x, cw.transform.localPosition.y, v.y);
                cw.BulletDuration          = 0.35f;
                cw.PowerUsage   = 2f;
                cw.FireCooldown = 1f;
                weapons.Add(cw);
            }
            break;
        }
    }