Exemple #1
0
    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]));
        }
    }
Exemple #2
0
    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);
        }
    }