Esempio n. 1
0
        void Update()
        {
            target = GameServices.Get <PlayerManager>().PlayerPosition;


            if (state == States.Chase)
            {
                // Debug.Log("Chase");
                ChaseTarget();


                if (IsCloseEnoughToShoot())
                {
                    state = States.Attack;
                }
            }

            else if (state == States.Attack)
            {
                //  Debug.Log("Attack");
                StopMovement();
                Attack();
                if (!IsCloseEnoughToShoot())
                {
                    state = States.Chase;
                }
            }

            if (Vector3.Distance(this.transform.position, target) <= stopDistance * 0.7f)
            {
                MoveBackwards();
            }

            navAgent.enabled = true;
        }
Esempio n. 2
0
 void LateUpdate()
 {
     transform.position = (health.transform.position + Vector3.up * 2f);
     //// transform.LookAt(Camera.main.transform);
     transform.LookAt(GameServices.Get <CameraService>().MainCamera.transform);
     Debug.DrawLine(this.transform.position, GameServices.Get <CameraService>().MainCamera.transform.position, Color.red);
 }
Esempio n. 3
0
 public static void OnGameSessionOver()
 {
     GameServices.Get <EnemySpawnerManager>().DestroyAllEnemies();
     GameServices.Get <PlayerManager>().DestroyPlayer();
     AsteroidSpawner.instance.DestroyAllAsteroids();
     //HealthBarController.instance.ClearAllHealthBars();
     GameServices.Get <HealthBarManager>().ClearAllHealthBars();
 }
Esempio n. 4
0
        ///public event Action OnDestinationReached;
        // Vector3 clickPoint;



        void Start()
        {
            ///  initilazeNavMeshAgent();
            /// InvokeRepeating("ChaseTarget", 1,  1f);
            target = GameServices.Get <PlayerManager>().PlayerPosition; // new Transform();// Player.instance.transform;
            state  = IsCloseEnoughToShoot() ? States.Attack : States.Chase;

            projectileLauncher = GetComponent <ProjectileLauncher>();

            gameObject.tag = GameTags.Enemy;
        }
Esempio n. 5
0
        void StartLevel()
        {
            GameServices.Get <PlayerManager>().SpawnPlayer();
            //PlayerSpawner.instance.SpawnPlayer();
            GameServices.Get <EnemySpawnerManager>().SpawnEnemiesOnField();
            AsteroidSpawner.instance.PopulatePlaneWithsteroids();


            InvokeRepeating(nameof(SpawnEnemiesByOne), 4f, 6f);
            InvokeRepeating(nameof(SpawnAsteroidsByOne), 1f, 1f);
        }
Esempio n. 6
0
 public override void Init(Action onRelease)
 {
     GameServices.Get <GameScoreManager>().Register(this);
     ///   Invoke(nameof(Explode), 30f);
     if (GetComponent <Health>() != null)
     {
         health = GetComponent <Health>();
         health.OnHealthDepleted += Explode;
         health.InitilazeHealth();
     }
     OnDestroy += onRelease;
 }
        void CreateAsteroid()
        {
            var index    = Random.Range(0, m_Asteroids.Count - 1);
            var asteroid = Serivces.Get <IPoolingService>().Instantiate <Asteroid>(m_Asteroids[index].gameObject);

            var asteroidGameObject = asteroid.gameObject;
            var spawnSpread        = Random.Range(-m_SpawnRang, m_SpawnRang);

            asteroidGameObject.transform.SetParent(transform);
            asteroidGameObject.transform.localPosition = new Vector3(spawnSpread, 0, 0);

            var v = GameServices.Get <CameraService>().MainCamera.transform.position - transform.position;

            asteroidGameObject.GetComponent <Rigidbody>().AddForce(v.normalized * 250f);
        }
