using Cute;

namespace Wizard;

public class GatheringRoomEnterTournamentRoomTask : BaseRoomBattleEnterRoomTask
{
	private GatheringInfo _gatheringInfo;

	public GatheringAutoJoinTaskInfo GatheringAutoJoinTaskInfo { get; private set; }

	public GatheringRoomEnterTournamentRoomTask(GatheringInfo gatheringInfo)
	{
		_gatheringInfo = gatheringInfo;
		base.type = ApiType.Type.GatheringRoomEnterRoomForTournament;
	}

	protected override int Parse()
	{
		if (base.ResponseData.TryGetValue("data", out var value) && value.IsObject && value.TryGetValue("is_owner", out var value2))
		{
			bool flag = false;
			if (value.TryGetValue("oppo_info", out var value3))
			{
				flag = value3 != null;
			}
			if (value2.ToInt() != 0 && value.Keys.Contains("result_reason") && !flag)
			{
				value["result_reason"] = "-1";
			}
		}
		int num = base.Parse();
		if (num != 1)
		{
			return num;
		}
		GatheringAutoJoinTaskInfo = new GatheringAutoJoinTaskInfo(base.ResponseData, this, _gatheringInfo);
		if (GatheringAutoJoinTaskInfo.IsOwner)
		{
			CustomPreference.SetNodeServerURL(value["node_server_url"].ToString());
		}
		return num;
	}
}
