예제 #1
0
 private void _raisePlayerInitCompleteEvent(HookPos hookPos)
 {
     if (playerInitCompleteEvent != null)
     {
         playerInitCompleteEvent(hookPos);
     }
 }
예제 #2
0
        void OnLotteryChange(HookPos hookPos, int nLottery, LotteryChange change)
        {
            switch (hookPos)
            {
            case HookPos.left:
                if (change != null)
                {
                    Vector2 uiPos = UIManager.Instance.WorldPos2UI(change.stratPos);
                    _lUIlottery.RealShow(uiPos, _txtLeftLottery.transform.position, change.nDelta, () => {
                        _txtLeftLottery.text = nLottery.ToString();
                    });
                }
                else
                {
                    _txtLeftLottery.text = nLottery.ToString();
                }
                break;

            case HookPos.right:
                if (change != null)
                {
                    Vector2 uiPos = UIManager.Instance.WorldPos2UI(change.stratPos);
                    _RUIlottery.RealShow(uiPos, _txtRightLottery.transform.position, change.nDelta, () => {
                        _txtRightLottery.text = nLottery.ToString();
                    });
                }
                else
                {
                    _txtRightLottery.text = nLottery.ToString();
                }
                break;
            }
        }
예제 #3
0
 public void raiseDrawingLotteryEvent(HookPos hookPos, Action <Vector3> callBack)
 {
     if (drawingLotteryEvent != null)
     {
         drawingLotteryEvent(hookPos, 4f, callBack);
     }
 }
예제 #4
0
 private void _raisePlayerChangeEvent(HookPos hookPos, bool bFlag)
 {
     if (playerChangeEvent != null)
     {
         playerChangeEvent(hookPos, bFlag);
     }
 }
예제 #5
0
 public void raiseLotteryChangeEvent(HookPos hookPos, int nLottery, LotteryChange change = null)
 {
     if (lotteryChangeEvent != null)
     {
         lotteryChangeEvent(hookPos, nLottery, change);
     }
 }
예제 #6
0
 private void _raiseScoreChangeEvent(HookPos hookPos, int nScore)
 {
     if (scoreChangeEvent != null)
     {
         scoreChangeEvent(hookPos, nScore);
     }
 }
예제 #7
0
        public virtual void Init(HookPos hookPos)
        {
            _level     = Game.Instance.level;
            _transHook = transform.FindChild("Hook");
            int i;

            _allHooks = new SingleHook[5];
            for (i = 0; i < 5; i++)
            {
                _allHooks[i] = new SingleHook(_transHook.GetChild(i), _transHook.GetChild(i).Find("Hook_Bottom_end"));
            }
            _lineInit();
            _fW = 2 * Mathf.PI / fSwingCycle / 1000;
            _fP = 0;
            _fBottomBoundaryY         = -FishingCamera.Instance.HEIGHT / 200f;
            _fRightBoundaryX          = FishingCamera.Instance.WIDTH / 200f;
            _fLeftBoundaryX           = -_fRightBoundaryX;
            _fOriginalDistance        = Vector3.Distance(transform.position, _transHook.position);
            _vec3OriginalHookLocalPos = _transHook.localPosition;

            HookFsm = new FSM <BaseHook>(this);

            //hook position("left" or "right"?)
            this.hookPos = hookPos;
        }
예제 #8
0
        void OnPlayerChange(HookPos hookPos, bool bFlag)
        {
            switch (hookPos)
            {
            case HookPos.left:
                _transLeftPlayer.SetActive(bFlag);
                break;

            case HookPos.right:
                _transRightPlayer.SetActive(bFlag);
                break;
            }
        }
예제 #9
0
        void OnScoreChange(HookPos hookPos, int nScore)
        {
            switch (hookPos)
            {
            case HookPos.left:
                _txtLeftScore.text = nScore.ToString();
                break;

            case HookPos.right:
                _txtRightScore.text = nScore.ToString();
                break;
            }
        }
예제 #10
0
        void OnPlayerInitComplete(HookPos hookPos)
        {
            _rectTransPosTip.SetActive(true);
            switch (hookPos)
            {
            case HookPos.left:
                _rectTransPosTip.anchoredPosition = _leftAnchoredPos;
                break;

            case HookPos.right:
                _rectTransPosTip.anchoredPosition = _rightAnchoredPos;
                break;
            }
            _rectTransLaunchTip.SetActive(true);
        }
예제 #11
0
        void OnDrawingLottery(HookPos hookPos, float fPeriod, Action <Vector3> callBack)
        {
            _rectTransDrawingLottery.SetActive(true);
            switch (hookPos)
            {
            case HookPos.left:
                _rectTransDrawingLottery.anchoredPosition = _leftAnchoredPos;
                break;

            case HookPos.right:
                _rectTransDrawingLottery.anchoredPosition = _rightAnchoredPos;
                break;
            }
            StartCoroutine(_apostropheChange());
            StartCoroutine(_countApostropheChangeTime(fPeriod, callBack));
        }
