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; }
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); }
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!"); } }
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); } }