コード例 #1
0
    public int Fire(Vector2 loc, Vector2 vel, Vector2 dir, WeaponRack.Mode mode)
    {
        switch (mode)
        {
        case WeaponRack.Mode.FIRE_DOWN:
            break;

        default:
            return(0);
        }

        // launch missle from pool
        // TODO

        GameObject m = Instantiate(missle_fab);

        m.transform.position = loc + (dir * shot_offset);
        float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;

        m.transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
        Ship s = m.GetComponent <Ship>();

        s.vel = vel + (dir * s.thrust); // should actually include mass, but whatever

        return(1);
    }
コード例 #2
0
ファイル: Ship.cs プロジェクト: jordan9001/graviscope
 public bool Fire(WeaponRack.Mode mode)
 {
     if (wr == null)
     {
         Debug.LogFormat("Tried to fire a ship with no weaponrack");
         return(false);
     }
     return(wr.Fire(this.transform.position, vel, this.transform.up, mode));
 }
コード例 #3
0
 public int ModeAmmo(WeaponRack.Mode mode)
 {
     switch (mode)
     {
     case WeaponRack.Mode.FIRE_DOWN:
         return(1);
     }
     return(0);
 }
コード例 #4
0
ファイル: WeaponRack.cs プロジェクト: jordan9001/graviscope
    public bool Fire(Vector2 loc, Vector2 vel, Vector2 dir, WeaponRack.Mode mode)
    {
        if (all_weapons[selected].ModeAmmo(mode) > weapon_ammo[selected])
        {
            return(false);
        }

        if (mode == WeaponRack.Mode.FIRE_DOWN)
        {
            if (Time.fixedTime < reloaded)
            {
                return(false);
            }
            else
            {
                // set time when reloaded
                reloaded = Time.fixedTime + all_weapons[selected].GetReloadTime();
            }
        }

        weapon_ammo[selected] -= all_weapons[selected].Fire(loc, vel, dir, mode);

        return(true);
    }