344 lines
10 KiB
C#
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();
|
|
});
|
|
}
|
|
}
|