|
|
@@ -5,6 +5,7 @@ import (
|
|
|
"fmt"
|
|
|
"image/color"
|
|
|
"log"
|
|
|
+ "time"
|
|
|
|
|
|
"fyne.io/fyne/v2"
|
|
|
"fyne.io/fyne/v2/canvas"
|
|
|
@@ -28,6 +29,12 @@ type WinMain struct {
|
|
|
entPass *widget.Entry // Пароль текущего бота
|
|
|
checkAutoGame *widget.Check // Автоматически играть при старте
|
|
|
lblFuel *widget.Label // Топливо бота
|
|
|
+ lblGold *widget.Label // Золото бота
|
|
|
+ lblSilver *widget.Label // Серебро
|
|
|
+ lblGlory *widget.Label // Количество славы
|
|
|
+ lblSpace *widget.Label // Разделитель к базе
|
|
|
+ lblRuda *widget.Label // Количество руды
|
|
|
+ lblFerrum *widget.Label // Количество железа
|
|
|
}
|
|
|
|
|
|
// NewWinMain -- возвращает новое главное окно
|
|
|
@@ -60,7 +67,19 @@ func NewWinMain(serv types.IServer) (*WinMain, error) {
|
|
|
|
|
|
sf.lblFuel = widget.NewLabel("0")
|
|
|
itemFuel := widget.NewFormItem("Топливо", sf.lblFuel)
|
|
|
- frmStat := widget.NewForm(itemFuel)
|
|
|
+ sf.lblGold = widget.NewLabel("0")
|
|
|
+ itemGold := widget.NewFormItem("Золото", sf.lblGold)
|
|
|
+ sf.lblSilver = widget.NewLabel("0")
|
|
|
+ itemSilver := widget.NewFormItem("Серебро", sf.lblSilver)
|
|
|
+ sf.lblGlory = widget.NewLabel("0")
|
|
|
+ itemGlory := widget.NewFormItem("Слава", sf.lblGlory)
|
|
|
+ sf.lblSpace = widget.NewLabel("======")
|
|
|
+ itemSpace := widget.NewFormItem("=========", sf.lblSpace)
|
|
|
+ sf.lblRuda = widget.NewLabel("0")
|
|
|
+ itemRuda := widget.NewFormItem("Руда", sf.lblRuda)
|
|
|
+ sf.lblFerrum = widget.NewLabel("0")
|
|
|
+ itemFerrum := widget.NewFormItem("Железо", sf.lblFerrum)
|
|
|
+ frmStat := widget.NewForm(itemFuel, itemGold, itemSilver, itemGlory, itemSpace, itemRuda, itemFerrum)
|
|
|
tabStat := container.NewTabItem("Статистика", frmStat)
|
|
|
sf.tabBot = container.NewAppTabs(tabLogin, tabStat)
|
|
|
|
|
|
@@ -79,9 +98,34 @@ func NewWinMain(serv types.IServer) (*WinMain, error) {
|
|
|
}
|
|
|
|
|
|
sf.SetContent(boxMain)
|
|
|
+ go sf.showStat()
|
|
|
return sf, nil
|
|
|
}
|
|
|
|
|
|
+// Показывает статистику бота
|
|
|
+func (sf *WinMain) showStat() {
|
|
|
+ for {
|
|
|
+ time.Sleep(time.Millisecond * 500)
|
|
|
+ sf.botLogin = sf.entLogin.Text
|
|
|
+ if sf.botLogin == "" {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ bot := sf.serv.ServBots().Get(sf.botLogin)
|
|
|
+ sf.lblFuel.Text = fmt.Sprint(bot.Angar().Fuel().Get())
|
|
|
+ sf.lblFuel.Refresh()
|
|
|
+ sf.lblGold.Text = fmt.Sprint(bot.Angar().Gold().Get())
|
|
|
+ sf.lblGold.Refresh()
|
|
|
+ sf.lblSilver.Text = fmt.Sprint(bot.Angar().SilverAll().Get())
|
|
|
+ sf.lblSilver.Refresh()
|
|
|
+ sf.lblGlory.Text = fmt.Sprint(bot.Angar().Convoy().Glory().Get())
|
|
|
+ sf.lblGlory.Refresh()
|
|
|
+ sf.lblRuda.Text = fmt.Sprint(bot.Angar().Base().Mine().Ruda().Get())
|
|
|
+ sf.lblRuda.Refresh()
|
|
|
+ sf.lblFerrum.Text = fmt.Sprint(bot.Angar().Base().Mine().Ferrum().Get())
|
|
|
+ sf.lblFerrum.Refresh()
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// Выставляет признак автоматического начала игры при запуске бото-фермы
|
|
|
func (sf *WinMain) clickAutoGame(isAutoGame bool) {
|
|
|
log.Printf("WinMain.clickAutoGame(): login:%q\t isAutoGame=%v\n", sf.entLogin.Text, isAutoGame)
|