Пример #1
0
 public void MultiLock()
 {
     foreach (var enemy in enemybotProp)
     {
         EnemyProp enemyVal = enemy.Value;
         if (enemyVal.gameObject != null)
         {
             Vector3 screenPos = Util.CoordFromCam(enemyVal.gameObject.transform.position);
             Vector2 ScrPosCon = Util.ScreenConvert(screenPos);
             float   rank      = Mathf.Abs(ScrPosCon.x) + Mathf.Abs(ScrPosCon.y);
             if (screenPos.z >= 0 && (ScrPosCon.x >= -dScrn && ScrPosCon.x <= dScrn && ScrPosCon.y >= -dScrn && ScrPosCon.y < dScrn))
             {
                 if (Input.GetKey("r"))
                 {
                     if (!enemyVal.lockState)
                     {
                         enemyVal.lockOnTime = lockSetting;
                         lockedEnemyList.Add(enemyVal);
                     }
                     enemyVal.lockState = true;
                 }
             }
         }
     }
 }
Пример #2
0
 public void RankUpdate(int type, EnemyProp enemy, Vector3 pos, Vector3 velocity)
 {
     if (type == 0)
     {
         enemy.lockRank = Vector3.Distance(pos, enemy.posNow);
     }
 }
Пример #3
0
    public void RadarUnique(AutoPilot ap, Vector3 botPos, EnemyProp point)
    {
        Vector2 RelPos2D = (point.GetRadar2dLocation(botPos) * radarScale) + radarOffset;
        float   dir2d    = point.GetRadar2dAngle();

        Util.PolyMaker2D(ap, Color.yellow, 8 + radarScale * 5, 3, dir2d, RelPos2D);
        Util.PolyMaker2D(ap, Color.black, 6 + radarScale * 5, 3, dir2d, RelPos2D);
        // Util.PolyMaker2D(ap,Color.white,30,3,-90*Time.time/1.15f,RelPos2D/10);
    }
Пример #4
0
 public void LockSet(EnemyProp targetProp)
 {
     foreach (var enemy in topEnemyList)
     {
         if (enemy.gameObject != null && targetProp.gameObject != null)
         {
             if (enemy.gameObject.name.Contains(targetProp.gameObject.name))
             {
                 int index = topEnemyList.FindIndex(a => a.gameObject.name == targetProp.gameObject.name) + 1;
                 ap.SetAimPosition(index, targetProp.estPos);
             }
         }
     }
 }
Пример #5
0
 public void ResetLock()
 {
     foreach (var enemy in enemybotProp)
     {
         EnemyProp enemyVal = enemy.Value;
         if (enemyVal.gameObject != null)
         {
             enemyVal.lockState = false;
         }
     }
     lockedEnemyList = new List <EnemyProp>();
     ap.SetAimPosition(1, new Vector3(0, 0, 0));
     ap.SetAimPosition(2, new Vector3(0, 0, 0));
     ap.SetAimPosition(3, new Vector3(0, 0, 0));
     ap.SetAimPosition(4, new Vector3(0, 0, 0));
     ap.SetAimPosition(5, new Vector3(0, 0, 0));
     ap.SetAimPosition(6, new Vector3(0, 0, 0));
 }
Пример #6
0
    public void LockOnHUD(Vector3 origin, EnemyProp targetProp)
    {
        Vector3 target    = targetProp.posNow;
        Vector3 screenPos = Util.CoordFromCam(target);
        Vector2 ScrPosCon = Util.ScreenConvert(screenPos);

        Vector3 estPos     = targetProp.estPos;
        Vector3 screenPos2 = Util.CoordFromCam(estPos);
        Vector2 ScrPosCon2 = Util.ScreenConvert(screenPos2);

        // ap.Print(8, "Lock : " + targetProp.lockOnTime );
        if (screenPos.x <= 0 || screenPos.y <= 0 || screenPos.x >= Screen.width || screenPos.y >= Screen.height)
        {
            ap.DrawLine3D(Color.red, Vector3.MoveTowards(origin, target, 5f), Vector3.MoveTowards(origin, target, 15f));
        }
        if (screenPos.z >= 0)
        {
            for (int i = 0; i < topEnemyList.Count; i++)
            {
                if (topEnemyList[i].gameObject == targetProp.gameObject)
                {
                    int index = topEnemyList.FindIndex(a => a.gameObject == targetProp.gameObject) + 1;
                    Util.PolyMaker2D(ap, Util.GroupColor(index), 9 + targetProp.lockOnTime * 10, 4, 45 + 180 * targetProp.lockOnTime, ScrPosCon);
                    Util.PolyMaker2D(ap, Color.black, 5 + targetProp.lockOnTime * 10, 4, 45 + 180 * targetProp.lockOnTime, ScrPosCon);
                    if (screenPos2.z >= 0)
                    {
                        Util.PolyMaker2D(ap, Util.GroupColor(index), 9 + targetProp.lockOnTime * 10, 3, 0 + 180 * targetProp.lockOnTime, ScrPosCon2);
                    }

                    ap.DrawLine3D(Util.GroupColor(index), target, estPos);
                }
            }

            Util.PolyMaker2D(ap, Color.black, 5 + targetProp.lockOnTime * 10, 4, 45 + 180 * targetProp.lockOnTime, ScrPosCon);
        }
        else
        {
            ap.DrawLine3D(Color.red, Vector3.MoveTowards(origin, target, 5f), Vector3.MoveTowards(origin, target, 15f));
        }
    }
