【通行证】购买高级资格
parent
b377c32ace
commit
0a11629497
|
|
@ -1751,7 +1751,6 @@ GameObject:
|
|||
- component: {fileID: 9184416937073047163}
|
||||
- component: {fileID: 7507133205640448359}
|
||||
- component: {fileID: 1175266164644359173}
|
||||
- component: {fileID: 8826445488111375163}
|
||||
m_Layer: 5
|
||||
m_Name: Text (TMP)
|
||||
m_TagString: Untagged
|
||||
|
|
@ -1876,19 +1875,6 @@ MonoBehaviour:
|
|||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!114 &8826445488111375163
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3101012754167002511}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4545b363802045e3a540e37e426a5df3, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
text_key: battlepass_buy_advanced
|
||||
--- !u!1 &3374729367730866501
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
|
|||
|
|
@ -8,6 +8,9 @@ using NLDPB;
|
|||
|
||||
public class BattlePassManager : Singlenton<BattlePassManager>
|
||||
{
|
||||
public static readonly int AdvancedID = 1;
|
||||
public static readonly int PremiumAdvancedID = 2;
|
||||
|
||||
public struct LevelReward
|
||||
{
|
||||
public int BasicRewardID;
|
||||
|
|
@ -32,6 +35,11 @@ public class BattlePassManager : Singlenton<BattlePassManager>
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 当前赛季通行证ID
|
||||
/// </summary>
|
||||
private int curBattlePassID;
|
||||
|
||||
/// <summary>
|
||||
/// 当前赛季通行证数据
|
||||
/// </summary>
|
||||
|
|
@ -39,27 +47,20 @@ public class BattlePassManager : Singlenton<BattlePassManager>
|
|||
|
||||
public DataBattlePass CurBattlePassData => curBattlePassData;
|
||||
|
||||
/// <summary>
|
||||
/// 当前赛季通行证ID
|
||||
/// </summary>
|
||||
private int curBattlePassID;
|
||||
|
||||
private DataBattlePassRewards curBattlePassRewards;
|
||||
|
||||
/// <summary>
|
||||
/// 当前赛季的等级奖励
|
||||
/// </summary>
|
||||
private Dictionary<int, LevelReward> curLevelRewards;
|
||||
|
||||
public Dictionary<int, LevelReward> CurLevelRewards => curLevelRewards;
|
||||
|
||||
/// <summary>
|
||||
/// 醒目等级
|
||||
/// </summary>
|
||||
private List<int> specialRewardLevels;
|
||||
|
||||
public Dictionary<int, LevelReward> CurLevelRewards => curLevelRewards;
|
||||
|
||||
public List<int> SpecialRewardLevels => specialRewardLevels;
|
||||
|
||||
|
||||
public void Init()
|
||||
{
|
||||
//EventManager.Instance.Register(EventManager.EventName.BattlePassGetAllReward, RefreshGetRewardLevel);
|
||||
|
|
@ -101,31 +102,53 @@ public class BattlePassManager : Singlenton<BattlePassManager>
|
|||
|
||||
public void Release()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取当前经验点数
|
||||
/// </summary>
|
||||
public int GetPointItemCount()
|
||||
{
|
||||
return (int)Actor.Instance.Logic.GetCount((uint)LogicID.BattlePassExp);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取通行证账号等级
|
||||
/// </summary>
|
||||
public int GetBattlePassLevel()
|
||||
{
|
||||
return (int)Actor.Instance.Logic.GetCount((uint)LogicID.BattlePassLevel);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取账号已领奖等级
|
||||
/// </summary>
|
||||
public int GetNormalRewardLevel()
|
||||
{
|
||||
return (int)Actor.Instance.Logic.GetCount((uint)LogicID.BattlePassRewardLevel);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取高级账号已领奖等级
|
||||
/// </summary>
|
||||
public int GetAdvancedRewardLevel()
|
||||
{
|
||||
return (int)Actor.Instance.Logic.GetCount((uint)LogicID.BattlePassAdvancedRewardLevel);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 是否开通高级奖励
|
||||
/// </summary>
|
||||
public bool IsAdvancedAccount()
|
||||
{
|
||||
return Actor.Instance.Logic.GetCount((uint)LogicID.BattlePassIsAdvanced) == 1;
|
||||
return Actor.Instance.Logic.GetCount((uint)LogicID.BattlePassIsAdvanced) >= 1;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取账号状态 0-无 1-高级账号 2-尊享版高级账号
|
||||
/// </summary>
|
||||
public int GetAdvancedAccount()
|
||||
{
|
||||
return (int)Actor.Instance.Logic.GetCount((uint)LogicID.BattlePassIsAdvanced);
|
||||
}
|
||||
}
|
||||
|
|
@ -189,6 +189,7 @@ public class UI_BattlePassController : UIWindow
|
|||
|
||||
public TMP_Text Text_Level;
|
||||
public TMP_Text Text_CurrentExp;
|
||||
public TMP_Text Text_AdvanceAccount;
|
||||
|
||||
public Slider Slider_Exp;
|
||||
|
||||
|
|
@ -288,6 +289,7 @@ public class UI_BattlePassController : UIWindow
|
|||
BindButton(Toggle_Task, OnClickTaskTab);
|
||||
|
||||
EventManager.Instance.Register(EventManager.EventName.UpdateTaskCompleted, RefreshUI);
|
||||
EventManager.Instance.Register(EventManager.EventName.BattlePassGetAllReward, RefreshUI);
|
||||
}
|
||||
|
||||
//invoke when open window
|
||||
|
|
@ -309,22 +311,29 @@ public class UI_BattlePassController : UIWindow
|
|||
{
|
||||
base.OnRelease();
|
||||
EventManager.Instance.Unregister(EventManager.EventName.UpdateTaskCompleted, RefreshUI);
|
||||
EventManager.Instance.Unregister(EventManager.EventName.BattlePassGetAllReward, RefreshUI);
|
||||
}
|
||||
|
||||
#region 刷新
|
||||
|
||||
private void RefreshUI()
|
||||
{
|
||||
// 等级
|
||||
Text_Level.text = BattlePassManager.Instance.GetBattlePassLevel().ToString();
|
||||
|
||||
// 经验
|
||||
var exp = GLConfig.Inst.data.BattlePassLevelUpRequirement;
|
||||
|
||||
var curExp = (float)BattlePassManager.Instance.GetPointItemCount();
|
||||
var sliceValue = curExp / exp;
|
||||
Slider_Exp.value = sliceValue;
|
||||
|
||||
Text_CurrentExp.text = curExp + "/" + exp;
|
||||
|
||||
// 高级账号
|
||||
var key = BattlePassManager.Instance.IsAdvancedAccount()
|
||||
? "battlepass_have_advanced"
|
||||
: "battlepass_buy_advanced";
|
||||
Text_AdvanceAccount.text = StringManager.Instance.GetTextByKey(key);
|
||||
|
||||
if (isShowTask)
|
||||
RefreshTaskPanel();
|
||||
else
|
||||
|
|
@ -447,7 +456,8 @@ public class UI_BattlePassController : UIWindow
|
|||
|
||||
if (index < taskTabKeys.Count)
|
||||
{
|
||||
var title = StringManager.Instance.GetTextByKey(taskTabKeys[index]);;
|
||||
var title = StringManager.Instance.GetTextByKey(taskTabKeys[index]);
|
||||
;
|
||||
taskTab.SetInfo(title, () => OnClickTaskBtn(index));
|
||||
taskTab.Refresh(curTabBtnID);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ using PhxhSDK;
|
|||
using Gameplay;
|
||||
using Framework;
|
||||
using UnityEngine;
|
||||
using Gameplay.Net;
|
||||
using cfg.ActorCfg;
|
||||
using cfg.ChargeCfg;
|
||||
using Cysharp.Threading.Tasks;
|
||||
|
|
@ -37,9 +38,15 @@ public class UI_BattlePassPurchaseController : UIWindow
|
|||
baseItem = new GenericItem(FindObj("Reward/GenericItem"));
|
||||
}
|
||||
|
||||
public void SetInfo(int itemID)
|
||||
public void SetInfo(int itemID, int itemCount)
|
||||
{
|
||||
baseItem.SetInfo(itemID);
|
||||
baseItem.SetInfo(itemID, itemCount);
|
||||
|
||||
var items = TableManager.Instance.Tables.Item.DataMap;
|
||||
if (items.TryGetValue(itemID, out var item))
|
||||
{
|
||||
itemName.text = StringManager.Instance.GetTextByKey(item.NameLocal);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -57,9 +64,9 @@ public class UI_BattlePassPurchaseController : UIWindow
|
|||
|
||||
#endregion
|
||||
|
||||
private List<int> leftItemID;
|
||||
private Dictionary<int, int> leftItemID;
|
||||
|
||||
private List<int> rightItemID;
|
||||
private Dictionary<int, int> rightItemID;
|
||||
|
||||
private List<DataRewards> rewardsCfgList;
|
||||
|
||||
|
|
@ -71,15 +78,15 @@ public class UI_BattlePassPurchaseController : UIWindow
|
|||
{
|
||||
UI_BattlePassPurchaseBinder.GetComponents(this);
|
||||
|
||||
leftItemID = new List<int>();
|
||||
rightItemID = new List<int>();
|
||||
leftItemID = new Dictionary<int, int>();
|
||||
rightItemID = new Dictionary<int, int>();
|
||||
rewardsCfgList = TableManager.Instance.Tables.Rewards.DataList;
|
||||
|
||||
BindButton(Button_Back, OnCloseBtnClick);
|
||||
BindButton(Button_Home, OnHomeBtnClick);
|
||||
|
||||
BindButton(Button_NormalPurchase, () => OnNormalPurchase(true));
|
||||
BindButton(Button_AdvancedPurchase, () => OnNormalPurchase(false));
|
||||
BindButton(Button_NormalPurchase, OnNormalPurchase);
|
||||
BindButton(Button_AdvancedPurchase, OnAdvancedPurchase);
|
||||
|
||||
// 通行证描述
|
||||
for (var i = 1; i <= 3; i++)
|
||||
|
|
@ -131,7 +138,7 @@ public class UI_BattlePassPurchaseController : UIWindow
|
|||
private void RefreshItem()
|
||||
{
|
||||
var rewardsList = BattlePassManager.Instance.CurBattlePassData.AdvancedPassExtraRewards;
|
||||
if (rewardsList == null || rewardsList.Count != 2)
|
||||
if (rewardsList == null || rewardsList.Count != 3)
|
||||
{
|
||||
DebugUtil.LogError("BattlePass AdvancedPassExtraRewards {0} 配置错误",
|
||||
BattlePassManager.Instance.CurBattlePassData.ID);
|
||||
|
|
@ -139,18 +146,25 @@ public class UI_BattlePassPurchaseController : UIWindow
|
|||
}
|
||||
|
||||
var leftRewardsID = rewardsList[0];
|
||||
var rightRewardsID = rewardsList[1];
|
||||
var rightRewardsID = BattlePassManager.Instance.GetAdvancedAccount() != BattlePassManager.AdvancedID
|
||||
? rewardsList[1]
|
||||
: rewardsList[2];
|
||||
|
||||
leftItemID.Clear();
|
||||
rightItemID.Clear();
|
||||
|
||||
var items = TableManager.Instance.Tables.Item.DataMap;
|
||||
|
||||
foreach (var rewardID in rewardsCfgList)
|
||||
{
|
||||
if (!items.TryGetValue(rewardID.ItemID, out var dataItem) || dataItem.ShowInStorage)
|
||||
continue;
|
||||
|
||||
if (rewardID.Id == leftRewardsID)
|
||||
leftItemID.Add(rewardID.ItemID);
|
||||
leftItemID[rewardID.ItemID] = rewardID.MaxCount;
|
||||
|
||||
if (rewardID.Id == rightRewardsID)
|
||||
rightItemID.Add(rewardID.ItemID);
|
||||
rightItemID[rewardID.ItemID] = rewardID.MaxCount;
|
||||
}
|
||||
|
||||
CreateScrollView();
|
||||
|
|
@ -175,7 +189,7 @@ public class UI_BattlePassPurchaseController : UIWindow
|
|||
foreach (var itemID in leftItemID)
|
||||
{
|
||||
var rewardItem = new RewardItem(go);
|
||||
rewardItem.SetInfo(itemID);
|
||||
rewardItem.SetInfo(itemID.Key, itemID.Value);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -187,7 +201,7 @@ public class UI_BattlePassPurchaseController : UIWindow
|
|||
foreach (var itemID in rightItemID)
|
||||
{
|
||||
var rewardItem = new RewardItem(go);
|
||||
rewardItem.SetInfo(itemID);
|
||||
rewardItem.SetInfo(itemID.Key, itemID.Value);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -205,7 +219,7 @@ public class UI_BattlePassPurchaseController : UIWindow
|
|||
{
|
||||
var languageType = StringManager.GetLoginLanguageType();
|
||||
var priceIDList = BattlePassManager.Instance.CurBattlePassData.AdvancedPassPrice;
|
||||
if (priceIDList == null || priceIDList.Count != 2)
|
||||
if (priceIDList == null || priceIDList.Count != 3)
|
||||
{
|
||||
DebugUtil.LogError("BattlePass AdvancedPassPrice {0} 配置错误",
|
||||
BattlePassManager.Instance.CurBattlePassData.ID);
|
||||
|
|
@ -232,18 +246,54 @@ public class UI_BattlePassPurchaseController : UIWindow
|
|||
|
||||
#region 点击事件
|
||||
|
||||
private void OnNormalPurchase(bool normalPrice)
|
||||
private void OnNormalPurchase()
|
||||
{
|
||||
// 已经为高级账号
|
||||
if (BattlePassManager.Instance.IsAdvancedAccount())
|
||||
return;
|
||||
|
||||
var data = BattlePassManager.Instance.CurBattlePassData.AdvancedPassPrice;
|
||||
var currencyData = TableManager.Instance.Tables.CurrencyShopCfg.DataMap;
|
||||
if (data == null || data.Count != 2)
|
||||
if (data == null || data.Count != 3)
|
||||
{
|
||||
DebugUtil.LogError("BattlePass AdvancedPassPrice {0} 配置错误",
|
||||
BattlePassManager.Instance.CurBattlePassData.ID);
|
||||
return;
|
||||
}
|
||||
|
||||
var currencyID = normalPrice ? data[0] : data[1];
|
||||
var currencyID = data[0];
|
||||
|
||||
DebugUtil.Log("内购商品ID:{0}", currencyID);
|
||||
if (!currencyData.TryGetValue(currencyID, out var dataCurrencyShopCfg))
|
||||
{
|
||||
DebugUtil.LogError("CurrencyShopCfg 没有 {0} 配置的内购商品", data[0]);
|
||||
return;
|
||||
}
|
||||
|
||||
OnPurchase(dataCurrencyShopCfg);
|
||||
}
|
||||
|
||||
private void OnAdvancedPurchase()
|
||||
{
|
||||
// 已经购买
|
||||
if (BattlePassManager.Instance.GetAdvancedAccount() == BattlePassManager.PremiumAdvancedID)
|
||||
return;
|
||||
|
||||
var data = BattlePassManager.Instance.CurBattlePassData.AdvancedPassPrice;
|
||||
var currencyData = TableManager.Instance.Tables.CurrencyShopCfg.DataMap;
|
||||
if (data == null || data.Count != 3)
|
||||
{
|
||||
DebugUtil.LogError("BattlePass AdvancedPassPrice {0} 配置错误",
|
||||
BattlePassManager.Instance.CurBattlePassData.ID);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
var currencyID = BattlePassManager.Instance.GetAdvancedAccount() == BattlePassManager.AdvancedID
|
||||
? data[1]
|
||||
: data[2];
|
||||
|
||||
DebugUtil.Log("内购商品ID:{0}", currencyID);
|
||||
if (!currencyData.TryGetValue(currencyID, out var dataCurrencyShopCfg))
|
||||
{
|
||||
DebugUtil.LogError("CurrencyShopCfg 没有 {0} 配置的内购商品", data[0]);
|
||||
|
|
@ -255,6 +305,9 @@ public class UI_BattlePassPurchaseController : UIWindow
|
|||
|
||||
private async void OnPurchase(DataCurrencyShopCfg cfg)
|
||||
{
|
||||
NetHelper.InAppPurchaseTest((uint)cfg.Id);
|
||||
return;
|
||||
|
||||
#if UNITY_IOS
|
||||
// ios 只走苹果内购
|
||||
IAPManager.Instance.SetCurrentPayChannel(IAPManager.PayChannel.Apple);
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ public class UI_BattlePassBinder
|
|||
window.Slider_Exp = window.GetComponent<Slider>("BattlePass/Main/MainNode/Top/Slider_Exp");
|
||||
window.Button_PurchaseLevel = window.GetComponent<Button>("BattlePass/Main/MainNode/Top/Button");
|
||||
window.Button_AdvanceAccount = window.GetComponent<Button>("BattlePass/Main/MainNode/BottomNode/Button_AdvanceAccount");
|
||||
window.Text_AdvanceAccount = window.GetComponent<TMP_Text>("BattlePass/Main/MainNode/BottomNode/Button_AdvanceAccount/Text (TMP)");
|
||||
window.Button_Claim = window.GetComponent<Button>("BattlePass/Main/MainNode/BottomNode/Button_Claim");
|
||||
window.Button_UnLockAdvanced = window.GetComponent<Button>("BattlePass/Main/MainNode/ScrollNode/RewardNode/AdvancedReward/Button_UnLockAdvanced");
|
||||
window.ScrollView_NormalReward = window.GetComponent<PhxhScrollView>("BattlePass/Main/MainNode/ScrollNode/RewardNode/NormalReward/ScrollView_NormalReward");
|
||||
|
|
|
|||
|
|
@ -27059,6 +27059,19 @@
|
|||
"OutCalculate": [],
|
||||
"CalculateType": 0
|
||||
},
|
||||
{
|
||||
"Key": "battlepass_have_advanced",
|
||||
"Name": {
|
||||
"key": "battlepass_have_advanced",
|
||||
"text": "高级资格已激活"
|
||||
},
|
||||
"Param0": "",
|
||||
"Param1": "",
|
||||
"Param2": "",
|
||||
"InnerCalculate": false,
|
||||
"OutCalculate": [],
|
||||
"CalculateType": 0
|
||||
},
|
||||
{
|
||||
"Key": "battlepass_get_reward",
|
||||
"Name": {
|
||||
|
|
|
|||
|
|
@ -27059,6 +27059,19 @@
|
|||
"OutCalculate": [],
|
||||
"CalculateType": 0
|
||||
},
|
||||
{
|
||||
"Key": "battlepass_have_advanced",
|
||||
"Name": {
|
||||
"key": "battlepass_have_advanced",
|
||||
"text": ""
|
||||
},
|
||||
"Param0": "",
|
||||
"Param1": "",
|
||||
"Param2": "",
|
||||
"InnerCalculate": false,
|
||||
"OutCalculate": [],
|
||||
"CalculateType": 0
|
||||
},
|
||||
{
|
||||
"Key": "battlepass_get_reward",
|
||||
"Name": {
|
||||
|
|
|
|||
|
|
@ -1532,6 +1532,27 @@
|
|||
"MinCount": 1000,
|
||||
"MaxCount": 1000
|
||||
},
|
||||
{
|
||||
"Id": 930003,
|
||||
"RewardType": 0,
|
||||
"ItemID": 2,
|
||||
"MinCount": 200,
|
||||
"MaxCount": 200
|
||||
},
|
||||
{
|
||||
"Id": 930003,
|
||||
"RewardType": 0,
|
||||
"ItemID": 1110001,
|
||||
"MinCount": 10,
|
||||
"MaxCount": 10
|
||||
},
|
||||
{
|
||||
"Id": 930003,
|
||||
"RewardType": 0,
|
||||
"ItemID": 1220001,
|
||||
"MinCount": 1000,
|
||||
"MaxCount": 1000
|
||||
},
|
||||
{
|
||||
"Id": 931001,
|
||||
"RewardType": 0,
|
||||
|
|
|
|||
|
|
@ -12,11 +12,13 @@
|
|||
],
|
||||
"AdvancedPassPrice": [
|
||||
7,
|
||||
8
|
||||
8,
|
||||
9
|
||||
],
|
||||
"AdvancedPassExtraRewards": [
|
||||
930001,
|
||||
930002
|
||||
930002,
|
||||
930003
|
||||
],
|
||||
"DailyMissionGroup": [
|
||||
2500001,
|
||||
|
|
|
|||
|
|
@ -110,5 +110,19 @@
|
|||
"NowPriceDollar": 14,
|
||||
"NowPriceRMB": 99,
|
||||
"IconPath": ""
|
||||
},
|
||||
{
|
||||
"Id": 9,
|
||||
"AppleProductID": "",
|
||||
"PhxhProductID": "Phxh_PremiumAdvanced_Account_Levelup",
|
||||
"AppleBuyType": 1,
|
||||
"Name": "高级通行证尊享版资格升级",
|
||||
"NameLocal": "CurrencyShop_GoodsName_009",
|
||||
"ItemID": 0,
|
||||
"ItemCount": 0,
|
||||
"MaxCount": 1,
|
||||
"NowPriceDollar": 4,
|
||||
"NowPriceRMB": 31,
|
||||
"IconPath": ""
|
||||
}
|
||||
]
|
||||
|
|
@ -27059,6 +27059,19 @@
|
|||
"OutCalculate": [],
|
||||
"CalculateType": 0
|
||||
},
|
||||
{
|
||||
"Key": "battlepass_have_advanced",
|
||||
"Name": {
|
||||
"key": "battlepass_have_advanced",
|
||||
"text": ""
|
||||
},
|
||||
"Param0": "",
|
||||
"Param1": "",
|
||||
"Param2": "",
|
||||
"InnerCalculate": false,
|
||||
"OutCalculate": [],
|
||||
"CalculateType": 0
|
||||
},
|
||||
{
|
||||
"Key": "battlepass_get_reward",
|
||||
"Name": {
|
||||
|
|
|
|||
Loading…
Reference in New Issue