Esempio n. 1
0
 void UpdateSwitchCannon(bool on)
 {
     if (on)
     {
         GameMain.SC(OnUpdateSwitchCannon(Fishing_Data.GetInstance().nThreePaoTime));
     }
 }
Esempio n. 2
0
 void UpdateAutoFire(bool on)
 {
     if (on)
     {
         GameMain.SC(OnUpdateAutoFire(Fishing_Data.GetInstance().nAutoFireTime));
     }
 }
Esempio n. 3
0
    int SortByMultiple(Fishing_Fish a, Fishing_Fish b)//按倍率从大到小排列
    {
        FishingFishData dataA = Fishing_Data.GetInstance().m_FishData[a.m_nTypeId];
        FishingFishData dataB = Fishing_Data.GetInstance().m_FishData[b.m_nTypeId];

        return(dataB.m_nMultiple - dataA.m_nMultiple);
    }
Esempio n. 4
0
    public static Fishing_Data GetInstance()
    {
        if (instance == null)
        {
            instance = new Fishing_Data();
        }

        return(instance);
    }
Esempio n. 5
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);
        }
    }
Esempio n. 6
0
    Fishing_Fish[] CreatFish(byte fishTypeId, FishingPathData pd, Transform parent, PathManager pm, uint fishId, int count, float passTime, byte group, byte index)
    {
        if (!Fishing_Data.GetInstance().m_FishData.ContainsKey(fishTypeId))
        {
            DebugLog.LogError("fish:" + fishTypeId + " data is error!!");
            return(null);
        }

        FishingFishData fd     = Fishing_Data.GetInstance().m_FishData[fishTypeId];
        GameObject      prefab = (GameObject)m_GameBase.FishingAssetBundle.LoadAsset(fd.m_szFish);

        int arrayCount = pd.m_Offsets.Count > 0 ? pd.m_Offsets.Count : 1;

        Debug.Assert(count != 0 && count <= arrayCount, "create fish count wrong!!");

        Fishing_Fish[] fishs = new Fishing_Fish[count];
        for (uint j = 0; j < count; j++)
        {
            GameObject go = (GameObject)GameMain.instantiate(prefab);
            go.transform.SetParent(parent, false);
            splineMove sm = go.AddComponent <splineMove>();
            sm.local            = true;
            sm.lookAhead        = 0.01f;
            sm.forwardDir       = Vector3.right;
            sm.pathMode         = PathMode.Ignore;
            sm.offset           = index < pd.m_Offsets.Count ? pd.m_Offsets[index] : Vector3.zero;
            sm.waypointRotation = (fd.m_nRotType == 1) ? splineMove.RotationType.all : splineMove.RotationType.none;
            if (m_GameBase.IsMirror())
            {
                sm.eulerAngles = (fd.m_nRotType == 1) ? new Vector3(180f, 0f, 0f) : new Vector3(0f, 0f, 180f);
            }
            else
            {
                sm.eulerAngles = Vector3.zero;
            }
            sm.speed    = fd.m_GroupSpeed[group];
            sm.loopType = pd.m_bLoop ? splineMove.LoopType.loop : splineMove.LoopType.none;
            sm.SetPath(pm);
            sm.GoTo(GetPathPassTime(passTime, sm, pd));

            if (FishPause)
            {
                sm.Pause();
            }

            Fishing_Fish fish = go.transform.Find("skin").gameObject.AddComponent <Fishing_Fish>();
            fish.Init(m_GameBase, sm, fishId + j, fishTypeId);
            fish.OnDeath += RemoveFish;
            fishs[j]      = fish;
            m_FishDict.Add(fish.m_nOnlyId, fish);
        }
        return(fishs);
    }
