using System; using System.Linq; using UnityEngine; using UnityEngine.UI; public class SignCell : MonoBehaviour { [SerializeField] Image bgImg; [SerializeField] Text dayText; [SerializeField] ItemCell[] itemCells; [SerializeField] Transform[] gotRects; [SerializeField] Transform nowSelectRect; [SerializeField] Transform repairRect; [SerializeField] Button signBtn; public void Display(int index) { var day = index + 1; var config = SignInConfig.Get(day); //状态:0-不可签到;1-已签到;2-可补签;3-已领取 var state = SignManager.Instance.GetSignDayState(day); for (int i = 0; i < itemCells.Length; i++) { if (i < config.AwardItemList.Length) { itemCells[i].SetActive(true); int itemID = config.AwardItemList[i][0]; itemCells[i].Init(new ItemCellModel(itemID, false, config.AwardItemList[i][1])); itemCells[i].button.AddListener(()=> { if (state == 1 || state == 2) { Sign(day); return; } ItemTipUtility.Show(itemID); }); } else { itemCells[i].SetActive(false); } } if (state == 1) { //可领取 bgImg.SetOrgSprite("Sign_img_54", "Sign"); nowSelectRect.SetActive(true); for (int i = 0; i < gotRects.Length; i++) { gotRects[i].SetActive(false); } repairRect.SetActive(false); } else if (state == 2) { //补签 bgImg.SetOrgSprite("Sign_img_58", "Sign"); nowSelectRect.SetActive(false); for (int i = 0; i < gotRects.Length; i++) { gotRects[i].SetActive(false); } repairRect.SetActive(true); } else if (state == 3) { //已领取 bgImg.SetOrgSprite("Sign_img_57", "Sign"); nowSelectRect.SetActive(false); for (int i = 0; i < gotRects.Length; i++) { gotRects[i].SetActive(true); } repairRect.SetActive(false); } else { //不可签到 bgImg.SetOrgSprite("Sign_img_58", "Sign"); nowSelectRect.SetActive(false); for (int i = 0; i < gotRects.Length; i++) { gotRects[i].SetActive(false); } repairRect.SetActive(false); } dayText.text = state == 3 ? Language.Get("Sign2") : Language.Get("SignDay" + day); signBtn.AddListener(() => { if (state == 1 || state == 2) { Sign(day); return; } }); } void Sign(int day) { var state = SignManager.Instance.GetSignDayState(day); if (state == 2) { ConfirmCancel.MoneyIconConfirm(SignManager.Instance.repairSignMoney, SignManager.Instance.repairSignMoneyType, Language.Get("Sign3", UIHelper.GetIconNameWithMoneyType(SignManager.Instance.repairSignMoneyType), SignManager.Instance.repairSignMoney), (bool isOk, bool isToggle) => { if (isOk) { var pack = new CA509_tagCSDaySign(); pack.Day = (byte)day; GameNetSystem.Instance.SendInfo(pack); } }); return; } var pack = new CA509_tagCSDaySign(); pack.Day = (byte)day; GameNetSystem.Instance.SendInfo(pack); } }