OvertakingLegend/Assets/UIFrameWork/Script/SkillUIObj/SkillUIObj.cs

344 lines
10 KiB
C#

using BX;
using Config.config;
using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// 技能UI对象
/// </summary>
public partial class SkillUIObj : MonoBehaviour
{
/// <summary>
/// 广告次数
/// </summary>y
private int adNumber;
/// <summary>
/// 技能id
/// </summary>
public string skillId;
/// <summary>
/// 是否看广告
/// </summary>
private bool isAD;
/// <summary>
/// 技能图标
/// </summary>
public Image skillIcon;
/// <summary>
/// 等级
/// </summary>
public TextMeshProUGUI lvText;
/// <summary>
/// 技能名称
/// </summary>
public TextMeshProUGUI skillNameText;
/// <summary>
/// 使用
/// </summary>
public TextMeshProUGUI useText;
/// <summary>
/// 解锁金币
/// </summary>
public TextMeshProUGUI unlockMoneyText;
/// <summary>
/// 广告解锁
/// </summary>
public TextMeshProUGUI aDUnlockText;
/// <summary>
/// 升级金币
/// </summary>
public TextMeshProUGUI upgradeMoneyText;
/// <summary>
/// 广告升级
/// </summary>
public TextMeshProUGUI aDupgradeText;
/// <summary>
/// 试用显示
/// </summary>
public TextMeshProUGUI tryOutText;
/// <summary>
/// 升级
/// </summary>
public Button upgrade;
/// <summary>
/// 试用
/// </summary>
public Button tryOutBtn;
/// <summary>
/// 使用
/// </summary>
public Button useBtn;
/// <summary>
/// 购买
/// </summary>
public Button purchaseBtn;
/// <summary>
/// 技能配置
/// </summary>
private SkillConfig skillConfig;
/// <summary>
/// 金币升级
/// </summary>
public GameObject moneyUpgrade;
/// <summary>
/// 广告升级
/// </summary>
public GameObject adUpgrade;
/// <summary>
/// 金币解锁
/// </summary>
public GameObject moneyUnlock;
/// <summary>
/// 金币解锁
/// </summary>
public GameObject adUnlock;
private void Start()
{
Init();
PurchaseBtnListener();
UseBtnListener();
UpgradeListener();
TryOutBtnListener();
SweepAway();
}
/// <summary>
/// 初始化
/// </summary>
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<Sprite>(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<Image>();
if ( UserDataManager.Instance.userData.skillId==skillId)
{
tryOutText.text = "On Trial";
tryImage.sprite = YooAssetManager.Instance.LoadAssetSync<Sprite>(PackagesName.GameData, "GrayishYellowBtn");
}
else
{
tryOutText.text = " Try Out";
tryImage.sprite = YooAssetManager.Instance.LoadAssetSync<Sprite>(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<string, object>()
{
{"Position","RV_GetSkill"}
});
isAD = true;
aDUnlockText.text = "(" + 0 + "/" +1+ ")";
adUnlock.gameObject.SetActive(true);
}
}
}
/// <summary>
/// 缩放
/// </summary>
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);
});
});
}
/// <summary>
/// 购买监听
/// </summary>
private void PurchaseBtnListener()
{
purchaseBtn.onClick.AddListener(() =>
{
if (isAD)
{
SDKManager.Instance.ShowReward("RV_GetSkill", () =>
{
AudioManager.Instance.PlaySound(YooAssetManager.Instance.LoadAssetSync<AudioClip>(PackagesName.GameData, "Purchase"));
UserDataManager.Instance.AddSkill(skillId);
Init();
});
}
else
{
if (UserDataManager.Instance.RemoveMoney(skillConfig.UnlockMoney))
{
AudioManager.Instance.PlaySound(YooAssetManager.Instance.LoadAssetSync<AudioClip>(PackagesName.GameData, "Purchase"));
UserDataManager.Instance.AddSkill(skillId);
Init();
}
}
});
}
/// <summary>
/// 使用按钮监听
/// </summary>
private void UseBtnListener()
{
useBtn.onClick.AddListener(() =>
{
if (UserDataManager.Instance.userData.skillId != skillId)
{
UserDataManager.Instance.SetSkillId(skillId);
UIManager.Instance.GetUI<ShopUI>().SetSkillUIObjs();
Zoom();
}
});
}
/// <summary>
/// 升级按钮监听
/// </summary>
private void UpgradeListener()
{
upgrade.onClick.AddListener(() =>
{
if (isAD)
{
SDKManager.Instance.ShowReward("RV_UpgradeSkill", () =>
{
adNumber++;
AudioManager.Instance.PlaySound(YooAssetManager.Instance.LoadAssetSync<AudioClip>(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<AudioClip>(PackagesName.GameData, "Purchase"));
UIManager.Instance.GetUI<ShopUI>().SetSkillUIObjs();
UserDataManager.Instance.AddSkill(skillId);
Init();
Zoom();
}
else
{
UIManager.Instance.GetUI<TopmostLayerUI>().SetTips(MyConstant.BeShortOfGoldCoins);
}
}
});
}
/// <summary>
/// 试用按钮监听
/// </summary>
private void TryOutBtnListener()
{
tryOutBtn.onClick.AddListener(() =>
{
if (UserDataManager.Instance.userData.skillId == skillId) return;
UserDataManager.Instance.SetSkillId(skillId);
UIManager.Instance.GetUI<ShopUI>().SetSkillUIObjs();
UIManager.Instance.GetUI<ShopUI>().DesSweepAway();
Zoom();
});
}
}