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); }
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)); }
public int ModeAmmo(WeaponRack.Mode mode) { switch (mode) { case WeaponRack.Mode.FIRE_DOWN: return(1); } return(0); }
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); }