Files
MinFt/Client/Assets/Scripts/UI/Appearance/AppearanceRodChangePanel.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

118 lines
3.7 KiB
C#

using asap.core;
using cfg;
using GameCore;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class AppearanceRodChangePanel : MonoBehaviour
{
Button btn_back;
Button mask;
Button btn_confrim;
GameObject item;
Transform Content;
List<SkinRodItemData> rodItemDatas = new List<SkinRodItemData>();
private SkinRodItem currentRodItem;
public Action<int> OnChangeRod;
public int rodId;
private void Awake()
{
mask = transform.Find("root/mask").GetComponent<Button>();
btn_back = transform.Find("root/btn_back/btn_green").GetComponent<Button>();
btn_confrim = transform.Find("root/btn_confrim/btn_green").GetComponent<Button>();
Content = transform.Find("root/ScrollView/Viewport/Content");
item = transform.Find("root/ScrollView/Viewport/Content/item").gameObject;
item.SetActive(false);
}
void Start()
{
InitRodList();
btn_back.onClick.AddListener(() =>
{
gameObject.SetActive(false);
});
mask.onClick.AddListener(() =>
{
gameObject.SetActive(false);
});
btn_confrim.onClick.AddListener(OnClickConfrim);
}
void OnClickConfrim()
{
OnChangeRod?.Invoke(currentRodItem.data.id);
gameObject.SetActive(false);
}
void InitRodList()
{
var _tables = GContext.container.Resolve<Tables>();
var dataList = _tables.TbRodData.DataList;
int count = dataList.Count;
RodData _rodData;
PlayerFishData playerFishData = GContext.container.Resolve<PlayerFishData>();
for (int i = 0; i < count; i++)
{
_rodData = dataList[i];
bool isLock = playerFishData.NotRod(dataList[i].ID);
int level = playerFishData.GetRodLevel(_rodData.ID);
int star = playerFishData.GetRodPiece(_rodData.ID);
SkinRodItemData rodItemData = new SkinRodItemData()
{
id = _rodData.ID,
quality = _rodData.Quality,
isLock = isLock,
level = level + 1,
start = star,
isEquiped = dataList[i].ID == rodId,
ascendID = _rodData.AscendID,
};
int skindID = playerFishData.GetRodSkin(_rodData.ID);
if (skindID > 0)
{
var fishRodSkinData = _tables.TbRodSkinData.GetOrDefault(skindID);
if (fishRodSkinData != null)
{
rodItemData.avatar = fishRodSkinData.Avatar;
}
}
rodItemDatas.Add(rodItemData);
}
rodItemDatas.Sort(Sort);
//bool isCheck = true;
for (int i = 0; i < rodItemDatas.Count; i++)
{
GameObject go = Instantiate(item, Content);
go.SetActive(true);
SkinRodItem rodItem = go.AddComponent<SkinRodItem>();
rodItem.Init(rodItemDatas[i]);
rodItem.onClick = OnRodItemClick;
if (rodItemDatas[i].isEquiped)
{
currentRodItem = rodItem;
rodItem.SetSelected(true);
}
}
}
int Sort(SkinRodItemData a, SkinRodItemData b)
{
int levelA = a.isLock ? -1 : a.level;
int levelB = b.isLock ? -1 : b.level;
if (levelA == levelB)
{
return b.quality.CompareTo(a.quality);
}
return levelB.CompareTo(levelA);
}
void OnRodItemClick(SkinRodItem duelRodItem)
{
if (currentRodItem != null)
{
currentRodItem.SetSelected(false);
}
currentRodItem = duelRodItem;
currentRodItem.SetSelected(true);
}
}