using System.Collections.Generic; using LitJson; namespace Wizard.Bingo; public class BingoDrawTask : BaseTask { public class BingoDrawTaskParam : BaseParam { public int draw_count; } public class BingoDrawTaskData { public bool IsSheetCompleted { get; private set; } public bool IsSwitchNextSheet { get; private set; } public List HitSquareIdList { get; private set; } public List TreasureBoxReawrdList { get; private set; } public List LineRewardData { get; private set; } public List> CompletedLineConditionList { get; private set; } public bool IsBingoLoginBonus { get; private set; } public bool IsDisplayTweetDialog { get; private set; } public BingoDrawTaskData(bool isSheetCompleted, bool isSwitchNextSheet, List hitSquareIdList, List treasureBoxReawrdList, List lineRewardData, List> completedLineConditionList, bool isBingoLoginBonus, bool isDisplayTweetDialog) { IsSheetCompleted = isSheetCompleted; IsSwitchNextSheet = isSwitchNextSheet; HitSquareIdList = hitSquareIdList; TreasureBoxReawrdList = treasureBoxReawrdList; LineRewardData = lineRewardData; CompletedLineConditionList = completedLineConditionList; IsBingoLoginBonus = isBingoLoginBonus; IsDisplayTweetDialog = isDisplayTweetDialog; } } public BingoDrawTaskData Result { get; private set; } private static List CompletedLine(JsonData squareJsonData) { List list = new List(); for (int i = 0; i < squareJsonData.Count; i++) { list.Add(squareJsonData[i].ToInt()); } return list; } public BingoDrawTask() { base.type = ApiType.Type.BingoDraw; } public void SetParameter(int buyNum, int viewerId) { BingoDrawTaskParam bingoDrawTaskParam = new BingoDrawTaskParam(); bingoDrawTaskParam.viewer_id = viewerId.ToString(); bingoDrawTaskParam.draw_count = buyNum; base.Params = bingoDrawTaskParam; } protected override int Parse() { int num = base.Parse(); if (num != 1) { return num; } JsonData response = base.ResponseData["data"]; Result = ParseBingoDrawResult(response); PlayerStaticData.UpdateHaveUserGoodsNumByJsonData(base.ResponseData["data"]["reward_list"]); return num; } public static BingoDrawTaskData ParseBingoDrawResult(JsonData response, bool isBingoLoginBonus = false) { bool isSheetCompleted = response["is_sheet_completed"].ToInt() == 1; bool isSwitchNextSheet = response["is_switch_next_sheet"].ToInt() == 1; JsonData jsonData = response["hit_square_id_list"]; List list = new List(); for (int i = 0; i < jsonData.Count; i++) { int item = jsonData[i].ToInt(); list.Add(item); } JsonData jsonData2 = response["treasure_box_reward_list"]; List list2 = new List(); for (int j = 1; j < jsonData2.Count; j++) { ReceivedReward item2 = ReceivedReward.CreateFromBingoTreasureBoxReward(jsonData2[j]); list2.Add(item2); } JsonData jsonData3 = response["line_reward_list"]; List list3 = new List(); for (int k = 1; k < jsonData3.Count; k++) { ReceivedReward item3 = ReceivedReward.CreateFromBingoLineReward(jsonData3[k]); list3.Add(item3); } JsonData jsonData4 = response["completed_line_condition_list"]; List> list4 = new List>(); for (int l = 0; l < jsonData4.Count; l++) { List item4 = CompletedLine(jsonData4[l]); list4.Add(item4); } bool isDisplayTweetDialog = response["is_display_tweet_dialog"].ToBoolean(); return new BingoDrawTaskData(isSheetCompleted, isSwitchNextSheet, list, list2, list3, list4, isBingoLoginBonus, isDisplayTweetDialog); } }