Skip to content

Commit 00732a7

Browse files
committed
fix hero set point
1 parent 05245df commit 00732a7

File tree

2 files changed

+50
-41
lines changed

2 files changed

+50
-41
lines changed

TbsCore/Tasks/Others/HeroSetPoints.cs

Lines changed: 41 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
using System;
1+
using OpenQA.Selenium;
2+
using OpenQA.Selenium.Support.UI;
3+
using System;
4+
using System.Linq;
25
using System.Threading.Tasks;
36
using TbsCore.Helpers;
47
using TbsCore.Models.AccModels;
@@ -17,16 +20,45 @@ public override async Task<TaskRes> Execute(Account acc)
1720

1821
float sum = 0;
1922
for (int i = 0; i < 4; i++) sum += acc.Hero.Settings.Upgrades[i];
20-
if (sum == 0)
21-
{
22-
// Upgrade points were not set. Set points to default
23-
acc.Hero.Settings.Upgrades = new byte[4] { 2, 0, 0, 2 };
24-
sum = 4;
25-
}
26-
2723
var points = acc.Hero.HeroInfo.AvaliblePoints;
24+
var wait = new WebDriverWait(acc.Wb.Driver, TimeSpan.FromMinutes(1));
25+
var pointUsed = 0;
26+
for (int i = 0; i < 4; i++)
27+
{
28+
var amount = Math.Ceiling(acc.Hero.Settings.Upgrades[i] * points / sum);
29+
if (amount == 0) continue;
2830

29-
//await Driver
31+
for (int j = 0; j < (int)amount; j++)
32+
{
33+
{
34+
var attributesDiv = acc.Wb.Html.DocumentNode.Descendants("div").FirstOrDefault(x => x.HasClass("heroAttributes"));
35+
var pointButtons = attributesDiv.Descendants("button").Where(x => x.HasClass("plus")).ToArray();
36+
var elements = acc.Wb.Driver.FindElements(By.XPath(pointButtons[i].XPath));
37+
elements[0].Click();
38+
}
39+
wait.Until(driver =>
40+
{
41+
acc.Wb.UpdateHtml();
42+
var attributesDiv = acc.Wb.Html.DocumentNode.Descendants("div").FirstOrDefault(x => x.HasClass("heroAttributes"));
43+
if (attributesDiv == null) return false;
44+
var avaliblePoints = attributesDiv.Descendants("div").FirstOrDefault(x => x.HasClass("pointsAvailable"));
45+
if (avaliblePoints == null) return false;
46+
var currentPoint = (int)Parser.RemoveNonNumeric(avaliblePoints.InnerText);
47+
if (acc.Hero.HeroInfo.AvaliblePoints - pointUsed - currentPoint == 0) return false;
48+
pointUsed++;
49+
return true;
50+
});
51+
}
52+
}
53+
var buttonElements = acc.Wb.Driver.FindElements(By.Id("savePoints"));
54+
buttonElements[0].Click();
55+
wait.Until(driver =>
56+
{
57+
var button = acc.Wb.Driver.FindElements(By.Id("savePoints"));
58+
if (button.Count == 0) return false;
59+
return !button[0].Enabled;
60+
});
61+
acc.Hero.HeroInfo = HeroParser.GetHeroAttributes(acc.Wb.Html);
3062
return TaskRes.Executed;
3163
}
3264
}

TbsWinformNet6/Views/NewVillagesUc.cs

Lines changed: 9 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using TbsCore.Helpers;
44
using TbsCore.Models.MapModels;
55
using TbsCore.Models.VillageModels;
6+
using TbsCore.Parsers;
67
using TbsCore.Tasks.Others;
78
using TbsCore.Tasks.Sim;
89
using TbsWinformNet6.Helpers;
@@ -131,11 +132,9 @@ private void button4_Click(object sender, EventArgs e)
131132

132133
private async void button5_Click(object sender, EventArgs e)
133134
{
134-
var acc = GetSelectedAcc();
135-
var task = new HeroSetPoints();
136135
try
137136
{
138-
await task.Execute(acc);
137+
await NavigationHelper.ToAuction(GetSelectedAcc(), NavigationHelper.AuctionTab.Bids);
139138
}
140139
catch (Exception ex)
141140
{
@@ -167,36 +166,14 @@ private async void button7_Click(object sender, EventArgs e)
167166
{
168167
var acc = GetSelectedAcc();
169168
acc.Wb.UpdateHtml();
170-
var item = acc.Wb.Html.DocumentNode.Descendants("div").FirstOrDefault(x => x.HasClass("item148"));
171-
item = item.ParentNode;
172-
var elements = acc.Wb.Driver.FindElements(By.XPath(item.XPath));
169+
acc.Hero.HeroInfo = HeroParser.GetHeroAttributes(acc.Wb.Html);
170+
acc.Hero.HeroArrival = DateTime.Now + HeroParser.GetHeroArrivalInfo(acc.Wb.Html);
171+
172+
var attributesDiv = acc.Wb.Html.DocumentNode.Descendants("div").FirstOrDefault(x => x.HasClass("heroAttributes"));
173+
var pointButtons = attributesDiv.Descendants("button").Where(x => x.HasClass("plus")).ToArray();
174+
var elements = acc.Wb.Driver.FindElements(By.XPath(pointButtons[3].XPath));
173175
elements[0].Click();
174-
var wait = new WebDriverWait(acc.Wb.Driver, TimeSpan.FromMinutes(1));
175-
wait.Until(driver => driver.FindElements(By.Id("consumableHeroItem")).Count > 0);
176-
acc.Wb.UpdateHtml();
177-
178-
var form = acc.Wb.Html.GetElementbyId("consumableHeroItem");
179-
var input = form.Descendants("input").FirstOrDefault();
180-
var inputElements = acc.Wb.Driver.FindElements(By.XPath(input.XPath));
181-
182-
inputElements[0].SendKeys(Keys.Home);
183-
inputElements[0].SendKeys(Keys.Shift + Keys.End);
184-
inputElements[0].SendKeys($"{1}");
185-
186-
var dialog = acc.Wb.Html.GetElementbyId("dialogContent");
187-
var buttonWrapper = dialog.Descendants("div").FirstOrDefault(x => x.HasClass("buttonsWrapper"));
188-
var buttonTransfer = buttonWrapper.Descendants("button").ToArray();
189-
var buttonTransferElements = acc.Wb.Driver.FindElements(By.XPath(buttonTransfer[1].XPath));
190-
buttonTransferElements[0].Click();
191-
192-
wait.Until(driver =>
193-
{
194-
acc.Wb.UpdateHtml();
195-
var inventoryPageWrapper = acc.Wb.Html.DocumentNode.Descendants("div").FirstOrDefault(x => x.HasClass("inventoryPageWrapper"));
196-
return !inventoryPageWrapper.HasClass("loading");
197-
});
198-
199-
_ = dialog;
176+
//savePoints
200177
}
201178
catch (Exception ex)
202179
{

0 commit comments

Comments
 (0)