Example #1
0
 public WeaponList(IEnumerable <Weapon> weapons)
 {
     this.AddRange(weapons);
     weaponType = ItemWeaponType.WeaponType.SINGLE;
     Level      = 1;
 }
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;
        }
    }
Example #3
0
 public void SetWeaponType(ItemWeaponType.WeaponType wt)
 {
     weaponType = wt;
     Level      = 1;
 }