private IEnumerator BattleAnimWithGuard(RadingKind type, float cur, int died) { for (int i = 0; i < 2; i++) { shell.Initialize(enemy.transform.parent.localPosition, friendly.transform.parent.localPosition, type); yield return(MyWaitForSeconds((type != 0) ? 1f : 0.5f)); iTween.ShakePosition(friendly.gameObject, iTween.Hash("amount", Vector3.one, "islocal", true, "time", 0.5f)); ((Component)partExplosion).transform.localPosition = friendly.transform.parent.localPosition; partExplosion.time = 0f; partExplosion.Play(true); SoundUtils.PlaySE(SEFIleInfos.BattleDamage); GameObject tmp = UnityEngine.Object.Instantiate(count.gameObject); tmp.transform.parent = count.transform.parent; tmp.transform.localScale = Vector3.one; tmp.transform.localPosition = count.transform.localPosition; iTween.MoveTo(tmp, iTween.Hash("position", tmp.transform.localPosition + 50f * Vector3.up, "islocal", true, "time", 0.4f, "easeType", iTween.EaseType.linear)); iTween.RotateTo(tmp, iTween.Hash("x", 90, "islocal", true, "time", 0.4f, "easeType", iTween.EaseType.linear)); UnityEngine.Object.Destroy(tmp, 0.4f); cur -= (float)died / 2f; count.text = "x " + Mathf.RoundToInt(cur); if (RadingData.RadingDamage.Any((RadingDamageData x) => x.Damage)) { bool isGekichin = RadingData.RadingDamage.Any((RadingDamageData x) => x.DamageState == DamagedStates.Gekichin); bool isYouin = RadingData.RadingDamage.Any((RadingDamageData x) => x.DamageState == DamagedStates.Youin); if (i == 1 && (isGekichin || isYouin)) { hukidashi.Play(TileAnimationHukidashi.Type.Goutin); yield return(new WaitForSeconds(2f)); if (isYouin) { hukidashi.Play(TileAnimationHukidashi.Type.Damecon); yield return(new WaitForSeconds(1f)); TrophyUtil.Unlock_At_Rading(); } } else { hukidashi.Play(TileAnimationHukidashi.Type.Damage); } } yield return(MyWaitForSeconds(1.2f)); partExplosion.Stop(true); partExplosion.Clear(true); SoundUtils.PlaySE(SEFIleInfos.BattleDamage); shell.Initialize(friendly.transform.parent.localPosition, enemy.transform.parent.localPosition, (RadingKind)0); yield return(MyWaitForSeconds(0.5f)); iTween.ShakePosition(enemy.gameObject, iTween.Hash("amount", Vector3.one, "islocal", true, "time", 0.5f)); ((Component)partExplosion).transform.localPosition = enemy.transform.parent.localPosition; partExplosion.time = 0f; partExplosion.Play(true); SoundUtils.PlaySE(SEFIleInfos.BattleDamage); yield return(MyWaitForSeconds(1.2f)); partExplosion.Stop(true); partExplosion.Clear(true); } }