Ejemplo n.º 1
0
    // Use this for initialization
    void Awake()
    {
        Player_FishLocker fishLocker = GetComponent <Player_FishLocker>();

        fishLocker.EvtTargetOnFish    += Handler_TargetOnFish;
        fishLocker.EvtTargetLeaveFish += Handler_TargetLeavefish;

        mSprCard = Instantiate(Prefab_Card) as tk2dSprite;
        mTsCard  = mSprCard.transform;
        mRdCard  = mSprCard.GetComponent <Renderer>();


        mTsCard.parent        = transform;
        mTsCard.localRotation = Quaternion.identity;

        mRdCard.enabled = false;

        mFishTypeIdToCard = new Dictionary <int, string>();
        foreach (FishRelateCard fc in FishAndCard)
        {
            mFishTypeIdToCard.Add(fc.Prefab.TypeIndex, fc.SprName);
        }
    }
    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);
        }
    }