备份CatanBuilding瘦身独立工程
This commit is contained in:
79
Assets/Scripts/UI/CommunityGuidanceSlot.cs
Normal file
79
Assets/Scripts/UI/CommunityGuidanceSlot.cs
Normal file
@@ -0,0 +1,79 @@
|
||||
using asap.core;
|
||||
using cfg;
|
||||
using game;
|
||||
using GameCore;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Assertions;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class CommunityGuidanceSlot : MonoBehaviour
|
||||
{
|
||||
private Button _btnGo;
|
||||
private GameObject _goReward;
|
||||
private Image _iconReward;
|
||||
private TMP_Text _textRewardCount;
|
||||
private PlayerItemData _playerItemData;
|
||||
private TbDrop _tbDrop;
|
||||
private TbItem _tbItem;
|
||||
private string _url;
|
||||
private int _dropId;
|
||||
private IFootPrintService _footPrintService;
|
||||
private EFootPrint _footPrintRewardClaim;
|
||||
private bool HasRewardToClaim => GContext.container.Resolve<FishingEventData>().IsJoinUsPanelOpen && _dropId != 0 &&
|
||||
!_footPrintService.HasFootPrint(_footPrintRewardClaim);
|
||||
private string _name;
|
||||
public void Init(CommunityGuidancePanel.CommunityGuidanceCtx ctx)
|
||||
{
|
||||
_btnGo = transform.Find("btn_go/btn_green").GetComponent<Button>();
|
||||
_goReward = transform.Find("reward").gameObject;
|
||||
_iconReward = transform.Find("reward/p_icon").GetComponent<Image>();
|
||||
_textRewardCount = transform.Find("reward/p_text_num").GetComponent<TMP_Text>();
|
||||
Assert.IsTrue(_btnGo && _goReward && _iconReward && _textRewardCount,
|
||||
$"{_btnGo}, {_goReward}, {_iconReward} and {_textRewardCount} should not be null.");
|
||||
_url = ctx.Url;
|
||||
_dropId = ctx.DropId;
|
||||
_playerItemData = ctx.PlayerItemData;
|
||||
_tbDrop = ctx.TableDrop;
|
||||
_tbItem = ctx.TableItem;
|
||||
_footPrintService = ctx.FootPrintService;
|
||||
_footPrintRewardClaim = (EFootPrint) (1 << ctx.Index);
|
||||
SetRewardPresentation();
|
||||
_btnGo.onClick.AddListener(OnClickGo);
|
||||
_name = ctx.Name;
|
||||
}
|
||||
private void OnClickGo()
|
||||
{
|
||||
Application.OpenURL(_url);
|
||||
var EVHasUnclaimedReward = HasRewardToClaim ? 1 : 0;
|
||||
// Debug.Log($"{EVHasUnclaimedReward}");
|
||||
// Debug.Log($"{_name}");
|
||||
#if AGG
|
||||
using (var e = GEvent.GameEvent("join_us"))
|
||||
{
|
||||
e.AddContent("unclaimed_reward", EVHasUnclaimedReward)
|
||||
.AddContent("click_position", _name);
|
||||
}
|
||||
#endif
|
||||
if (!HasRewardToClaim)
|
||||
return;
|
||||
_playerItemData.AddItemByDrop(_dropId);
|
||||
GContext.Publish(new ShowData());
|
||||
_footPrintService.UpdateFootPrint(_footPrintRewardClaim);
|
||||
SetRewardPresentation();
|
||||
|
||||
}
|
||||
|
||||
private async void SetRewardPresentation()
|
||||
{
|
||||
if (!HasRewardToClaim)
|
||||
{
|
||||
_goReward.SetActive(false);
|
||||
return;
|
||||
}
|
||||
var drop = _tbDrop[_dropId].DropList;
|
||||
await GContext.container.Resolve<IUIService>().SetImageSprite(_iconReward, _tbItem[drop.DropIDList[0]].Icon);
|
||||
_textRewardCount.text = drop.DropCountList[0].ToString();
|
||||
_goReward.SetActive(true);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user