using Snxxz.UI; using System; using System.Collections.Generic; using System.Linq; using TableConfig; using UnityEngine; using UnityEngine.UI; public class DandrugCell : MonoBehaviour { [SerializeField] public Button cellToggle; [SerializeField] public Text nameText; [SerializeField] public Text lockText; [SerializeField] public Image danIcon; [SerializeField] public Image danBgIcon; [SerializeField] public GameObject unSelectImg; [SerializeField] public GameObject selectImg; [SerializeField] public GameObject progressObj; [SerializeField] public Text progressValue; [SerializeField] public RedpointBehaviour Redpoint; [SerializeField] GameObject achieveReach; [SerializeField] Text achieveReachText; BlastFurnaceModel _furnaceModel; BlastFurnaceModel FurnaceModel { get { return _furnaceModel ?? (_furnaceModel = ModelCenter.Instance.GetModel()); } } PlayerPackModel _playerPack; PlayerPackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel()); } } Color32 colorBlack = new Color32(64,28,6,255); public void SetDisplayModel(int index,int selectIndex) { AlchemyConfig alchemyModel = FurnaceModel.alchemyModellist[index]; Redpoint.redpointId = FurnaceModel.danDrugRedPointlist[index].id; danIcon.SetSprite(alchemyModel.ICONID); danBgIcon.SetItemBackGround(alchemyModel.AlchemyQuality); nameText.text = alchemyModel.AlchemName; if (FurnaceModel.StoveLV < alchemyModel.BlastFurnaceLV) { lockText.gameObject.SetActive(true); lockText.text = Language.Get("BlastFurnace104", alchemyModel.BlastFurnaceLV); progressObj.SetActive(false); } else { progressObj.SetActive(true); lockText.gameObject.SetActive(false); float progress = (float)Math.Round(playerPack.GetAlchemyProgress(alchemyModel), 2); if(progress > 0) { progressValue.text = UIHelper.AppendStringColor(TextColType.Green, StringUtility.Contact(progress, "%")); } else { progressValue.text = StringUtility.Contact(progress, "%"); progressValue.color = colorBlack; } } if (index == selectIndex) { unSelectImg.SetActive(false); selectImg.SetActive(true); } else { unSelectImg.SetActive(true); selectImg.SetActive(false); } bool isReach = FurnaceModel.IsHaveReachFull(alchemyModel); int alchemyLv = alchemyModel.AlchemyID % 10; if(isReach) { progressObj.SetActive(false); achieveReachText.text = Language.Get("BlastFurnace116",Language.Get(StringUtility.Contact("Num_CHS_", alchemyLv))); achieveReach.SetActive(true); } else { achieveReach.SetActive(false); } } }