Exemplo n.º 1
0
        public EnemyColliderModel(EnemyView view1, EnemyTriggerManager manager)
        {
            view     = view1;
            name     = view.gameObject.name;
            collider = view.GetComponent <BoxCollider2D> ();

            _state   = CharacterStates.CREATE;
            _manager = manager;

            isPlayerTrigger  = false;
            triggerKeyBefore = null;
            triggerKeyAfter  = null;
        }
Exemplo n.º 2
0
        private bool isFirstBefore(EnemyView enemyView1, EnemyView enemyView2)
        {
            bool       scaleTurn     = enemyView1.gameObject.transform.localScale.x > 0;
            GameObject beforeEnemyGO = enemyView2.gameObject;

            if (scaleTurn && enemyView1.gameObject.transform.position.x < enemyView2.gameObject.transform.position.x ||
                !scaleTurn && enemyView1.gameObject.transform.position.x > enemyView2.gameObject.transform.position.x)
            {
                return(true);
            }

            return(false);
        }
Exemplo n.º 3
0
        public void addEnemyView(EnemyView enemyView, IRoutineRunner routineRunner)
        {
            EnemyColliderModel colliderModel = new EnemyColliderModel(enemyView, this);

            if (colliderModel != null && !_list.ContainsKey(colliderModel.name))
            {
                colliderModel.routineRunner = routineRunner;
                colliderModel.setState(CharacterStates.MOVE);
                _list.Add(colliderModel.name, colliderModel);
            }
            else
            {
                Debug.LogWarning("EnemyManager.addEnemyView. An element with the same key = " + colliderModel.name + " already exists in the dictionary!");
            }
        }
Exemplo n.º 4
0
        private void hitEnemy()
        {
            Vector2 explosionPos = view.explosionPos;

            if (_enemyList != null)
            {
                foreach (GameObject enemyGO in _enemyList)
                {
                    EnemyView enemyView = enemyGO.GetComponent <EnemyView> ();
                    if (enemyView != null)
                    {
                        explosionPos = new Vector2(enemyView.boxCollider.bounds.center.x, explosionPos.y);
                        updateHudItemSignal.Dispatch(UpdateHudItemType.COOLDOWN, _cooldown);
                        enemyView.hitEnemySignal.Dispatch(_damage);
                    }
                }
            }

            if (gameModel.playerModel.assetVO.hasExplosion)
            {
                addExplosionSignal.Dispatch(explosionPos);
            }
        }