193 lines
7.0 KiB
C#
193 lines
7.0 KiB
C#
using asap.core;
|
|
using cfg;
|
|
using game;
|
|
using GameCore;
|
|
using TMPro;
|
|
using tysdk;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class BindAccountPopupPanel : MonoBehaviour
|
|
{
|
|
IUserService userService;
|
|
Button btn_close;
|
|
Button btn_close1;
|
|
|
|
public Button btn_facebookbtn;
|
|
public GameObject btn_facebookrewardPanel;
|
|
public TMP_Text btn_facebookrewardText;
|
|
public Image btn_facebookp_icon;
|
|
|
|
public Button btn_googlebtn;
|
|
public GameObject btn_googlerewardPanel;
|
|
public TMP_Text btn_googlerewardText;
|
|
public Image btn_googlep_icon;
|
|
|
|
public Button btn_applebtn;
|
|
public GameObject btn_applerewardPanel;
|
|
public TMP_Text btn_applerewardText;
|
|
public Image btn_applep_icon;
|
|
|
|
public Button btn_delete;
|
|
|
|
int rewardID;
|
|
ItemData itemData;
|
|
private void Awake()
|
|
{
|
|
userService = GContext.container.Resolve<IUserService>();
|
|
btn_close1 = transform.Find("btn_close").GetComponent<Button>();
|
|
btn_close = transform.Find("mask").GetComponent<Button>();
|
|
|
|
btn_googlebtn = transform.Find("root/layout/btn_google/btn_green").GetComponent<Button>();
|
|
btn_googlerewardPanel = transform.Find("root/layout/btn_google/btn_green/Ani_Container/reward").gameObject;
|
|
btn_googlerewardText = transform.Find("root/layout/btn_google/btn_green/Ani_Container/reward/p_text_num").GetComponent<TMP_Text>();
|
|
btn_googlep_icon = transform.Find("root/layout/btn_google/btn_green/Ani_Container/reward/p_icon").GetComponent<Image>();
|
|
|
|
btn_facebookbtn = transform.Find("root/layout/btn_facebook/btn_green").GetComponent<Button>();
|
|
btn_facebookrewardPanel = transform.Find("root/layout/btn_facebook/btn_green/Ani_Container/reward").gameObject;
|
|
btn_facebookrewardText = transform.Find("root/layout/btn_facebook/btn_green/Ani_Container/reward/p_text_num").GetComponent<TMP_Text>();
|
|
btn_facebookp_icon = transform.Find("root/layout/btn_facebook/btn_green/Ani_Container/reward/p_icon").GetComponent<Image>();
|
|
|
|
btn_applebtn = transform.Find("root/layout/btn_apple/btn_green").GetComponent<Button>();
|
|
btn_applerewardPanel = transform.Find("root/layout/btn_apple/btn_green/Ani_Container/reward").gameObject;
|
|
btn_applerewardText = transform.Find("root/layout/btn_apple/btn_green/Ani_Container/reward/p_text_num").GetComponent<TMP_Text>();
|
|
btn_applep_icon = transform.Find("root/layout/btn_apple/btn_green/Ani_Container/reward/p_icon").GetComponent<Image>();
|
|
|
|
#if UNITY_IOS
|
|
var google_obj = transform.Find("root/layout/btn_google");
|
|
if(google_obj != null)
|
|
google_obj.gameObject.SetActive(false);
|
|
|
|
var apple_obj = transform.Find("root/layout/btn_apple");
|
|
if(apple_obj != null)
|
|
apple_obj.gameObject.SetActive(true);
|
|
#else
|
|
var google_obj = transform.Find("root/layout/btn_google");
|
|
if (google_obj != null)
|
|
google_obj.gameObject.SetActive(true);
|
|
|
|
var apple_obj = transform.Find("root/layout/btn_apple");
|
|
if (apple_obj != null)
|
|
apple_obj.gameObject.SetActive(false);
|
|
#endif
|
|
}
|
|
private void Start()
|
|
{
|
|
rewardID = GContext.container.Resolve<Tables>().TbGlobalConfig.AccountLinkReward;
|
|
itemData = GContext.container.Resolve<PlayerItemData>().GetItemDataOne(rewardID);
|
|
btn_close.onClick.AddListener(OnClose);
|
|
btn_close1.onClick.AddListener(OnClose);
|
|
|
|
btn_facebookbtn.interactable = false;
|
|
btn_facebookrewardPanel.SetActive(false);
|
|
btn_facebookbtn.onClick.AddListener(OnBtnFacebook);
|
|
|
|
btn_googlebtn.interactable = false;
|
|
btn_googlerewardPanel.SetActive(false);
|
|
btn_googlebtn.onClick.AddListener(OnBtnGoogle);
|
|
|
|
btn_applebtn.interactable = false;
|
|
btn_applerewardPanel.SetActive(false);
|
|
btn_applebtn.onClick.AddListener(OnBtnApple);
|
|
|
|
btn_delete.onClick.AddListener(OnBtnDelete);
|
|
|
|
SetMaterial();
|
|
}
|
|
|
|
void SetMaterial()
|
|
{
|
|
bool isLinkGoogle = false;
|
|
bool isLinkFacebook = false;
|
|
bool isLinkApple = false;
|
|
if (TYSdkFacade.TYAccountInfo != null)
|
|
{
|
|
isLinkGoogle = TYSdkFacade.TYAccountInfo.linkedAccout.Contains(EAccoutType.hwGoogle);
|
|
isLinkFacebook = TYSdkFacade.TYAccountInfo.linkedAccout.Contains(EAccoutType.hwFacebook);
|
|
isLinkApple = TYSdkFacade.TYAccountInfo.linkedAccout.Contains(EAccoutType.Apple);
|
|
}
|
|
|
|
Item item = GContext.container.Resolve<Tables>().TbItem.GetOrDefault(itemData.id);
|
|
|
|
IUIService uIService = GContext.container.Resolve<IUIService>();
|
|
if (!isLinkGoogle)
|
|
{
|
|
btn_googlerewardText.text = itemData.count.ToString();
|
|
uIService.SetImageSprite(btn_googlep_icon, item.Icon, BasePanel.PanelName);
|
|
}
|
|
if (!isLinkFacebook)
|
|
{
|
|
btn_facebookrewardText.text = itemData.count.ToString();
|
|
uIService.SetImageSprite(btn_facebookp_icon, item.Icon, BasePanel.PanelName);
|
|
}
|
|
|
|
if (!isLinkApple)
|
|
{
|
|
btn_applerewardText.text = itemData.count.ToString();
|
|
uIService.SetImageSprite(btn_applep_icon, item.Icon, BasePanel.PanelName);
|
|
}
|
|
|
|
btn_googlebtn.interactable = !isLinkGoogle;
|
|
btn_facebookbtn.interactable = !isLinkFacebook;
|
|
btn_applebtn.interactable = !isLinkApple;
|
|
|
|
btn_googlerewardPanel.SetActive(!isLinkGoogle);
|
|
btn_facebookrewardPanel.SetActive(!isLinkFacebook);
|
|
btn_applerewardPanel.SetActive(!isLinkApple);
|
|
}
|
|
|
|
async void OnBtnGoogle()
|
|
{
|
|
var result = await userService.LinkAccount(EAccoutType.hwGoogle);
|
|
if (result)
|
|
{
|
|
PlayFabMgr.Instance.UpdateUserDataValue(EAccoutType.hwGoogle.ToString(), "1");
|
|
btn_googlebtn.interactable = false;
|
|
btn_googlerewardPanel.SetActive(false);
|
|
GetReward();
|
|
}
|
|
}
|
|
|
|
async void OnBtnFacebook()
|
|
{
|
|
var result = await userService.LinkAccount(EAccoutType.hwFacebook);
|
|
if (result)
|
|
{
|
|
PlayFabMgr.Instance.UpdateUserDataValue(EAccoutType.hwFacebook.ToString(), "1");
|
|
btn_facebookbtn.interactable = false;
|
|
btn_facebookrewardPanel.SetActive(false);
|
|
GetReward();
|
|
}
|
|
}
|
|
|
|
async void OnBtnApple()
|
|
{
|
|
var result = await userService.LinkAccount(EAccoutType.Apple);
|
|
if (result)
|
|
{
|
|
PlayFabMgr.Instance.UpdateUserDataValue(EAccoutType.Apple.ToString(), "1");
|
|
btn_applebtn.interactable = false;
|
|
btn_applerewardPanel.SetActive(false);
|
|
GetReward();
|
|
}
|
|
}
|
|
|
|
private void OnBtnDelete()
|
|
{
|
|
tysdk.TYSdkFacade.Instance.Signout();
|
|
RootCtx.ExitGame();
|
|
}
|
|
|
|
void GetReward()
|
|
{
|
|
GContext.container.Resolve<PlayerItemData>().AddItem(itemData);
|
|
GContext.Publish(new ShowData(itemData));
|
|
GContext.Publish(new ShowData());
|
|
GContext.container.Resolve<PlayerShopData>().GetSKUs();
|
|
}
|
|
protected virtual void OnClose()
|
|
{
|
|
UIManager.Instance.DestroyUI(UITypes.BindAccountPopupPanel);
|
|
}
|
|
}
|