diff --git a/Assets/Group1/10.jpg b/Assets/Group1/10.jpg new file mode 100644 index 00000000..595e8ffa Binary files /dev/null and b/Assets/Group1/10.jpg differ diff --git a/Assets/Scripts/Player.cs b/Assets/Scripts/Player.cs new file mode 100644 index 00000000..a2bd230f --- /dev/null +++ b/Assets/Scripts/Player.cs @@ -0,0 +1,36 @@ +using UnityEngine; +using System.Collections; +using System.Linq; + +public class Player : MonoBehaviour +{ + [SerializeField] private Transform _enemiesContainer; + [SerializeField] private Transform _finishPanel; + + public int EnemiesOnLevel { get; private set; } + + public int KilledEnemys { get; private set; } = 0; + + private void Start () + { + var enemies = _enemiesContainer.GetComponentsInChildren(); + EnemiesOnLevel = enemies.Count(); + } + + private void OnTriggerEnter2D (Collider2D collision) + { + if (collision.GetComponent()) + { + EnemiesOnLevel--; + + if (EnemiesOnLevel == 0) + OnLevelPassed(); + } + } + + private void OnLevelPassed () + { + Time.timeScale = 0; + _finishPanel.gameObject.SetActive(true); + } +} diff --git a/Assets/Scripts/PlayerMover.cs b/Assets/Scripts/PlayerMover.cs new file mode 100644 index 00000000..fe2dad51 --- /dev/null +++ b/Assets/Scripts/PlayerMover.cs @@ -0,0 +1,54 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class PlayerMover : MonoBehaviour +{ + [SerializeField] private float _speed; + + private float _boosterTime = 0; + private float _boosterForce = 0; + private float _defaultSpeed; + + private void Start () + { + _defaultSpeed = _speed; + } + + private void OnTriggerEnter2D (Collider2D collision) + { + if (collision.TryGetComponent(out SquareBooster squareBooster)) + { + _boosterForce = squareBooster.BoosterForce; + _boosterTime = squareBooster.BoosterTime; + + StartCoroutine(Booster()); + } + } + + private IEnumerator Booster () + { + var waitForSeconds = new WaitForSeconds(_boosterTime); + ChangeSpeed(_speed + _boosterForce); + + for (int i = 0; i < 1; i++) + { + yield return waitForSeconds; + } + + ChangeSpeed(_defaultSpeed); + StopCoroutine(Booster()); + } + + private void ChangeSpeed (float speed) + { + _speed = speed; + } + + private void Update () + { + Vector3 moveDirection = new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"), 0); + + transform.Translate(moveDirection * _speed * Time.deltaTime); + } +} diff --git a/Assets/Scripts/Square.cs b/Assets/Scripts/Square.cs new file mode 100644 index 00000000..1ed4e326 --- /dev/null +++ b/Assets/Scripts/Square.cs @@ -0,0 +1,35 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Square : MonoBehaviour +{ + [SerializeField] private float _speed = 2; + [SerializeField] private float _movementRadius = 4; + + private Vector3 _target; + + private void OnTriggerEnter2D (Collider2D collision) + { + if (collision.GetComponent()) + gameObject.SetActive(false); + } + + private void Start () + { + CreateNewTarget(); + } + + private void Update () + { + transform.position = Vector3.MoveTowards(transform.position, _target, _speed * Time.deltaTime); + + if (transform.position == _target) + CreateNewTarget(); + } + + protected void CreateNewTarget () + { + _target = Random.insideUnitCircle * _movementRadius; + } +} diff --git a/Assets/Scripts/Square.cs.meta b/Assets/Scripts/Square.cs.meta new file mode 100644 index 00000000..ab764d30 --- /dev/null +++ b/Assets/Scripts/Square.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 65f7df4705b7dae48944a39b48934484 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/SquareBooster.cs b/Assets/Scripts/SquareBooster.cs new file mode 100644 index 00000000..517f4e2d --- /dev/null +++ b/Assets/Scripts/SquareBooster.cs @@ -0,0 +1,13 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class SquareBooster : Square +{ + [SerializeField] private float _boosterForce; + [SerializeField] private float _boosterTime; + + public float BoosterForce => _boosterForce; + public float BoosterTime => _boosterTime; + +} diff --git a/Assets/Scripts/SquareBooster.cs.meta b/Assets/Scripts/SquareBooster.cs.meta new file mode 100644 index 00000000..e9cd6afe --- /dev/null +++ b/Assets/Scripts/SquareBooster.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cd6d0074e725a114e850d2e604fe4b0d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: