void UpdateSwitchCannon(bool on) { if (on) { GameMain.SC(OnUpdateSwitchCannon(Fishing_Data.GetInstance().nThreePaoTime)); } }
void UpdateAutoFire(bool on) { if (on) { GameMain.SC(OnUpdateAutoFire(Fishing_Data.GetInstance().nAutoFireTime)); } }
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); }
public static Fishing_Data GetInstance() { if (instance == null) { instance = new Fishing_Data(); } return(instance); }
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); } }
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); }
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); }); }
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); }
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)); } } }