Exemplo n.º 1
0
        //鱼被捕获调用接口,弹出金币
        public void FishCatched(Fish fish, CatchedData cd)
        {
            if (fish.IsBossFish())
            {
                //GlobalAudioMgr.Instance.PlayOrdianryMusic(Audio.OrdianryMusic.catch_bossfish);
            }
            m_GoldEffect.ShowGoldEffect(cd, fish);
            //KonnoTool.ShowBossCatched(SceneRuntime.WorldToNGUI(fish.Position), cd.GoldNum);

            if (fish.IsBossFish())
            {
                //BossFish彩蛋特效
                m_GoldEffect.ShowBossFishSpecailEft(cd, fish);
            }
            //卡片掉落
            ushort nReward = fish.GetDropReward();

            if (nReward != 0)
            {
                tagRewardOnce pReward;
                if (!FishConfig.Instance.m_RewardConfig.RewardMap.TryGetValue(nReward, out pReward))
                {
                    return;
                }
                for (int i = 0; i < pReward.RewardItemVec.Count; i++)
                {
                    tagItemConfig itemConfig;
                    uint          uItemid = pReward.RewardItemVec[i].ItemID;
                    if (!FishConfig.Instance.m_ItemInfo.m_ItemMap.TryGetValue(uItemid, out itemConfig))
                    {
                        continue;
                    }
                    if (itemConfig.ItemTypeID == EItemType.IT_Currey) //钻石特殊处理
                    {
                        m_GoldEffect.ShowDiamond(cd, fish);
                    }
                    else //其他卡片
                    {
                        if (SceneRuntime.SceneModel.PlayerMgr.GetPlayer(cd.ClientSeat) == null)
                        {
                            continue;
                        }
                        Vector2 vecPos = SceneRuntime.SceneModel.PlayerMgr.GetPlayer(cd.ClientSeat).Launcher.LauncherPos;

                        /*SceneRuntime.SceneModel.LogicUI.MoveDropCard(SceneRuntime.WorldToNGUI(fish.Position),
                         *  new Vector3(vecPos.x, vecPos.y, 0), (ushort) uItemid);*/
                    }
                }
            }
        }
Exemplo n.º 2
0
        public void ShowDiamond(CatchedData cd, Fish fish)
        {
            GoldEffectData ged = new GoldEffectData();

            ged.GameObj = Initobj(m_DiamondObj);


            ged.GameObj.transform.position = UIManager.Instance.WordToScenePoint(fish.Position) + (new Vector3(Utility.RandFloat(), Utility.RandFloat(), 0) * 0.45f);

            /*ged.m_Tween.m_Pos = ged.GameObj.transform.GetComponent<TweenPosition>();
             * ged.m_Tween.m_Sclae = ged.GameObj.transform.GetComponent<TweenScale>();*/
            ged.m_Tween.m_Pos   = ged.GameObj.transform.GetComponents <DOTweenAnimation>()[0];
            ged.m_Tween.m_Sclae = ged.GameObj.transform.GetComponents <DOTweenAnimation>()[1];
            ged.ScaleGoldTR(1.0f, 0.6f);
            ged.m_DelayTime = 2;
            ged.GoldNum     = 1;
            ged.PlayTween(true);
            ged.m_Tween.m_Pos.enabled = false;
            ged.ScaleGoldTR(1.0f, fish.IsBossFish() ? 1.0f : 0.6f);

            Vector3 vecGoldEndpos = Vector3.one;

            vecGoldEndpos = SceneRuntime.GetLauncherGoldIconPos(cd.ClientSeat);
            DOTween.To(() => ged.GameObj.transform.position, x => ged.GameObj.transform.position = x, vecGoldEndpos, 2);
            ged.m_vecpathend = SceneRuntime.GetLauncherGoldIconPos(cd.ClientSeat);
            m_diamondList.Add(ged);
        }
Exemplo n.º 3
0
        void ShowGoldNumLabel(uint _Score, Vector3 Pos, Fish fish, bool bScale = true)
        {
            GoldEffectLabelData label = new GoldEffectLabelData();

            label.GameObj    = Initobj(m_LabelObj);
            label.bScaleAnim = bScale;
            label.Init();
            if (!bScale)
            {
                label.ResetScale();
                label.LifeTime = 2.0f;
            }
            label.SetPos(Pos);
            label.SetText(_Score.ToString());
            if (fish.IsBossFish())
            {
                label.LifeTime = 3.0f;
                label.SetLabelFontSize();
            }
            m_CatchedLabelList.Add(label);
        }
