278 lines
6.4 KiB
C#
Raw Normal View History

2025-05-18 01:04:31 +08:00
// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2021-12-03
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
// <copyright file= "ShareWindow.View" company="Kunpo"></copyright>
// <summary></summary>
// ***********************************************************************
namespace G.UI
{
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
///
/// </summary>
partial class ShareWindow
{
public class RewardItemWidget : KUIWidget
{
[KUIFlag]
Image _imgIcon;
[KUIFlag]
TextMeshProUGUI _tmpCount;
[KUIFlag]
GameObject _goSignined;
[KUIFlag]
GameObject _goComplete;
[KUIFlag]
Button _btnProp;
public override void Refresh()
{
if (this.data is ActivitySubInfo activitySubInfo)
{
var reward = activitySubInfo.rewardInfos[0];
IconProxy.Instance.SetSprite(_imgIcon, reward.propItem.icon);
_tmpCount.text = "x" + reward.count;
_goSignined.SetActive(activitySubInfo.status == 2);
_goComplete.SetActive(activitySubInfo.status == 1);
}
else if (this.data is ActivityInfo activityInfo)
{
activitySubInfo = activityInfo.subInfos[0];
var reward = activitySubInfo.rewardInfos[0];
IconProxy.Instance.SetSprite(_imgIcon, reward.propItem.icon);
_tmpCount.text = "x" + reward.count;
_goSignined.SetActive(activitySubInfo.status == 2);
_goComplete.SetActive(activitySubInfo.status == 1);
}
}
void OnClick()
{
if (this.data is ActivitySubInfo activitySubInfo)
{
InviteProxy.Instance.GetRewards(activitySubInfo, (error, message) =>
{
if (error == 0)
{
Refresh();
PostNotification(GlobalDefine.EVENT_MONEY_CHANGED);
ToastBox.ShowText("领取成功");
}
else
{
ToastBox.ShowText(message);
}
});
}
else if (this.data is ActivityInfo activityInfo)
{
activitySubInfo = activityInfo.subInfos[0];
if (activitySubInfo.status == 1 && TimeProxy.Instance.TryTimeKey(502))
{
activitySubInfo.status = 2;
RewardProxy.Instance.GetRewardsWithUI(activitySubInfo.rewardInfos, null);
Refresh();
}
else
{
ToastBox.ShowText("请明日再来");
}
}
}
private void Awake()
{
SetViewData();
_btnProp.onClick.AddListener(this.OnClick);
}
}
public class MemberCellWidget : KUIWidget
{
[KUIFlag]
Image _imgHead;
[KUIFlag]
TextMeshProUGUI _tmpName;
[KUIFlag]
TextMeshProUGUI _tmpValue;
public override void Refresh()
{
if (this.data is InviteProxy.FriendInfo friendInfo)
{
_tmpName.text = friendInfo.nickName;
_tmpValue.text = F.Utils.Time.ToDataTime(friendInfo.inviteTimestamp).ToString("yyyy/MM/dd");
IconProxy.Instance.SetSpriteWithURL(_imgHead, friendInfo.avatarUrl);
}
}
private void Awake()
{
SetViewData();
}
}
#region Auto Generate
#pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
[KUIFlag]
Button _btnShare;
[KUIFlag]
Button _btnClose;
[KUIFlag]
Slider _sldProgress;
[KUIFlag]
KUIList __listRewards;
[KUIFlag]
Button _btnEndReward;
[KUIFlag]
TextMeshProUGUI _tmpNext;
[KUIFlag]
GameObject __goDaily;
[KUIFlag]
Button _btnShowMember;
[KUIFlag]
GameObject _goMember;
[KUIFlag]
KUIList __listMember;
#pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
#endregion
#region Field
private RewardItemWidget _dailyRewardItemWidget;
#endregion
#region Method
/// <summary>
///
/// </summary>
public void InitView()
{
SetViewData();
_btnClose.onClick.AddListener(this.OnCloseBtnClick);
_btnShare.onClick.AddListener(this.OnShareBtnClick);
_btnEndReward.onClick.AddListener(this.OnEndRewardBtnClick);
_btnShowMember.onClick.AddListener(this.OnShowMemberBtnClick);
__listRewards.AddTemplate<RewardItemWidget>(true);
__listMember.AddTemplate<MemberCellWidget>(true);
_dailyRewardItemWidget = __goDaily.AddComponent<RewardItemWidget>();
}
/// <summary>
///
/// </summary>
public void RefreshView()
{
var activity = InviteProxy.Instance.inviteActivty;
_sldProgress.value = activity.curValue / (float)activity.maxValue;
var subInfos = activity.subInfos;
__listRewards.Clear();
bool showNext = false;
foreach (var subInfo in subInfos)
{
__listRewards.GetItem().SetData(subInfo);
if (!showNext && subInfo.status == 0)
{
showNext = true;
_tmpNext.text = (subInfo.maxValue - subInfo.curValue).ToString();
}
}
var dailyRewardActivity = ActivityProxy.Instance.GetActivity(800);
if (dailyRewardActivity != null)
{
if (TimeProxy.Instance.GetTimeKey(502))
{
dailyRewardActivity.subInfos[0].status = 1;
}
else
{
dailyRewardActivity.subInfos[0].status = 2;
}
_dailyRewardItemWidget.SetData(dailyRewardActivity);
}
}
void OnShareBtnClick()
{
InviteProxy.Instance.InviteShare((error, message) =>
{
if (error == 0)
ToastBox.ShowText("分享成功");
else
ToastBox.ShowText(message);
});
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
void OnShowMemberBtnClick()
{
_goMember.SetActive(true);
__listMember.Clear();
InviteProxy.Instance.GetInviteList((error, message) =>
{
if (error == 0)
{
var friendInfos = InviteProxy.Instance.friendInfos;
foreach (var item in friendInfos)
{
__listMember.GetItem().SetData(item);
}
}
});
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
void OnEndRewardBtnClick()
{
var activity = InviteProxy.Instance.inviteActivty;
if (activity.curValue >= activity.maxValue)
{
InviteProxy.Instance.GetRewards(activity, (error, message) =>
{
if (error == 0)
{
PostNotification(GlobalDefine.EVENT_MONEY_CHANGED);
ToastBox.ShowText("领取成功");
}
else
{
ToastBox.ShowText(message);
}
});
}
else
{
ToastBox.ShowText("活动未完成");
}
}
void OnCloseBtnClick()
{
CloseWindow(this);
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
#endregion
}
}