124 lines
5.4 KiB
C#
124 lines
5.4 KiB
C#
using LitJson;
|
|
|
|
namespace Wizard.Scripts.Network.Data.TaskData.BuildDeckPurchase;
|
|
|
|
public class BuildDeckPurchaseInfoTask : BaseTask
|
|
{
|
|
public class BuildDeckPurchaseInfoTaskParam : BaseParam
|
|
{
|
|
public int add_series_id;
|
|
}
|
|
|
|
public BuildDeckPurchaseInfoTask()
|
|
{
|
|
base.type = ApiType.Type.BuildDeckInfo;
|
|
}
|
|
|
|
public void SetParameter(int add_series_id)
|
|
{
|
|
BuildDeckPurchaseInfoTaskParam buildDeckPurchaseInfoTaskParam = new BuildDeckPurchaseInfoTaskParam();
|
|
buildDeckPurchaseInfoTaskParam.add_series_id = add_series_id;
|
|
base.Params = buildDeckPurchaseInfoTaskParam;
|
|
}
|
|
|
|
protected override int Parse()
|
|
{
|
|
int num = base.Parse();
|
|
if (num != 1)
|
|
{
|
|
return num;
|
|
}
|
|
Wizard.Data.BuildDeckPurchaseInfo.seriesList.Clear();
|
|
JsonData jsonData = base.ResponseData["data"];
|
|
for (int i = 0; i < jsonData.Count; i++)
|
|
{
|
|
int num2 = jsonData[i]["series_id"].ToInt();
|
|
if (!Wizard.Data.Master.BuildDeckSeriesIdDic.ContainsKey(num2))
|
|
{
|
|
continue;
|
|
}
|
|
BuildDeckSeriesPurchaseInfo buildDeckSeriesPurchaseInfo = new BuildDeckSeriesPurchaseInfo();
|
|
buildDeckSeriesPurchaseInfo._seriesId = num2;
|
|
buildDeckSeriesPurchaseInfo._introduction = Wizard.Data.Master.BuildDeckSeriesIdDic[buildDeckSeriesPurchaseInfo._seriesId].Introduction;
|
|
buildDeckSeriesPurchaseInfo._isNew = jsonData[i]["is_new"].ToBoolean();
|
|
JsonData jsonData2 = jsonData[i]["products"];
|
|
for (int j = 0; j < jsonData2.Count; j++)
|
|
{
|
|
BuildDeckProductInfo buildDeckProductInfo = new BuildDeckProductInfo();
|
|
buildDeckProductInfo.product_id = jsonData2[j]["product_id"].ToInt();
|
|
buildDeckProductInfo.leader_id = jsonData2[j]["leader_id"].ToInt();
|
|
buildDeckProductInfo.deck_code = jsonData2[j]["deck_code"].ToString();
|
|
buildDeckProductInfo.featured_card_id = jsonData2[j]["featured_card_id"].ToInt();
|
|
buildDeckProductInfo.purchase_num_max = jsonData2[j]["purchase_num_max"].ToInt();
|
|
buildDeckProductInfo.purchase_num_current = jsonData2[j]["purchase_num_current"].ToInt();
|
|
buildDeckProductInfo.is_first_price = jsonData2[j]["is_first_price"].ToBoolean();
|
|
ShopCommonSaleInfo shopCommonSaleInfo = new ShopCommonSaleInfo();
|
|
string key = jsonData2[j]["product_name"].ToString();
|
|
shopCommonSaleInfo.name = Wizard.Data.Master.GetBuildDeckProductText(key);
|
|
shopCommonSaleInfo.path = jsonData2[j]["product_id"].ToString();
|
|
if (jsonData2[j].Keys.Contains("price_crystal"))
|
|
{
|
|
shopCommonSaleInfo.costCrystal = jsonData2[j]["price_crystal"].ToInt();
|
|
}
|
|
if (jsonData2[j].Keys.Contains("price_rupy"))
|
|
{
|
|
shopCommonSaleInfo.costRupy = jsonData2[j]["price_rupy"].ToInt();
|
|
}
|
|
if (jsonData2[j].Keys.Contains("price_ticket"))
|
|
{
|
|
shopCommonSaleInfo.costTicket = jsonData2[j]["price_ticket"].ToInt();
|
|
}
|
|
if (jsonData2[j].Keys.Contains("ticket_id"))
|
|
{
|
|
shopCommonSaleInfo.costTicketItemId = jsonData2[j]["ticket_id"].ToInt();
|
|
shopCommonSaleInfo.haveTicketNum = PlayerStaticData.GetHaveUserGoods(UserGoods.Type.Item, shopCommonSaleInfo.costTicketItemId.Value);
|
|
}
|
|
shopCommonSaleInfo.isFree = false;
|
|
if (shopCommonSaleInfo.costCrystal.HasValue && shopCommonSaleInfo.costRupy.HasValue && shopCommonSaleInfo.costCrystal <= 0 && shopCommonSaleInfo.costRupy <= 0)
|
|
{
|
|
shopCommonSaleInfo.isFree = true;
|
|
}
|
|
shopCommonSaleInfo.expirtyTimeInfo = new ShopExpirtyInfo(jsonData2[j]["sales_period_info"]);
|
|
buildDeckProductInfo.saleInfo = shopCommonSaleInfo;
|
|
JsonData jsonData3 = jsonData2[j]["rewards"];
|
|
for (int k = 0; k < jsonData3.Count; k++)
|
|
{
|
|
ShopCommonRewardInfo shopCommonRewardInfo = new ShopCommonRewardInfo();
|
|
shopCommonRewardInfo.Type = jsonData3[k]["reward_type"].ToInt();
|
|
shopCommonRewardInfo.UserGoodsId = jsonData3[k]["reward_detail_id"].ToLong();
|
|
shopCommonRewardInfo.Num = jsonData3[k]["reward_number"].ToInt();
|
|
buildDeckProductInfo.rewardInfoList.Add(shopCommonRewardInfo);
|
|
}
|
|
if (Wizard.Data.Master.BuildDeckCardListDic.ContainsKey(buildDeckProductInfo.product_id))
|
|
{
|
|
for (int l = 0; l < Wizard.Data.Master.BuildDeckCardListDic[buildDeckProductInfo.product_id].Count; l++)
|
|
{
|
|
buildDeckProductInfo.cardList.Add(Wizard.Data.Master.BuildDeckCardListDic[buildDeckProductInfo.product_id][l]);
|
|
}
|
|
buildDeckSeriesPurchaseInfo.productList.Add(buildDeckProductInfo);
|
|
}
|
|
}
|
|
JsonData jsonData4 = jsonData[i]["series_rewards"];
|
|
for (int m = 0; m < jsonData4.Count; m++)
|
|
{
|
|
PurchaseRewardInfo purchaseRewardInfo = new PurchaseRewardInfo();
|
|
JsonData jsonData5 = jsonData4[m];
|
|
string key2 = $"Shop_BuildDeckRewardNum_{(m + 1).ToString()}";
|
|
purchaseRewardInfo.PurchaseNthText = Wizard.Data.SystemText.Get(key2);
|
|
for (int n = 0; n < jsonData5["reward_list"].Count; n++)
|
|
{
|
|
ShopCommonRewardInfo shopCommonRewardInfo2 = new ShopCommonRewardInfo();
|
|
shopCommonRewardInfo2.Type = jsonData5["reward_list"][n]["reward_type"].ToInt();
|
|
shopCommonRewardInfo2.UserGoodsId = jsonData5["reward_list"][n]["reward_detail_id"].ToLong();
|
|
shopCommonRewardInfo2.Num = jsonData5["reward_list"][n]["reward_number"].ToInt();
|
|
purchaseRewardInfo.RewardInfoList.Add(shopCommonRewardInfo2);
|
|
}
|
|
purchaseRewardInfo.IsGet = jsonData4[m]["is_get"].ToBoolean();
|
|
buildDeckSeriesPurchaseInfo.SeriesRewardList.Add(purchaseRewardInfo);
|
|
}
|
|
Wizard.Data.BuildDeckPurchaseInfo.seriesList.Add(buildDeckSeriesPurchaseInfo);
|
|
}
|
|
return num;
|
|
}
|
|
}
|