예제 #12
0
        //1. get hook gameObject
        //2. add component
        //3. activate
        //4. Init
        //5. OnEnter
        //6. Add it into Map
        public void NewEnter(Message msg)
        {
            MessageSycHook allhookInfo = JsonReader.Deserialize <MessageSycHook>(msg.rawString);
            int            iCount      = allhookInfo.playerList.Count;

            if (iCount == 1)
            {
                HookInfo info = allhookInfo.playerList[0];
                this.PassTime = info.enterTime;
                HookPos        hookPos  = (HookPos)Enum.Parse(typeof(HookPos), info.chairId);
                AllStuffNeeded allStuff = SceneMgr.Instance.hookPosAllStuffMap[hookPos];
                hook = allStuff.gmObjRealPoleEnd.AddComponent <Hook>();

                allStuff.gmObjBoat.SetActive(true);
                FloatEffect floatEffect = allStuff.gmObjBoat.AddComponent <FloatEffect>();
                floatEffect.Init();
                floatEffect.StartEffect();

                hook.gameObject.SetActive(true);
                hook.Init(hookPos);
                hook.OnEnter(info.enterTime, _player, allStuff);
                uIDHookMap.Add(info.uid, hook);

                _raisePlayerInitCompleteEvent(hook.hookPos);
                _raisePlayerChangeEvent(hook.hookPos, true);
                _raiseScoreChangeEvent(hook.hookPos, _player.Score);
                raiseLotteryChangeEvent(hook.hookPos, _player.Lottery);
                raiseHookPowerEvent(1);
            }
            else if (iCount == 2)
            {
                this.PassTime = Mathf.Max(allhookInfo.playerList[0].enterTime, allhookInfo.playerList[1].enterTime);
                for (int i = 0; i < iCount; i++)
                {
                    HookInfo info = allhookInfo.playerList[i];
                    if (info.uid == Game.Instance.player.UID)
                    {
                        if (hook == null)
                        {
                            this.PassTime = info.enterTime;
                            HookPos        hookPos  = (HookPos)Enum.Parse(typeof(HookPos), info.chairId);
                            AllStuffNeeded allStuff = SceneMgr.Instance.hookPosAllStuffMap[hookPos];
                            hook = allStuff.gmObjRealPoleEnd.AddComponent <Hook>();

                            allStuff.gmObjBoat.SetActive(true);
                            FloatEffect floatEffect = allStuff.gmObjBoat.AddComponent <FloatEffect>();
                            floatEffect.Init();
                            floatEffect.StartEffect();

                            hook.gameObject.SetActive(true);
                            hook.Init(hookPos);
                            hook.OnEnter(info.enterTime, _player, allStuff);
                            uIDHookMap.Add(info.uid, hook);

                            _raisePlayerInitCompleteEvent(hook.hookPos);
                            _raisePlayerChangeEvent(hook.hookPos, true);
                            _raiseScoreChangeEvent(hook.hookPos, _player.Score);
                            raiseLotteryChangeEvent(hook.hookPos, _player.Lottery);
                            raiseHookPowerEvent(1);
                        }
                    }
                    else if (info.uid != Game.Instance.player.UID)
                    {
                        HookPos        hookPos  = (HookPos)Enum.Parse(typeof(HookPos), info.chairId);
                        AllStuffNeeded allStuff = SceneMgr.Instance.hookPosAllStuffMap[hookPos];
                        if (oHook == null)
                        {
                            oHook = allStuff.gmObjRealPoleEnd.AddComponent <OHook>();
                            //Assume that player can't change position in level
                            oHook.Init(hookPos);

                            FloatEffect floatEffect = allStuff.gmObjBoat.AddComponent <FloatEffect>();
                            floatEffect.Init();
                            floatEffect.StartEffect();
                        }
                        allStuff.gmObjBoat.SetActive(true);
                        oHook.gameObject.SetActive(true);
                        uIDHookMap.Add(info.uid, oHook);

                        //Init oPlayer(no definition, just intialize it)
                        _oPlayer.UID     = info.uid;
                        _oPlayer.Score   = info.score;
                        _oPlayer.Lottery = info.lottery;
                        uIDPlayerMap.Add(info.uid, _oPlayer);

                        oHook.OnEnter(info.enterTime, _oPlayer, allStuff);


                        oHook.ChangeHooks(info.hook);
                        _raisePlayerChangeEvent(oHook.hookPos, true);
                        _raiseScoreChangeEvent(oHook.hookPos, _oPlayer.Score);
                        raiseLotteryChangeEvent(oHook.hookPos, _oPlayer.Lottery);
                    }
                }
            }
            else
            {
                DebugLogger.LogWarning(eLogType.LT_LOGIC, iCount + " hooks, out of bound!");
            }
        }