示例#1
0
    public void Init(CGame_Fishing game, splineMove move, uint index, byte typeId)
    {
        AssetBundle ab = game.FishingAssetBundle;

        m_Animator       = GetComponent <Animator>();
        m_Animator.speed = 0f;
        m_SplineMove     = move;
        m_nOnlyId        = index;
        m_nTypeId        = typeId;

        m_Renderers = gameObject.GetComponentsInChildren <Renderer>();
        foreach (Renderer child in m_Renderers)
        {
            child.enabled = false;
        }

        if (m_SplineMove != null)
        {
            if (m_SplineMove.loopType != splineMove.LoopType.loop)
            {
                m_SplineMove.tween.OnComplete(OnComplete);
            }
            m_SplineMove.tween.OnPlay(OnPlay);
        }
        else
        {
            OnPlay();
        }

        m_LockSitList.Clear();
        m_LockPointTfm = transform.parent.Find("Point_LockTarget");

        FishingFishData fd = Fishing_Data.GetInstance().m_FishData[m_nTypeId];

        if (fd.m_nHitAudio != 0)
        {
            m_HitSound      = gameObject.AddComponent <AudioSource>();
            m_HitSound.clip = ab.LoadAsset <AudioClip>(CustomAudioDataManager.GetInstance().GetSoundName(fd.m_nHitAudio));
        }
        if (fd.m_nDeadAudio != 0)
        {
            m_DeadSound      = gameObject.AddComponent <AudioSource>();
            m_DeadSound.clip = ab.LoadAsset <AudioClip>(CustomAudioDataManager.GetInstance().GetSoundName(fd.m_nDeadAudio));
        }
        if (fd.m_szTalk.Length > 0)
        {
            m_TalkObj = (GameObject)ab.LoadAsset("talk_Image_BG");
            m_TalkObj = (GameObject)Instantiate(m_TalkObj);
            m_TalkObj.GetComponentInChildren <Text>().text = fd.m_szTalk;
            m_TalkObj.transform.SetParent(game.MainUITfm.Find("point_talk"), false);
            Invoke("ShowTalk", fd.m_nTalkInterval);
            Invoke("HideTalk", fd.m_nTalkInterval + fd.m_nTalkShowTime);
            UpdateTalk();
            m_TalkObj.SetActive(false);
        }
    }
示例#2
0
    public Fishing_Role(CGame_Fishing game, byte index)
    {
        GameBase = game;
        m_nIndex = index;

        Transform tfm = GameBase.MainUITfm.Find("Middle/playerPoint_" + (index + 1));

        m_SitUI  = tfm.Find("Button_sit");
        m_InfoUI = tfm.Find("playerinfo");

#if ScFish
        m_tgAutoFire      = tfm.Find("Toggle_zidong").GetComponent <Toggle>();
        m_tgAutoFire.isOn = false;
        m_tgAutoFire.onValueChanged.AddListener(UpdateAutoFire);

        m_tgChange      = tfm.Find("Toggle_ThreePao").GetComponent <Toggle>();
        m_tgChange.isOn = false;
        m_tgChange.onValueChanged.AddListener(UpdateSwitchCannon);
#endif

        tfm = m_InfoUI.Find("Middle/ButtonBG_lv");
        m_SitUI.GetComponent <Button>().onClick.AddListener(OnClickSit);
        m_LvAddBtn = tfm.Find("Button_add").GetComponent <Button>();
        m_LvAddBtn.onClick.AddListener(() => OnClickLevel(1));
        m_LvSubBtn = tfm.Find("Button_subtract").GetComponent <Button>();
        m_LvSubBtn.onClick.AddListener(() => OnClickLevel(0));

        GameObject obj = (GameObject)game.FishingAssetBundle.LoadAsset("Icon_LockTarget");
        obj    = GameMain.Instantiate(obj);
        LockUI = obj.transform;
        LockUI.SetParent(game.GameCanvas.transform.Find("Root"), false);
        obj.SetActive(false);

        obj = (GameObject)game.FishingAssetBundle.LoadAsset("Anime_7cai");
        obj = GameMain.Instantiate(obj);
        obj.transform.SetParent(m_InfoUI.parent.Find("AnimePoint_7cai"), false);
        obj.SetActive(false);
        m_SpecailCoinText = obj.GetComponentInChildren <Text>();
    }
