269 lines
6.5 KiB
Go
269 lines
6.5 KiB
Go
package formview
|
|
|
|
import (
|
|
"fmt"
|
|
"go_dreamfactory/cmd/v2/lib/common"
|
|
"go_dreamfactory/cmd/v2/model"
|
|
"go_dreamfactory/cmd/v2/service"
|
|
"go_dreamfactory/cmd/v2/service/observer"
|
|
"go_dreamfactory/comm"
|
|
|
|
"go_dreamfactory/pb"
|
|
|
|
"fyne.io/fyne/v2"
|
|
"fyne.io/fyne/v2/container"
|
|
"fyne.io/fyne/v2/dialog"
|
|
"fyne.io/fyne/v2/layout"
|
|
"fyne.io/fyne/v2/theme"
|
|
"fyne.io/fyne/v2/widget"
|
|
"github.com/sirupsen/logrus"
|
|
"github.com/spf13/cast"
|
|
)
|
|
|
|
type WorldtaskMineView struct {
|
|
mineReq func()
|
|
BaseformView
|
|
itemList *common.ItemList
|
|
flag bool
|
|
juqingBtn *widget.Button
|
|
}
|
|
|
|
func (this *WorldtaskMineView) CreateView(t *model.TestCase) fyne.CanvasObject {
|
|
this.itemList = common.NewItemList()
|
|
this.itemList.ItemList = this.itemList.CreateList()
|
|
|
|
this.mineReq = func() {
|
|
this.itemList.Reset()
|
|
if err := service.GetPttService().SendToClient(
|
|
t.MainType,
|
|
"",
|
|
&pb.WorldtaskMineReq{}); err != nil {
|
|
logrus.Error(err)
|
|
}
|
|
}
|
|
defer this.mineReq()
|
|
|
|
// 刷新
|
|
refreshBtn := widget.NewButtonWithIcon("", theme.ViewRefreshIcon(), func() {
|
|
this.itemList.Reset()
|
|
this.mineReq()
|
|
})
|
|
|
|
//接取
|
|
acceptBtn := widget.NewButton("接取", func() {
|
|
// groupId := widget.NewEntry()
|
|
// groupId.PlaceHolder = "分组ID"
|
|
taskIdEntry := widget.NewEntry()
|
|
taskIdEntry.PlaceHolder = "任务ID"
|
|
form := widget.NewForm(
|
|
// widget.NewFormItem("组ID", groupId),
|
|
widget.NewFormItem("任务ID", taskIdEntry),
|
|
)
|
|
|
|
dconf := dialog.NewCustom("接取任务", "关闭", form, this.w)
|
|
|
|
form.OnSubmit = func() {
|
|
if err := service.GetPttService().SendToClient(
|
|
t.MainType,
|
|
"accept",
|
|
&pb.WorldtaskAcceptReq{
|
|
TaskId: cast.ToInt32(taskIdEntry.Text),
|
|
}); err != nil {
|
|
logrus.Error(err)
|
|
}
|
|
dconf.Hide()
|
|
this.mineReq()
|
|
}
|
|
form.SubmitText = "确定"
|
|
dconf.Resize(fyne.NewSize(400, 200))
|
|
dconf.Show()
|
|
})
|
|
|
|
// 完成任务条件
|
|
completeBtn := widget.NewButton("任务条件", func() {
|
|
// groupId := widget.NewEntry()
|
|
// groupId.PlaceHolder = "分组ID"
|
|
taskIdEntry := widget.NewEntry()
|
|
taskIdEntry.PlaceHolder = "任务ID"
|
|
condiId := widget.NewEntry()
|
|
condiId.PlaceHolder = "条件"
|
|
form := widget.NewForm(
|
|
// widget.NewFormItem("组ID", groupId),
|
|
widget.NewFormItem("任务ID", taskIdEntry),
|
|
widget.NewFormItem("完成条件", condiId),
|
|
)
|
|
|
|
dconf := dialog.NewCustom("完成条件", "关闭", form, this.w)
|
|
|
|
form.OnSubmit = func() {
|
|
if err := service.GetPttService().SendToClient(
|
|
t.MainType,
|
|
"completecondi",
|
|
&pb.WorldtaskCompleteCondiReq{
|
|
TaskId: cast.ToInt32(taskIdEntry.Text),
|
|
CondiId: cast.ToInt32(condiId.Text),
|
|
}); err != nil {
|
|
logrus.Error(err)
|
|
}
|
|
dconf.Hide()
|
|
this.mineReq()
|
|
}
|
|
form.SubmitText = "确定"
|
|
dconf.Resize(fyne.NewSize(400, 200))
|
|
dconf.Show()
|
|
})
|
|
|
|
// 交付任务
|
|
this.juqingBtn = widget.NewButton("交付任务", func() {
|
|
taskIdEntry := widget.NewEntry()
|
|
taskIdEntry.PlaceHolder = "任务ID"
|
|
form := widget.NewForm(
|
|
widget.NewFormItem("任务ID", taskIdEntry),
|
|
)
|
|
|
|
dconf := dialog.NewCustom("交付任务", "关闭", form, this.w)
|
|
|
|
form.OnSubmit = func() {
|
|
if err := service.GetPttService().SendToClient(
|
|
t.MainType,
|
|
"worldtask.WorldtaskSubtypeFinish",
|
|
&pb.WorldtaskFinishReq{
|
|
TaskId: cast.ToInt32(taskIdEntry.Text),
|
|
}); err != nil {
|
|
logrus.Error(err)
|
|
}
|
|
dconf.Hide()
|
|
this.mineReq()
|
|
}
|
|
form.SubmitText = "确定"
|
|
dconf.Resize(fyne.NewSize(400, 200))
|
|
dconf.Show()
|
|
})
|
|
|
|
// 战斗完成
|
|
battleBtn := widget.NewButton("战斗完成", func() {
|
|
confId := widget.NewEntry()
|
|
confId.PlaceHolder = "战斗配置ID"
|
|
taskIdEntry := widget.NewEntry()
|
|
taskIdEntry.PlaceHolder = "任务ID"
|
|
form := widget.NewForm(
|
|
widget.NewFormItem("战斗配置ID", confId),
|
|
widget.NewFormItem("任务ID", taskIdEntry),
|
|
)
|
|
|
|
dconf := dialog.NewCustom("战斗完成", "关闭", form, this.w)
|
|
|
|
form.OnSubmit = func() {
|
|
if err := service.GetPttService().SendToClient(
|
|
t.MainType,
|
|
"worldtask.WorldtaskBattleFinish",
|
|
&pb.WorldtaskBattleFinishReq{
|
|
BattleConfId: cast.ToInt32(confId.Text),
|
|
TaskId: cast.ToInt32(taskIdEntry.Text),
|
|
Report: &pb.BattleReport{},
|
|
}); err != nil {
|
|
logrus.Error(err)
|
|
}
|
|
dconf.Hide()
|
|
this.mineReq()
|
|
}
|
|
form.SubmitText = "确定"
|
|
dconf.Resize(fyne.NewSize(400, 200))
|
|
dconf.Show()
|
|
})
|
|
|
|
// 章节奖励
|
|
chapterBtn := widget.NewButton("章节奖励", func() {
|
|
groupId := widget.NewEntry()
|
|
groupId.PlaceHolder = "章节ID"
|
|
form := widget.NewForm(
|
|
widget.NewFormItem("章节ID", groupId),
|
|
)
|
|
dconf := dialog.NewCustom("章节奖励", "关闭", form, this.w)
|
|
form.OnSubmit = func() {
|
|
if err := service.GetPttService().SendToClient(
|
|
t.MainType,
|
|
"chapterreward",
|
|
&pb.WorldtaskChapterrewardReq{
|
|
GroupId: cast.ToInt32(groupId.Text),
|
|
}); err != nil {
|
|
logrus.Error(err)
|
|
}
|
|
dconf.Hide()
|
|
}
|
|
form.SubmitText = "确定"
|
|
|
|
dconf.Resize(fyne.NewSize(400, 200))
|
|
dconf.Show()
|
|
})
|
|
|
|
mt := common.NewMogoTool()
|
|
mt.OpenConn()
|
|
|
|
// 任务查询
|
|
queryTaskBtn := widget.NewButton("任务查询", func() {
|
|
taskIdEntry := widget.NewEntry()
|
|
form := widget.NewForm(
|
|
widget.NewFormItem("任务ID", taskIdEntry),
|
|
)
|
|
|
|
dconf := dialog.NewCustom("任务查询", "关闭", form, this.w)
|
|
form.OnSubmit = func() {
|
|
if err := service.GetPttService().SendToClient(
|
|
t.MainType,
|
|
"chapterreward",
|
|
&pb.WorldtaskChapterrewardReq{}); err != nil {
|
|
logrus.Error(err)
|
|
}
|
|
dconf.Hide()
|
|
}
|
|
form.SubmitText = "确定"
|
|
|
|
dconf.Resize(fyne.NewSize(400, 200))
|
|
dconf.Show()
|
|
})
|
|
|
|
barBtn := container.NewHBox(refreshBtn, acceptBtn, completeBtn, this.juqingBtn, battleBtn, chapterBtn, layout.NewSpacer(), queryTaskBtn)
|
|
|
|
c := container.NewBorder(barBtn, nil, nil, nil, this.itemList.ItemList)
|
|
this.mineData()
|
|
return c
|
|
}
|
|
|
|
func (this *WorldtaskMineView) mineData() {
|
|
if this.flag {
|
|
return
|
|
}
|
|
this.obs.AddListener(observer.EVENT_REQ_RSP, observer.Listener{
|
|
OnNotify: func(d interface{}, args ...interface{}) {
|
|
data := d.(*pb.UserMessage)
|
|
|
|
if !(data.MainType == string("comm.ModuleWorldtask") &&
|
|
data.SubType == "") {
|
|
return
|
|
}
|
|
|
|
rsp := &pb.WorldtaskMineResp{}
|
|
if !comm.ProtoUnmarshal(data, rsp) {
|
|
logrus.Error("unmarshal err")
|
|
return
|
|
}
|
|
if rsp.Task == nil {
|
|
logrus.Debug(rsp.Task)
|
|
return
|
|
}
|
|
|
|
for _, v := range rsp.Task.TaskList {
|
|
item := common.Item{
|
|
Id: cast.ToString(v),
|
|
Text: fmt.Sprintf("%d ", v),
|
|
}
|
|
this.itemList.AddItem(item)
|
|
}
|
|
this.juqingBtn.Disabled()
|
|
this.juqingBtn.Refresh()
|
|
},
|
|
})
|
|
this.flag = true
|
|
}
|