protected void Tick_LeaveSceneCoin(int deltaTimeMs)
        {
            var  sceneStates        = playerData.playerZoo.scenePlayerDataMSS.sceneStates;
            var  msg                = BroadcastLeaveSceneCoin.PreSend();
            var  leaveSceneCoinData = GlobalDataManager.GetInstance().leaveSceneCoinData;
            bool isAddedCoin        = false;

            for (int i = 0; i < sceneStates.Count; i++)
            {
                var sceneState = sceneStates[i];
                if ((sceneState.enterCount > 0 || sceneState.sceneId == GameConst.First_SceneID) &&
                    sceneState.sceneId != playerData.playerZoo.currSceneID)
                {
                    var perMinCoin = PlayerDataModule.LeaveScenePerMinCoin(sceneState.sceneId, true);
                    perMinCoin = perMinCoin * deltaTimeMs / 60000;
                    if (perMinCoin > 0)
                    {
                        isAddedCoin = true;
                        playerData.playerZoo.playerCoin.AddCoinByScene(sceneState.sceneId, perMinCoin);
                        msg.AddSceneCoin(sceneState.sceneId, perMinCoin);
                        leaveSceneCoinData.AddCoin(sceneState.sceneId, perMinCoin);
                    }
                }
            }

            if (isAddedCoin)
            {
                //发送离开金币收入消息
                BroadcastLeaveSceneCoin.Send();

                //广播金币收入变化
                MessageManager.GetInstance().Send((int)GameMessageDefine.BroadcastCoinOfPlayerDataMSSC);
            }
        }
예제 #2
0
    private void OnLeaveSceneCoinChanged(Message message)
    {
        BroadcastLeaveSceneCoin msg = message as BroadcastLeaveSceneCoin;
        MapPiece piece;
        int      ownedGroup = -1;

        foreach (var kv in msg.sceneCoinDict)
        {
            piece = GetMapPiece(kv.Key, out ownedGroup);
            //GameObject effGo = GameObject.Instantiate(coinEffectTmpl.gameObject);
            var cellScene = Config.sceneConfig.getInstace().getCell(kv.Key);
            var cellMoney = Config.moneyConfig.getInstace().getCell(cellScene.moneyid);
            //transform.Find(cellMoney.mapmoneyeffect);
            GameObject effGo = GameObject.Instantiate(transform.Find(cellMoney.mapmoneyeffect).gameObject);
            effGo.gameObject.SetActive(true);
            effGo.transform.SetParent(transform);
            effGo.transform.localScale = Vector3.one;
            effGo.transform.position   = piece.tipsBubbleAnchor.position;
            var p = effGo.GetComponentInChildren <ParticleSystem>();
            p.time = 0;
            p.Play(true);
            Text quantityText = effGo.transform.Find("UIFlutterText/Text").GetComponent <Text>();
            quantityText.text = MinerBigInt.ToDisplay(msg.sceneCoinDict[kv.Key]);
            Animator txtAnimator = quantityText.GetComponent <Animator>();
            txtAnimator.enabled = true;
            txtAnimator.Play("UINumber", 0, 0);

            GameManager.GetInstance().StartCoroutine(WaitDestroyObject(1, effGo));
        }

        //UpdatePieceCoinDisplay();
    }