IEnumerator Skill(float time) { yield return(new WaitForSeconds(time)); int unitcount = 1 + UnitMng.Data.GetQueenCount(); int count = MyUnitInfoMng.Data._Queen_SkillCount[UpgradeMng.Data._Skill_Level_Soldier_Hero_Queen - 1]; if (count <= unitcount) { unitcount = count; } Debug.Log(unitcount); Debug.Log(count); List <Unit> list = new List <Unit>(); for (int i = 0; i < _EnemyList.Count && list.Count < unitcount; i++) { if (Mathf.Abs(GetUnitPos().x - _EnemyList[i].GetUnitPos().x) <= _SkillRange && _EnemyList[i].GetStillAlive()) { list.Add(_EnemyList[i]); } } for (int i = 0; i < list.Count; i++) { MySoldier_Hero_Queen_Magic arrow = ObjectPoolingMng.Data._MySoldier_Hero_Queen_MagicsList[ObjectPoolingMng.Data.UseMySoldier_Hero_Queen_Magic()]; Vector2 dis = list[i].GetUnitHitPos() - GetShootPos(); arrow.Shoot(GetShootPos(), dis.x, dis.y, (Mathf.Abs(dis.x) / _AttackRange) * _EnergeFlyingTime); StartCoroutine(Attack_Delay(_EnergeFlyingTime, list[i])); } }
IEnumerator ShootMagic(float time) { yield return(new WaitForSeconds(time)); if (_SetTarget && GetStillAlive()) { MySoldier_Hero_Queen_Magic arrow = ObjectPoolingMng.Data._MySoldier_Hero_Queen_MagicsList[ObjectPoolingMng.Data.UseMySoldier_Hero_Queen_Magic()]; Vector2 dis = _TargetUnit.GetUnitHitPos() - GetShootPos(); arrow.Shoot(GetShootPos(), dis.x, dis.y, (Mathf.Abs(dis.x) / _AttackRange) * _EnergeFlyingTime); } }