Пример #7
0
    public EnemyProp LockOn(Dictionary <string, EnemyProp> enemyList, EnemyProp enemyLocked)
    {
        EnemyProp lockedOn = enemyLocked;

        foreach (var enemy in enemyList)
        {
            EnemyProp enemyVal = enemy.Value;
            if (enemyVal.gameObject != null)
            {
                Vector3 screenPos = Util.CoordFromCam(enemyVal.gameObject.transform.position);
                Vector2 ScrPosCon = Util.ScreenConvert(screenPos);
                // ap.DrawLine2D(Color.white,new Vector2(screenPos.x,screenPos.x),new Vector2(ScrPosCon.x,ScrPosCon.y));
                float rank = Mathf.Abs(ScrPosCon.x) + Mathf.Abs(ScrPosCon.y);
                // ap.Print(0, "name : " + ScrPosCon );
                if (screenPos.z >= 0 && (ScrPosCon.x >= -dScrn && ScrPosCon.x <= dScrn && ScrPosCon.y >= -dScrn && ScrPosCon.y < dScrn))
                {
                    if (Input.GetKey("r"))
                    {
                        if (lockedOn == null)
                        {
                            lockedOn            = enemyVal;
                            lockedOn.lockOnTime = lockSetting;
                        }
                        else
                        {
                            Vector3 rankPos     = Util.CoordFromCam(lockedOn.gameObject.transform.position);
                            Vector2 rankPosCon2 = Util.ScreenConvert(rankPos);
                            float   rank2       = Mathf.Abs(rankPosCon2.x) + Mathf.Abs(rankPosCon2.y);
                            if (lockedOn != enemy.Value && rank < rank2)
                            {
                                lockedOn            = enemyVal;
                                lockedOn.lockOnTime = lockSetting;
                            }
                        }
                    }
                }
            }
        }
        return(lockedOn);
    }
Пример #8
0
    public void LockOnSystem(AutoPilot ap)
    {
        RadarLocked = true;
        Util.PolyMaker2D(Color.white, dScrn + 3, 4, 45, new Vector2(0, 0));
        foreach (var enemy in enemyBot)
        {
            if (enemy.Value.gameObject != null)
            {
                Vector3 screenPos = Util.CoordFromCam(enemy.Value.gameObject.transform.position);
                Vector2 ScrPosCon = Util.ScreenConvert(screenPos);
                if (screenPos.z >= 0 && !enemy.Value.lockState)
                {
                    Util.PolyMaker2D(Color.blue, 4, 4, 90 * Time.time / 1.15f, ScrPosCon);
                }

                if (enemy.Value.lockState)
                {
                    Scan.LockOnHUD(botPos, enemy.Value);
                    if (Menu.GetValueBool("lockOnStat"))
                    {
                        Scan.LockSet(enemy.Value);
                    }
                }
            }
        }

        if (Menu.GetValueBool("lockOnStat"))
        {
            Scan.LockSet(0);
        }

        foreach (var enemy in plasmaPoint)
        {
            if (enemy.Value.gameObject != null)
            {
                Vector3 screenPos = Util.CoordFromCam(enemy.Value.gameObject.transform.position);
                Vector2 ScrPosCon = Util.ScreenConvert(screenPos);
                if (screenPos.z >= 0)
                {
                    Util.PolyMaker2D(Color.red, 4, 4, 90 * Time.time / 1.15f, ScrPosCon);
                }
            }
        }
        if (lockedEnemy != null)
        {
            if (lockedEnemy.gameObject == null)
            {
                lockedEnemy = nullEnemy;
            }
        }
        lockedEnemy = Scan.LockOn(enemyBot, lockedEnemy);
        Lock.input();
        if (lockedEnemy != null)
        {
            Rad.RadarUnique(ap, botPos, lockedEnemy);
            Lock.LockOn(botPos, botVel, lockedEnemy.gameObject);
            Scan.LockOnHUD(botPos, lockedEnemy);
        }
        if (Key.PressedDown("Reset LockOn", 1))
        {
            Scan.ResetLock();
        }
        Lock.LockOnUpdate(Menu.GetValueBool("lockOnStat"));
    }