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);
|
}
|
}
|