Exemplo n.º 1
0
    /// <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);
    }
Exemplo n.º 2
0
    // 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> ();
	}
Exemplo n.º 4
0
    protected virtual void Start()
    {
        customSkin = Resources.Load("GUISkin") as GUISkin;

        allSpaceCrafts   = SpaceCraft.spaceCraftList;
        AdaptiveLeapfrog = GetComponent <SpaceCraftOrbit> ();
        spaceCraft       = GetComponent <SpaceCraft> ();
    }
Exemplo n.º 5
0
    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);
        }
    }
Exemplo n.º 6
0
    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;
    }
Exemplo n.º 7
0
	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;

	}
Exemplo n.º 8
0
        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();
        }
Exemplo n.º 10
0
    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);
    }
Exemplo n.º 11
0
    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);
    }
Exemplo n.º 12
0
	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;
		}
	}
Exemplo n.º 13
0
    public void Shoot(SpaceCraft craft)
    {
        Shot shotInstance = Instantiate <Shot> (shotPrefab, transform.position, transform.rotation);

        shotInstance.owner = craft;
    }
Exemplo n.º 14
0
 /// <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;
 }
Exemplo n.º 15
0
    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;
        }
    }