备份CatanBuilding瘦身独立工程
This commit is contained in:
139
Assets/Scripts/Aquarium/UI/AquariumRandomMapPanel.cs
Normal file
139
Assets/Scripts/Aquarium/UI/AquariumRandomMapPanel.cs
Normal file
@@ -0,0 +1,139 @@
|
||||
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<Tables>();
|
||||
uIService = GContext.container.Resolve<IUIService>();
|
||||
AM = GContext.container.Resolve<AquariumManager>();
|
||||
Content = transform.Find("Viewport/Content").GetComponent<RectTransform>();
|
||||
img_map = transform.Find("Viewport/Content/Item").gameObject;
|
||||
height = img_map.GetComponent<RectTransform>().rect.height;
|
||||
img_map.SetActive(false);
|
||||
result = transform.Find("result").gameObject;
|
||||
text_map = transform.Find("result/text_map").GetComponent<TMP_Text>();
|
||||
text_level = transform.Find("result/fishcard/text_level").GetComponent<TMP_Text>();
|
||||
eggRoot = transform.Find("eggRoot");
|
||||
aquariumDetectEggs = eggRoot.GetComponentsInChildren<AquariumDetectEgg>();
|
||||
//eggRoot.gameObject.SetActive(false);
|
||||
door = transform.Find("door");
|
||||
}
|
||||
//private void Start()
|
||||
//{
|
||||
// result.SetActive(false);
|
||||
//}
|
||||
public void SetMap()
|
||||
{
|
||||
PlayerData playerData = GContext.container.Resolve<PlayerData>();
|
||||
AM.GetRandmMap();
|
||||
var lastMapID = playerData.lastMapId;
|
||||
List<MapData> mapDatas = _tables.TbMapData.DataList;
|
||||
List<int> indexs = new List<int>();
|
||||
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<int> newIDs = new List<int>();
|
||||
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<PlayerFishData>().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<Image>();
|
||||
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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user