先修复一下,错误的场景 删除不必要的钓场资产 修复into场景 update:更新meta文件,修复报错 update:修复资源 修复第一章节建造 修复建造第三章 update:删除多余内容 update:更新README.md update:还原图标 update:更新README update:更新配置
118 lines
3.7 KiB
C#
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);
|
|
}
|
|
}
|