using BX; using Config.config; using DG.Tweening; using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; /// /// 技能UI对象 /// public partial class SkillUIObj : MonoBehaviour { /// /// 广告次数 /// y private int adNumber; /// /// 技能id /// public string skillId; /// /// 是否看广告 /// private bool isAD; /// /// 技能图标 /// public Image skillIcon; /// /// 等级 /// public TextMeshProUGUI lvText; /// /// 技能名称 /// public TextMeshProUGUI skillNameText; /// /// 使用 /// public TextMeshProUGUI useText; /// /// 解锁金币 /// public TextMeshProUGUI unlockMoneyText; /// /// 广告解锁 /// public TextMeshProUGUI aDUnlockText; /// /// 升级金币 /// public TextMeshProUGUI upgradeMoneyText; /// /// 广告升级 /// public TextMeshProUGUI aDupgradeText; /// /// 试用显示 /// public TextMeshProUGUI tryOutText; /// /// 升级 /// public Button upgrade; /// /// 试用 /// public Button tryOutBtn; /// /// 使用 /// public Button useBtn; /// /// 购买 /// public Button purchaseBtn; /// /// 技能配置 /// private SkillConfig skillConfig; /// /// 金币升级 /// public GameObject moneyUpgrade; /// /// 广告升级 /// public GameObject adUpgrade; /// /// 金币解锁 /// public GameObject moneyUnlock; /// /// 金币解锁 /// public GameObject adUnlock; private void Start() { Init(); PurchaseBtnListener(); UseBtnListener(); UpgradeListener(); TryOutBtnListener(); SweepAway(); } /// /// 初始化 /// public void Init() { isAD = false; skillConfig = ConfigManager.Instance.Tables.TbSkillConfig.Get(skillId); adNumber = 0; upgrade.gameObject.SetActive(false); tryOutBtn.gameObject.SetActive(false); useBtn.gameObject.SetActive(false); purchaseBtn.gameObject.SetActive(false); moneyUpgrade.gameObject.SetActive(false); adUpgrade.gameObject.SetActive(false); moneyUnlock.gameObject.SetActive(false); adUnlock.gameObject.SetActive(false); skillIcon.sprite = YooAssetManager.Instance.LoadAssetSync(PackagesName.GameData,skillId+"Icon"); skillNameText.text = skillConfig.SkillName; if (UserDataManager.Instance.userData.skillData.ContainsKey(skillId)) { upgrade.gameObject.SetActive(true); useBtn.gameObject.SetActive(true); lvText.text = "LV:" + UserDataManager.Instance.userData.skillData[skillId].lv; if (UserDataManager.Instance.userData.skillData[skillId].lv>=skillConfig.MaxLv) { moneyUpgrade.gameObject.SetActive(true); lvText.text = "MAX"; upgradeMoneyText.text = "MAX"; upgrade.interactable = false; } else { if (UserDataManager.Instance.userData.money >= UserDataManager.Instance.UpgradeMoney(skillId)) { moneyUpgrade.gameObject.SetActive(true); upgradeMoneyText.text = UserDataManager.Instance.UpgradeMoney(skillId).ToString(); } else { isAD = true; UserDataManager.Instance.AddSlillUpgrade(skillId); adUpgrade.gameObject.SetActive(true); aDupgradeText.text = "(" + adNumber + "/" + UserDataManager.Instance.userData.skillUpgradeData[skillId]+")"; } } if(UserDataManager.Instance.userData.skillId==skillId) { useText.text = "INUSE"; } else { useText.text = "USE"; } } else { if (UserDataManager.Instance.userData.tryOutSlill.Contains(skillId)) { tryOutBtn.gameObject.SetActive(false); } else { tryOutBtn.gameObject.SetActive(true); Image tryImage = tryOutBtn.GetComponent(); if ( UserDataManager.Instance.userData.skillId==skillId) { tryOutText.text = "On Trial"; tryImage.sprite = YooAssetManager.Instance.LoadAssetSync(PackagesName.GameData, "GrayishYellowBtn"); } else { tryOutText.text = " Try Out"; tryImage.sprite = YooAssetManager.Instance.LoadAssetSync(PackagesName.GameData, "YellowBtn"); } } purchaseBtn.gameObject.SetActive(true); if(UserDataManager.Instance.userData.money>= skillConfig.UnlockMoney) { moneyUnlock.gameObject.SetActive(true); unlockMoneyText.text = skillConfig.UnlockMoney.ToString(); } else { BXSdk.Instance.LogEvent("RV_Button_Show", new System.Collections.Generic.Dictionary() { {"Position","RV_GetSkill"} }); isAD = true; aDUnlockText.text = "(" + 0 + "/" +1+ ")"; adUnlock.gameObject.SetActive(true); } } } /// /// 缩放 /// public void Zoom() { this.transform.localScale = Vector3.zero; this.transform.DOScale(Vector3.one * 1.1f, 0.2f).OnComplete(() => { this.transform.DOScale(Vector3.one * 0.8f, 0.1f).OnComplete(() => { this.transform.DOScale(Vector3.one, 0.1f); }); }); } /// /// 购买监听 /// private void PurchaseBtnListener() { purchaseBtn.onClick.AddListener(() => { if (isAD) { SDKManager.Instance.ShowReward("RV_GetSkill", () => { AudioManager.Instance.PlaySound(YooAssetManager.Instance.LoadAssetSync(PackagesName.GameData, "Purchase")); UserDataManager.Instance.AddSkill(skillId); Init(); }); } else { if (UserDataManager.Instance.RemoveMoney(skillConfig.UnlockMoney)) { AudioManager.Instance.PlaySound(YooAssetManager.Instance.LoadAssetSync(PackagesName.GameData, "Purchase")); UserDataManager.Instance.AddSkill(skillId); Init(); } } }); } /// /// 使用按钮监听 /// private void UseBtnListener() { useBtn.onClick.AddListener(() => { if (UserDataManager.Instance.userData.skillId != skillId) { UserDataManager.Instance.SetSkillId(skillId); UIManager.Instance.GetUI().SetSkillUIObjs(); Zoom(); } }); } /// /// 升级按钮监听 /// private void UpgradeListener() { upgrade.onClick.AddListener(() => { if (isAD) { SDKManager.Instance.ShowReward("RV_UpgradeSkill", () => { adNumber++; AudioManager.Instance.PlaySound(YooAssetManager.Instance.LoadAssetSync(PackagesName.GameData, "Purchase")); if (adNumber >= UserDataManager.Instance.userData.skillUpgradeData[skillId]) { UserDataManager.Instance.AddSkill(skillId); UserDataManager.Instance.SetSlillUpgrade(skillId); Zoom(); Init(); } else { aDupgradeText.text = "(" + adNumber + "/" + UserDataManager.Instance.userData.skillUpgradeData[skillId] + ")"; } }); } else { if (UserDataManager.Instance.RemoveMoney(UserDataManager.Instance.UpgradeMoney(skillId))) { AudioManager.Instance.PlaySound(YooAssetManager.Instance.LoadAssetSync(PackagesName.GameData, "Purchase")); UIManager.Instance.GetUI().SetSkillUIObjs(); UserDataManager.Instance.AddSkill(skillId); Init(); Zoom(); } else { UIManager.Instance.GetUI().SetTips(MyConstant.BeShortOfGoldCoins); } } }); } /// /// 试用按钮监听 /// private void TryOutBtnListener() { tryOutBtn.onClick.AddListener(() => { if (UserDataManager.Instance.userData.skillId == skillId) return; UserDataManager.Instance.SetSkillId(skillId); UIManager.Instance.GetUI().SetSkillUIObjs(); UIManager.Instance.GetUI().DesSweepAway(); Zoom(); }); } }