备份CatanBuilding瘦身独立工程
This commit is contained in:
110
Assets/Scripts/UI/Home/HomeBeilvPanel.cs
Normal file
110
Assets/Scripts/UI/Home/HomeBeilvPanel.cs
Normal file
@@ -0,0 +1,110 @@
|
||||
using asap.core;
|
||||
using cfg;
|
||||
using GameCore;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class HomeBeilvPanel : MonoBehaviour
|
||||
{
|
||||
public Button btn_close;
|
||||
public List<BeilvItem> beilv_special;
|
||||
public List<BeilvItem> beilv_normal;
|
||||
public Action<BeilvItem> OnBeilvClick;
|
||||
PlayerData playerData;
|
||||
Tables _tables;
|
||||
public void Init()
|
||||
{
|
||||
playerData = GContext.container.Resolve<PlayerData>();
|
||||
_tables = GContext.container.Resolve<Tables>();
|
||||
for (int i = 0; i < beilv_special.Count; i++)
|
||||
{
|
||||
BeilvItem index = beilv_special[i];
|
||||
beilv_special[i].btn.onClick.AddListener(() =>
|
||||
{
|
||||
OnClick(index);
|
||||
});
|
||||
}
|
||||
for (int i = 0; i < beilv_normal.Count; i++)
|
||||
{
|
||||
BeilvItem index = beilv_normal[i];
|
||||
beilv_normal[i].btn.onClick.AddListener(() =>
|
||||
{
|
||||
OnClick(index);
|
||||
});
|
||||
}
|
||||
btn_close.onClick.AddListener(() =>
|
||||
{
|
||||
gameObject.SetActive(false);
|
||||
});
|
||||
}
|
||||
public void OnShow()
|
||||
{
|
||||
var DataList = _tables.TbEnergyDef.DataList;
|
||||
int normalCount = beilv_normal.Count;
|
||||
int Mag;
|
||||
int energy = playerData.Energy;
|
||||
int index = 0;
|
||||
var buffTimeData = GContext.container.Resolve<BuffDataCenter>().GetWeelyBuffTimeData<SuperEnergyMag>();
|
||||
bool isSuperEnergy = buffTimeData != null;
|
||||
|
||||
for (int i = 0; i < DataList.Count; i++)
|
||||
{
|
||||
int demandEnergy = DataList[i].Energy;
|
||||
if (isSuperEnergy)
|
||||
{
|
||||
demandEnergy = DataList[i].FishBuffEnergy;
|
||||
}
|
||||
Mag = DataList[i].Mag;
|
||||
if (i < normalCount)
|
||||
{
|
||||
beilv_normal[i].beilvIndex = i;
|
||||
beilv_normal[i].beilv = Mag;
|
||||
beilv_normal[i].text_beilv.text = $"x{Mag}";
|
||||
beilv_normal[i].isLock = energy < demandEnergy;
|
||||
beilv_normal[i].isShow = true;
|
||||
}
|
||||
if (DataList[i].Energy == -1 && index < beilv_special.Count)
|
||||
{
|
||||
beilv_special[index].beilvIndex = i;
|
||||
beilv_special[index].beilv = Mag;
|
||||
beilv_special[index].text_beilv.text = $"x{Mag}";
|
||||
beilv_special[index].isLock = energy < demandEnergy;
|
||||
beilv_special[index].isShow = isSuperEnergy;
|
||||
index++;
|
||||
}
|
||||
}
|
||||
SetSelect();
|
||||
}
|
||||
void SetSelect()
|
||||
{
|
||||
int normalCount = _tables.TbEnergyDef.DataList.Where(x => x.Energy != -1).Count();
|
||||
for (int i = 0; i < beilv_normal.Count; i++)
|
||||
{
|
||||
if (beilv_normal[i].isShow)
|
||||
{
|
||||
beilv_normal[i].bg_selected.gameObject.SetActive(playerData.magnification == i);
|
||||
beilv_normal[i].bg_normal.SetActive(!beilv_normal[i].isLock);
|
||||
beilv_normal[i].bg_gray.SetActive(beilv_normal[i].isLock);
|
||||
}
|
||||
beilv_normal[i].gameObject.SetActive(beilv_normal[i].isShow);
|
||||
}
|
||||
|
||||
for (int i = 0; i < beilv_special.Count; i++)
|
||||
{
|
||||
if (beilv_special[i].isShow)
|
||||
{
|
||||
beilv_special[i].bg_selected.gameObject.SetActive(playerData.magnification - normalCount == i);
|
||||
beilv_special[i].bg_normal.SetActive(!beilv_special[i].isLock);
|
||||
beilv_special[i].bg_gray.SetActive(beilv_special[i].isLock);
|
||||
}
|
||||
beilv_special[i].gameObject.SetActive(beilv_special[i].isShow);
|
||||
}
|
||||
}
|
||||
public void OnClick(BeilvItem beilv)
|
||||
{
|
||||
OnBeilvClick?.Invoke(beilv);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user