using System.Collections.Generic; using LitJson; using UnityEngine; using Wizard; namespace Cute; public class GameStartCheckTask : NetworkTask { private class CheckParams : PostParams { public int app_type; public string campaign_data = ""; public string campaign_sign = ""; public int campaign_user; } private CuteNetworkDefine.ApiType apiType = CuteNetworkDefine.ApiType.GameStartCheck; public static bool IsSocialAccountDataTransNotSetAndTutorialClear = false; public static bool IsTutorialClear = false; public static List IsSocialAccountDataTransSet; public static bool IsSetTransitionPassword; public static int _tosId; public static int _privacyPolicyId; public static bool HasAppliedForAccountDeletion { get; private set; } = false; public static string RefundUrl { get; private set; } = string.Empty; public override string Url => $"{CustomPreference.GetApplicationServerURL()}{CuteNetworkDefine.ApiUrlList[apiType]}"; public GameStartCheckTask() { if (Toolbox.BootNetwork != null) { Toolbox.BootNetwork.IsDoneGameStartCheck = false; } IsSocialAccountDataTransSet = new List(); } public void SetParameter() { CheckParams checkParams = new CheckParams(); if (URLScheme.AppType != 0) { checkParams.campaign_data = URLScheme.CampaignData; checkParams.app_type = URLScheme.AppType; } checkParams.campaign_sign = Toolbox.DeviceManager.getSignature(); int num = Random.Range(0, 100000); if (Toolbox.DeviceManager.isRootUser()) { checkParams.campaign_user = 2 * num + 1; } else { checkParams.campaign_user = 2 * num; } base.Params = checkParams; } protected override int Parse() { int num = base.Parse(); if (num != 1) { return num; } IsSocialAccountDataTransNotSetAndTutorialClear = false; IsSocialAccountDataTransSet.Clear(); IsSetTransitionPassword = false; RefundUrl = string.Empty; if (base.ResponseData["data"].Keys.Contains("transition_account_data")) { JsonData jsonData = base.ResponseData["data"]["transition_account_data"]; for (int i = 0; i < jsonData.Count; i++) { if (jsonData[i]["social_account_type"].ToInt() == 1) { IsSocialAccountDataTransSet.Add(CuteNetworkDefine.ACCOUNT_TYPE.GOOGLE_PLAY); } else if (jsonData[i]["social_account_type"].ToInt() == 2) { IsSocialAccountDataTransSet.Add(CuteNetworkDefine.ACCOUNT_TYPE.GAME_CENTER); } else if (jsonData[i]["social_account_type"].ToInt() == 3) { IsSocialAccountDataTransSet.Add(CuteNetworkDefine.ACCOUNT_TYPE.FACEBOOK); } else if (jsonData[i]["social_account_type"].ToInt() == 6) { IsSocialAccountDataTransSet.Add(CuteNetworkDefine.ACCOUNT_TYPE.APPLE_ID); } } if (base.ResponseData["data"]["now_tutorial_step"].ToInt() == 100) { IsTutorialClear = true; } if (jsonData.Count == 0 && base.ResponseData["data"]["now_tutorial_step"].ToInt() == 100) { IsSocialAccountDataTransNotSetAndTutorialClear = true; } } if (base.ResponseData["data"].Keys.Contains("rewrite_viewer_id")) { Certification.ViewerId = base.ResponseData["data"]["rewrite_viewer_id"].ToInt(); } if (base.ResponseData["data"].Keys.Contains("is_set_transition_password")) { IsSetTransitionPassword = base.ResponseData["data"]["is_set_transition_password"].ToBoolean(); } HasAppliedForAccountDeletion = base.ResponseData["data"].Keys.Contains("account_delete_reservation_status"); ParseAgreementData(base.ResponseData); if (base.ResponseData["data"].Keys.Contains("refund_url")) { RefundUrl = base.ResponseData["data"]["refund_url"].ToString(); } return num; } private void ParseAgreementData(JsonData responseData) { PlayerStaticData._tosAgreementState = (PlayerStaticData.AgreementState)responseData["data"]["tos_state"].ToInt(); PlayerStaticData._privacyPolicyAgreementState = (PlayerStaticData.AgreementState)responseData["data"]["policy_state"].ToInt(); PlayerStaticData.KorAuthorityAgreementState = (PlayerStaticData.AgreementState)responseData["data"]["kor_authority_state"].ToInt(); AcceptAgreementTask._tosId = responseData["data"]["tos_id"].ToInt(); AcceptAgreementTask._privacyPolicyId = responseData["data"]["policy_id"].ToInt(); AcceptAgreementTask.KorAuthorityId = responseData["data"]["kor_authority_id"].ToInt(); } }