Esempio n. 7
0
    public void OnCatch(Fishing_Cannon cannon, bool bLocal, long reward, FishType_Enum fishType, byte getSkillId, int specialId)
    {
        if (m_CatchRole != null)
        {
            return;
        }

        m_CatchRole = cannon.BelongRole;
        m_Animator.SetTrigger("die");
        gameObject.layer = 0;//no collide
        m_SplineMove.Stop();
        m_CatchRole.GameBase.OnLockFishLost(new List <byte>(m_LockSitList));

        if (bLocal && fishType > FishType_Enum.FishType_Boss)
        {
            m_CatchRole.GameBase.StartLottery(fishType, specialId);
        }
        else
        {
            Canvas  cv  = m_CatchRole.GameBase.GameCanvas;
            Vector3 pos = GameFunction.WorldToLocalPointInRectangle(transform.position, Camera.main, cv, cv.worldCamera);
            if (fishType == FishType_Enum.FishType_Lottery)
            {
                getSkillId = RoomInfo.NoSit;
            }
            GameMain.SC(PopCoin(this, Fishing_Data.GetInstance().m_FishData[m_nTypeId],
                                bLocal, reward, pos, m_CatchRole.GetCoinPos(), getSkillId));
        }

        float deadTime = 3f;

        m_CatchRole.GameBase.m_AddItems.Add(gameObject);
        if (bLocal && m_DeadSound != null)
        {
            m_DeadSound.volume = AudioManager.Instance.SoundVolume;
            m_DeadSound.Play();
            deadTime = m_DeadSound.clip.length;
        }
        GameMain.WaitForCall(deadTime, () =>
        {
            m_CatchRole.GameBase.m_AddItems.Remove(gameObject);
            OnDeath(this);
        });
    }
Esempio n. 8
0
    public static Fishing_Cannon Create(AssetBundle ab, Transform parent, byte id, byte level, uint bulletCost)
    {
        FishingCannonData fcd = Fishing_Data.GetInstance().m_CannonData[id];
        GameObject        obj = (GameObject)ab.LoadAsset(fcd.m_szCannon);

        obj = ((GameObject)GameMain.instantiate(obj));
        obj.transform.SetParent(parent, false);
        obj.transform.Find(fcd.m_szLvPoint).GetComponent <UnityEngine.UI.Text>().text = level.ToString();
        Fishing_Cannon fc = obj.AddComponent <Fishing_Cannon>();

        fc.m_Data        = fcd;
        fc.m_nTypeId     = id;
        fc.m_nBulletCost = bulletCost * (uint)fcd.m_szBulletPoint.Length;

        if (fcd.m_nAudio != 0)
        {
            AudioSource audioSrc = obj.AddComponent <AudioSource>();
            audioSrc.clip = ab.LoadAsset <AudioClip>(CustomAudioDataManager.GetInstance().GetSoundName(fcd.m_nAudio));
        }
        return(fc);
    }
Esempio n. 9
0
    public void CreatePathFish(ushort pathId, uint fishId, byte typeId, float pathPassTime, byte group, byte index)
    {
        if (pathPassTime < 0f)
        {
            return;
        }

        if (!Fishing_Data.GetInstance().m_PathData.ContainsKey(pathId))
        {
            DebugLog.LogWarning("Error: reate path id(" + pathId + ") no path data!");
            return;
        }
        FishingPathData pd = Fishing_Data.GetInstance().m_PathData[pathId];

        PathManager         pm;
        PathInfo            pi       = null;
        List <Fishing_Fish> fishList = null;

        if (m_PathDict.ContainsKey(pathId))
        {
            pm = m_PathDict[pathId];
            if (m_PathFishList.ContainsKey(pm))
            {
                pi       = m_PathFishList[pm];
                fishList = pi.fishList;
            }
            else
            {
                DebugLog.LogError("fishMgr pathFishList not contain dict's pm!");
            }
        }
        else
        {
            //create path
            GameObject prefab = (GameObject)m_GameBase.FishingAssetBundle.LoadAsset(pd.m_szPath);
            if (prefab == null)
            {
                DebugLog.LogWarning("Fail to preload path:" + pd.m_szPath);
                return;
            }
            GameObject path = (GameObject)GameMain.instantiate(prefab);
            path.transform.SetParent(m_WaypointMgr.transform);

            pm                 = path.GetComponent <PathManager>();
            fishList           = new List <Fishing_Fish>();
            pi                 = new PathInfo();
            pi.speed           = pd.m_fSpeed;
            pi.time            = pd.m_fTime;
            m_PathDict[pathId] = pm;
        }

        Fishing_Fish[] fish = CreatFish(typeId, pd, pm.transform, pm, fishId, 1, pathPassTime, group, index);
        fishList.AddRange(fish);
        pi.fishList        = fishList;
        m_PathFishList[pm] = pi;

        if (pd.m_fSpeed != 0f)
        {
            float endX = pm.transform.localPosition.x + pd.m_fSpeed * pd.m_fTime;

            pm.transform.Translate(pd.m_fSpeed * pathPassTime, 0f, 0f);

            Tweener t = pm.transform.DOLocalMoveX(endX, pd.m_fTime - pathPassTime);
            if (pd.m_bLoop)
            {
                t.OnComplete(() => RemovePath(pm));
            }
        }
    }