Exemplo n.º 4
0
        public void ShowGoldEffect(CatchedData cd, Fish fish)
        {
            if (MatchJudge.IsMatch() && cd.ClientSeat != SceneRuntime.MyClientSeat)//比赛只显示自己的效果
            {
                return;
            }
            Vector3 vecGoldEndpos = Vector3.one;

            if (MatchJudge.IsMatch())//比赛
            {
                if (cd.ClientSeat == SceneRuntime.MyClientSeat)
                {
                    //vecGoldEndpos = GlobalHallUIMgr.Instance.MatchScorePos();
                }
                else
                {
                    vecGoldEndpos = SceneRuntime.GetLauncherGoldIconPos(cd.ClientSeat);
                }
            }
            else
            {
                vecGoldEndpos = SceneRuntime.GetLauncherGoldIconPos(cd.ClientSeat);
            }

            const int perGoldNum = 30;
            //这里的金币用的还是鱼的类型
            Vector3 FishPos = UIManager.Instance.WordToScenePoint(fish.Position);
            //鱼的价值
            uint fishOrgGold = (uint)FishSetting.FishDataList[fish.FishType].Gold;
            uint fishGold    = 0;

            if (cd.CatchType == (byte)CatchedType.CATCHED_SKILL)
            {
                fishGold = fishOrgGold * SkillSetting.SkillDataList[cd.SubType].multiple;
            }
            else
            {
                fishGold = fishOrgGold * BulletSetting.BulletRate[cd.RateIndex];
            }


            if (!MatchJudge.IsMatch() && cd.ClientSeat == SceneRuntime.MyClientSeat)
            {
                //GlobalHallUIMgr.Instance.GameShare.AddGlod((int)fishGold);
            }


            uint goldNum = fishOrgGold / perGoldNum;
            uint perNum  = 0;
            uint lastNum = 0;

            if (goldNum == 0)
            {
                goldNum = 1;
                lastNum = fishGold;
            }
            else
            {
                perNum  = fishGold / goldNum;
                lastNum = perNum + (fishGold - perNum * goldNum);
            }
            uint num = 0;

            for (byte i = 0; i < goldNum; ++i)
            {
                GoldEffectData ged = new GoldEffectData();
                ged.catchedData = cd;

                if (MatchJudge.IsMatch())
                {
                    ged.GameObj = Initobj(m_ScoreObj);
                }
                else
                {
                    ged.GameObj = Initobj(m_GoldObj);
                }

                ged.GameObj.transform.position = FishPos + (new Vector3(Utility.RandFloat() * 100, Utility.RandFloat(), 0)) * (fish.IsBossFish() ? 0.45f : 0.15f);
                //ged.m_Tween.m_Pos = ged.GameObj.transform.GetComponents<DOTweenAnimation>()[0];
                //ged.m_Tween.m_Sclae = ged.GameObj.transform.GetComponents<DOTweenAnimation>()[1];

                ged.ScaleGoldTR(1.0f, fish.IsBossFish() ? 1.0f : 0.6f);
                if (i > 0 && !fish.IsBossFish())
                {
                    ged.m_DelayTime += i * 0.1f;
                }
                if (fish.IsBossFish())
                {
                    ged.m_DelayTime = 1.5f;
                }

                if (i == goldNum - 1)
                {
                    ged.GoldNum = lastNum;
                }
                else
                {
                    ged.GoldNum = perNum;
                }
                num           += ged.GoldNum;
                ged.ClientSeat = cd.ClientSeat;
                ged.PlayTween(true);
                ged.m_vecpathend = vecGoldEndpos;

                DOTween.To(() => ged.GameObj.transform.position, r => ged.GameObj.transform.position = r, vecGoldEndpos, 0.5f).SetDelay(1 + i * 0.1f).OnComplete(() =>
                {
                    ged.DsetorySelf();
                }
                                                                                                                                                                 );
            }
            ShowGoldNumLabel(fishGold, FishPos, fish);
        }