IEnumerator AttackSequence() { state = PlayerState.Attacking; while (victims.Count > 0) { // dash to victim yield return(StartCoroutine(DashTime(victims[0].player_attack_position))); // dash complete if (victims[0].isHit) // you win // attack victim { PlayAttack(); BasicEnemy_Controller basic = (BasicEnemy_Controller)victims[0]; basic.PlayDie(); isAttackSequenceOnHold = true; // wait for animation to call "NextEventInAttackSequence_Please" while (isAttackSequenceOnHold) { yield return(null); } victims.RemoveAt(0); } else // you lose { Game_Controller.LoseScenario(victims[0]); break; } } // no more victims or you messed up if (!Game_Controller.isGameOver) { transform.localScale = new Vector3(-1, 1, 1); // dash back to running yield return(StartCoroutine(DashTime(runningPosition))); animator.SetTrigger("StopDash"); yield return(null); // next frame StartRunning(); state = PlayerState.Running; } }
public static void PlayAttack(BasicEnemy_Controller.AttackType stance) { switch(stance){ case BasicEnemy_Controller.AttackType.high: instance.animator.SetTrigger("AttackHigh"); break; case BasicEnemy_Controller.AttackType.mid: instance.animator.SetTrigger("AttackMid"); break; case BasicEnemy_Controller.AttackType.low: instance.animator.SetTrigger("AttackLow"); break; } }
/* * public bool DidUserKillEnemy(){ * * float angle = Vector2.Angle(userInputDir, killDir); * * if(angle <= killAngleDeathzone){ * animator.Play(State_die, 0, 0.0f); * GetComponent<SpriteRenderer>().sortingOrder = -1; * * Sounds_dying.PlaySound(); * Sounds_gore.PlaySound(); * * Destroy(gameObject, 1.0f); * return true; * }else{ * Game_Controller.LoseScenario(this); * return false; * } * } */ /// <summary> /// called by Game_Controller /// </summary> /// <param name="killer">Killer.</param> public static void LoseScenario(Enemy_Controller killer) { BasicEnemy_Controller basicGuy = null; foreach (Enemy_Controller wolf in controllers) { if (wolf.CompareTag("BasicEnemy")) { basicGuy = (BasicEnemy_Controller)wolf; basicGuy.LoseScenario_Called(killer); } else { //MiniBoss_Controller miniBoss = (MiniBoss_Controller) wolf; Player_Controller.PlayDeath(); } } }