示例#3
0
    IEnumerator PopCoin(Fishing_Fish fish, FishingFishData fd, bool bLocal, long getCoin, Vector3 center, Vector3 targetPos, byte getSkillId)
    {
        //DebugLog.Log("num:" + num + " center:" + center + " target:" + targetPos);

        if (getCoin <= 0)
        {
            yield break;
        }

        CGame_Fishing game = fish.m_CatchRole.GameBase;
        AssetBundle   ab   = game.FishingAssetBundle;
        Canvas        cv   = game.GameCanvas;
        Transform     root = cv.transform.Find("Root");

        GameObject prefab;

        GameObject big = null;

        if (fd.m_nMultiple >= 20)
        {
            prefab = (GameObject)ab.LoadAsset("FishCoin_big");
            big    = ((GameObject)GameMain.instantiate(prefab));
            big.transform.SetParent(root, false);
            big.transform.localPosition = center;
            game.m_AddItems.Add(big);

            Camera.main.DOShakePosition(1f, 1f).OnComplete(() =>
            {
                Camera.main.transform.position = game.CameraSourcePos;
            });

            CustomAudioDataManager.GetInstance().PlayAudio(1004);
        }
        else
        {
            CustomAudioDataManager.GetInstance().PlayAudio(1003);
        }

        yield return(new WaitUntil(() => m_bDeathEnd));

        Transform effectTfm = fish.transform.parent.Find("Effect");

        if (effectTfm != null)
        {
            effectTfm.DOScale(Vector3.zero, 1f);
        }
        fish.transform.parent.DOScale(Vector3.zero, 1f);

        prefab = (GameObject)ab.LoadAsset(bLocal ? "Text_HurtNum" : "Text_HurtNum_other");
        GameObject textObj = ((GameObject)GameMain.instantiate(prefab));

        textObj.transform.SetParent(root.Find("HurtNum"), false);
        textObj.transform.localPosition = center;
        textObj.transform.localScale    = Vector3.zero;
        textObj.transform.GetComponent <Text>().text = GameFunction.FormatCoinText(getCoin, true, false);
        game.m_AddItems.Add(textObj);
        textObj.transform.DOScale(new Vector3(1f, 1f, 1f), 0.5f).OnComplete(() =>
        {
            textObj.transform.DOScale(new Vector3(1f, 1f, 1f), 0.5f).OnComplete(() =>
            {
                game.m_AddItems.Remove(textObj);
                Destroy(textObj);
            });
        });

        bool bCoin = true;

        if (getSkillId > 0 && bLocal)
        {
            if (getSkillId == RoomInfo.NoSit)//lottery
            {
                prefab = (GameObject)ab.LoadAsset("Skill_Ticket");
                bCoin  = false;
            }
            else
            {
                prefab = (GameObject)ab.LoadAsset("Skill_" + getSkillId);
            }
            if (prefab != null)
            {
                GameObject skillObj = Instantiate(prefab);
                skillObj.transform.SetParent(root, false);
                skillObj.transform.localPosition = center;
                game.m_AddItems.Add(skillObj);
                skillObj.transform.DOLocalMove(center + new Vector3(0, 100f, 0f), 1f).OnComplete(() =>
                {
                    game.m_AddItems.Remove(skillObj);
                    Destroy(skillObj);
                });
            }
        }

        if (bCoin)
        {
            int   num    = Mathf.CeilToInt((float)fd.m_nMultiple / 5) + 2;
            float radius = (num - 1) * 10f;
            float halfPi = Mathf.PI * 0.5f;
            float angle;
            prefab = (GameObject)ab.LoadAsset("FishCoin");
            GameObject coin;
            Vector3    pos;

            List <GameObject> coinList = new List <GameObject>();

            for (int i = 0; i < num; i++)
            {
                angle = Random.Range(0f, halfPi) * 4f;
                coin  = ((GameObject)GameMain.instantiate(prefab));
                coin.transform.SetParent(root, false);
                coin.transform.localPosition = center;
                pos = center + new Vector3(Mathf.Sin(angle), Mathf.Cos(angle)) * Random.Range(0f, radius);
                coin.transform.DOLocalMove(pos, 0.5f);
                //DebugLog.Log(i + ": angle:" + angle + " pos:" + pos);

                coinList.Add(coin);
                game.m_AddItems.Add(coin);

                yield return(new WaitForEndOfFrame());
            }

            yield return(new WaitForSecondsRealtime(1f));

            CustomAudioDataManager.GetInstance().PlayAudio(1002);

            float flyTime = 0.5f;

            foreach (GameObject obj in coinList)
            {
                if (obj == null)
                {
                    continue;
                }

                Vector3 dir   = targetPos - obj.transform.localPosition;
                Vector3 speed = new Vector3(dir.x / flyTime, 0f);
                float   a     = dir.y * 2f / (flyTime * flyTime);

                DOTween.To(() => obj.transform.localPosition,
                           r =>
                {
                    obj.transform.localPosition += (speed * Time.unscaledDeltaTime);
                    speed.y = speed.y + a * Time.unscaledDeltaTime;
                },
                           targetPos, flyTime);
            }

            yield return(new WaitForSecondsRealtime(flyTime));

            foreach (GameObject obj in coinList)
            {
                if (obj == null)
                {
                    continue;
                }

                game.m_AddItems.Remove(obj);
                Destroy(obj);
            }
        }

        if (big != null)
        {
            game.m_AddItems.Remove(big);
            Destroy(big);
        }
    }
示例#4
0
 public Fishing_FishMgr(CGame_Fishing game)
 {
     m_GameBase    = game;
     FishPause     = false;
     m_WaypointMgr = GameObject.Find("Waypoint Manager").GetComponent <WaypointManager>();
 }