Esempio n. 8
0
        public GameScoreManager(IGamePlayUIView gamePlayUIView)
        {
            m_GamePlayUI = gamePlayUIView;
            m_GamePlayUI.OnRestartRequest += Restart;
            //m_GamePlayUI.OnRestartRequest += PlayerSpawner.instance.SpawnPlayer;
            m_GamePlayUI.OnRestartRequest += GameServices.Get <PlayerManager>().SpawnPlayer;
            m_GamePlayUI.OnRestartRequest += GameServices.Get <EnemySpawnerManager>().SpawnEnemiesOnField;
            m_GamePlayUI.OnRestartRequest += AsteroidSpawner.instance.PopulatePlaneWithsteroids;



            Player.OnPlayerDied += ProcessGameOver;


            // Player.OnPlayerDied += EnemySpawner.instance.DestroyAllEnemies;
            ///  EnemySpawner.OnDisableEnemies += Restart;
            Restart();
            /////  PlayerSpawner.instance.SpawnPlayer();
        }
Esempio n. 9
0
        //public void PopulatePlaneBelowLevel()
        //{
        //    var yPosition = meshForGenerationgAsteroidsBelow.gameObject.transform.position.y;
        //    Bounds bounds = meshForGenerationgAsteroidsBelow.mesh.bounds;
        //    //     // size in pixels
        //    float boundsX = meshForGenerationgAsteroidsBelow.transform.localScale.x * bounds.size.x;
        //    float boundsZ = meshForGenerationgAsteroidsBelow.transform.localScale.z * bounds.size.z;

        //    float offcet = 8f;
        //    float offsetX = Random.Range(-offcet, offcet);
        //    float offsetZ = Random.Range(-offcet, offcet);


        //    for (int i = 0; i <= boundsX; i += generationStep )
        //    {
        //        for (int j = 0; j <= boundsZ; j += generationStep )
        //        {

        //            Vector3 position = new Vector3(-boundsX / 2 + i, yPosition, -boundsZ / 2 + j) + new Vector3(offsetX, offsetX * 20f, offsetZ);


        //            CreateAsteroid(position);
        //        }
        //    }
        //}



        public void SpawnAsteroidOnRandomPoint()
        {
            ///  if (asteroids.Count >= maxAsteroidsCapacity) return;
            int index = UnityEngine.Random.Range(0, spawnPoints.Count);
            ////  CreateEnemy(spawnPoints[index].position);

            var spawnPointCollider = spawnPoints[index].gameObject.GetComponent <Collider>();

            if (!GameServices.Get <CameraService>().IsVisibleToCamera(spawnPointCollider))
            {
                CreateAsteroid(spawnPoints[index].position);
                //return;
            }
            else if (GameServices.Get <CameraService>().IsVisibleToCamera(spawnPointCollider))
            {
                //SpawnAsteroidOnRandomPoint();
                //return;
            }
        }
Esempio n. 10
0
        public void SpawnEnemyOnRandomPoint()
        {
            int index = UnityEngine.Random.Range(0, spawnPoints.Count);
            ////  CreateEnemy(spawnPoints[index].position);

            var spawnPointCollider = spawnPoints[index].gameObject.GetComponent <Collider>();

            if (!GameServices.Get <CameraService>().IsVisibleToCamera(spawnPointCollider))
            {
                CreateEnemy(spawnPoints[index].position);
                return;
            }
            else if (GameServices.Get <CameraService>().IsVisibleToCamera(spawnPointCollider))
            {
                SpawnEnemyOnRandomPoint();
                return;
            }


            //throw new InvalidOperationException();
        }
Esempio n. 11
0
        void ProcessGameOver()
        {
            HandleGameScore();
            m_GamePlayUI.ShowGameOverScreen();
            m_GamePlayUI.OnGameOver(m_Score, highScore);

            GameServices.Get <EnemySpawnerManager>().DestroyAllEnemies();
            GameServices.Get <PlayerManager>().DestroyPlayer();
            ///   AsteroidSpawner.instance.DestroyAllAsteroids();
            /// GameServices.Get<HealthBarManager>().ClearAllHealthBars();
            // HealthBarController.instance.ClearAllHealthBars();
            //foreach (var item in GameObjectsPool.allPoolledObjects)
            //{

            //    if (item.isActiveAndEnabled) { item.Release(); }
            //}

            Time.timeScale = 0f;
            m_Score        = 0;
            //m_GamePlayUI.SetHighScore(m_Score);
            //m_GamePlayUI.SetCurrentScore(m_Score);
        }
