Files
MinFt/Client/Assets/Scripts/UI/Rod/RodBag/RodBagImprove.cs
Liubing\LB 3d8d4d18f3 first commit
先修复一下,错误的场景

删除不必要的钓场资产

修复into场景

update:更新meta文件,修复报错

update:修复资源

修复第一章节建造

修复建造第三章

update:删除多余内容

update:更新README.md

update:还原图标

update:更新README

update:更新配置
2026-04-28 02:17:22 +08:00

174 lines
5.1 KiB
C#

using asap.core;
using cfg;
using Coffee.UIExtensions;
using DG.Tweening;
using GameCore;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class RodBagImprove : MonoBehaviour
{
public TMP_Text btn_improve_text;
public Button btn_improve;
public Image up_bar;
public TMP_Text bar_text;
public GameObject max_text;
public GameObject fx;
public CanvasGroup canvasGroup;
public UIParticleAttractor uIParticleAttractor;
private List<RodLevelupStats> dataList;
PlayerFishData playerFishData;
int allScore = 0;
bool isMax = false;
int level = 0;
private void Awake()
{
playerFishData = GContext.container.Resolve<PlayerFishData>();
var _tables = GContext.container.Resolve<Tables>();
dataList = _tables.TbRodLevelupStats.DataList;
}
private void Start()
{
btn_improve.onClick.AddListener(() =>
{
_ = UIManager.Instance.ShowUI(UITypes.FishingRodRewardPopupPanel);
});
InitLevel();
}
void InitLevel()
{
allScore = playerFishData.GetRodAllScore();
int count = dataList.Count;
var data = dataList[^1];
level = count;
for (int i = 0; i < count; i++)
{
if (allScore < dataList[i].Count)
{
data = dataList[i];
level = i;
break;
}
}
isMax = level == count;
max_text.SetActive(isMax);
bar_text.gameObject.SetActive(!max_text.activeSelf);
if (isMax)
{
up_bar.fillAmount = 1;
}
else
{
bar_text.text = $"{allScore}/{data.Count}";
float fillAmount = (float)allScore / data.Count;
up_bar.fillAmount = fillAmount;
}
btn_improve_text.text = level.ToString();
}
public async void UpLevel()
{
int newScore = playerFishData.GetRodAllScore();
if (isMax || newScore == allScore)
{
return;
}
int count = dataList.Count;
var newdata = dataList[^1];
int newlevel = count;
for (int i = 0; i < count; i++)
{
if (newScore < dataList[i].Count)
{
newdata = dataList[i];
newlevel = i;
break;
}
}
canvasGroup.blocksRaycasts = false;
ParticleAttractor(newScore - allScore);
await Awaiters.Seconds(1f);
if (up_bar == null)
{
return;
}
if (level != newlevel)
{
int oldlevel = level;
var data = dataList[level];
level = newlevel;
isMax = level == count;
up_bar.DOKill();
up_bar.DOFillAmount(1, 0.5f).OnUpdate(() =>
{
bar_text.text = $"{(int)(data.Count * up_bar.fillAmount)}/{data.Count}";
}).OnComplete(async () =>
{
btn_improve_text.text = level.ToString();
bar_text.text = $"{data.Count}/{data.Count}";
max_text.SetActive(isMax);
bar_text.gameObject.SetActive(!max_text.activeSelf);
GameObject go = await UIManager.Instance.ShowUI(UITypes.FishingRodRewardSettlementPopupPanel);
if (go != null)
{
var panel = go.GetComponent<FishingRodRewardSettlementPopupPanel>();
panel.Show(oldlevel);
}
});
if (isMax)
{
return;
}
await Awaiters.Seconds(0.5f);
}
if (up_bar==null)
{
return;
}
up_bar.DOKill();
bar_text.text = $"{allScore}/{newdata.Count}";
float fillAmount = (float)allScore / newdata.Count;
up_bar.fillAmount = fillAmount;
//新进度条
allScore = newScore;
fillAmount = (float)allScore / newdata.Count;
up_bar.DOFillAmount(fillAmount, 0.5f).OnUpdate(() =>
{
bar_text.text = $"{(int)(newdata.Count * up_bar.fillAmount)}/{newdata.Count}";
}).OnComplete(() =>
{
bar_text.text = $"{allScore}/{newdata.Count}";
});
canvasGroup.blocksRaycasts = true;
}
/// <summary>
/// 资源飞入
/// </summary>
/// <param name="classification"></param>
/// <returns></returns>
public async System.Threading.Tasks.Task ParticleAttractor(int showCount)
{
ParticleSystem particleSystem = fx.transform.Find("Scale/quan03").GetComponent<ParticleSystem>();
if (particleSystem != null)
{
particleSystem.Clear();
var main = particleSystem.main;
int maxCount = main.maxParticles;
if (showCount < maxCount)
{
int addCount = (int)showCount;
main.maxParticles = addCount;
}
fx.SetActive(true);
uIParticleAttractor.enabled = true;
await Awaiters.Seconds(1.8f);
fx.SetActive(false);
uIParticleAttractor.enabled = false;
}
}
}