public static DrillResult Parse(JToken token) { var reward = token["reward"]; if (reward == null) { return(null); } var result = new DrillResult(); var rewards = new List <DrillReward>(); var totalItemList = (JArray)reward["totalItemList"]; foreach (JToken subToken in totalItemList) { rewards.Add(DrillReward.Parse(subToken)); } result.Rewards = rewards; return(result); }
private async void miningTimer_Tick(object sender, EventArgs e) { if (miningLocking) { return; } if (autoDrillBox.Checked) { try { miningLocking = true; if (cooldownModel.DrillCooldown > 0) { return; } // Kiểm tra lại đóng băng. var packet = await packetWriter.RefreshOutsideAsync(infoModel.PlayerId); if (packet == null) { return; } if (cooldownModel.DrillCooldown > 0) { return; } var token = JToken.Parse(packet.Message); var extraBaseInfo = (JArray)token["extraBaseInfo"]; if (extraBaseInfo.Count == 0) { messageLogModel.Log("[Khoan] Chưa mở ngoại thành!"); autoDrillBox.Checked = false; return; } var drillToken = extraBaseInfo[extraBaseInfo.Count - 3]; var axeDtoList = (JArray)drillToken["axeDtoList"]; var normalMining = axeDtoList[0]; var rewardTime = (long)normalMining["rewardTime"]; if (rewardTime != 0) { // Có quà chưa nhận. var p1 = await packetWriter.GetDrillResultAsync(); if (p1 == null) { return; } messageLogModel.Log(String.Format("[Khoan] Tiến hành mở kết quả khoan.")); var result = DrillResult.Parse(JToken.Parse(p1.Message)); if (result == null) { return; } foreach (var reward in result.Rewards) { messageLogModel.Log(String.Format("[Khoan] Nhận được {0} {1}.", reward.Award, reward.Name)); } } messageLogModel.Log("[Khoan] Bắt đầu khoan..."); await packetWriter.DrillAsync(); } finally { miningLocking = false; } } }