public void pushAround(int direction, EnemieBehaviour enemieBehaviour2){ for (int i = 0; i < enemieBehaviourGameObject.transform.childCount; i++) { enemieBehaviour = enemieBehaviourGameObject.transform.GetChild (i).GetComponent<EnemieBehaviour> (); //enemy does not receive the same punch it if (enemieBehaviour != enemieBehaviour2 && !enemieBehaviour.die) { if (direction != 4) if (m_x == enemieBehaviour.m_x + 1 && m_y == enemieBehaviour.m_y) { StartCoroutine (PlayOne ("punch", anim)); enemieBehaviour.isPunch (); } if (direction != 2) if (m_x == enemieBehaviour.m_x - 1 && m_y == enemieBehaviour.m_y) { StartCoroutine (PlayOne ("punch", anim)); enemieBehaviour.isPunch (); } if (direction != 3) if (m_x == enemieBehaviour.m_x && m_y == enemieBehaviour.m_y + 1) { StartCoroutine (PlayOne ("punch", anim)); enemieBehaviour.isPunch (); } if (direction != 1) if (m_x == enemieBehaviour.m_x && m_y == enemieBehaviour.m_y - 1) { StartCoroutine (PlayOne ("punch", anim)); enemieBehaviour.isPunch (); } } } }
private void updadeIAEnemie(int ia, int direction){ // set walking to all enemies in the scene; if(ia==1) for (int i = 0; i < enemieBehaviourGameObject.transform.childCount; i++) { enemieBehaviour = enemieBehaviourGameObject.transform.GetChild(i).GetComponent<EnemieBehaviour>(); enemieBehaviour.m_enemie_walking = true; enemieBehaviour.many_moving_count=0; enemieBehaviour.putTrap = true; } //slash enemie if (ia == 2) for (int i = 0; i < enemieBehaviourGameObject.transform.childCount; i++) { enemieBehaviour = enemieBehaviourGameObject.transform.GetChild (i).GetComponent<EnemieBehaviour> (); if (!enemieBehaviour.die) if (m_x == enemieBehaviour.m_x && m_y == enemieBehaviour.m_y &&!enemieBehaviour.slash) { AudioSource.PlayClipAtPoint(playAttack(), transform.position); enemieBehaviour.isSlash(); break; } } //punch enemie if (ia == 3) { if(!inTrap){ for (int i = 0; i < enemieBehaviourGameObject.transform.childCount; i++) { enemieBehaviour = enemieBehaviourGameObject.transform.GetChild (i).GetComponent<EnemieBehaviour> (); if (!enemieBehaviour.die) //enemy not get punch if he is in punch if (!enemieBehaviour.punch) { if (direction == 0 || direction == 4) if (m_x == enemieBehaviour.m_x + 1 && m_y == enemieBehaviour.m_y) { enemieBehaviour.isPunch (); effects.GetComponent<Animator> ().SetBool ("impact_effect", true); StartCoroutine (WaitAnimMethod (0.3f, "impact_effect", effects.GetComponent<Animator> ())); StartCoroutine (PlayOne ("punch", anim)); updadeEnemie=true; if (direction != 0) pushAround (direction, enemieBehaviour); } if (direction == 0 || direction == 2) if (m_x == enemieBehaviour.m_x - 1 && m_y == enemieBehaviour.m_y) { StartCoroutine (PlayOne ("punch", anim)); enemieBehaviour.isPunch (); effects.GetComponent<Animator> ().SetBool ("impact_effect", true); StartCoroutine (WaitAnimMethod (0.3f, "impact_effect", effects.GetComponent<Animator> ())); updadeEnemie=true; if (direction != 0) pushAround (direction, enemieBehaviour); } if (direction == 0 || direction == 3) if (m_x == enemieBehaviour.m_x && m_y == enemieBehaviour.m_y + 1) { StartCoroutine (PlayOne ("punch", anim)); enemieBehaviour.isPunch (); effects.GetComponent<Animator> ().SetBool ("impact_effect", true); StartCoroutine (WaitAnimMethod (0.3f, "impact_effect", effects.GetComponent<Animator> ())); updadeEnemie=true; if (direction != 0) pushAround (direction, enemieBehaviour); } if (direction == 0 || direction == 1) if (m_x == enemieBehaviour.m_x && m_y == enemieBehaviour.m_y - 1) { StartCoroutine (PlayOne ("punch", anim)); enemieBehaviour.isPunch (); effects.GetComponent<Animator> ().SetBool ("impact_effect", true); StartCoroutine (WaitAnimMethod (0.3f, "impact_effect", effects.GetComponent<Animator> ())); updadeEnemie=true; if (direction != 0) pushAround (direction, enemieBehaviour); } } } }else{ updadeEnemie=true; updadeIAEnemie(1,0); } } }