private TransmissionRay CreateTransmissionRay(Transmission.Data transmission) { var ray = Instantiate(_rayPrefab); ray.transform.position = _firingPoint.position; ray.transform.rotation = _firingPoint.rotation; ray.Setup(transmission); return(ray); }
private void RandomizeGoal() { _goalTransmission = new Transmission.Data(); for (int i = 0; i < Transmission.NUMBER_OF_SIGNALS; i++) { var enumValues = Enum.GetValues(typeof(SignalKey)); var randomValue = (SignalKey)enumValues.GetValue(Random.Range(0, enumValues.Length)); _goalTransmission.Signals[i] = randomValue; } }
private void OnCollisionEnter2D(Collision2D other) { switch (PlanetState) { case State.Ongoing: // Nothing - keep running break; case State.Won: _loveParticles.Play(); _loveSound.Play(); GameManager.ControlPanel.EnableUI(); return; case State.Lost: _hateParticles.Play(); _hateSound.Play(); GameManager.ControlPanel.EnableUI(); return; default: throw new ArgumentOutOfRangeException(); } if (PlanetState != State.Ongoing) { // Interactions are only with Ongoing planets return; } var ray = other.gameObject.GetComponent <TransmissionRay>(); if (ray == null) { return; } _lastTransmission = ray.Transmission; _lastEvaluation = EvaluateTransmission(ray.Transmission); _likeness -= _angerMod; GameManager.AlienPanel.Setup(GetAlienSprite(_lastEvaluation), _lastTransmission, _lastEvaluation, _likeness); GameManager.AlienPanel.Show(OnAlienPanelDone); if (_lastEvaluation.Score >= 3.9f) { OnPlanetWin(); } else if (_likeness <= 0.0f) { OnPlanetLose(); } }
private Evaluation EvaluateTransmission(Transmission.Data transmission) { var eval = new Evaluation(); for (int i = 0; i < Transmission.NUMBER_OF_SIGNALS; i++) { eval.Results[i] = Evaluation.Result.Bad; } for (int i = 0; i < Transmission.NUMBER_OF_SIGNALS; i++) { if (transmission.Signals[i] == _goalTransmission.Signals[i]) { // Perfect hit! eval.Results[i] = Evaluation.Result.Perfect; eval.Score += 1.0f; continue; } // Check for good hit for (int j = 0; j < Transmission.NUMBER_OF_SIGNALS; j++) { if (transmission.Signals[i] == _goalTransmission.Signals[j]) { // Found good hit eval.Results[i] = Evaluation.Result.Good; eval.Score += 1.0f; break; } } eval.Score -= 1.0f; } return(eval); }
public void ShootTransmission(Transmission.Data transmission) { var ray = CreateTransmissionRay(transmission); }
public void Setup(Transmission.Data transmission) { Transmission = transmission; }
public void Setup(Sprite alienSprite, Transmission.Data transmission, Planet.Evaluation evaluation, float likeness) { _alienImage.sprite = alienSprite; _Evaluation.SetEvaluation(transmission, evaluation); _likenessMeter.value = likeness; }