using asap.core; using cfg; using DG.Tweening; using GameCore; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; public class AquariumRandomMapPanel : MonoBehaviour { AquariumManager AM; RectTransform Content; GameObject img_map; int allCount = 5; float height; int maIndex = 2; IUIService uIService; GameObject result; TMP_Text text_map; TMP_Text text_level; AquariumDetectEgg[] aquariumDetectEggs; Transform eggRoot; Tables _tables; Transform door; private void Awake() { _tables = GContext.container.Resolve(); uIService = GContext.container.Resolve(); AM = GContext.container.Resolve(); Content = transform.Find("Viewport/Content").GetComponent(); img_map = transform.Find("Viewport/Content/Item").gameObject; height = img_map.GetComponent().rect.height; img_map.SetActive(false); result = transform.Find("result").gameObject; text_map = transform.Find("result/text_map").GetComponent(); text_level = transform.Find("result/fishcard/text_level").GetComponent(); eggRoot = transform.Find("eggRoot"); aquariumDetectEggs = eggRoot.GetComponentsInChildren(); //eggRoot.gameObject.SetActive(false); door = transform.Find("door"); } //private void Start() //{ // result.SetActive(false); //} public void SetMap() { PlayerData playerData = GContext.container.Resolve(); AM.GetRandmMap(); var lastMapID = playerData.lastMapId; List mapDatas = _tables.TbMapData.DataList; List indexs = new List(); for (int i = 0; i < mapDatas.Count; i++) { if (mapDatas[i].ID <= lastMapID) { indexs.Add(i); } else { break; } } while (indexs.Count < allCount) { indexs.AddRange(indexs); } List newIDs = new List(); for (int i = 0; i < allCount; i++) { int mapIDIndex = indexs[Random.Range(0, indexs.Count)]; newIDs.Add(mapIDIndex); indexs.Remove(mapIDIndex); } newIDs.AddRange(newIDs); for (int i = 0; i < allCount + maIndex; i++) { SetMapBg(mapDatas[newIDs[i]].Bg); } var mapData = _tables.TbMapData.DataMap[AM.MapId]; SetMapBg(mapData.Bg); SetMapBg(mapDatas[newIDs[0]].Bg); text_map.text = LocalizationMgr.GetText(mapData.Name_l10n_key); string levelLV = LocalizationMgr.GetText("UI_FishingMapPanel_101006"); int fishCardLevel = GContext.container.Resolve().GetFishLevelByMap(AM.MapId); text_level.text = levelLV + fishCardLevel.ToString(); var sequence = DOTween.Sequence(); sequence.Append(door.DOLocalMoveX(900, 0.5f).SetEase(Ease.Linear)); sequence.Append(Content.DOAnchorPosY(allCount * height, 0.8f).SetLoops(2, LoopType.Restart).SetEase(Ease.Linear)); //跑马灯动画 float index2 = allCount + maIndex + Random.Range(-0.5f, 0.5f); sequence.Append(Content.DOAnchorPosY(index2 * height, 0.2f).SetEase(Ease.Linear)); sequence.Append(Content.DOAnchorPosY((allCount + maIndex) * height, 0.2f).SetEase(Ease.InSine)); sequence.Play(); } void SetMapBg(string bg) { GameObject go = Instantiate(img_map, Content); Image image = go.transform.GetChild(0).GetComponent(); go.SetActive(true); uIService.SetImageSprite(image, bg); } public void InitEgg() { //开始随机蛋蛋 for (int i = 0; i < aquariumDetectEggs.Length; i++) { if (i < AM.Slot) { AquariumEgg aquariumEgg = _tables.TbAquariumEgg.GetOrDefault(AM.data.slotDatas[i].eggId); aquariumDetectEggs[i].SetIcon(AM.eggNames, aquariumEgg.Icon, i); } else { aquariumDetectEggs[i].gameObject.SetActive(false); } } } public void PlayEgg() { //开始随机蛋蛋 for (int i = 0; i < aquariumDetectEggs.Length; i++) { if (i < AM.Slot) { AquariumEgg aquariumEgg = _tables.TbAquariumEgg.GetOrDefault(AM.data.slotDatas[i].eggId); aquariumDetectEggs[i].Play(); } } } public void HideMap() { Content.gameObject.SetActive(false); } }