/// <summary> /// Boost the ship in its forward (right) direction. /// </summary> /// <param name="craft">The craft that use this ability.</param> /// <param name="power">How strong the boost is.</param> public static void Boost(SpaceCraft craft, float power) { Rigidbody2D rb = craft.Rb; Vector2 force = craft.transform.right * craft.moveSpeed * power; rb.AddForce(force); }
// Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.U)) { current = (int)current == spaceCrafts.Length - 1 ? SpaceCraft.Craft1 : current + 1; Instance.UpdateCraft(current); } if (Input.GetKeyDown(KeyCode.Tab)) { if (_forward == KeyCode.UpArrow) { _forward = KeyCode.W; _back = KeyCode.S; _left = KeyCode.A; _right = KeyCode.D; } else { _forward = KeyCode.UpArrow; _back = KeyCode.DownArrow; _left = KeyCode.LeftArrow; _right = KeyCode.RightArrow; } } }
protected virtual void Start () { customSkin = Resources.Load ("GUISkin") as GUISkin; allSpaceCrafts = SpaceCraft.spaceCraftList; AdaptiveLeapfrog = GetComponent<SpaceCraftOrbit> (); spaceCraft = GetComponent<SpaceCraft> (); }
protected virtual void Start() { customSkin = Resources.Load("GUISkin") as GUISkin; allSpaceCrafts = SpaceCraft.spaceCraftList; AdaptiveLeapfrog = GetComponent <SpaceCraftOrbit> (); spaceCraft = GetComponent <SpaceCraft> (); }
public void LaunchSpaceCraft(float speed, float direction, string name) { if (SpaceCraft.spaceCraftList.Count < maxSpaceCraft) { spaceCraft = GameObject.Instantiate(Resources.Load("Prefabs/MissileHead")) as GameObject; spaceCraft.name = name; spaceCraft.tag = "SpaceCraft"; spaceCraft.transform.Find("MissileMesh").name = "Mesh" + spaceCraft.name; spaceCraft.transform.Find("BB").name = "BB" + spaceCraft.name; spaceCraft.transform.parent = transform; velocity = POEarth.ParametricVelocity(); //print(velocity.magnitude*Scales.velmu2kms); velocity += speed * (Quaternion.Euler(0, direction, 0) * velocity).normalized; spaceCraft.GetComponent <SpaceCraftOrbit> ().Initialize(earth.transform.position, velocity, direction); SpaceCraft sc = spaceCraft.GetComponent <SpaceCraft> (); if (name == "Generic") { spaceCraft.AddComponent <SpaceCraftInfo> (); sc.minVelForCourseCorrection = 0; sc.maxVelForCourseCorrection = 16.3f * Scales.kms2velmu; sc.allowableNumberOfThrusts = int.MaxValue; } else if (name == "Viking") { spaceCraft.AddComponent <VikingInfo> (); sc.minVelForCourseCorrection = 0f; sc.maxVelForCourseCorrection = 2.5f * Scales.kms2velmu; sc.allowableNumberOfThrusts = 1; } else if (name == "Magellan") { spaceCraft.AddComponent <SpaceCraftInfo> (); sc.minVelForCourseCorrection = 0; sc.maxVelForCourseCorrection = 2.5f * Scales.kms2velmu; sc.allowableNumberOfThrusts = 1; } else if (name == "Galileo") { spaceCraft.AddComponent <SpaceCraftInfo> (); sc.minVelForCourseCorrection = 0; sc.maxVelForCourseCorrection = 5f * Scales.kms2velmu; sc.allowableNumberOfThrusts = 1; } } else { GUIClass.messageQueue.Enqueue(numOfSpaceCraftsMessage); } }
void Start() { sco = transform.parent.GetComponent <SpaceCraftOrbit> (); sc = transform.parent.GetComponent <SpaceCraft> (); gameObject.AddComponent <MeshFilter> (); arrowMat = new Material(Shader.Find("Unlit/Transparent")); arrowMat.SetTexture("_MainTex", Resources.Load("Textures/Arrow") as Texture); GetComponent <MeshFilter> ().mesh = BillBoardMesh(width, length); GetComponent <MeshFilter> ().mesh.Optimize(); GetComponent <Renderer> ().material = arrowMat; }
void Start () { sco = transform.parent.GetComponent<SpaceCraftOrbit> (); sc = transform.parent.GetComponent<SpaceCraft> (); gameObject.AddComponent<MeshFilter> (); arrowMat = new Material (Shader.Find ("Unlit/Transparent")); arrowMat.SetTexture ("_MainTex", Resources.Load ("Textures/Arrow") as Texture); GetComponent<MeshFilter> ().mesh = BillBoardMesh (width, length); GetComponent<MeshFilter> ().mesh.Optimize (); GetComponent<Renderer> ().material = arrowMat; }
private void DSNServerForm_Load(object sender, EventArgs e) { for (int i = 1; i <= _totalNumber; i++) { SpaceCraft temp = SpaceCraft.CreateNewSC_DSN(); spacecraftList.Add(temp); } spaceCraftsBindingSource.DataSource = spacecraftList; this.spacecraftsDataGridView.DataSource = spaceCraftsBindingSource; var host = new ServiceHost(typeof(DSNService), new Uri("net.pipe://localhost")); host.AddServiceEndpoint(typeof(IDSNService), new NetNamedPipeBinding(), "DSN"); host.Open(); }
public void SpaceCraftsClientForm_Load(object sender, EventArgs e) { //BindingList<SpaceCraft> spacecraftList_client = new BindingList<SpaceCraft>(); for (int i = 1; i <= _totalNumber; i++) { SpaceCraft temp = SpaceCraft.CreateNewSC(i); spacecraftList_client.Add(temp); //launchThread[i - 1] = new Thread(() => LaunchSC(i)); //lvTelemetry[i - 1] = new Thread(()=> LvStartTele(i)); } var callback = new DSNCallback(); var context = new InstanceContext(callback); var pipeFactory = new DuplexChannelFactory <IDSNService>(context, new NetNamedPipeBinding(), new EndpointAddress("net.pipe://localhost/DSN")); service = pipeFactory.CreateChannel(); service.Connect(); }
public void UpdateCraft(SpaceCraft craft) { current = craft; Vector3 pos = startingPosition.position; Vector3 vel = Vector3.zero; Quaternion rot = startingPosition.rotation; GameObject reflector = null; if (_spaceCraft != null) { pos = _spaceCraft.transform.position; rot = _spaceCraft.transform.rotation; vel = _spaceCraft.GetComponent <Rigidbody>().velocity; reflector = _spaceCraft.GetComponent <PlayerMovement>().GetReflector(); DestroyImmediate(_spaceCraft); _spaceCraft = null; _playerMovement = null; } _spaceCraft = Instantiate(spaceCrafts[(int)current], pos, rot); _spaceCraft.GetComponent <Rigidbody>().velocity = vel; _playerMovement = _spaceCraft.GetComponent <PlayerMovement>(); _playerMovement.SetReflector(reflector); }
private void OnTriggerEnter(Collider other) { SpaceCraft sc = other.gameObject.GetComponent <SpaceCraft>(); Bullet blt = other.gameObject.GetComponent <Bullet>(); if (sc != null && sc.id == IgnoreId) { return; } if (blt != null && blt.IgnoreId == this.IgnoreId) { return; } if (isIgnoreTeam && sc.team == team) { return; } ParticleSystem par = Instantiate <ParticleSystem>(parHit); par.transform.position = transform.position; par.Play(); GameObject.Destroy(gameObject); }
void Update () { // Scales.ClampTimeScale (); if (Input.GetKeyDown (KeyCode.KeypadPlus)) { Scales.IncreaseTimeScale (); } if (Input.GetKeyDown (KeyCode.KeypadMinus)) { Scales.DecreaseTimeScale (); } if (Input.GetKeyDown ("space")) { Scales.Pause = !Scales.Pause; } /******************************************************************************************************************/ if (messageQueue.Count != 0 && messageIsBeingDisplayed == false) { messageToBeDisplayed = messageQueue.Dequeue (); StartCoroutine (CountdownForMessage (Scales.messageDuration)); } /******************************************************************************************************************/ gravityLevel0 = Scales.GravityLevel.normal; foreach (SpaceCraft sc in SpaceCraft.spaceCraftList) { if (sc.sco.gravityLevel > gravityLevel0) gravityLevel0 = sc.sco.gravityLevel; if (sc.IsSelected == true) { if (selectedSc != null && selectedSc != sc) selectedSc.isCourseCorrecting = false; selectedSc = sc; } } if (gravityLevel0 != Scales.GravityLevel.normal && strongGravityMessageQueued == false) { strongGravityMessageQueued = true; messageQueue.Enqueue (strongGravityMessage); } switch (gravityLevel0) { case Scales.GravityLevel.normal: Scales.ResetMaximumTimeScale (); break; case Scales.GravityLevel.medium: Scales.MaxTimeScale = 1; break; case Scales.GravityLevel.high: Scales.MaxTimeScale = 0.5f; break; } }
public void Shoot(SpaceCraft craft) { Shot shotInstance = Instantiate <Shot> (shotPrefab, transform.position, transform.rotation); shotInstance.owner = craft; }
/// <summary> /// Empty ability for ships without one. /// </summary> /// <param name="craft">Redundant parameter.</param> /// <param name="power">Redundant parameter.</param> public static void None(SpaceCraft craft, float power) { return; }
void Update() { // Scales.ClampTimeScale(); if (Input.GetKeyDown(KeyCode.KeypadPlus)) { Scales.IncreaseTimeScale(); } if (Input.GetKeyDown(KeyCode.KeypadMinus)) { Scales.DecreaseTimeScale(); } if (Input.GetKeyDown("space")) { Scales.Pause = !Scales.Pause; } /******************************************************************************************************************/ if (messageQueue.Count != 0 && messageIsBeingDisplayed == false) { messageToBeDisplayed = messageQueue.Dequeue(); StartCoroutine(CountdownForMessage(Scales.messageDuration)); } /******************************************************************************************************************/ gravityLevel0 = Scales.GravityLevel.normal; foreach (SpaceCraft sc in SpaceCraft.spaceCraftList) { if (sc.sco.gravityLevel > gravityLevel0) { gravityLevel0 = sc.sco.gravityLevel; } if (sc.IsSelected == true) { if (selectedSc != null && selectedSc != sc) { selectedSc.isCourseCorrecting = false; } selectedSc = sc; } } if (gravityLevel0 != Scales.GravityLevel.normal && strongGravityMessageQueued == false) { strongGravityMessageQueued = true; messageQueue.Enqueue(strongGravityMessage); } switch (gravityLevel0) { case Scales.GravityLevel.normal: Scales.ResetMaximumTimeScale(); break; case Scales.GravityLevel.medium: Scales.MaxTimeScale = 1; break; case Scales.GravityLevel.high: Scales.MaxTimeScale = 0.5f; break; } }