IEnumerator _Coro_AllPlayerLock(Fish f)
    {
        mIsLocking = true;
        yield return(new WaitForSeconds(0.1F));

        //Debug.Log("_Coro_AllPlayerLock0");
        while (true)
        {
            if (f == null || !f.Attackable)
            {
                mIsLocking = false;
                yield break;
            }

            switch (f.HittableTypeS)
            {
            case "Normal":
            {
                if (f.Odds < OddsMin)
                {
                    mIsLocking = false;
                    yield break;
                }
            }
            break;

            case "SameTypeBomb":
            {
                if (!IsTargetSameTypeBomb)
                {
                    mIsLocking = false;
                    yield break;
                }
            }
            break;

            case "FreezeBomb":
            {
                mIsLocking = false;
                yield break;
            }
                //break;
            }



            if (GameMain.Singleton.WorldDimension.Contains(f.transform.position))
            {
                break;
            }
            yield return(0);
        }
        //Debug.Log("_Coro_AllPlayerLock1");
        foreach (Player p in GameMain.Singleton.Players)
        {
            Player_FishLocker fl = p.GetComponent <Player_FishLocker>();
            fl.Lock(f);

            //p.GunInst.LockAt(f);
            ModuleGunLocker.LockAt(p, f);

            p.GunInst.StopFire();
            p.GunInst.StartFire();
        }

        while (true)
        {
            if (f == null ||
                !f.Attackable ||
                !GameMain.Singleton.WorldDimension.Contains(f.transform.position))
            {
                foreach (Player p in GameMain.Singleton.Players)
                {
                    Player_FishLocker fl = p.GetComponent <Player_FishLocker>();
                    fl.UnLock();
                    //p.GunInst.UnLock();
                    ModuleGunLocker.UnLock(p);
                    p.GunInst.StopFire();
                }
                mIsLocking = false;
                yield break;
            }
            yield return(0);
        }
    }