Esempio n. 12
0
        private void ChaseTarget()
        {
            ///   if  (navAgent.enabled = false) navAgent.enabled = true;
            if (navAgent.isStopped)
            {
                navAgent.isStopped = false;
            }
            if (Time.time > pathRecalculateTimeStamp)
            {
                //Vector3 destination =  Player.instance.transform.position;
                Vector3 destination = GameServices.Get <PlayerManager>().PlayerPosition;
                //   navAgent.ResetPath();
                //navAgent.SetDestination(destination);
                navAgent.destination = destination;

                ///
                //    Debug.Log(" ChaseTarget destination " + destination.ToString() );

                ///Debug.Log("Warp " + navAgent.Warp(destination));
                pathRecalculateTimeStamp = Time.time + pathRecalculateRate;
                ///  Debug.Log("PathRecalculated");
            }
        }
Esempio n. 13
0
        void LateUpdate()
        {
            playerPosition = GameServices.Get <PlayerManager>().PlayerPosition;
            Vector3 worldPosition = (Vector3.forward * -distance) + (Vector3.up * height);

            Debug.DrawLine(playerPosition, worldPosition, Color.red);

            Vector3 rotationVector = Quaternion.AngleAxis(angle, Vector3.up) * worldPosition;

            Debug.DrawLine(playerPosition, rotationVector, Color.blue);

            Debug.DrawLine(playerPosition, worldPosition, Color.green);


            //Vector3 flatTargetPosition = player.GetComponent<Rigidbody>().position;
            //flatTargetPosition.y = 0;

            Vector3 finalPosition = playerPosition + rotationVector;

            Debug.DrawLine(playerPosition, finalPosition, Color.blue);

            transform.position = Vector3.SmoothDamp(transform.position, finalPosition, ref smoothVelociy, smoothingSpeed);
            transform.LookAt(playerPosition);
        }
Esempio n. 14
0
 public override void Release()
 {
     GameServices.Get <GameScoreManager>().Unregister(this);
     //health.OnHealthDepleted -= OnDestroyEnemy;
     health.OnHealthDepleted -= Explode;
 }
Esempio n. 15
0
 public override void Release()
 {
     GameServices.Get <CubeEnemy1Service>().Unregister(this);
 }
Esempio n. 16
0
 public override void Release()
 {
     GameServices.Get <AsteroidsService>().Unregister(this);
 }
Esempio n. 17
0
        public float maxIntensity = 3f;     // The maximum intensity the flash will reach
        void Start()
        {
            cam = GameServices.Get <CameraService>().MainCamera;

            //StartCoroutine(nameof(flashNow));
        }
Esempio n. 18
0
 void Start()
 {
     cam            = GameServices.Get <CameraService>().MainCamera;
     playerPosition = GameServices.Get <PlayerManager>().PlayerPosition;
 }
Esempio n. 19
0
        public override void Init(Action onRelease)
        {
            GameServices.Get <CubeEnemy1Service>().Register(this);

            OnDestroy += onRelease;
        }
Esempio n. 20
0
 public override void Init(Action onRelease)
 {
     GameServices.Get <AsteroidsService>().Register(this);
     Invoke(nameof(Explode), 30f);
     OnDestroy += onRelease;
 }
Esempio n. 21
0
 void SpawnEnemiesByOne()
 {
     GameServices.Get <EnemySpawnerManager>().SpawnEnemyOnRandomPoint();
 }
Esempio n. 22
0
 void SetTargetPosition()
 {
     target = GameServices.Get <PlayerManager>().PlayerPosition;
 }