using Snxxz.UI; 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 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()); } } 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); } else { lockText.gameObject.SetActive(false); } if (index == selectIndex) { unSelectImg.SetActive(false); selectImg.SetActive(true); } else { unSelectImg.SetActive(true); selectImg.SetActive(false); } List previewDanlist = FurnaceModel.GetPreviewMakeDruglist(alchemyModel).Keys.ToList(); bool isReach = true; for(int i = 0; i < previewDanlist.Count; i++) { if(playerPack.CheckIsDrugById(previewDanlist[i])) { AttrFruitConfig fruitConfig = ConfigManager.Instance.GetTemplate(previewDanlist[i]); if(!playerPack.IsReachMaxUseDrug(fruitConfig)) { isReach = false; break; } } } int alchemyLv = alchemyModel.AlchemyID % 10; if(isReach) { achieveReachText.text = Language.Get("BlastFurnace116",Language.Get(StringUtility.Contact("Num_CHS_", alchemyLv))); achieveReach.SetActive(true); } else { achieveReach.SetActive(false); } } }